@mui/system 6.1.2 → 6.1.4

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 (353) hide show
  1. package/Box/Box.js +17 -11
  2. package/Box/boxClasses.js +10 -3
  3. package/Box/index.js +35 -3
  4. package/Box/package.json +2 -2
  5. package/CHANGELOG.md +357 -310
  6. package/Container/Container.js +17 -12
  7. package/Container/ContainerProps.js +5 -1
  8. package/Container/containerClasses.js +14 -6
  9. package/Container/createContainer.js +36 -28
  10. package/Container/index.js +35 -3
  11. package/Container/package.json +2 -2
  12. package/DefaultPropsProvider/DefaultPropsProvider.js +19 -11
  13. package/DefaultPropsProvider/index.js +19 -1
  14. package/DefaultPropsProvider/package.json +2 -2
  15. package/GlobalStyles/GlobalStyles.js +18 -11
  16. package/GlobalStyles/index.js +25 -2
  17. package/GlobalStyles/package.json +2 -2
  18. package/Grid/Grid.js +38 -27
  19. package/Grid/GridProps.d.ts +16 -11
  20. package/Grid/GridProps.js +5 -1
  21. package/Grid/createGrid.js +46 -38
  22. package/Grid/gridClasses.js +14 -6
  23. package/Grid/gridGenerator.d.ts +3 -7
  24. package/Grid/gridGenerator.js +62 -69
  25. package/Grid/index.js +63 -6
  26. package/Grid/package.json +2 -2
  27. package/Grid/traverseBreakpoints.js +11 -3
  28. package/InitColorSchemeScript/InitColorSchemeScript.js +16 -7
  29. package/InitColorSchemeScript/index.js +13 -1
  30. package/InitColorSchemeScript/package.json +2 -2
  31. package/RtlProvider/index.js +17 -8
  32. package/RtlProvider/package.json +2 -2
  33. package/Stack/Stack.js +17 -11
  34. package/Stack/StackProps.js +5 -1
  35. package/Stack/createStack.js +46 -36
  36. package/Stack/index.js +55 -5
  37. package/Stack/package.json +2 -2
  38. package/Stack/stackClasses.js +14 -6
  39. package/ThemeProvider/ThemeProvider.js +27 -20
  40. package/ThemeProvider/index.js +13 -1
  41. package/ThemeProvider/package.json +2 -2
  42. package/borders/borders.js +36 -26
  43. package/borders/index.js +25 -2
  44. package/borders/package.json +2 -2
  45. package/breakpoints/breakpoints.js +34 -21
  46. package/breakpoints/index.js +25 -2
  47. package/breakpoints/package.json +2 -2
  48. package/colorManipulator/colorManipulator.js +50 -25
  49. package/colorManipulator/index.js +16 -1
  50. package/colorManipulator/package.json +2 -2
  51. package/compose/compose.js +10 -3
  52. package/compose/index.js +13 -1
  53. package/compose/package.json +2 -2
  54. package/createBox/createBox.js +20 -13
  55. package/createBox/index.js +13 -1
  56. package/createBox/package.json +2 -2
  57. package/createBreakpoints/createBreakpoints.js +9 -2
  58. package/createBreakpoints/index.js +13 -3
  59. package/createBreakpoints/package.json +2 -2
  60. package/createStyled/createStyled.js +161 -117
  61. package/createStyled/index.js +25 -2
  62. package/createStyled/package.json +2 -2
  63. package/createTheme/applyStyles.js +7 -1
  64. package/createTheme/createSpacing.js +8 -3
  65. package/createTheme/createTheme.d.ts +16 -10
  66. package/createTheme/createTheme.js +25 -18
  67. package/createTheme/index.js +27 -3
  68. package/createTheme/package.json +2 -2
  69. package/createTheme/shape.js +7 -1
  70. package/cssContainerQueries/cssContainerQueries.js +16 -7
  71. package/cssContainerQueries/index.js +31 -2
  72. package/cssContainerQueries/package.json +2 -2
  73. package/cssGrid/cssGrid.js +40 -31
  74. package/cssGrid/index.js +25 -2
  75. package/cssGrid/package.json +2 -2
  76. package/cssVars/createCssVarsProvider.d.ts +1 -1
  77. package/cssVars/createCssVarsProvider.js +39 -30
  78. package/cssVars/createCssVarsTheme.js +14 -7
  79. package/cssVars/createGetCssVar.js +7 -1
  80. package/cssVars/cssVarsParser.js +13 -3
  81. package/cssVars/getColorSchemeSelector.js +7 -1
  82. package/cssVars/index.js +41 -5
  83. package/cssVars/package.json +2 -2
  84. package/cssVars/prepareCssVars.js +16 -9
  85. package/cssVars/prepareTypographyVars.js +7 -1
  86. package/cssVars/useCurrentColorScheme.js +15 -7
  87. package/display/display.js +16 -9
  88. package/display/index.js +25 -2
  89. package/display/package.json +2 -2
  90. package/esm/Box/Box.js +30 -0
  91. package/esm/Box/boxClasses.js +3 -0
  92. package/esm/Box/index.js +3 -0
  93. package/{node → esm}/Container/Container.js +12 -17
  94. package/esm/Container/ContainerProps.js +1 -0
  95. package/esm/Container/containerClasses.js +7 -0
  96. package/{node → esm}/Container/createContainer.js +28 -36
  97. package/esm/Container/index.js +3 -0
  98. package/{node → esm}/DefaultPropsProvider/DefaultPropsProvider.js +11 -19
  99. package/esm/DefaultPropsProvider/index.js +1 -0
  100. package/esm/GlobalStyles/GlobalStyles.js +37 -0
  101. package/esm/GlobalStyles/index.js +2 -0
  102. package/esm/Grid/Grid.js +106 -0
  103. package/esm/Grid/GridProps.js +1 -0
  104. package/esm/Grid/createGrid.js +148 -0
  105. package/{node → esm}/Grid/gridClasses.js +6 -14
  106. package/esm/Grid/gridGenerator.js +193 -0
  107. package/esm/Grid/index.js +6 -0
  108. package/{node → esm}/Grid/traverseBreakpoints.js +3 -11
  109. package/{node → esm}/InitColorSchemeScript/InitColorSchemeScript.js +7 -16
  110. package/esm/InitColorSchemeScript/index.js +1 -0
  111. package/esm/RtlProvider/index.js +22 -0
  112. package/{node → esm}/Stack/Stack.js +11 -17
  113. package/esm/Stack/StackProps.js +1 -0
  114. package/{node → esm}/Stack/createStack.js +36 -46
  115. package/esm/Stack/index.js +5 -0
  116. package/esm/Stack/stackClasses.js +7 -0
  117. package/{node → esm}/ThemeProvider/ThemeProvider.js +20 -27
  118. package/esm/ThemeProvider/index.js +1 -0
  119. package/esm/borders/borders.js +49 -0
  120. package/esm/borders/index.js +2 -0
  121. package/{node → esm}/breakpoints/breakpoints.js +21 -34
  122. package/esm/breakpoints/index.js +2 -0
  123. package/{node → esm}/colorManipulator/colorManipulator.js +23 -51
  124. package/esm/colorManipulator/index.js +1 -0
  125. package/{node → esm}/compose/compose.js +3 -10
  126. package/esm/compose/index.js +1 -0
  127. package/esm/createBox/createBox.js +35 -0
  128. package/esm/createBox/index.js +1 -0
  129. package/{node → esm}/createBreakpoints/createBreakpoints.js +2 -9
  130. package/esm/createBreakpoints/index.js +3 -0
  131. package/esm/createStyled/createStyled.js +276 -0
  132. package/esm/createStyled/index.js +2 -0
  133. package/{node → esm}/createTheme/applyStyles.js +1 -7
  134. package/{node → esm}/createTheme/createSpacing.js +3 -8
  135. package/esm/createTheme/createTheme.js +49 -0
  136. package/esm/createTheme/index.js +3 -0
  137. package/esm/createTheme/shape.js +4 -0
  138. package/{node → esm}/cssContainerQueries/cssContainerQueries.js +6 -17
  139. package/esm/cssContainerQueries/index.js +2 -0
  140. package/esm/cssGrid/cssGrid.js +85 -0
  141. package/esm/cssGrid/index.js +2 -0
  142. package/{node → esm}/cssVars/createCssVarsProvider.js +30 -39
  143. package/esm/cssVars/createCssVarsTheme.js +21 -0
  144. package/{node → esm}/cssVars/createGetCssVar.js +1 -7
  145. package/{node → esm}/cssVars/cssVarsParser.js +3 -13
  146. package/{node → esm}/cssVars/getColorSchemeSelector.js +1 -7
  147. package/esm/cssVars/index.js +5 -0
  148. package/{node → esm}/cssVars/prepareCssVars.js +9 -16
  149. package/{node → esm}/cssVars/prepareTypographyVars.js +1 -7
  150. package/{node → esm}/cssVars/useCurrentColorScheme.js +7 -15
  151. package/esm/display/display.js +27 -0
  152. package/esm/display/index.js +2 -0
  153. package/esm/flexbox/flexbox.js +43 -0
  154. package/esm/flexbox/index.js +2 -0
  155. package/esm/getThemeValue/getThemeValue.js +51 -0
  156. package/esm/getThemeValue/index.js +2 -0
  157. package/esm/index.js +68 -0
  158. package/esm/memoTheme.js +28 -0
  159. package/esm/memoize/index.js +1 -0
  160. package/{node → esm}/memoize/memoize.js +1 -7
  161. package/esm/merge/index.js +1 -0
  162. package/esm/merge/merge.js +10 -0
  163. package/esm/palette/index.js +2 -0
  164. package/esm/palette/palette.js +26 -0
  165. package/esm/positions/index.js +2 -0
  166. package/esm/positions/positions.js +22 -0
  167. package/esm/preprocessStyles.js +25 -0
  168. package/esm/propsToClassKey/index.js +1 -0
  169. package/esm/propsToClassKey/propsToClassKey.js +25 -0
  170. package/esm/responsivePropType/index.js +1 -0
  171. package/esm/responsivePropType/responsivePropType.js +3 -0
  172. package/esm/shadows/index.js +1 -0
  173. package/esm/shadows/shadows.js +6 -0
  174. package/esm/sizing/index.js +2 -0
  175. package/esm/sizing/sizing.js +64 -0
  176. package/esm/spacing/index.js +2 -0
  177. package/{node → esm}/spacing/spacing.js +21 -36
  178. package/esm/style/index.js +2 -0
  179. package/{node → esm}/style/style.js +9 -18
  180. package/{node → esm}/styleFunctionSx/defaultSxConfig.js +65 -71
  181. package/{node → esm}/styleFunctionSx/extendSxProp.js +5 -12
  182. package/esm/styleFunctionSx/index.js +4 -0
  183. package/{node → esm}/styleFunctionSx/styleFunctionSx.js +19 -27
  184. package/esm/styled/index.js +1 -0
  185. package/esm/styled/styled.js +3 -0
  186. package/esm/typography/index.js +2 -0
  187. package/esm/typography/typography.js +37 -0
  188. package/esm/useMediaQuery/index.js +2 -0
  189. package/{node → esm}/useMediaQuery/useMediaQuery.js +8 -15
  190. package/esm/useTheme/index.js +2 -0
  191. package/esm/useTheme/useTheme.js +9 -0
  192. package/esm/useThemeProps/getThemeProps.js +12 -0
  193. package/esm/useThemeProps/index.js +2 -0
  194. package/esm/useThemeProps/useThemeProps.js +20 -0
  195. package/esm/useThemeWithoutDefault/index.js +1 -0
  196. package/esm/useThemeWithoutDefault/useThemeWithoutDefault.js +12 -0
  197. package/esm/version/index.js +6 -0
  198. package/flexbox/flexbox.js +24 -17
  199. package/flexbox/index.js +25 -2
  200. package/flexbox/package.json +2 -2
  201. package/getThemeValue/getThemeValue.js +40 -33
  202. package/getThemeValue/index.js +25 -2
  203. package/getThemeValue/package.json +2 -2
  204. package/index.d.ts +2 -0
  205. package/index.js +606 -63
  206. package/memoTheme.d.ts +12 -0
  207. package/memoTheme.js +34 -0
  208. package/memoize/index.js +13 -1
  209. package/memoize/memoize.js +7 -1
  210. package/memoize/package.json +2 -2
  211. package/merge/index.js +13 -1
  212. package/merge/merge.js +10 -3
  213. package/merge/package.json +2 -2
  214. package/modern/Grid/Grid.js +16 -11
  215. package/modern/Grid/createGrid.js +1 -1
  216. package/modern/Grid/gridGenerator.js +28 -51
  217. package/modern/colorManipulator/colorManipulator.js +3 -4
  218. package/modern/createStyled/createStyled.js +144 -109
  219. package/modern/cssContainerQueries/cssContainerQueries.js +1 -2
  220. package/modern/index.js +3 -2
  221. package/modern/memoTheme.js +28 -0
  222. package/modern/preprocessStyles.js +25 -0
  223. package/modern/version/index.js +2 -2
  224. package/package.json +8 -8
  225. package/palette/index.js +25 -2
  226. package/palette/package.json +2 -2
  227. package/palette/palette.js +16 -8
  228. package/positions/index.js +25 -2
  229. package/positions/package.json +2 -2
  230. package/positions/positions.js +16 -9
  231. package/preprocessStyles.d.ts +5 -0
  232. package/preprocessStyles.js +31 -0
  233. package/propsToClassKey/index.js +13 -1
  234. package/propsToClassKey/package.json +2 -2
  235. package/propsToClassKey/propsToClassKey.js +11 -4
  236. package/responsivePropType/index.js +13 -1
  237. package/responsivePropType/package.json +2 -2
  238. package/responsivePropType/responsivePropType.js +10 -3
  239. package/shadows/index.js +13 -1
  240. package/shadows/package.json +2 -2
  241. package/shadows/shadows.js +10 -3
  242. package/sizing/index.js +25 -2
  243. package/sizing/package.json +2 -2
  244. package/sizing/sizing.js +27 -17
  245. package/spacing/index.js +25 -2
  246. package/spacing/package.json +2 -2
  247. package/spacing/spacing.js +36 -21
  248. package/style/index.js +25 -2
  249. package/style/package.json +2 -2
  250. package/style/style.js +18 -9
  251. package/styleFunctionSx/defaultSxConfig.js +71 -65
  252. package/styleFunctionSx/extendSxProp.js +12 -5
  253. package/styleFunctionSx/index.js +34 -4
  254. package/styleFunctionSx/package.json +2 -2
  255. package/styleFunctionSx/styleFunctionSx.d.ts +1 -1
  256. package/styleFunctionSx/styleFunctionSx.js +27 -19
  257. package/styled/index.js +13 -1
  258. package/styled/package.json +2 -2
  259. package/styled/styled.js +10 -3
  260. package/typography/index.js +25 -2
  261. package/typography/package.json +2 -2
  262. package/typography/typography.js +20 -13
  263. package/useMediaQuery/index.js +25 -2
  264. package/useMediaQuery/package.json +2 -2
  265. package/useMediaQuery/useMediaQuery.js +15 -8
  266. package/useTheme/index.js +25 -2
  267. package/useTheme/package.json +2 -2
  268. package/useTheme/useTheme.js +11 -5
  269. package/useThemeProps/getThemeProps.js +10 -3
  270. package/useThemeProps/index.js +20 -2
  271. package/useThemeProps/package.json +2 -2
  272. package/useThemeProps/useThemeProps.js +11 -5
  273. package/useThemeWithoutDefault/index.js +13 -1
  274. package/useThemeWithoutDefault/package.json +2 -2
  275. package/useThemeWithoutDefault/useThemeWithoutDefault.js +10 -4
  276. package/version/index.js +12 -6
  277. package/version/package.json +2 -2
  278. package/node/Box/Box.js +0 -36
  279. package/node/Box/boxClasses.js +0 -10
  280. package/node/Box/index.js +0 -35
  281. package/node/Container/ContainerProps.js +0 -5
  282. package/node/Container/containerClasses.js +0 -15
  283. package/node/Container/index.js +0 -35
  284. package/node/DefaultPropsProvider/index.js +0 -19
  285. package/node/GlobalStyles/GlobalStyles.js +0 -44
  286. package/node/GlobalStyles/index.js +0 -25
  287. package/node/Grid/Grid.js +0 -107
  288. package/node/Grid/GridProps.js +0 -5
  289. package/node/Grid/createGrid.js +0 -156
  290. package/node/Grid/gridGenerator.js +0 -232
  291. package/node/Grid/index.js +0 -63
  292. package/node/InitColorSchemeScript/index.js +0 -13
  293. package/node/RtlProvider/index.js +0 -31
  294. package/node/Stack/StackProps.js +0 -5
  295. package/node/Stack/index.js +0 -55
  296. package/node/Stack/stackClasses.js +0 -15
  297. package/node/ThemeProvider/index.js +0 -13
  298. package/node/borders/borders.js +0 -59
  299. package/node/borders/index.js +0 -25
  300. package/node/breakpoints/index.js +0 -25
  301. package/node/colorManipulator/index.js +0 -16
  302. package/node/compose/index.js +0 -13
  303. package/node/createBox/createBox.js +0 -42
  304. package/node/createBox/index.js +0 -13
  305. package/node/createBreakpoints/index.js +0 -13
  306. package/node/createStyled/createStyled.js +0 -252
  307. package/node/createStyled/index.js +0 -25
  308. package/node/createTheme/createTheme.js +0 -56
  309. package/node/createTheme/index.js +0 -27
  310. package/node/createTheme/shape.js +0 -10
  311. package/node/cssContainerQueries/index.js +0 -31
  312. package/node/cssGrid/cssGrid.js +0 -94
  313. package/node/cssGrid/index.js +0 -25
  314. package/node/cssVars/createCssVarsTheme.js +0 -28
  315. package/node/cssVars/index.js +0 -41
  316. package/node/display/display.js +0 -34
  317. package/node/display/index.js +0 -25
  318. package/node/flexbox/flexbox.js +0 -50
  319. package/node/flexbox/index.js +0 -25
  320. package/node/getThemeValue/getThemeValue.js +0 -58
  321. package/node/getThemeValue/index.js +0 -25
  322. package/node/index.js +0 -609
  323. package/node/memoize/index.js +0 -13
  324. package/node/merge/index.js +0 -13
  325. package/node/merge/merge.js +0 -17
  326. package/node/palette/index.js +0 -25
  327. package/node/palette/palette.js +0 -34
  328. package/node/positions/index.js +0 -25
  329. package/node/positions/positions.js +0 -29
  330. package/node/propsToClassKey/index.js +0 -13
  331. package/node/propsToClassKey/propsToClassKey.js +0 -32
  332. package/node/responsivePropType/index.js +0 -13
  333. package/node/responsivePropType/responsivePropType.js +0 -10
  334. package/node/shadows/index.js +0 -13
  335. package/node/shadows/shadows.js +0 -13
  336. package/node/sizing/index.js +0 -25
  337. package/node/sizing/sizing.js +0 -74
  338. package/node/spacing/index.js +0 -25
  339. package/node/style/index.js +0 -25
  340. package/node/styleFunctionSx/index.js +0 -34
  341. package/node/styled/index.js +0 -13
  342. package/node/styled/styled.js +0 -10
  343. package/node/typography/index.js +0 -25
  344. package/node/typography/typography.js +0 -44
  345. package/node/useMediaQuery/index.js +0 -25
  346. package/node/useTheme/index.js +0 -25
  347. package/node/useTheme/useTheme.js +0 -15
  348. package/node/useThemeProps/getThemeProps.js +0 -19
  349. package/node/useThemeProps/index.js +0 -20
  350. package/node/useThemeProps/useThemeProps.js +0 -26
  351. package/node/useThemeWithoutDefault/index.js +0 -13
  352. package/node/useThemeWithoutDefault/useThemeWithoutDefault.js +0 -18
  353. package/node/version/index.js +0 -12
package/memoTheme.js ADDED
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = unstable_memoTheme;
8
+ var _preprocessStyles = _interopRequireDefault(require("./preprocessStyles"));
9
+ /* eslint-disable @typescript-eslint/naming-convention */
10
+
11
+ // We need to pass an argument as `{ theme }` for PigmentCSS, but we don't want to
12
+ // allocate more objects.
13
+ const arg = {
14
+ theme: undefined
15
+ };
16
+
17
+ /**
18
+ * Memoize style function on theme.
19
+ * Intended to be used in styled() calls that only need access to the theme.
20
+ */
21
+ function unstable_memoTheme(styleFn) {
22
+ let lastValue;
23
+ let lastTheme;
24
+ return function styleMemoized(props) {
25
+ let value = lastValue;
26
+ if (value === undefined || props.theme !== lastTheme) {
27
+ arg.theme = props.theme;
28
+ value = (0, _preprocessStyles.default)(styleFn(arg));
29
+ lastValue = value;
30
+ lastTheme = props.theme;
31
+ }
32
+ return value;
33
+ };
34
+ }
package/memoize/index.js CHANGED
@@ -1 +1,13 @@
1
- export { default } from "./memoize.js";
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ Object.defineProperty(exports, "default", {
8
+ enumerable: true,
9
+ get: function () {
10
+ return _memoize.default;
11
+ }
12
+ });
13
+ var _memoize = _interopRequireDefault(require("./memoize"));
@@ -1,4 +1,10 @@
1
- export default function memoize(fn) {
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = memoize;
7
+ function memoize(fn) {
2
8
  const cache = {};
3
9
  return arg => {
4
10
  if (cache[arg] === undefined) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "sideEffects": false,
3
- "module": "./index.js",
4
- "main": "../node/memoize/index.js",
3
+ "module": "../esm/memoize/index.js",
4
+ "main": "./index.js",
5
5
  "types": "./index.d.ts"
6
6
  }
package/merge/index.js CHANGED
@@ -1 +1,13 @@
1
- export { default } from "./merge.js";
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ Object.defineProperty(exports, "default", {
8
+ enumerable: true,
9
+ get: function () {
10
+ return _merge.default;
11
+ }
12
+ });
13
+ var _merge = _interopRequireDefault(require("./merge"));
package/merge/merge.js CHANGED
@@ -1,10 +1,17 @@
1
- import deepmerge from '@mui/utils/deepmerge';
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _deepmerge = _interopRequireDefault(require("@mui/utils/deepmerge"));
2
9
  function merge(acc, item) {
3
10
  if (!item) {
4
11
  return acc;
5
12
  }
6
- return deepmerge(acc, item, {
13
+ return (0, _deepmerge.default)(acc, item, {
7
14
  clone: false // No need to clone deep, it's way faster.
8
15
  });
9
16
  }
10
- export default merge;
17
+ var _default = exports.default = merge;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "sideEffects": false,
3
- "module": "./index.js",
4
- "main": "../node/merge/index.js",
3
+ "module": "../esm/merge/index.js",
4
+ "main": "./index.js",
5
5
  "types": "./index.d.ts"
6
6
  }
@@ -70,24 +70,29 @@ process.env.NODE_ENV !== "production" ? Grid.propTypes /* remove-proptypes */ =
70
70
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
71
71
  /**
72
72
  * @internal
73
- * The level of the grid starts from `0`
74
- * and increases when the grid nests inside another grid regardless of container or item.
73
+ * The level of the grid starts from `0` and increases when the grid nests
74
+ * inside another grid. Nesting is defined as a container Grid being a direct
75
+ * child of a container Grid.
75
76
  *
76
77
  * ```js
77
- * <Grid> // level 0
78
- * <Grid> // level 1
79
- * <Grid> // level 2
80
- * <Grid> // level 1
78
+ * <Grid container> // level 0
79
+ * <Grid container> // level 1
80
+ * <Grid container> // level 2
81
81
  * ```
82
82
  *
83
- * Only consecutive grid is considered nesting.
84
- * A grid container will start at `0` if there are non-Grid element above it.
83
+ * Only consecutive grid is considered nesting. A grid container will start at
84
+ * `0` if there are non-Grid container element above it.
85
85
  *
86
86
  * ```js
87
- * <Grid> // level 0
87
+ * <Grid container> // level 0
88
88
  * <div>
89
- * <Grid> // level 0
90
- * <Grid> // level 1
89
+ * <Grid container> // level 0
90
+ * ```
91
+ *
92
+ * ```js
93
+ * <Grid container> // level 0
94
+ * <Grid>
95
+ * <Grid container> // level 0
91
96
  * ```
92
97
  */
93
98
  unstable_level: PropTypes.number,
@@ -117,7 +117,7 @@ export default function createGrid(options = {}) {
117
117
  className: clsx(classes.root, className),
118
118
  ...other,
119
119
  children: React.Children.map(children, child => {
120
- if (/*#__PURE__*/React.isValidElement(child) && isMuiElement(child, ['Grid'])) {
120
+ if (/*#__PURE__*/React.isValidElement(child) && isMuiElement(child, ['Grid']) && container && child.props.container) {
121
121
  return /*#__PURE__*/React.cloneElement(child, {
122
122
  unstable_level: child.props?.unstable_level ?? level + 1
123
123
  });
@@ -1,37 +1,16 @@
1
1
  import { traverseBreakpoints } from "./traverseBreakpoints.js";
2
- function appendLevel(level) {
3
- if (!level) {
4
- return '';
5
- }
6
- return `Level${level}`;
7
- }
8
- function isNestedContainer(ownerState) {
9
- return ownerState.unstable_level > 0 && ownerState.container;
2
+ function getSelfSpacingVar(axis) {
3
+ return `--Grid-${axis}Spacing`;
10
4
  }
11
- function createGetSelfSpacing(ownerState) {
12
- return function getSelfSpacing(axis) {
13
- return `var(--Grid-${axis}Spacing${appendLevel(ownerState.unstable_level)})`;
14
- };
15
- }
16
- function createGetParentSpacing(ownerState) {
17
- return function getParentSpacing(axis) {
18
- if (ownerState.unstable_level === 0) {
19
- return `var(--Grid-${axis}Spacing)`;
20
- }
21
- return `var(--Grid-${axis}Spacing${appendLevel(ownerState.unstable_level - 1)})`;
22
- };
23
- }
24
- function getParentColumns(ownerState) {
25
- if (ownerState.unstable_level === 0) {
26
- return `var(--Grid-columns)`;
27
- }
28
- return `var(--Grid-columns${appendLevel(ownerState.unstable_level - 1)})`;
5
+ function getParentSpacingVar(axis) {
6
+ return `--Grid-parent-${axis}Spacing`;
29
7
  }
8
+ const selfColumnsVar = '--Grid-columns';
9
+ const parentColumnsVar = '--Grid-parent-columns';
30
10
  export const generateGridSizeStyles = ({
31
11
  theme,
32
12
  ownerState
33
13
  }) => {
34
- const getParentSpacing = createGetParentSpacing(ownerState);
35
14
  const styles = {};
36
15
  traverseBreakpoints(theme.breakpoints, ownerState.size, (appendStyle, value) => {
37
16
  let style = {};
@@ -55,7 +34,7 @@ export const generateGridSizeStyles = ({
55
34
  style = {
56
35
  flexGrow: 0,
57
36
  flexBasis: 'auto',
58
- width: `calc(100% * ${value} / ${getParentColumns(ownerState)} - (${getParentColumns(ownerState)} - ${value}) * (${getParentSpacing('column')} / ${getParentColumns(ownerState)}))`
37
+ width: `calc(100% * ${value} / var(${parentColumnsVar}) - (var(${parentColumnsVar}) - ${value}) * (var(${getParentSpacingVar('column')}) / var(${parentColumnsVar})))`
59
38
  };
60
39
  }
61
40
  appendStyle(styles, style);
@@ -66,7 +45,6 @@ export const generateGridOffsetStyles = ({
66
45
  theme,
67
46
  ownerState
68
47
  }) => {
69
- const getParentSpacing = createGetParentSpacing(ownerState);
70
48
  const styles = {};
71
49
  traverseBreakpoints(theme.breakpoints, ownerState.offset, (appendStyle, value) => {
72
50
  let style = {};
@@ -77,7 +55,7 @@ export const generateGridOffsetStyles = ({
77
55
  }
78
56
  if (typeof value === 'number') {
79
57
  style = {
80
- marginLeft: value === 0 ? '0px' : `calc(100% * ${value} / ${getParentColumns(ownerState)} + ${getParentSpacing('column')} * ${value} / ${getParentColumns(ownerState)})`
58
+ marginLeft: value === 0 ? '0px' : `calc(100% * ${value} / var(${parentColumnsVar}) + var(${getParentSpacingVar('column')}) * ${value} / var(${parentColumnsVar}))`
81
59
  };
82
60
  }
83
61
  appendStyle(styles, style);
@@ -91,14 +69,16 @@ export const generateGridColumnsStyles = ({
91
69
  if (!ownerState.container) {
92
70
  return {};
93
71
  }
94
- const styles = isNestedContainer(ownerState) ? {
95
- [`--Grid-columns${appendLevel(ownerState.unstable_level)}`]: getParentColumns(ownerState)
96
- } : {
97
- '--Grid-columns': 12
72
+ const styles = {
73
+ [selfColumnsVar]: 12
98
74
  };
99
75
  traverseBreakpoints(theme.breakpoints, ownerState.columns, (appendStyle, value) => {
76
+ const columns = value ?? 12;
100
77
  appendStyle(styles, {
101
- [`--Grid-columns${appendLevel(ownerState.unstable_level)}`]: value
78
+ [selfColumnsVar]: columns,
79
+ '> *': {
80
+ [parentColumnsVar]: columns
81
+ }
102
82
  });
103
83
  });
104
84
  return styles;
@@ -110,15 +90,14 @@ export const generateGridRowSpacingStyles = ({
110
90
  if (!ownerState.container) {
111
91
  return {};
112
92
  }
113
- const getParentSpacing = createGetParentSpacing(ownerState);
114
- const styles = isNestedContainer(ownerState) ? {
115
- // Set the default spacing as its parent spacing.
116
- // It will be overridden if spacing props are provided
117
- [`--Grid-rowSpacing${appendLevel(ownerState.unstable_level)}`]: getParentSpacing('row')
118
- } : {};
93
+ const styles = {};
119
94
  traverseBreakpoints(theme.breakpoints, ownerState.rowSpacing, (appendStyle, value) => {
95
+ const spacing = typeof value === 'string' ? value : theme.spacing?.(value);
120
96
  appendStyle(styles, {
121
- [`--Grid-rowSpacing${appendLevel(ownerState.unstable_level)}`]: typeof value === 'string' ? value : theme.spacing?.(value)
97
+ [getSelfSpacingVar('row')]: spacing,
98
+ '> *': {
99
+ [getParentSpacingVar('row')]: spacing
100
+ }
122
101
  });
123
102
  });
124
103
  return styles;
@@ -130,15 +109,14 @@ export const generateGridColumnSpacingStyles = ({
130
109
  if (!ownerState.container) {
131
110
  return {};
132
111
  }
133
- const getParentSpacing = createGetParentSpacing(ownerState);
134
- const styles = isNestedContainer(ownerState) ? {
135
- // Set the default spacing as its parent spacing.
136
- // It will be overridden if spacing props are provided
137
- [`--Grid-columnSpacing${appendLevel(ownerState.unstable_level)}`]: getParentSpacing('column')
138
- } : {};
112
+ const styles = {};
139
113
  traverseBreakpoints(theme.breakpoints, ownerState.columnSpacing, (appendStyle, value) => {
114
+ const spacing = typeof value === 'string' ? value : theme.spacing?.(value);
140
115
  appendStyle(styles, {
141
- [`--Grid-columnSpacing${appendLevel(ownerState.unstable_level)}`]: typeof value === 'string' ? value : theme.spacing?.(value)
116
+ [getSelfSpacingVar('column')]: spacing,
117
+ '> *': {
118
+ [getParentSpacingVar('column')]: spacing
119
+ }
142
120
  });
143
121
  });
144
122
  return styles;
@@ -161,7 +139,6 @@ export const generateGridDirectionStyles = ({
161
139
  export const generateGridStyles = ({
162
140
  ownerState
163
141
  }) => {
164
- const getSelfSpacing = createGetSelfSpacing(ownerState);
165
142
  return {
166
143
  minWidth: 0,
167
144
  boxSizing: 'border-box',
@@ -171,7 +148,7 @@ export const generateGridStyles = ({
171
148
  ...(ownerState.wrap && ownerState.wrap !== 'wrap' && {
172
149
  flexWrap: ownerState.wrap
173
150
  }),
174
- gap: `${getSelfSpacing('row')} ${getSelfSpacing('column')}`
151
+ gap: `var(${getSelfSpacingVar('row')}) var(${getSelfSpacingVar('column')})`
175
152
  })
176
153
  };
177
154
  };
@@ -1,6 +1,7 @@
1
1
  import _formatMuiErrorMessage from "@mui/utils/formatMuiErrorMessage";
2
2
  /* eslint-disable @typescript-eslint/naming-convention */
3
3
  import clamp from '@mui/utils/clamp';
4
+
4
5
  /**
5
6
  * Returns a number whose value is limited to the given range.
6
7
  * @param {number} value The value to be clamped
@@ -56,8 +57,7 @@ export function decomposeColor(color) {
56
57
  const marker = color.indexOf('(');
57
58
  const type = color.substring(0, marker);
58
59
  if (!['rgb', 'rgba', 'hsl', 'hsla', 'color'].includes(type)) {
59
- throw new Error(process.env.NODE_ENV !== "production" ? `MUI: Unsupported \`${color}\` color.
60
- The following formats are supported: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().` : _formatMuiErrorMessage(9, color));
60
+ throw new Error(process.env.NODE_ENV !== "production" ? `MUI: Unsupported \`${color}\` color.\n` + 'The following formats are supported: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().' : _formatMuiErrorMessage(9, color));
61
61
  }
62
62
  let values = color.substring(marker + 1, color.length - 1);
63
63
  let colorSpace;
@@ -68,8 +68,7 @@ The following formats are supported: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()
68
68
  values[3] = values[3].slice(1);
69
69
  }
70
70
  if (!['srgb', 'display-p3', 'a98-rgb', 'prophoto-rgb', 'rec-2020'].includes(colorSpace)) {
71
- throw new Error(process.env.NODE_ENV !== "production" ? `MUI: unsupported \`${colorSpace}\` color space.
72
- The following color spaces are supported: srgb, display-p3, a98-rgb, prophoto-rgb, rec-2020.` : _formatMuiErrorMessage(10, colorSpace));
71
+ throw new Error(process.env.NODE_ENV !== "production" ? `MUI: unsupported \`${colorSpace}\` color space.\n` + 'The following color spaces are supported: srgb, display-p3, a98-rgb, prophoto-rgb, rec-2020.' : _formatMuiErrorMessage(10, colorSpace));
73
72
  }
74
73
  } else {
75
74
  values = values.split(',');