@mui/system 6.1.1 → 6.1.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 (355) 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 +136 -0
  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 +7 -1
  77. package/cssVars/createCssVarsProvider.js +46 -31
  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 +19 -11
  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 +37 -40
  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 +11 -19
  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/cssVars/createCssVarsProvider.js +8 -2
  221. package/modern/cssVars/useCurrentColorScheme.js +4 -4
  222. package/modern/index.js +3 -2
  223. package/modern/memoTheme.js +28 -0
  224. package/modern/preprocessStyles.js +25 -0
  225. package/modern/version/index.js +2 -2
  226. package/package.json +7 -7
  227. package/palette/index.js +25 -2
  228. package/palette/package.json +2 -2
  229. package/palette/palette.js +16 -8
  230. package/positions/index.js +25 -2
  231. package/positions/package.json +2 -2
  232. package/positions/positions.js +16 -9
  233. package/preprocessStyles.d.ts +5 -0
  234. package/preprocessStyles.js +31 -0
  235. package/propsToClassKey/index.js +13 -1
  236. package/propsToClassKey/package.json +2 -2
  237. package/propsToClassKey/propsToClassKey.js +11 -4
  238. package/responsivePropType/index.js +13 -1
  239. package/responsivePropType/package.json +2 -2
  240. package/responsivePropType/responsivePropType.js +10 -3
  241. package/shadows/index.js +13 -1
  242. package/shadows/package.json +2 -2
  243. package/shadows/shadows.js +10 -3
  244. package/sizing/index.js +25 -2
  245. package/sizing/package.json +2 -2
  246. package/sizing/sizing.js +27 -17
  247. package/spacing/index.js +25 -2
  248. package/spacing/package.json +2 -2
  249. package/spacing/spacing.js +36 -21
  250. package/style/index.js +25 -2
  251. package/style/package.json +2 -2
  252. package/style/style.js +18 -9
  253. package/styleFunctionSx/defaultSxConfig.js +71 -65
  254. package/styleFunctionSx/extendSxProp.js +12 -5
  255. package/styleFunctionSx/index.js +34 -4
  256. package/styleFunctionSx/package.json +2 -2
  257. package/styleFunctionSx/styleFunctionSx.d.ts +1 -1
  258. package/styleFunctionSx/styleFunctionSx.js +27 -19
  259. package/styled/index.js +13 -1
  260. package/styled/package.json +2 -2
  261. package/styled/styled.js +10 -3
  262. package/typography/index.js +25 -2
  263. package/typography/package.json +2 -2
  264. package/typography/typography.js +20 -13
  265. package/useMediaQuery/index.js +25 -2
  266. package/useMediaQuery/package.json +2 -2
  267. package/useMediaQuery/useMediaQuery.js +15 -8
  268. package/useTheme/index.js +25 -2
  269. package/useTheme/package.json +2 -2
  270. package/useTheme/useTheme.js +11 -5
  271. package/useThemeProps/getThemeProps.js +10 -3
  272. package/useThemeProps/index.js +20 -2
  273. package/useThemeProps/package.json +2 -2
  274. package/useThemeProps/useThemeProps.js +11 -5
  275. package/useThemeWithoutDefault/index.js +13 -1
  276. package/useThemeWithoutDefault/package.json +2 -2
  277. package/useThemeWithoutDefault/useThemeWithoutDefault.js +10 -4
  278. package/version/index.js +12 -6
  279. package/version/package.json +2 -2
  280. package/node/Box/Box.js +0 -36
  281. package/node/Box/boxClasses.js +0 -10
  282. package/node/Box/index.js +0 -35
  283. package/node/Container/ContainerProps.js +0 -5
  284. package/node/Container/containerClasses.js +0 -15
  285. package/node/Container/index.js +0 -35
  286. package/node/DefaultPropsProvider/index.js +0 -19
  287. package/node/GlobalStyles/GlobalStyles.js +0 -44
  288. package/node/GlobalStyles/index.js +0 -25
  289. package/node/Grid/Grid.js +0 -107
  290. package/node/Grid/GridProps.js +0 -5
  291. package/node/Grid/createGrid.js +0 -156
  292. package/node/Grid/gridGenerator.js +0 -232
  293. package/node/Grid/index.js +0 -63
  294. package/node/InitColorSchemeScript/index.js +0 -13
  295. package/node/RtlProvider/index.js +0 -31
  296. package/node/Stack/StackProps.js +0 -5
  297. package/node/Stack/index.js +0 -55
  298. package/node/Stack/stackClasses.js +0 -15
  299. package/node/ThemeProvider/index.js +0 -13
  300. package/node/borders/borders.js +0 -59
  301. package/node/borders/index.js +0 -25
  302. package/node/breakpoints/index.js +0 -25
  303. package/node/colorManipulator/index.js +0 -16
  304. package/node/compose/index.js +0 -13
  305. package/node/createBox/createBox.js +0 -42
  306. package/node/createBox/index.js +0 -13
  307. package/node/createBreakpoints/index.js +0 -13
  308. package/node/createStyled/createStyled.js +0 -252
  309. package/node/createStyled/index.js +0 -25
  310. package/node/createTheme/createTheme.js +0 -56
  311. package/node/createTheme/index.js +0 -27
  312. package/node/createTheme/shape.js +0 -10
  313. package/node/cssContainerQueries/index.js +0 -31
  314. package/node/cssGrid/cssGrid.js +0 -94
  315. package/node/cssGrid/index.js +0 -25
  316. package/node/cssVars/createCssVarsTheme.js +0 -28
  317. package/node/cssVars/index.js +0 -41
  318. package/node/display/display.js +0 -34
  319. package/node/display/index.js +0 -25
  320. package/node/flexbox/flexbox.js +0 -50
  321. package/node/flexbox/index.js +0 -25
  322. package/node/getThemeValue/getThemeValue.js +0 -58
  323. package/node/getThemeValue/index.js +0 -25
  324. package/node/index.js +0 -609
  325. package/node/memoize/index.js +0 -13
  326. package/node/merge/index.js +0 -13
  327. package/node/merge/merge.js +0 -17
  328. package/node/palette/index.js +0 -25
  329. package/node/palette/palette.js +0 -34
  330. package/node/positions/index.js +0 -25
  331. package/node/positions/positions.js +0 -29
  332. package/node/propsToClassKey/index.js +0 -13
  333. package/node/propsToClassKey/propsToClassKey.js +0 -32
  334. package/node/responsivePropType/index.js +0 -13
  335. package/node/responsivePropType/responsivePropType.js +0 -10
  336. package/node/shadows/index.js +0 -13
  337. package/node/shadows/shadows.js +0 -13
  338. package/node/sizing/index.js +0 -25
  339. package/node/sizing/sizing.js +0 -74
  340. package/node/spacing/index.js +0 -25
  341. package/node/style/index.js +0 -25
  342. package/node/styleFunctionSx/index.js +0 -34
  343. package/node/styled/index.js +0 -13
  344. package/node/styled/styled.js +0 -10
  345. package/node/typography/index.js +0 -25
  346. package/node/typography/typography.js +0 -44
  347. package/node/useMediaQuery/index.js +0 -25
  348. package/node/useTheme/index.js +0 -25
  349. package/node/useTheme/useTheme.js +0 -15
  350. package/node/useThemeProps/getThemeProps.js +0 -19
  351. package/node/useThemeProps/index.js +0 -20
  352. package/node/useThemeProps/useThemeProps.js +0 -26
  353. package/node/useThemeWithoutDefault/index.js +0 -13
  354. package/node/useThemeWithoutDefault/useThemeWithoutDefault.js +0 -18
  355. package/node/version/index.js +0 -12
@@ -1,104 +1,119 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = createStyled;
9
+ exports.shouldForwardProp = shouldForwardProp;
10
+ exports.systemDefaultTheme = void 0;
11
+ var _styledEngine = _interopRequireWildcard(require("@mui/styled-engine"));
12
+ var _deepmerge = require("@mui/utils/deepmerge");
13
+ var _capitalize = _interopRequireDefault(require("@mui/utils/capitalize"));
14
+ var _getDisplayName = _interopRequireDefault(require("@mui/utils/getDisplayName"));
15
+ var _createTheme = _interopRequireDefault(require("../createTheme"));
16
+ var _styleFunctionSx = _interopRequireDefault(require("../styleFunctionSx"));
17
+ var _preprocessStyles = _interopRequireDefault(require("../preprocessStyles"));
1
18
  /* eslint-disable no-underscore-dangle */
2
- import styledEngineStyled, { internal_processStyles as processStyles } from '@mui/styled-engine';
3
- import { isPlainObject } from '@mui/utils/deepmerge';
4
- import capitalize from '@mui/utils/capitalize';
5
- import getDisplayName from '@mui/utils/getDisplayName';
6
- import createTheme from "../createTheme/index.js";
7
- import styleFunctionSx from "../styleFunctionSx/index.js";
8
- export const systemDefaultTheme = createTheme();
19
+ /* eslint-disable no-labels */
20
+ /* eslint-disable no-lone-blocks */
21
+
22
+ const systemDefaultTheme = exports.systemDefaultTheme = (0, _createTheme.default)();
9
23
 
10
24
  // Update /system/styled/#api in case if this changes
11
- export function shouldForwardProp(prop) {
25
+ function shouldForwardProp(prop) {
12
26
  return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';
13
27
  }
14
- function resolveTheme(themeId, theme, defaultTheme) {
15
- return isObjectEmpty(theme) ? defaultTheme : theme[themeId] || theme;
16
- }
17
- const PROCESSED_PROPS = Symbol('mui.processed_props');
18
- function attachTheme(props, themeId, defaultTheme) {
19
- if (PROCESSED_PROPS in props) {
20
- return props[PROCESSED_PROPS];
21
- }
22
- const processedProps = {
23
- ...props,
24
- theme: resolveTheme(themeId, props.theme, defaultTheme)
25
- };
26
- props[PROCESSED_PROPS] = processedProps;
27
- processedProps[PROCESSED_PROPS] = processedProps;
28
- return processedProps;
29
- }
30
28
  function defaultOverridesResolver(slot) {
31
29
  if (!slot) {
32
30
  return null;
33
31
  }
34
32
  return (_props, styles) => styles[slot];
35
33
  }
36
- function processStyle(style, props) {
34
+ function attachTheme(props, themeId, defaultTheme) {
35
+ props.theme = isObjectEmpty(props.theme) ? defaultTheme : props.theme[themeId] || props.theme;
36
+ }
37
+ function processStyle(props, style) {
38
+ /*
39
+ * Style types:
40
+ * - null/undefined
41
+ * - string
42
+ * - CSS style object: { [cssKey]: [cssValue], variants }
43
+ * - Processed style object: { style, variants, isProcessed: true }
44
+ * - Array of any of the above
45
+ */
46
+
37
47
  const resolvedStyle = typeof style === 'function' ? style(props) : style;
38
48
  if (Array.isArray(resolvedStyle)) {
39
- return resolvedStyle.flatMap(subStyle => processStyle(subStyle, props));
49
+ return resolvedStyle.flatMap(subStyle => processStyle(props, subStyle));
40
50
  }
41
51
  if (Array.isArray(resolvedStyle?.variants)) {
42
- const {
43
- variants,
44
- ...otherStyles
45
- } = resolvedStyle;
46
- let result = otherStyles;
47
- let mergedState; // We might not need it, initalized lazily
52
+ let rootStyle;
53
+ if (resolvedStyle.isProcessed) {
54
+ rootStyle = resolvedStyle.style;
55
+ } else {
56
+ const {
57
+ variants,
58
+ ...otherStyles
59
+ } = resolvedStyle;
60
+ rootStyle = otherStyles;
61
+ }
62
+ return processStyleVariants(props, resolvedStyle.variants, [rootStyle]);
63
+ }
64
+ if (resolvedStyle?.isProcessed) {
65
+ return resolvedStyle.style;
66
+ }
67
+ return resolvedStyle;
68
+ }
69
+ function processStyleVariants(props, variants, results = []) {
70
+ let mergedState; // We might not need it, initialized lazily
48
71
 
49
- /* eslint-disable no-labels */
50
- variantLoop: for (let i = 0; i < variants.length; i += 1) {
51
- const variant = variants[i];
52
- if (typeof variant.props === 'function') {
53
- mergedState ??= {
54
- ...props,
55
- ...props.ownerState,
56
- ownerState: props.ownerState
57
- };
58
- if (!variant.props(mergedState)) {
59
- continue;
60
- }
61
- } else {
62
- for (const key in variant.props) {
63
- if (props[key] !== variant.props[key] && props.ownerState?.[key] !== variant.props[key]) {
64
- continue variantLoop;
65
- }
66
- }
67
- }
68
- if (!Array.isArray(result)) {
69
- result = [result];
72
+ variantLoop: for (let i = 0; i < variants.length; i += 1) {
73
+ const variant = variants[i];
74
+ if (typeof variant.props === 'function') {
75
+ mergedState ?? (mergedState = {
76
+ ...props,
77
+ ...props.ownerState,
78
+ ownerState: props.ownerState
79
+ });
80
+ if (!variant.props(mergedState)) {
81
+ continue;
70
82
  }
71
- if (typeof variant.style === 'function') {
72
- mergedState ??= {
73
- ...props,
74
- ...props.ownerState,
75
- ownerState: props.ownerState
76
- };
77
- result.push(variant.style(mergedState));
78
- } else {
79
- result.push(variant.style);
83
+ } else {
84
+ for (const key in variant.props) {
85
+ if (props[key] !== variant.props[key] && props.ownerState?.[key] !== variant.props[key]) {
86
+ continue variantLoop;
87
+ }
80
88
  }
81
89
  }
82
- /* eslint-enable no-labels */
83
-
84
- return result;
90
+ if (typeof variant.style === 'function') {
91
+ mergedState ?? (mergedState = {
92
+ ...props,
93
+ ...props.ownerState,
94
+ ownerState: props.ownerState
95
+ });
96
+ results.push(variant.style(mergedState));
97
+ } else {
98
+ results.push(variant.style);
99
+ }
85
100
  }
86
- return resolvedStyle;
101
+ return results;
87
102
  }
88
- export default function createStyled(input = {}) {
103
+ function createStyled(input = {}) {
89
104
  const {
90
105
  themeId,
91
106
  defaultTheme = systemDefaultTheme,
92
107
  rootShouldForwardProp = shouldForwardProp,
93
108
  slotShouldForwardProp = shouldForwardProp
94
109
  } = input;
95
- const systemSx = props => {
96
- return styleFunctionSx(attachTheme(props, themeId, defaultTheme));
97
- };
98
- systemSx.__mui_systemSx = true;
110
+ function styleAttachTheme(props) {
111
+ attachTheme(props, themeId, defaultTheme);
112
+ }
99
113
  const styled = (tag, inputOptions = {}) => {
100
- // Filter out the `sx` style function from the previous styled component to prevent unnecessary styles generated by the composite components.
101
- processStyles(tag, styles => styles.filter(style => !style?.__mui_systemSx));
114
+ // If `tag` is already a styled component, filter out the `sx` style function
115
+ // to prevent unnecessary styles generated by the composite components.
116
+ (0, _styledEngine.internal_mutateStyles)(tag, styles => styles.filter(style => style !== _styleFunctionSx.default));
102
117
  const {
103
118
  name: componentName,
104
119
  slot: componentSlot,
@@ -116,14 +131,6 @@ export default function createStyled(input = {}) {
116
131
  // For more details: https://github.com/mui/material-ui/pull/37908
117
132
  componentSlot && componentSlot !== 'Root' && componentSlot !== 'root' || false;
118
133
  const skipSx = inputSkipSx || false;
119
- let label;
120
- if (process.env.NODE_ENV !== 'production') {
121
- if (componentName) {
122
- // TODO v6: remove `lowercaseFirstLetter()` in the next major release
123
- // For more details: https://github.com/mui/material-ui/pull/37908
124
- label = `${componentName}-${lowercaseFirstLetter(componentSlot || 'Root')}`;
125
- }
126
- }
127
134
  let shouldForwardPropOption = shouldForwardProp;
128
135
 
129
136
  // TODO v6: remove `Root` in the next major release
@@ -137,77 +144,97 @@ export default function createStyled(input = {}) {
137
144
  // for string (html) tag, preserve the behavior in emotion & styled-components.
138
145
  shouldForwardPropOption = undefined;
139
146
  }
140
- const defaultStyledResolver = styledEngineStyled(tag, {
147
+ const defaultStyledResolver = (0, _styledEngine.default)(tag, {
141
148
  shouldForwardProp: shouldForwardPropOption,
142
- label,
149
+ label: generateStyledLabel(componentName, componentSlot),
143
150
  ...options
144
151
  });
145
- const transformStyleArg = style => {
152
+ const transformStyle = style => {
146
153
  // On the server Emotion doesn't use React.forwardRef for creating components, so the created
147
154
  // component stays as a function. This condition makes sure that we do not interpolate functions
148
155
  // which are basically components used as a selectors.
149
- if (typeof style === 'function' && style.__emotion_real !== style || isPlainObject(style)) {
150
- return props => processStyle(style, attachTheme(props, themeId, defaultTheme));
156
+ if (typeof style === 'function' && style.__emotion_real !== style) {
157
+ return function styleFunctionProcessor(props) {
158
+ return processStyle(props, style);
159
+ };
160
+ }
161
+ if ((0, _deepmerge.isPlainObject)(style)) {
162
+ const serialized = (0, _preprocessStyles.default)(style);
163
+ if (!serialized.variants) {
164
+ return serialized.style;
165
+ }
166
+ return function styleObjectProcessor(props) {
167
+ return processStyle(props, serialized);
168
+ };
151
169
  }
152
170
  return style;
153
171
  };
154
- const muiStyledResolver = (style, ...expressions) => {
155
- let transformedStyle = transformStyleArg(style);
156
- const expressionsWithDefaultTheme = expressions ? expressions.map(transformStyleArg) : [];
172
+ const muiStyledResolver = (...expressionsInput) => {
173
+ const expressionsHead = [];
174
+ const expressionsBody = expressionsInput.map(transformStyle);
175
+ const expressionsTail = [];
176
+
177
+ // Preprocess `props` to set the scoped theme value.
178
+ // This must run before any other expression.
179
+ expressionsHead.push(styleAttachTheme);
157
180
  if (componentName && overridesResolver) {
158
- expressionsWithDefaultTheme.push(props => {
159
- const theme = resolveTheme(themeId, props.theme, defaultTheme);
160
- if (!theme.components || !theme.components[componentName] || !theme.components[componentName].styleOverrides) {
181
+ expressionsTail.push(function styleThemeOverrides(props) {
182
+ const theme = props.theme;
183
+ const styleOverrides = theme.components?.[componentName]?.styleOverrides;
184
+ if (!styleOverrides) {
161
185
  return null;
162
186
  }
163
- const styleOverrides = theme.components[componentName].styleOverrides;
164
187
  const resolvedStyleOverrides = {};
165
- const propsWithTheme = attachTheme(props, themeId, defaultTheme);
166
188
 
167
189
  // TODO: v7 remove iteration and use `resolveStyleArg(styleOverrides[slot])` directly
168
190
  // eslint-disable-next-line guard-for-in
169
191
  for (const slotKey in styleOverrides) {
170
- resolvedStyleOverrides[slotKey] = processStyle(styleOverrides[slotKey], propsWithTheme);
192
+ resolvedStyleOverrides[slotKey] = processStyle(props, styleOverrides[slotKey]);
171
193
  }
172
194
  return overridesResolver(props, resolvedStyleOverrides);
173
195
  });
174
196
  }
175
197
  if (componentName && !skipVariantsResolver) {
176
- expressionsWithDefaultTheme.push(props => {
177
- const theme = resolveTheme(themeId, props.theme, defaultTheme);
198
+ expressionsTail.push(function styleThemeVariants(props) {
199
+ const theme = props.theme;
178
200
  const themeVariants = theme?.components?.[componentName]?.variants;
179
201
  if (!themeVariants) {
180
202
  return null;
181
203
  }
182
- return processStyle({
183
- variants: themeVariants
184
- }, attachTheme(props, themeId, defaultTheme));
204
+ return processStyleVariants(props, themeVariants);
185
205
  });
186
206
  }
187
207
  if (!skipSx) {
188
- expressionsWithDefaultTheme.push(systemSx);
208
+ expressionsTail.push(_styleFunctionSx.default);
189
209
  }
190
- const numOfCustomFnsApplied = expressionsWithDefaultTheme.length - expressions.length;
191
- if (Array.isArray(style) && numOfCustomFnsApplied > 0) {
192
- const placeholders = new Array(numOfCustomFnsApplied).fill('');
193
- // If the type is array, than we need to add placeholders in the template for the overrides, variants and the sx styles.
194
- transformedStyle = [...style, ...placeholders];
195
- transformedStyle.raw = [...style.raw, ...placeholders];
196
- }
197
- const Component = defaultStyledResolver(transformedStyle, ...expressionsWithDefaultTheme);
198
- if (process.env.NODE_ENV !== 'production') {
199
- let displayName;
200
- if (componentName) {
201
- displayName = `${componentName}${capitalize(componentSlot || '')}`;
202
- }
203
- if (displayName === undefined) {
204
- displayName = `Styled(${getDisplayName(tag)})`;
210
+
211
+ // This function can be called as a tagged template, so the first argument would contain
212
+ // CSS `string[]` values.
213
+ if (Array.isArray(expressionsBody[0])) {
214
+ const inputStrings = expressionsBody.shift();
215
+
216
+ // We need to add placeholders in the tagged template for the custom functions we have
217
+ // possibly added (attachTheme, overrides, variants, and sx).
218
+ const placeholdersHead = new Array(expressionsHead.length).fill('');
219
+ const placeholdersTail = new Array(expressionsTail.length).fill('');
220
+ let outputStrings;
221
+ // prettier-ignore
222
+ {
223
+ outputStrings = [...placeholdersHead, ...inputStrings, ...placeholdersTail];
224
+ outputStrings.raw = [...placeholdersHead, ...inputStrings.raw, ...placeholdersTail];
205
225
  }
206
- Component.displayName = displayName;
226
+
227
+ // The only case where we put something before `attachTheme`
228
+ expressionsHead.unshift(outputStrings);
207
229
  }
230
+ const expressions = [...expressionsHead, ...expressionsBody, ...expressionsTail];
231
+ const Component = defaultStyledResolver(...expressions);
208
232
  if (tag.muiName) {
209
233
  Component.muiName = tag.muiName;
210
234
  }
235
+ if (process.env.NODE_ENV !== 'production') {
236
+ Component.displayName = generateDisplayName(componentName, componentSlot, tag);
237
+ }
211
238
  return Component;
212
239
  };
213
240
  if (defaultStyledResolver.withConfig) {
@@ -217,6 +244,23 @@ export default function createStyled(input = {}) {
217
244
  };
218
245
  return styled;
219
246
  }
247
+ function generateDisplayName(componentName, componentSlot, tag) {
248
+ if (componentName) {
249
+ return `${componentName}${(0, _capitalize.default)(componentSlot || '')}`;
250
+ }
251
+ return `Styled(${(0, _getDisplayName.default)(tag)})`;
252
+ }
253
+ function generateStyledLabel(componentName, componentSlot) {
254
+ let label;
255
+ if (process.env.NODE_ENV !== 'production') {
256
+ if (componentName) {
257
+ // TODO v6: remove `lowercaseFirstLetter()` in the next major release
258
+ // For more details: https://github.com/mui/material-ui/pull/37908
259
+ label = `${componentName}-${lowercaseFirstLetter(componentSlot || 'Root')}`;
260
+ }
261
+ }
262
+ return label;
263
+ }
220
264
  function isObjectEmpty(object) {
221
265
  // eslint-disable-next-line
222
266
  for (const _ in object) {
@@ -1,2 +1,25 @@
1
- export { default } from "./createStyled.js";
2
- export * from "./createStyled.js";
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ var _exportNames = {};
8
+ Object.defineProperty(exports, "default", {
9
+ enumerable: true,
10
+ get: function () {
11
+ return _createStyled.default;
12
+ }
13
+ });
14
+ var _createStyled = _interopRequireWildcard(require("./createStyled"));
15
+ Object.keys(_createStyled).forEach(function (key) {
16
+ if (key === "default" || key === "__esModule") return;
17
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
18
+ if (key in exports && exports[key] === _createStyled[key]) return;
19
+ Object.defineProperty(exports, key, {
20
+ enumerable: true,
21
+ get: function () {
22
+ return _createStyled[key];
23
+ }
24
+ });
25
+ });
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "sideEffects": false,
3
- "module": "./index.js",
4
- "main": "../node/createStyled/index.js",
3
+ "module": "../esm/createStyled/index.js",
4
+ "main": "./index.js",
5
5
  "types": "./index.d.ts"
6
6
  }
@@ -1,3 +1,9 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = applyStyles;
1
7
  /**
2
8
  * A universal utility to style components with multiple color modes. Always use it from the theme object.
3
9
  * It works with:
@@ -56,7 +62,7 @@
56
62
  * })
57
63
  *```
58
64
  */
59
- export default function applyStyles(key, styles) {
65
+ function applyStyles(key, styles) {
60
66
  // @ts-expect-error this is 'any' type
61
67
  const theme = this;
62
68
  if (theme.vars) {
@@ -1,13 +1,18 @@
1
- import { createUnarySpacing } from "../spacing/index.js";
1
+ "use strict";
2
2
 
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = createSpacing;
7
+ var _spacing = require("../spacing");
3
8
  // The different signatures imply different meaning for their arguments that can't be expressed structurally.
4
9
  // We express the difference with variable names.
5
10
 
6
- export default function createSpacing(spacingInput = 8,
11
+ function createSpacing(spacingInput = 8,
7
12
  // Material Design layouts are visually balanced. Most measurements align to an 8dp grid, which aligns both spacing and the overall layout.
8
13
  // Smaller components, such as icons, can align to a 4dp grid.
9
14
  // https://m2.material.io/design/layout/understanding-layout.html
10
- transform = createUnarySpacing({
15
+ transform = (0, _spacing.createUnarySpacing)({
11
16
  spacing: spacingInput
12
17
  })) {
13
18
  // Already transformed.
@@ -14,18 +14,24 @@ export {
14
14
 
15
15
  export type Direction = 'ltr' | 'rtl';
16
16
 
17
+ export interface Typography {}
18
+ export interface Mixins {}
19
+ export interface Shadows {}
20
+ export interface Transitions {}
21
+ export interface ZIndex {}
22
+
17
23
  export interface ThemeOptions {
18
24
  shape?: ShapeOptions;
19
25
  breakpoints?: BreakpointsOptions;
20
26
  direction?: Direction;
21
- mixins?: unknown;
27
+ mixins?: Mixins;
22
28
  palette?: Record<string, any>;
23
- shadows?: unknown;
29
+ shadows?: Shadows;
24
30
  spacing?: SpacingOptions;
25
- transitions?: unknown;
31
+ transitions?: Transitions;
26
32
  components?: Record<string, any>;
27
- typography?: unknown;
28
- zIndex?: Record<string, number>;
33
+ typography?: Typography;
34
+ zIndex?: ZIndex;
29
35
  unstable_sxConfig?: SxConfig;
30
36
  }
31
37
 
@@ -34,13 +40,13 @@ export interface Theme extends CssContainerQueries {
34
40
  breakpoints: Breakpoints;
35
41
  direction: Direction;
36
42
  palette: Record<string, any> & { mode: 'light' | 'dark' };
37
- shadows?: unknown;
43
+ shadows?: Shadows;
38
44
  spacing: Spacing;
39
- transitions?: unknown;
45
+ transitions?: Transitions;
40
46
  components?: Record<string, any>;
41
- mixins?: unknown;
42
- typography?: unknown;
43
- zIndex?: unknown;
47
+ mixins?: Mixins;
48
+ typography?: Typography;
49
+ zIndex?: ZIndex;
44
50
  applyStyles: ApplyStyles<'light' | 'dark'>;
45
51
  unstable_sxConfig: SxConfig;
46
52
  unstable_sx: (props: SxProps<Theme>) => CSSObject;
@@ -1,11 +1,18 @@
1
- import deepmerge from '@mui/utils/deepmerge';
2
- import createBreakpoints from "../createBreakpoints/createBreakpoints.js";
3
- import cssContainerQueries from "../cssContainerQueries/index.js";
4
- import shape from "./shape.js";
5
- import createSpacing from "./createSpacing.js";
6
- import styleFunctionSx from "../styleFunctionSx/styleFunctionSx.js";
7
- import defaultSxConfig from "../styleFunctionSx/defaultSxConfig.js";
8
- import applyStyles from "./applyStyles.js";
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"));
9
+ var _createBreakpoints = _interopRequireDefault(require("../createBreakpoints/createBreakpoints"));
10
+ var _cssContainerQueries = _interopRequireDefault(require("../cssContainerQueries"));
11
+ var _shape = _interopRequireDefault(require("./shape"));
12
+ var _createSpacing = _interopRequireDefault(require("./createSpacing"));
13
+ var _styleFunctionSx = _interopRequireDefault(require("../styleFunctionSx/styleFunctionSx"));
14
+ var _defaultSxConfig = _interopRequireDefault(require("../styleFunctionSx/defaultSxConfig"));
15
+ var _applyStyles = _interopRequireDefault(require("./applyStyles"));
9
16
  function createTheme(options = {}, ...args) {
10
17
  const {
11
18
  breakpoints: breakpointsInput = {},
@@ -14,9 +21,9 @@ function createTheme(options = {}, ...args) {
14
21
  shape: shapeInput = {},
15
22
  ...other
16
23
  } = options;
17
- const breakpoints = createBreakpoints(breakpointsInput);
18
- const spacing = createSpacing(spacingInput);
19
- let muiTheme = deepmerge({
24
+ const breakpoints = (0, _createBreakpoints.default)(breakpointsInput);
25
+ const spacing = (0, _createSpacing.default)(spacingInput);
26
+ let muiTheme = (0, _deepmerge.default)({
20
27
  breakpoints,
21
28
  direction: 'ltr',
22
29
  components: {},
@@ -27,23 +34,23 @@ function createTheme(options = {}, ...args) {
27
34
  },
28
35
  spacing,
29
36
  shape: {
30
- ...shape,
37
+ ..._shape.default,
31
38
  ...shapeInput
32
39
  }
33
40
  }, other);
34
- muiTheme = cssContainerQueries(muiTheme);
35
- muiTheme.applyStyles = applyStyles;
36
- muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);
41
+ muiTheme = (0, _cssContainerQueries.default)(muiTheme);
42
+ muiTheme.applyStyles = _applyStyles.default;
43
+ muiTheme = args.reduce((acc, argument) => (0, _deepmerge.default)(acc, argument), muiTheme);
37
44
  muiTheme.unstable_sxConfig = {
38
- ...defaultSxConfig,
45
+ ..._defaultSxConfig.default,
39
46
  ...other?.unstable_sxConfig
40
47
  };
41
48
  muiTheme.unstable_sx = function sx(props) {
42
- return styleFunctionSx({
49
+ return (0, _styleFunctionSx.default)({
43
50
  sx: props,
44
51
  theme: this
45
52
  });
46
53
  };
47
54
  return muiTheme;
48
55
  }
49
- export default createTheme;
56
+ var _default = exports.default = createTheme;
@@ -1,3 +1,27 @@
1
- export { default } from "./createTheme.js";
2
- export { default as private_createBreakpoints } from "../createBreakpoints/createBreakpoints.js";
3
- export { default as unstable_applyStyles } from "./applyStyles.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 _createTheme.default;
11
+ }
12
+ });
13
+ Object.defineProperty(exports, "private_createBreakpoints", {
14
+ enumerable: true,
15
+ get: function () {
16
+ return _createBreakpoints.default;
17
+ }
18
+ });
19
+ Object.defineProperty(exports, "unstable_applyStyles", {
20
+ enumerable: true,
21
+ get: function () {
22
+ return _applyStyles.default;
23
+ }
24
+ });
25
+ var _createTheme = _interopRequireDefault(require("./createTheme"));
26
+ var _createBreakpoints = _interopRequireDefault(require("../createBreakpoints/createBreakpoints"));
27
+ var _applyStyles = _interopRequireDefault(require("./applyStyles"));
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "sideEffects": false,
3
- "module": "./index.js",
4
- "main": "../node/createTheme/index.js",
3
+ "module": "../esm/createTheme/index.js",
4
+ "main": "./index.js",
5
5
  "types": "./index.d.ts"
6
6
  }
@@ -1,4 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
1
7
  const shape = {
2
8
  borderRadius: 4
3
9
  };
4
- export default shape;
10
+ var _default = exports.default = shape;