@mui/system 5.11.14 → 5.11.16
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.
- package/Box/Box.spec.d.ts +1 -1
- package/CHANGELOG.md +118 -4
- package/Container/Container.d.ts +13 -13
- package/Container/ContainerProps.d.ts +40 -40
- package/Container/containerClasses.d.ts +22 -22
- package/Container/createContainer.d.ts +18 -18
- package/Stack/Stack.d.ts +13 -13
- package/Stack/Stack.js +11 -1
- package/Stack/StackProps.d.ts +53 -42
- package/Stack/createStack.d.ts +21 -21
- package/Stack/createStack.js +10 -3
- package/Stack/index.d.ts +5 -5
- package/Stack/stackClasses.d.ts +8 -8
- package/Unstable_Grid/Grid.d.ts +12 -12
- package/Unstable_Grid/GridProps.d.ts +173 -173
- package/Unstable_Grid/createGrid.d.ts +11 -11
- package/Unstable_Grid/gridClasses.d.ts +20 -20
- package/Unstable_Grid/gridGenerator.d.ts +38 -33
- package/Unstable_Grid/gridGenerator.js +24 -10
- package/Unstable_Grid/index.d.ts +5 -5
- package/createBox.spec.d.ts +1 -1
- package/createTheme/createSpacing.d.ts +10 -10
- package/cssVars/createCssVarsProvider.spec.d.ts +1 -1
- package/cssVars/createCssVarsTheme.d.ts +13 -13
- package/cssVars/createGetCssVar.d.ts +5 -5
- package/cssVars/cssVarsParser.d.ts +64 -64
- package/cssVars/getInitColorSchemeScript.d.ts +42 -42
- package/cssVars/index.d.ts +5 -5
- package/cssVars/prepareCssVars.d.ts +14 -14
- package/cssVars/useCurrentColorScheme.d.ts +53 -53
- package/esm/Stack/Stack.js +11 -1
- package/esm/Stack/createStack.js +10 -3
- package/esm/Unstable_Grid/gridGenerator.js +24 -10
- package/esm/styleFunctionSx/defaultSxConfig.js +3 -38
- package/esm/styleFunctionSx/styleFunctionSx.js +5 -0
- package/index.js +1 -1
- package/index.spec.d.ts +1 -1
- package/legacy/Stack/Stack.js +11 -1
- package/legacy/Stack/createStack.js +10 -2
- package/legacy/Unstable_Grid/gridGenerator.js +45 -35
- package/legacy/index.js +1 -1
- package/legacy/styleFunctionSx/defaultSxConfig.js +3 -38
- package/legacy/styleFunctionSx/styleFunctionSx.js +7 -4
- package/modern/Stack/Stack.js +11 -1
- package/modern/Stack/createStack.js +10 -3
- package/modern/Unstable_Grid/gridGenerator.js +24 -10
- package/modern/index.js +1 -1
- package/modern/styleFunctionSx/defaultSxConfig.js +3 -35
- package/modern/styleFunctionSx/styleFunctionSx.js +5 -0
- package/package.json +3 -3
- package/styleFunctionSx/defaultSxConfig.js +3 -38
- package/styleFunctionSx/styleFunctionSx.js +5 -0
- package/styleFunctionSx/styleFunctionSx.spec.d.ts +1 -1
package/legacy/Stack/Stack.js
CHANGED
|
@@ -44,6 +44,16 @@ process.env.NODE_ENV !== "production" ? Stack.propTypes /* remove-proptypes */ =
|
|
|
44
44
|
/**
|
|
45
45
|
* The system prop, which allows defining system overrides as well as additional CSS styles.
|
|
46
46
|
*/
|
|
47
|
-
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
|
|
47
|
+
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
48
|
+
/**
|
|
49
|
+
* If `true`, the CSS flexbox `gap` is used instead of applying `margin` to children.
|
|
50
|
+
*
|
|
51
|
+
* While CSS `gap` removes the [known limitations](https://mui.com/joy-ui/react-stack#limitations),
|
|
52
|
+
* it is not fully supported in some browsers. We recommend checking https://caniuse.com/?search=flex%20gap before using this flag.
|
|
53
|
+
*
|
|
54
|
+
* To enable this flag globally, follow the theme's default props configuration.
|
|
55
|
+
* @default false
|
|
56
|
+
*/
|
|
57
|
+
useFlexGap: PropTypes.bool
|
|
48
58
|
} : void 0;
|
|
49
59
|
export default Stack;
|
|
@@ -99,6 +99,11 @@ export var style = function style(_ref) {
|
|
|
99
99
|
});
|
|
100
100
|
}
|
|
101
101
|
var styleFromPropValue = function styleFromPropValue(propValue, breakpoint) {
|
|
102
|
+
if (ownerState.useFlexGap) {
|
|
103
|
+
return {
|
|
104
|
+
gap: getValue(transformer, propValue)
|
|
105
|
+
};
|
|
106
|
+
}
|
|
102
107
|
return {
|
|
103
108
|
'& > :not(style) + :not(style)': _defineProperty({
|
|
104
109
|
margin: 0
|
|
@@ -141,10 +146,13 @@ export default function createStack() {
|
|
|
141
146
|
divider = props.divider,
|
|
142
147
|
children = props.children,
|
|
143
148
|
className = props.className,
|
|
144
|
-
|
|
149
|
+
_props$useFlexGap = props.useFlexGap,
|
|
150
|
+
useFlexGap = _props$useFlexGap === void 0 ? false : _props$useFlexGap,
|
|
151
|
+
other = _objectWithoutProperties(props, ["component", "direction", "spacing", "divider", "children", "className", "useFlexGap"]);
|
|
145
152
|
var ownerState = {
|
|
146
153
|
direction: direction,
|
|
147
|
-
spacing: spacing
|
|
154
|
+
spacing: spacing,
|
|
155
|
+
useFlexGap: useFlexGap
|
|
148
156
|
};
|
|
149
157
|
var classes = useUtilityClasses();
|
|
150
158
|
return /*#__PURE__*/_jsx(StackRoot, _extends({
|
|
@@ -2,12 +2,18 @@ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
|
2
2
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
3
3
|
import _typeof from "@babel/runtime/helpers/esm/typeof";
|
|
4
4
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
5
|
+
function appendLevel(level) {
|
|
6
|
+
if (!level) {
|
|
7
|
+
return '';
|
|
8
|
+
}
|
|
9
|
+
return "Level".concat(level);
|
|
10
|
+
}
|
|
5
11
|
function isNestedContainer(ownerState) {
|
|
6
12
|
return ownerState.level > 0 && ownerState.container;
|
|
7
13
|
}
|
|
8
14
|
function createGetSelfSpacing(ownerState) {
|
|
9
15
|
return function getSelfSpacing(axis) {
|
|
10
|
-
return "var(--Grid-".concat(axis, "Spacing").concat(ownerState.level
|
|
16
|
+
return "var(--Grid-".concat(axis, "Spacing").concat(appendLevel(ownerState.level), ")");
|
|
11
17
|
};
|
|
12
18
|
}
|
|
13
19
|
function createGetParentSpacing(ownerState) {
|
|
@@ -15,9 +21,15 @@ function createGetParentSpacing(ownerState) {
|
|
|
15
21
|
if (ownerState.level === 0) {
|
|
16
22
|
return "var(--Grid-".concat(axis, "Spacing)");
|
|
17
23
|
}
|
|
18
|
-
return "var(--Grid-".concat(axis, "Spacing").concat(ownerState.level - 1
|
|
24
|
+
return "var(--Grid-".concat(axis, "Spacing").concat(appendLevel(ownerState.level - 1), ")");
|
|
19
25
|
};
|
|
20
26
|
}
|
|
27
|
+
function getParentColumns(ownerState) {
|
|
28
|
+
if (ownerState.level === 0) {
|
|
29
|
+
return "var(--Grid-columns)";
|
|
30
|
+
}
|
|
31
|
+
return "var(--Grid-columns".concat(appendLevel(ownerState.level - 1), ")");
|
|
32
|
+
}
|
|
21
33
|
export var filterBreakpointKeys = function filterBreakpointKeys(breakpointsKeys, responsiveKeys) {
|
|
22
34
|
return breakpointsKeys.filter(function (key) {
|
|
23
35
|
return responsiveKeys.includes(key);
|
|
@@ -91,7 +103,7 @@ export var generateGridSizeStyles = function generateGridSizeStyles(_ref) {
|
|
|
91
103
|
style = {
|
|
92
104
|
flexGrow: 0,
|
|
93
105
|
flexBasis: 'auto',
|
|
94
|
-
width: "calc(100% * ".concat(value, " /
|
|
106
|
+
width: "calc(100% * ".concat(value, " / ").concat(getParentColumns(ownerState)).concat(isNestedContainer(ownerState) ? " + ".concat(getSelfSpacing('column')) : '', ")")
|
|
95
107
|
};
|
|
96
108
|
}
|
|
97
109
|
appendStyle(styles, style);
|
|
@@ -111,7 +123,7 @@ export var generateGridOffsetStyles = function generateGridOffsetStyles(_ref2) {
|
|
|
111
123
|
}
|
|
112
124
|
if (typeof value === 'number') {
|
|
113
125
|
style = {
|
|
114
|
-
marginLeft: value === 0 ? '0px' : "calc(100% * ".concat(value, " /
|
|
126
|
+
marginLeft: value === 0 ? '0px' : "calc(100% * ".concat(value, " / ").concat(getParentColumns(ownerState), ")")
|
|
115
127
|
};
|
|
116
128
|
}
|
|
117
129
|
appendStyle(styles, style);
|
|
@@ -124,47 +136,45 @@ export var generateGridColumnsStyles = function generateGridColumnsStyles(_ref3)
|
|
|
124
136
|
if (!ownerState.container) {
|
|
125
137
|
return {};
|
|
126
138
|
}
|
|
127
|
-
var styles = {
|
|
139
|
+
var styles = isNestedContainer(ownerState) ? _defineProperty({}, "--Grid-columns".concat(appendLevel(ownerState.level)), getParentColumns(ownerState)) : {
|
|
128
140
|
'--Grid-columns': 12
|
|
129
141
|
};
|
|
130
142
|
traverseBreakpoints(theme.breakpoints, ownerState.columns, function (appendStyle, value) {
|
|
131
|
-
appendStyle(styles, {
|
|
132
|
-
'--Grid-columns': value
|
|
133
|
-
});
|
|
143
|
+
appendStyle(styles, _defineProperty({}, "--Grid-columns".concat(appendLevel(ownerState.level)), value));
|
|
134
144
|
});
|
|
135
145
|
return styles;
|
|
136
146
|
};
|
|
137
|
-
export var generateGridRowSpacingStyles = function generateGridRowSpacingStyles(
|
|
138
|
-
var theme =
|
|
139
|
-
ownerState =
|
|
147
|
+
export var generateGridRowSpacingStyles = function generateGridRowSpacingStyles(_ref5) {
|
|
148
|
+
var theme = _ref5.theme,
|
|
149
|
+
ownerState = _ref5.ownerState;
|
|
140
150
|
if (!ownerState.container) {
|
|
141
151
|
return {};
|
|
142
152
|
}
|
|
143
153
|
var getParentSpacing = createGetParentSpacing(ownerState);
|
|
144
|
-
var styles = isNestedContainer(ownerState) ? _defineProperty({}, "--Grid-rowSpacing".concat(ownerState.level
|
|
154
|
+
var styles = isNestedContainer(ownerState) ? _defineProperty({}, "--Grid-rowSpacing".concat(appendLevel(ownerState.level)), getParentSpacing('row')) : {};
|
|
145
155
|
traverseBreakpoints(theme.breakpoints, ownerState.rowSpacing, function (appendStyle, value) {
|
|
146
156
|
var _theme$spacing;
|
|
147
|
-
appendStyle(styles, _defineProperty({}, "--Grid-rowSpacing".concat(ownerState.level
|
|
157
|
+
appendStyle(styles, _defineProperty({}, "--Grid-rowSpacing".concat(appendLevel(ownerState.level)), typeof value === 'string' ? value : (_theme$spacing = theme.spacing) == null ? void 0 : _theme$spacing.call(theme, value)));
|
|
148
158
|
});
|
|
149
159
|
return styles;
|
|
150
160
|
};
|
|
151
|
-
export var generateGridColumnSpacingStyles = function generateGridColumnSpacingStyles(
|
|
152
|
-
var theme =
|
|
153
|
-
ownerState =
|
|
161
|
+
export var generateGridColumnSpacingStyles = function generateGridColumnSpacingStyles(_ref7) {
|
|
162
|
+
var theme = _ref7.theme,
|
|
163
|
+
ownerState = _ref7.ownerState;
|
|
154
164
|
if (!ownerState.container) {
|
|
155
165
|
return {};
|
|
156
166
|
}
|
|
157
167
|
var getParentSpacing = createGetParentSpacing(ownerState);
|
|
158
|
-
var styles = isNestedContainer(ownerState) ? _defineProperty({}, "--Grid-columnSpacing".concat(ownerState.level
|
|
168
|
+
var styles = isNestedContainer(ownerState) ? _defineProperty({}, "--Grid-columnSpacing".concat(appendLevel(ownerState.level)), getParentSpacing('column')) : {};
|
|
159
169
|
traverseBreakpoints(theme.breakpoints, ownerState.columnSpacing, function (appendStyle, value) {
|
|
160
170
|
var _theme$spacing2;
|
|
161
|
-
appendStyle(styles, _defineProperty({}, "--Grid-columnSpacing".concat(ownerState.level
|
|
171
|
+
appendStyle(styles, _defineProperty({}, "--Grid-columnSpacing".concat(appendLevel(ownerState.level)), typeof value === 'string' ? value : (_theme$spacing2 = theme.spacing) == null ? void 0 : _theme$spacing2.call(theme, value)));
|
|
162
172
|
});
|
|
163
173
|
return styles;
|
|
164
174
|
};
|
|
165
|
-
export var generateGridDirectionStyles = function generateGridDirectionStyles(
|
|
166
|
-
var theme =
|
|
167
|
-
ownerState =
|
|
175
|
+
export var generateGridDirectionStyles = function generateGridDirectionStyles(_ref9) {
|
|
176
|
+
var theme = _ref9.theme,
|
|
177
|
+
ownerState = _ref9.ownerState;
|
|
168
178
|
if (!ownerState.container) {
|
|
169
179
|
return {};
|
|
170
180
|
}
|
|
@@ -176,8 +186,8 @@ export var generateGridDirectionStyles = function generateGridDirectionStyles(_r
|
|
|
176
186
|
});
|
|
177
187
|
return styles;
|
|
178
188
|
};
|
|
179
|
-
export var generateGridStyles = function generateGridStyles(
|
|
180
|
-
var ownerState =
|
|
189
|
+
export var generateGridStyles = function generateGridStyles(_ref10) {
|
|
190
|
+
var ownerState = _ref10.ownerState;
|
|
181
191
|
var getSelfSpacing = createGetSelfSpacing(ownerState);
|
|
182
192
|
var getParentSpacing = createGetParentSpacing(ownerState);
|
|
183
193
|
return _extends({
|
|
@@ -200,10 +210,10 @@ export var generateGridStyles = function generateGridStyles(_ref9) {
|
|
|
200
210
|
};
|
|
201
211
|
export var generateSizeClassNames = function generateSizeClassNames(gridSize) {
|
|
202
212
|
var classNames = [];
|
|
203
|
-
Object.entries(gridSize).forEach(function (
|
|
204
|
-
var
|
|
205
|
-
key =
|
|
206
|
-
value =
|
|
213
|
+
Object.entries(gridSize).forEach(function (_ref11) {
|
|
214
|
+
var _ref12 = _slicedToArray(_ref11, 2),
|
|
215
|
+
key = _ref12[0],
|
|
216
|
+
value = _ref12[1];
|
|
207
217
|
if (value !== false && value !== undefined) {
|
|
208
218
|
classNames.push("grid-".concat(key, "-").concat(String(value)));
|
|
209
219
|
}
|
|
@@ -223,10 +233,10 @@ export var generateSpacingClassNames = function generateSpacingClassNames(spacin
|
|
|
223
233
|
}
|
|
224
234
|
if (_typeof(spacing) === 'object' && !Array.isArray(spacing)) {
|
|
225
235
|
var classNames = [];
|
|
226
|
-
Object.entries(spacing).forEach(function (
|
|
227
|
-
var
|
|
228
|
-
key =
|
|
229
|
-
value =
|
|
236
|
+
Object.entries(spacing).forEach(function (_ref13) {
|
|
237
|
+
var _ref14 = _slicedToArray(_ref13, 2),
|
|
238
|
+
key = _ref14[0],
|
|
239
|
+
value = _ref14[1];
|
|
230
240
|
if (isValidSpacing(value)) {
|
|
231
241
|
classNames.push("spacing-".concat(key, "-").concat(String(value)));
|
|
232
242
|
}
|
|
@@ -240,10 +250,10 @@ export var generateDirectionClasses = function generateDirectionClasses(directio
|
|
|
240
250
|
return [];
|
|
241
251
|
}
|
|
242
252
|
if (_typeof(direction) === 'object') {
|
|
243
|
-
return Object.entries(direction).map(function (
|
|
244
|
-
var
|
|
245
|
-
key =
|
|
246
|
-
value =
|
|
253
|
+
return Object.entries(direction).map(function (_ref15) {
|
|
254
|
+
var _ref16 = _slicedToArray(_ref15, 2),
|
|
255
|
+
key = _ref16[0],
|
|
256
|
+
value = _ref16[1];
|
|
247
257
|
return "direction-".concat(key, "-").concat(value);
|
|
248
258
|
});
|
|
249
259
|
}
|
package/legacy/index.js
CHANGED
|
@@ -1,40 +1,8 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
-
import _typeof from "@babel/runtime/helpers/esm/typeof";
|
|
3
|
-
import { unstable_capitalize as capitalize } from '@mui/utils';
|
|
4
1
|
import { padding, margin } from '../spacing';
|
|
5
|
-
import { handleBreakpoints } from '../breakpoints';
|
|
6
2
|
import { borderRadius, borderTransform } from '../borders';
|
|
7
3
|
import { gap, rowGap, columnGap } from '../cssGrid';
|
|
8
4
|
import { paletteTransform } from '../palette';
|
|
9
5
|
import { maxWidth, sizingTransform } from '../sizing';
|
|
10
|
-
var createFontStyleFunction = function createFontStyleFunction(prop) {
|
|
11
|
-
return function (props) {
|
|
12
|
-
if (props[prop] !== undefined && props[prop] !== null) {
|
|
13
|
-
var styleFromPropValue = function styleFromPropValue(propValue) {
|
|
14
|
-
var _props$theme$typograp;
|
|
15
|
-
// fetch the value directly defined in the theme, like fontWeightLight
|
|
16
|
-
var value = (_props$theme$typograp = props.theme.typography) == null ? void 0 : _props$theme$typograp[propValue];
|
|
17
|
-
if (_typeof(value) === 'object') {
|
|
18
|
-
// typography variant was pulled, but these props can't be an object
|
|
19
|
-
value = null;
|
|
20
|
-
}
|
|
21
|
-
if (!value) {
|
|
22
|
-
var _props$theme$typograp2, _props$prop;
|
|
23
|
-
// fetch fontWeightLight when the value is 'light'
|
|
24
|
-
value = (_props$theme$typograp2 = props.theme.typography) == null ? void 0 : _props$theme$typograp2["".concat(prop).concat(props[prop] === 'default' || props[prop] === prop ? '' : capitalize((_props$prop = props[prop]) == null ? void 0 : _props$prop.toString()))];
|
|
25
|
-
}
|
|
26
|
-
if (!value) {
|
|
27
|
-
var _props$theme$typograp3, _props$theme$typograp4, _props$theme$typograp5;
|
|
28
|
-
// fetch the value from the typography variant or default to the propValue
|
|
29
|
-
value = (_props$theme$typograp3 = (_props$theme$typograp4 = props.theme.typography) == null ? void 0 : (_props$theme$typograp5 = _props$theme$typograp4[propValue]) == null ? void 0 : _props$theme$typograp5[prop]) != null ? _props$theme$typograp3 : propValue;
|
|
30
|
-
}
|
|
31
|
-
return _defineProperty({}, prop, value);
|
|
32
|
-
};
|
|
33
|
-
return handleBreakpoints(props, props[prop], styleFromPropValue);
|
|
34
|
-
}
|
|
35
|
-
return null;
|
|
36
|
-
};
|
|
37
|
-
};
|
|
38
6
|
var defaultSxConfig = {
|
|
39
7
|
// borders
|
|
40
8
|
border: {
|
|
@@ -295,19 +263,16 @@ var defaultSxConfig = {
|
|
|
295
263
|
boxSizing: {},
|
|
296
264
|
// typography
|
|
297
265
|
fontFamily: {
|
|
298
|
-
themeKey: 'typography'
|
|
299
|
-
style: createFontStyleFunction('fontFamily')
|
|
266
|
+
themeKey: 'typography'
|
|
300
267
|
},
|
|
301
268
|
fontSize: {
|
|
302
|
-
themeKey: 'typography'
|
|
303
|
-
style: createFontStyleFunction('fontSize')
|
|
269
|
+
themeKey: 'typography'
|
|
304
270
|
},
|
|
305
271
|
fontStyle: {
|
|
306
272
|
themeKey: 'typography'
|
|
307
273
|
},
|
|
308
274
|
fontWeight: {
|
|
309
|
-
themeKey: 'typography'
|
|
310
|
-
style: createFontStyleFunction('fontWeight')
|
|
275
|
+
themeKey: 'typography'
|
|
311
276
|
},
|
|
312
277
|
letterSpacing: {},
|
|
313
278
|
textTransform: {},
|
|
@@ -38,6 +38,9 @@ export function unstable_createStyleFunctionSx() {
|
|
|
38
38
|
if (val == null) {
|
|
39
39
|
return null;
|
|
40
40
|
}
|
|
41
|
+
if (themeKey === 'typography' && val === 'inherit') {
|
|
42
|
+
return _defineProperty({}, prop, val);
|
|
43
|
+
}
|
|
41
44
|
var themeMapping = getPath(theme, themeKey) || {};
|
|
42
45
|
if (style) {
|
|
43
46
|
return style(props);
|
|
@@ -57,10 +60,10 @@ export function unstable_createStyleFunctionSx() {
|
|
|
57
60
|
}
|
|
58
61
|
function styleFunctionSx(props) {
|
|
59
62
|
var _theme$unstable_sxCon;
|
|
60
|
-
var
|
|
61
|
-
sx =
|
|
62
|
-
|
|
63
|
-
theme =
|
|
63
|
+
var _ref4 = props || {},
|
|
64
|
+
sx = _ref4.sx,
|
|
65
|
+
_ref4$theme = _ref4.theme,
|
|
66
|
+
theme = _ref4$theme === void 0 ? {} : _ref4$theme;
|
|
64
67
|
if (!sx) {
|
|
65
68
|
return null; // Emotion & styled-components will neglect null
|
|
66
69
|
}
|
package/modern/Stack/Stack.js
CHANGED
|
@@ -44,6 +44,16 @@ process.env.NODE_ENV !== "production" ? Stack.propTypes /* remove-proptypes */ =
|
|
|
44
44
|
/**
|
|
45
45
|
* The system prop, which allows defining system overrides as well as additional CSS styles.
|
|
46
46
|
*/
|
|
47
|
-
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
|
|
47
|
+
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
48
|
+
/**
|
|
49
|
+
* If `true`, the CSS flexbox `gap` is used instead of applying `margin` to children.
|
|
50
|
+
*
|
|
51
|
+
* While CSS `gap` removes the [known limitations](https://mui.com/joy-ui/react-stack#limitations),
|
|
52
|
+
* it is not fully supported in some browsers. We recommend checking https://caniuse.com/?search=flex%20gap before using this flag.
|
|
53
|
+
*
|
|
54
|
+
* To enable this flag globally, follow the theme's default props configuration.
|
|
55
|
+
* @default false
|
|
56
|
+
*/
|
|
57
|
+
useFlexGap: PropTypes.bool
|
|
48
58
|
} : void 0;
|
|
49
59
|
export default Stack;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
-
const _excluded = ["component", "direction", "spacing", "divider", "children", "className"];
|
|
3
|
+
const _excluded = ["component", "direction", "spacing", "divider", "children", "className", "useFlexGap"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import clsx from 'clsx';
|
|
@@ -95,6 +95,11 @@ export const style = ({
|
|
|
95
95
|
});
|
|
96
96
|
}
|
|
97
97
|
const styleFromPropValue = (propValue, breakpoint) => {
|
|
98
|
+
if (ownerState.useFlexGap) {
|
|
99
|
+
return {
|
|
100
|
+
gap: getValue(transformer, propValue)
|
|
101
|
+
};
|
|
102
|
+
}
|
|
98
103
|
return {
|
|
99
104
|
'& > :not(style) + :not(style)': {
|
|
100
105
|
margin: 0,
|
|
@@ -132,12 +137,14 @@ export default function createStack(options = {}) {
|
|
|
132
137
|
spacing = 0,
|
|
133
138
|
divider,
|
|
134
139
|
children,
|
|
135
|
-
className
|
|
140
|
+
className,
|
|
141
|
+
useFlexGap = false
|
|
136
142
|
} = props,
|
|
137
143
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
138
144
|
const ownerState = {
|
|
139
145
|
direction,
|
|
140
|
-
spacing
|
|
146
|
+
spacing,
|
|
147
|
+
useFlexGap
|
|
141
148
|
};
|
|
142
149
|
const classes = useUtilityClasses();
|
|
143
150
|
return /*#__PURE__*/_jsx(StackRoot, _extends({
|
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
function appendLevel(level) {
|
|
3
|
+
if (!level) {
|
|
4
|
+
return '';
|
|
5
|
+
}
|
|
6
|
+
return `Level${level}`;
|
|
7
|
+
}
|
|
2
8
|
function isNestedContainer(ownerState) {
|
|
3
9
|
return ownerState.level > 0 && ownerState.container;
|
|
4
10
|
}
|
|
5
11
|
function createGetSelfSpacing(ownerState) {
|
|
6
12
|
return function getSelfSpacing(axis) {
|
|
7
|
-
return `var(--Grid-${axis}Spacing${ownerState.level
|
|
13
|
+
return `var(--Grid-${axis}Spacing${appendLevel(ownerState.level)})`;
|
|
8
14
|
};
|
|
9
15
|
}
|
|
10
16
|
function createGetParentSpacing(ownerState) {
|
|
@@ -12,9 +18,15 @@ function createGetParentSpacing(ownerState) {
|
|
|
12
18
|
if (ownerState.level === 0) {
|
|
13
19
|
return `var(--Grid-${axis}Spacing)`;
|
|
14
20
|
}
|
|
15
|
-
return `var(--Grid-${axis}Spacing${ownerState.level - 1
|
|
21
|
+
return `var(--Grid-${axis}Spacing${appendLevel(ownerState.level - 1)})`;
|
|
16
22
|
};
|
|
17
23
|
}
|
|
24
|
+
function getParentColumns(ownerState) {
|
|
25
|
+
if (ownerState.level === 0) {
|
|
26
|
+
return `var(--Grid-columns)`;
|
|
27
|
+
}
|
|
28
|
+
return `var(--Grid-columns${appendLevel(ownerState.level - 1)})`;
|
|
29
|
+
}
|
|
18
30
|
export const filterBreakpointKeys = (breakpointsKeys, responsiveKeys) => breakpointsKeys.filter(key => responsiveKeys.includes(key));
|
|
19
31
|
export const traverseBreakpoints = (breakpoints, responsive, iterator) => {
|
|
20
32
|
const smallestBreakpoint = breakpoints.keys[0]; // the keys is sorted from smallest to largest by `createBreakpoints`.
|
|
@@ -85,7 +97,7 @@ export const generateGridSizeStyles = ({
|
|
|
85
97
|
style = {
|
|
86
98
|
flexGrow: 0,
|
|
87
99
|
flexBasis: 'auto',
|
|
88
|
-
width: `calc(100% * ${value} /
|
|
100
|
+
width: `calc(100% * ${value} / ${getParentColumns(ownerState)}${isNestedContainer(ownerState) ? ` + ${getSelfSpacing('column')}` : ''})`
|
|
89
101
|
};
|
|
90
102
|
}
|
|
91
103
|
appendStyle(styles, style);
|
|
@@ -106,7 +118,7 @@ export const generateGridOffsetStyles = ({
|
|
|
106
118
|
}
|
|
107
119
|
if (typeof value === 'number') {
|
|
108
120
|
style = {
|
|
109
|
-
marginLeft: value === 0 ? '0px' : `calc(100% * ${value} /
|
|
121
|
+
marginLeft: value === 0 ? '0px' : `calc(100% * ${value} / ${getParentColumns(ownerState)})`
|
|
110
122
|
};
|
|
111
123
|
}
|
|
112
124
|
appendStyle(styles, style);
|
|
@@ -120,12 +132,14 @@ export const generateGridColumnsStyles = ({
|
|
|
120
132
|
if (!ownerState.container) {
|
|
121
133
|
return {};
|
|
122
134
|
}
|
|
123
|
-
const styles = {
|
|
135
|
+
const styles = isNestedContainer(ownerState) ? {
|
|
136
|
+
[`--Grid-columns${appendLevel(ownerState.level)}`]: getParentColumns(ownerState)
|
|
137
|
+
} : {
|
|
124
138
|
'--Grid-columns': 12
|
|
125
139
|
};
|
|
126
140
|
traverseBreakpoints(theme.breakpoints, ownerState.columns, (appendStyle, value) => {
|
|
127
141
|
appendStyle(styles, {
|
|
128
|
-
|
|
142
|
+
[`--Grid-columns${appendLevel(ownerState.level)}`]: value
|
|
129
143
|
});
|
|
130
144
|
});
|
|
131
145
|
return styles;
|
|
@@ -141,11 +155,11 @@ export const generateGridRowSpacingStyles = ({
|
|
|
141
155
|
const styles = isNestedContainer(ownerState) ? {
|
|
142
156
|
// Set the default spacing as its parent spacing.
|
|
143
157
|
// It will be overridden if spacing props are provided
|
|
144
|
-
[`--Grid-rowSpacing${ownerState.level
|
|
158
|
+
[`--Grid-rowSpacing${appendLevel(ownerState.level)}`]: getParentSpacing('row')
|
|
145
159
|
} : {};
|
|
146
160
|
traverseBreakpoints(theme.breakpoints, ownerState.rowSpacing, (appendStyle, value) => {
|
|
147
161
|
appendStyle(styles, {
|
|
148
|
-
[`--Grid-rowSpacing${ownerState.level
|
|
162
|
+
[`--Grid-rowSpacing${appendLevel(ownerState.level)}`]: typeof value === 'string' ? value : theme.spacing?.(value)
|
|
149
163
|
});
|
|
150
164
|
});
|
|
151
165
|
return styles;
|
|
@@ -161,11 +175,11 @@ export const generateGridColumnSpacingStyles = ({
|
|
|
161
175
|
const styles = isNestedContainer(ownerState) ? {
|
|
162
176
|
// Set the default spacing as its parent spacing.
|
|
163
177
|
// It will be overridden if spacing props are provided
|
|
164
|
-
[`--Grid-columnSpacing${ownerState.level
|
|
178
|
+
[`--Grid-columnSpacing${appendLevel(ownerState.level)}`]: getParentSpacing('column')
|
|
165
179
|
} : {};
|
|
166
180
|
traverseBreakpoints(theme.breakpoints, ownerState.columnSpacing, (appendStyle, value) => {
|
|
167
181
|
appendStyle(styles, {
|
|
168
|
-
[`--Grid-columnSpacing${ownerState.level
|
|
182
|
+
[`--Grid-columnSpacing${appendLevel(ownerState.level)}`]: typeof value === 'string' ? value : theme.spacing?.(value)
|
|
169
183
|
});
|
|
170
184
|
});
|
|
171
185
|
return styles;
|
package/modern/index.js
CHANGED
|
@@ -1,37 +1,8 @@
|
|
|
1
|
-
import { unstable_capitalize as capitalize } from '@mui/utils';
|
|
2
1
|
import { padding, margin } from '../spacing';
|
|
3
|
-
import { handleBreakpoints } from '../breakpoints';
|
|
4
2
|
import { borderRadius, borderTransform } from '../borders';
|
|
5
3
|
import { gap, rowGap, columnGap } from '../cssGrid';
|
|
6
4
|
import { paletteTransform } from '../palette';
|
|
7
5
|
import { maxWidth, sizingTransform } from '../sizing';
|
|
8
|
-
const createFontStyleFunction = prop => {
|
|
9
|
-
return props => {
|
|
10
|
-
if (props[prop] !== undefined && props[prop] !== null) {
|
|
11
|
-
const styleFromPropValue = propValue => {
|
|
12
|
-
// fetch the value directly defined in the theme, like fontWeightLight
|
|
13
|
-
let value = props.theme.typography?.[propValue];
|
|
14
|
-
if (typeof value === 'object') {
|
|
15
|
-
// typography variant was pulled, but these props can't be an object
|
|
16
|
-
value = null;
|
|
17
|
-
}
|
|
18
|
-
if (!value) {
|
|
19
|
-
// fetch fontWeightLight when the value is 'light'
|
|
20
|
-
value = props.theme.typography?.[`${prop}${props[prop] === 'default' || props[prop] === prop ? '' : capitalize(props[prop]?.toString())}`];
|
|
21
|
-
}
|
|
22
|
-
if (!value) {
|
|
23
|
-
// fetch the value from the typography variant or default to the propValue
|
|
24
|
-
value = props.theme.typography?.[propValue]?.[prop] ?? propValue;
|
|
25
|
-
}
|
|
26
|
-
return {
|
|
27
|
-
[prop]: value
|
|
28
|
-
};
|
|
29
|
-
};
|
|
30
|
-
return handleBreakpoints(props, props[prop], styleFromPropValue);
|
|
31
|
-
}
|
|
32
|
-
return null;
|
|
33
|
-
};
|
|
34
|
-
};
|
|
35
6
|
const defaultSxConfig = {
|
|
36
7
|
// borders
|
|
37
8
|
border: {
|
|
@@ -290,19 +261,16 @@ const defaultSxConfig = {
|
|
|
290
261
|
boxSizing: {},
|
|
291
262
|
// typography
|
|
292
263
|
fontFamily: {
|
|
293
|
-
themeKey: 'typography'
|
|
294
|
-
style: createFontStyleFunction('fontFamily')
|
|
264
|
+
themeKey: 'typography'
|
|
295
265
|
},
|
|
296
266
|
fontSize: {
|
|
297
|
-
themeKey: 'typography'
|
|
298
|
-
style: createFontStyleFunction('fontSize')
|
|
267
|
+
themeKey: 'typography'
|
|
299
268
|
},
|
|
300
269
|
fontStyle: {
|
|
301
270
|
themeKey: 'typography'
|
|
302
271
|
},
|
|
303
272
|
fontWeight: {
|
|
304
|
-
themeKey: 'typography'
|
|
305
|
-
style: createFontStyleFunction('fontWeight')
|
|
273
|
+
themeKey: 'typography'
|
|
306
274
|
},
|
|
307
275
|
letterSpacing: {},
|
|
308
276
|
textTransform: {},
|
|
@@ -34,6 +34,11 @@ export function unstable_createStyleFunctionSx() {
|
|
|
34
34
|
if (val == null) {
|
|
35
35
|
return null;
|
|
36
36
|
}
|
|
37
|
+
if (themeKey === 'typography' && val === 'inherit') {
|
|
38
|
+
return {
|
|
39
|
+
[prop]: val
|
|
40
|
+
};
|
|
41
|
+
}
|
|
37
42
|
const themeMapping = getPath(theme, themeKey) || {};
|
|
38
43
|
if (style) {
|
|
39
44
|
return style(props);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/system",
|
|
3
|
-
"version": "5.11.
|
|
3
|
+
"version": "5.11.16",
|
|
4
4
|
"private": false,
|
|
5
5
|
"author": "MUI Team",
|
|
6
6
|
"description": "CSS utilities for rapidly laying out custom designs.",
|
|
@@ -45,11 +45,11 @@
|
|
|
45
45
|
"dependencies": {
|
|
46
46
|
"@babel/runtime": "^7.21.0",
|
|
47
47
|
"@mui/private-theming": "^5.11.13",
|
|
48
|
-
"@mui/styled-engine": "^5.11.
|
|
48
|
+
"@mui/styled-engine": "^5.11.16",
|
|
49
49
|
"@mui/types": "^7.2.3",
|
|
50
50
|
"@mui/utils": "^5.11.13",
|
|
51
51
|
"clsx": "^1.2.1",
|
|
52
|
-
"csstype": "^3.1.
|
|
52
|
+
"csstype": "^3.1.2",
|
|
53
53
|
"prop-types": "^15.8.1"
|
|
54
54
|
},
|
|
55
55
|
"sideEffects": false,
|
|
@@ -4,43 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
var _utils = require("@mui/utils");
|
|
8
7
|
var _spacing = require("../spacing");
|
|
9
|
-
var _breakpoints = require("../breakpoints");
|
|
10
8
|
var _borders = require("../borders");
|
|
11
9
|
var _cssGrid = require("../cssGrid");
|
|
12
10
|
var _palette = require("../palette");
|
|
13
11
|
var _sizing = require("../sizing");
|
|
14
|
-
const createFontStyleFunction = prop => {
|
|
15
|
-
return props => {
|
|
16
|
-
if (props[prop] !== undefined && props[prop] !== null) {
|
|
17
|
-
const styleFromPropValue = propValue => {
|
|
18
|
-
var _props$theme$typograp;
|
|
19
|
-
// fetch the value directly defined in the theme, like fontWeightLight
|
|
20
|
-
let value = (_props$theme$typograp = props.theme.typography) == null ? void 0 : _props$theme$typograp[propValue];
|
|
21
|
-
if (typeof value === 'object') {
|
|
22
|
-
// typography variant was pulled, but these props can't be an object
|
|
23
|
-
value = null;
|
|
24
|
-
}
|
|
25
|
-
if (!value) {
|
|
26
|
-
var _props$theme$typograp2, _props$prop;
|
|
27
|
-
// fetch fontWeightLight when the value is 'light'
|
|
28
|
-
value = (_props$theme$typograp2 = props.theme.typography) == null ? void 0 : _props$theme$typograp2[`${prop}${props[prop] === 'default' || props[prop] === prop ? '' : (0, _utils.unstable_capitalize)((_props$prop = props[prop]) == null ? void 0 : _props$prop.toString())}`];
|
|
29
|
-
}
|
|
30
|
-
if (!value) {
|
|
31
|
-
var _props$theme$typograp3, _props$theme$typograp4, _props$theme$typograp5;
|
|
32
|
-
// fetch the value from the typography variant or default to the propValue
|
|
33
|
-
value = (_props$theme$typograp3 = (_props$theme$typograp4 = props.theme.typography) == null ? void 0 : (_props$theme$typograp5 = _props$theme$typograp4[propValue]) == null ? void 0 : _props$theme$typograp5[prop]) != null ? _props$theme$typograp3 : propValue;
|
|
34
|
-
}
|
|
35
|
-
return {
|
|
36
|
-
[prop]: value
|
|
37
|
-
};
|
|
38
|
-
};
|
|
39
|
-
return (0, _breakpoints.handleBreakpoints)(props, props[prop], styleFromPropValue);
|
|
40
|
-
}
|
|
41
|
-
return null;
|
|
42
|
-
};
|
|
43
|
-
};
|
|
44
12
|
const defaultSxConfig = {
|
|
45
13
|
// borders
|
|
46
14
|
border: {
|
|
@@ -299,19 +267,16 @@ const defaultSxConfig = {
|
|
|
299
267
|
boxSizing: {},
|
|
300
268
|
// typography
|
|
301
269
|
fontFamily: {
|
|
302
|
-
themeKey: 'typography'
|
|
303
|
-
style: createFontStyleFunction('fontFamily')
|
|
270
|
+
themeKey: 'typography'
|
|
304
271
|
},
|
|
305
272
|
fontSize: {
|
|
306
|
-
themeKey: 'typography'
|
|
307
|
-
style: createFontStyleFunction('fontSize')
|
|
273
|
+
themeKey: 'typography'
|
|
308
274
|
},
|
|
309
275
|
fontStyle: {
|
|
310
276
|
themeKey: 'typography'
|
|
311
277
|
},
|
|
312
278
|
fontWeight: {
|
|
313
|
-
themeKey: 'typography'
|
|
314
|
-
style: createFontStyleFunction('fontWeight')
|
|
279
|
+
themeKey: 'typography'
|
|
315
280
|
},
|
|
316
281
|
letterSpacing: {},
|
|
317
282
|
textTransform: {},
|
|
@@ -42,6 +42,11 @@ function unstable_createStyleFunctionSx() {
|
|
|
42
42
|
if (val == null) {
|
|
43
43
|
return null;
|
|
44
44
|
}
|
|
45
|
+
if (themeKey === 'typography' && val === 'inherit') {
|
|
46
|
+
return {
|
|
47
|
+
[prop]: val
|
|
48
|
+
};
|
|
49
|
+
}
|
|
45
50
|
const themeMapping = (0, _style.getPath)(theme, themeKey) || {};
|
|
46
51
|
if (style) {
|
|
47
52
|
return style(props);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|