@mui/system 5.8.5 → 5.9.0

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 (75) hide show
  1. package/CHANGELOG.md +190 -0
  2. package/Unstable_Grid/Grid.d.ts +12 -0
  3. package/Unstable_Grid/Grid.js +190 -0
  4. package/Unstable_Grid/GridProps.d.ts +158 -0
  5. package/Unstable_Grid/GridProps.js +5 -0
  6. package/Unstable_Grid/createGrid.d.ts +11 -0
  7. package/Unstable_Grid/createGrid.js +174 -0
  8. package/Unstable_Grid/gridClasses.d.ts +20 -0
  9. package/Unstable_Grid/gridClasses.js +25 -0
  10. package/Unstable_Grid/gridGenerator.d.ts +26 -0
  11. package/Unstable_Grid/gridGenerator.js +269 -0
  12. package/Unstable_Grid/index.d.ts +5 -0
  13. package/Unstable_Grid/index.js +65 -0
  14. package/Unstable_Grid/package.json +6 -0
  15. package/{grid.js → cssGrid.js} +0 -0
  16. package/cssVars/createCssVarsProvider.d.ts +13 -18
  17. package/cssVars/createCssVarsProvider.js +13 -17
  18. package/cssVars/createGetCssVar.d.ts +1 -1
  19. package/cssVars/createGetCssVar.js +2 -2
  20. package/cssVars/cssVarsParser.d.ts +4 -9
  21. package/cssVars/cssVarsParser.js +4 -19
  22. package/cssVars/getInitColorSchemeScript.d.ts +5 -0
  23. package/cssVars/getInitColorSchemeScript.js +7 -0
  24. package/cssVars/index.d.ts +2 -1
  25. package/cssVars/index.js +9 -1
  26. package/cssVars/useCurrentColorScheme.js +1 -1
  27. package/esm/Unstable_Grid/Grid.js +179 -0
  28. package/esm/Unstable_Grid/GridProps.js +1 -0
  29. package/esm/Unstable_Grid/createGrid.js +152 -0
  30. package/esm/Unstable_Grid/gridClasses.js +14 -0
  31. package/esm/Unstable_Grid/gridGenerator.js +230 -0
  32. package/esm/Unstable_Grid/index.js +5 -0
  33. package/esm/{grid.js → cssGrid.js} +0 -0
  34. package/esm/cssVars/createCssVarsProvider.js +13 -16
  35. package/esm/cssVars/createGetCssVar.js +2 -2
  36. package/esm/cssVars/cssVarsParser.js +4 -19
  37. package/esm/cssVars/getInitColorSchemeScript.js +7 -0
  38. package/esm/cssVars/index.js +2 -1
  39. package/esm/cssVars/useCurrentColorScheme.js +1 -1
  40. package/esm/getThemeValue.js +1 -1
  41. package/esm/index.js +9 -3
  42. package/getThemeValue.js +3 -3
  43. package/index.d.ts +3 -0
  44. package/index.js +30 -7
  45. package/legacy/Unstable_Grid/Grid.js +179 -0
  46. package/legacy/Unstable_Grid/GridProps.js +1 -0
  47. package/legacy/Unstable_Grid/createGrid.js +166 -0
  48. package/legacy/Unstable_Grid/gridClasses.js +27 -0
  49. package/legacy/Unstable_Grid/gridGenerator.js +239 -0
  50. package/legacy/Unstable_Grid/index.js +5 -0
  51. package/legacy/{grid.js → cssGrid.js} +0 -0
  52. package/legacy/cssVars/createCssVarsProvider.js +13 -17
  53. package/legacy/cssVars/createGetCssVar.js +3 -3
  54. package/legacy/cssVars/cssVarsParser.js +4 -20
  55. package/legacy/cssVars/getInitColorSchemeScript.js +3 -1
  56. package/legacy/cssVars/index.js +2 -1
  57. package/legacy/cssVars/useCurrentColorScheme.js +1 -1
  58. package/legacy/getThemeValue.js +1 -1
  59. package/legacy/index.js +10 -4
  60. package/modern/Unstable_Grid/Grid.js +179 -0
  61. package/modern/Unstable_Grid/GridProps.js +1 -0
  62. package/modern/Unstable_Grid/createGrid.js +150 -0
  63. package/modern/Unstable_Grid/gridClasses.js +14 -0
  64. package/modern/Unstable_Grid/gridGenerator.js +226 -0
  65. package/modern/Unstable_Grid/index.js +5 -0
  66. package/modern/{grid.js → cssGrid.js} +0 -0
  67. package/modern/cssVars/createCssVarsProvider.js +13 -16
  68. package/modern/cssVars/createGetCssVar.js +2 -2
  69. package/modern/cssVars/cssVarsParser.js +4 -19
  70. package/modern/cssVars/getInitColorSchemeScript.js +7 -0
  71. package/modern/cssVars/index.js +2 -1
  72. package/modern/cssVars/useCurrentColorScheme.js +1 -1
  73. package/modern/getThemeValue.js +1 -1
  74. package/modern/index.js +10 -4
  75. package/package.json +5 -5
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = createGrid;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
13
+
14
+ var React = _interopRequireWildcard(require("react"));
15
+
16
+ var _propTypes = _interopRequireDefault(require("prop-types"));
17
+
18
+ var _clsx = _interopRequireDefault(require("clsx"));
19
+
20
+ var _utils = require("@mui/utils");
21
+
22
+ var _styled = _interopRequireDefault(require("../styled"));
23
+
24
+ var _useThemeProps = _interopRequireDefault(require("../useThemeProps"));
25
+
26
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
27
+
28
+ var _styleFunctionSx = require("../styleFunctionSx");
29
+
30
+ var _createTheme = _interopRequireDefault(require("../createTheme"));
31
+
32
+ var _gridGenerator = require("./gridGenerator");
33
+
34
+ var _jsxRuntime = require("react/jsx-runtime");
35
+
36
+ const _excluded = ["className", "columns", "container", "component", "direction", "wrap", "spacing", "rowSpacing", "columnSpacing"];
37
+
38
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
39
+
40
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
41
+
42
+ const defaultTheme = (0, _createTheme.default)(); // widening Theme to any so that the consumer can own the theme structure.
43
+
44
+ const defaultCreateStyledComponent = (0, _styled.default)('div', {
45
+ name: 'MuiGrid',
46
+ slot: 'Root',
47
+ overridesResolver: (props, styles) => styles.root
48
+ });
49
+
50
+ function useThemePropsDefault(props) {
51
+ return (0, _useThemeProps.default)({
52
+ props,
53
+ name: 'MuiGrid',
54
+ defaultTheme
55
+ });
56
+ }
57
+
58
+ function createGrid(options = {}) {
59
+ const {
60
+ // This will allow adding custom styled fn (for example for custom sx style function)
61
+ createStyledComponent = defaultCreateStyledComponent,
62
+ useThemeProps = useThemePropsDefault,
63
+ componentName = 'MuiGrid'
64
+ } = options;
65
+ const NestedContext = /*#__PURE__*/React.createContext(false);
66
+
67
+ const useUtilityClasses = (ownerState, theme) => {
68
+ const {
69
+ container,
70
+ direction,
71
+ spacing,
72
+ wrap,
73
+ gridSize
74
+ } = ownerState;
75
+ const slots = {
76
+ root: ['root', container && 'container', direction !== 'row' && `direction-xs-${String(direction)}`, wrap !== 'wrap' && `wrap-xs-${String(wrap)}`, ...(0, _gridGenerator.generateSizeClassNames)(gridSize), ...(container ? (0, _gridGenerator.generateSpacingClassNames)(spacing, theme.breakpoints.keys[0]) : [])]
77
+ };
78
+ return (0, _utils.unstable_composeClasses)(slots, slot => (0, _utils.unstable_generateUtilityClass)(componentName, slot), {});
79
+ };
80
+
81
+ const GridRoot = createStyledComponent(_gridGenerator.generateGridColumnsStyles, _gridGenerator.generateGridColumnSpacingStyles, _gridGenerator.generateGridRowSpacingStyles, _gridGenerator.generateGridSizeStyles, _gridGenerator.generateGridDirectionStyles, _gridGenerator.generateGridStyles, _gridGenerator.generateGridOffsetStyles);
82
+ const Grid = /*#__PURE__*/React.forwardRef(function Grid(inProps, ref) {
83
+ var _inProps$columns, _inProps$spacing, _ref, _inProps$rowSpacing, _ref2, _inProps$columnSpacin;
84
+
85
+ const theme = (0, _useTheme.default)();
86
+ const themeProps = useThemeProps(inProps);
87
+ const props = (0, _styleFunctionSx.extendSxProp)(themeProps); // `color` type conflicts with html color attribute.
88
+
89
+ const nested = React.useContext(NestedContext);
90
+ const {
91
+ className,
92
+ columns: columnsProp = 12,
93
+ container = false,
94
+ component = 'div',
95
+ direction = 'row',
96
+ wrap = 'wrap',
97
+ spacing: spacingProp = 0,
98
+ rowSpacing: rowSpacingProp = spacingProp,
99
+ columnSpacing: columnSpacingProp = spacingProp
100
+ } = props,
101
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded); // collect breakpoints related props because they can be custom from the theme.
102
+
103
+ const gridSize = {};
104
+ const gridOffset = {};
105
+ const other = {};
106
+ Object.entries(rest).forEach(([key, val]) => {
107
+ if (theme.breakpoints.values[key] !== undefined) {
108
+ gridSize[key] = val;
109
+ } else if (theme.breakpoints.values[key.replace('Offset', '')] !== undefined) {
110
+ gridOffset[key.replace('Offset', '')] = val;
111
+ } else {
112
+ other[key] = val;
113
+ }
114
+ });
115
+ const columns = (_inProps$columns = inProps.columns) != null ? _inProps$columns : nested ? undefined : columnsProp;
116
+ const spacing = (_inProps$spacing = inProps.spacing) != null ? _inProps$spacing : nested ? undefined : spacingProp;
117
+ const rowSpacing = (_ref = (_inProps$rowSpacing = inProps.rowSpacing) != null ? _inProps$rowSpacing : inProps.spacing) != null ? _ref : nested ? undefined : rowSpacingProp;
118
+ const columnSpacing = (_ref2 = (_inProps$columnSpacin = inProps.columnSpacing) != null ? _inProps$columnSpacin : inProps.spacing) != null ? _ref2 : nested ? undefined : columnSpacingProp;
119
+ const ownerState = (0, _extends2.default)({}, props, {
120
+ nested,
121
+ columns,
122
+ container,
123
+ direction,
124
+ wrap,
125
+ spacing,
126
+ rowSpacing,
127
+ columnSpacing,
128
+ gridSize,
129
+ gridOffset
130
+ });
131
+ const classes = useUtilityClasses(ownerState, theme);
132
+ let result = /*#__PURE__*/(0, _jsxRuntime.jsx)(GridRoot, (0, _extends2.default)({
133
+ ref: ref,
134
+ as: component,
135
+ ownerState: ownerState,
136
+ className: (0, _clsx.default)(classes.root, className)
137
+ }, other));
138
+
139
+ if (!nested) {
140
+ result = /*#__PURE__*/(0, _jsxRuntime.jsx)(NestedContext.Provider, {
141
+ value: true,
142
+ children: result
143
+ });
144
+ }
145
+
146
+ return result;
147
+ });
148
+ process.env.NODE_ENV !== "production" ? Grid.propTypes
149
+ /* remove-proptypes */
150
+ = {
151
+ children: _propTypes.default.node,
152
+ className: _propTypes.default.string,
153
+ columns: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.number), _propTypes.default.number, _propTypes.default.object]),
154
+ columnSpacing: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.string]),
155
+ component: _propTypes.default.elementType,
156
+ container: _propTypes.default.bool,
157
+ direction: _propTypes.default.oneOfType([_propTypes.default.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), _propTypes.default.arrayOf(_propTypes.default.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), _propTypes.default.object]),
158
+ lg: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number, _propTypes.default.bool]),
159
+ lgOffset: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number]),
160
+ md: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number, _propTypes.default.bool]),
161
+ mdOffset: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number]),
162
+ rowSpacing: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.string]),
163
+ sm: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number, _propTypes.default.bool]),
164
+ smOffset: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number]),
165
+ spacing: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.string]),
166
+ sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object]),
167
+ wrap: _propTypes.default.oneOf(['nowrap', 'wrap-reverse', 'wrap']),
168
+ xl: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number, _propTypes.default.bool]),
169
+ xlOffset: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number]),
170
+ xs: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number, _propTypes.default.bool]),
171
+ xsOffset: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number])
172
+ } : void 0;
173
+ return Grid;
174
+ }
@@ -0,0 +1,20 @@
1
+ export interface GridClasses {
2
+ /** Styles applied to the root element. */
3
+ root: string;
4
+ /** Styles applied to the root element if `container={true}`. */
5
+ container: string;
6
+ /** Styles applied to the root element if `direction="column"`. */
7
+ 'direction-xs-column': string;
8
+ /** Styles applied to the root element if `direction="column-reverse"`. */
9
+ 'direction-xs-column-reverse': string;
10
+ /** Styles applied to the root element if `direction="row-reverse"`. */
11
+ 'direction-xs-row-reverse': string;
12
+ /** Styles applied to the root element if `wrap="nowrap"`. */
13
+ 'wrap-xs-nowrap': string;
14
+ /** Styles applied to the root element if `wrap="reverse"`. */
15
+ 'wrap-xs-wrap-reverse': string;
16
+ }
17
+ export declare type GridClassKey = keyof GridClasses;
18
+ export declare function getGridUtilityClass(slot: string): string;
19
+ declare const gridClasses: GridClasses;
20
+ export default gridClasses;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ exports.getGridUtilityClass = getGridUtilityClass;
8
+
9
+ var _utils = require("@mui/utils");
10
+
11
+ function getGridUtilityClass(slot) {
12
+ return (0, _utils.unstable_generateUtilityClass)('MuiGrid', slot);
13
+ }
14
+
15
+ const SPACINGS = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
16
+ const DIRECTIONS = ['column-reverse', 'column', 'row-reverse', 'row'];
17
+ const WRAPS = ['nowrap', 'wrap-reverse', 'wrap'];
18
+ const GRID_SIZES = ['auto', true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
19
+ const gridClasses = (0, _utils.unstable_generateUtilityClasses)('MuiGrid', ['root', 'container', 'item', // spacings
20
+ ...SPACINGS.map(spacing => `spacing-xs-${spacing}`), // direction values
21
+ ...DIRECTIONS.map(direction => `direction-xs-${direction}`), // wrap values
22
+ ...WRAPS.map(wrap => `wrap-xs-${wrap}`), // grid sizes for all breakpoints
23
+ ...GRID_SIZES.map(size => `grid-xs-${size}`), ...GRID_SIZES.map(size => `grid-sm-${size}`), ...GRID_SIZES.map(size => `grid-md-${size}`), ...GRID_SIZES.map(size => `grid-lg-${size}`), ...GRID_SIZES.map(size => `grid-xl-${size}`)]);
24
+ var _default = gridClasses;
25
+ exports.default = _default;
@@ -0,0 +1,26 @@
1
+ import { Breakpoints } from '../createTheme/createBreakpoints';
2
+ import { Spacing } from '../createTheme/createSpacing';
3
+ import { GridOwnerState } from './GridProps';
4
+ interface Props {
5
+ theme: {
6
+ breakpoints: Breakpoints;
7
+ spacing?: Spacing;
8
+ };
9
+ ownerState: GridOwnerState & {
10
+ parentDisableEqualOverflow?: boolean;
11
+ };
12
+ }
13
+ interface Iterator<T> {
14
+ (appendStyle: (responsizeStyles: Record<string, any>, style: object) => void, value: T): void;
15
+ }
16
+ export declare const traverseBreakpoints: <T = unknown>(breakpoints: Breakpoints, responsize: Record<string, any> | T | T[] | undefined, iterator: Iterator<T>) => void;
17
+ export declare const generateGridSizeStyles: ({ theme, ownerState }: Props) => {};
18
+ export declare const generateGridOffsetStyles: ({ theme, ownerState }: Props) => {};
19
+ export declare const generateGridColumnsStyles: ({ theme, ownerState }: Props) => {};
20
+ export declare const generateGridRowSpacingStyles: ({ theme, ownerState }: Props) => {};
21
+ export declare const generateGridColumnSpacingStyles: ({ theme, ownerState }: Props) => {};
22
+ export declare const generateGridDirectionStyles: ({ theme, ownerState }: Props) => {};
23
+ export declare const generateGridStyles: ({ ownerState }: Props) => {};
24
+ export declare const generateSizeClassNames: (gridSize: GridOwnerState['gridSize']) => string[];
25
+ export declare const generateSpacingClassNames: (spacing: GridOwnerState['spacing'], smallestBreakpoint?: string) => string[];
26
+ export {};
@@ -0,0 +1,269 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.traverseBreakpoints = exports.generateSpacingClassNames = exports.generateSizeClassNames = exports.generateGridStyles = exports.generateGridSizeStyles = exports.generateGridRowSpacingStyles = exports.generateGridOffsetStyles = exports.generateGridDirectionStyles = exports.generateGridColumnsStyles = exports.generateGridColumnSpacingStyles = void 0;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ const traverseBreakpoints = (breakpoints, responsize, iterator) => {
13
+ const smallestBreakpoint = breakpoints.keys[0]; // the keys is sorted from smallest to largest by `createBreakpoints`.
14
+
15
+ if (Array.isArray(responsize)) {
16
+ responsize.forEach((breakpointValue, index) => {
17
+ iterator((responsizeStyles, style) => {
18
+ if (index <= breakpoints.keys.length - 1) {
19
+ if (index === 0) {
20
+ Object.assign(responsizeStyles, style);
21
+ } else {
22
+ responsizeStyles[breakpoints.up(breakpoints.keys[index])] = style;
23
+ }
24
+ }
25
+ }, breakpointValue);
26
+ });
27
+ } else if (responsize && typeof responsize === 'object') {
28
+ // prevent null
29
+ // responsize could be a very big object, pick the smallest responsive values
30
+ const keys = Object.keys(responsize).length > breakpoints.keys.length ? breakpoints.keys : Object.keys(responsize);
31
+ keys.forEach(key => {
32
+ if (breakpoints.keys.indexOf(key) !== -1) {
33
+ // @ts-ignore already checked that responsize is an object
34
+ const breakpointValue = responsize[key];
35
+
36
+ if (breakpointValue !== undefined) {
37
+ iterator((responsizeStyles, style) => {
38
+ if (smallestBreakpoint === key) {
39
+ Object.assign(responsizeStyles, style);
40
+ } else {
41
+ responsizeStyles[breakpoints.up(key)] = style;
42
+ }
43
+ }, breakpointValue);
44
+ }
45
+ }
46
+ });
47
+ } else if (typeof responsize === 'number' || typeof responsize === 'string') {
48
+ iterator((responsizeStyles, style) => {
49
+ Object.assign(responsizeStyles, style);
50
+ }, responsize);
51
+ }
52
+ };
53
+
54
+ exports.traverseBreakpoints = traverseBreakpoints;
55
+
56
+ const generateGridSizeStyles = ({
57
+ theme,
58
+ ownerState
59
+ }) => {
60
+ const styles = {};
61
+ traverseBreakpoints(theme.breakpoints, ownerState.gridSize, (appendStyle, value) => {
62
+ let style = {};
63
+
64
+ if (value === true) {
65
+ style = {
66
+ flexBasis: 0,
67
+ flexGrow: 1,
68
+ maxWidth: '100%'
69
+ };
70
+ }
71
+
72
+ if (value === 'auto') {
73
+ style = {
74
+ flexBasis: 'auto',
75
+ flexGrow: 0,
76
+ flexShrink: 0,
77
+ maxWidth: 'none',
78
+ width: 'auto'
79
+ };
80
+ }
81
+
82
+ if (typeof value === 'number') {
83
+ style = {
84
+ flexGrow: 0,
85
+ flexBasis: 'auto',
86
+ width: `calc(100% * ${value} / var(--Grid-columns)${ownerState.nested && ownerState.container ? ` + var(--Grid-columnSpacing)` : ''})`
87
+ };
88
+ }
89
+
90
+ appendStyle(styles, style);
91
+ });
92
+ return styles;
93
+ };
94
+
95
+ exports.generateGridSizeStyles = generateGridSizeStyles;
96
+
97
+ const generateGridOffsetStyles = ({
98
+ theme,
99
+ ownerState
100
+ }) => {
101
+ const styles = {};
102
+ traverseBreakpoints(theme.breakpoints, ownerState.gridOffset, (appendStyle, value) => {
103
+ let style = {};
104
+
105
+ if (value === 'auto') {
106
+ style = {
107
+ marginLeft: 'auto'
108
+ };
109
+ }
110
+
111
+ if (typeof value === 'number') {
112
+ style = {
113
+ marginLeft: value === 0 ? '0px' : `calc(100% * ${value} / var(--Grid-columns))`
114
+ };
115
+ }
116
+
117
+ appendStyle(styles, style);
118
+ });
119
+ return styles;
120
+ };
121
+
122
+ exports.generateGridOffsetStyles = generateGridOffsetStyles;
123
+
124
+ const generateGridColumnsStyles = ({
125
+ theme,
126
+ ownerState
127
+ }) => {
128
+ if (!ownerState.container) {
129
+ return {};
130
+ }
131
+
132
+ const styles = {
133
+ '--Grid-columns': 12
134
+ };
135
+ traverseBreakpoints(theme.breakpoints, ownerState.columns, (appendStyle, value) => {
136
+ appendStyle(styles, {
137
+ '--Grid-columns': value
138
+ });
139
+ });
140
+ return styles;
141
+ };
142
+
143
+ exports.generateGridColumnsStyles = generateGridColumnsStyles;
144
+
145
+ const generateGridRowSpacingStyles = ({
146
+ theme,
147
+ ownerState
148
+ }) => {
149
+ if (!ownerState.container) {
150
+ return {};
151
+ }
152
+
153
+ const styles = {};
154
+ traverseBreakpoints(theme.breakpoints, ownerState.rowSpacing, (appendStyle, value) => {
155
+ var _theme$spacing;
156
+
157
+ appendStyle(styles, {
158
+ '--Grid-rowSpacing': typeof value === 'string' ? value : (_theme$spacing = theme.spacing) == null ? void 0 : _theme$spacing.call(theme, value)
159
+ });
160
+ });
161
+ return styles;
162
+ };
163
+
164
+ exports.generateGridRowSpacingStyles = generateGridRowSpacingStyles;
165
+
166
+ const generateGridColumnSpacingStyles = ({
167
+ theme,
168
+ ownerState
169
+ }) => {
170
+ if (!ownerState.container) {
171
+ return {};
172
+ }
173
+
174
+ const styles = {};
175
+ traverseBreakpoints(theme.breakpoints, ownerState.columnSpacing, (appendStyle, value) => {
176
+ var _theme$spacing2;
177
+
178
+ appendStyle(styles, {
179
+ '--Grid-columnSpacing': typeof value === 'string' ? value : (_theme$spacing2 = theme.spacing) == null ? void 0 : _theme$spacing2.call(theme, value)
180
+ });
181
+ });
182
+ return styles;
183
+ };
184
+
185
+ exports.generateGridColumnSpacingStyles = generateGridColumnSpacingStyles;
186
+
187
+ const generateGridDirectionStyles = ({
188
+ theme,
189
+ ownerState
190
+ }) => {
191
+ if (!ownerState.container) {
192
+ return {};
193
+ }
194
+
195
+ const styles = {};
196
+ traverseBreakpoints(theme.breakpoints, ownerState.direction, (appendStyle, value) => {
197
+ appendStyle(styles, {
198
+ flexDirection: value
199
+ });
200
+ });
201
+ return styles;
202
+ };
203
+
204
+ exports.generateGridDirectionStyles = generateGridDirectionStyles;
205
+
206
+ const generateGridStyles = ({
207
+ ownerState
208
+ }) => {
209
+ return (0, _extends2.default)({
210
+ minWidth: 0,
211
+ boxSizing: 'border-box'
212
+ }, ownerState.container ? (0, _extends2.default)({
213
+ display: 'flex',
214
+ flexWrap: 'wrap'
215
+ }, ownerState.wrap && ownerState.wrap !== 'wrap' && {
216
+ flexWrap: ownerState.wrap
217
+ }, {
218
+ margin: `calc(var(--Grid-rowSpacing) / -2) calc(var(--Grid-columnSpacing) / -2)`
219
+ }, ownerState.nested ? {
220
+ padding: `calc(var(--Grid-nested-rowSpacing) / 2) calc(var(--Grid-nested-columnSpacing) / 2)`
221
+ } : {
222
+ '--Grid-nested-rowSpacing': 'var(--Grid-rowSpacing)',
223
+ '--Grid-nested-columnSpacing': 'var(--Grid-columnSpacing)'
224
+ }) : {
225
+ padding: `calc(var(--Grid-rowSpacing) / 2) calc(var(--Grid-columnSpacing) / 2)`
226
+ });
227
+ };
228
+
229
+ exports.generateGridStyles = generateGridStyles;
230
+
231
+ const generateSizeClassNames = gridSize => {
232
+ const classNames = [];
233
+ Object.entries(gridSize).forEach(([key, value]) => {
234
+ if (value !== false && value !== undefined) {
235
+ classNames.push(`grid-${key}-${String(value)}`);
236
+ }
237
+ });
238
+ return classNames;
239
+ };
240
+
241
+ exports.generateSizeClassNames = generateSizeClassNames;
242
+
243
+ const generateSpacingClassNames = (spacing, smallestBreakpoint = 'xs') => {
244
+ function isValidSpacing(val) {
245
+ if (val === undefined) {
246
+ return false;
247
+ }
248
+
249
+ return typeof val === 'string' && !Number.isNaN(Number(val)) || typeof val === 'number' && val > 0;
250
+ }
251
+
252
+ if (isValidSpacing(spacing)) {
253
+ return [`spacing-${smallestBreakpoint}-${String(spacing)}`];
254
+ }
255
+
256
+ if (typeof spacing === 'object' && !Array.isArray(spacing)) {
257
+ const classNames = [];
258
+ Object.entries(spacing).forEach(([key, value]) => {
259
+ if (isValidSpacing(value)) {
260
+ classNames.push(`spacing-${key}-${String(value)}`);
261
+ }
262
+ });
263
+ return classNames;
264
+ }
265
+
266
+ return [];
267
+ };
268
+
269
+ exports.generateSpacingClassNames = generateSpacingClassNames;
@@ -0,0 +1,5 @@
1
+ export { default } from './Grid';
2
+ export { default as createGrid } from './createGrid';
3
+ export * from './GridProps';
4
+ export { default as gridClasses } from './gridClasses';
5
+ export * from './gridClasses';
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ var _exportNames = {
9
+ createGrid: true,
10
+ gridClasses: true
11
+ };
12
+ Object.defineProperty(exports, "createGrid", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _createGrid.default;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "default", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _Grid.default;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "gridClasses", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _gridClasses.default;
28
+ }
29
+ });
30
+
31
+ var _Grid = _interopRequireDefault(require("./Grid"));
32
+
33
+ var _createGrid = _interopRequireDefault(require("./createGrid"));
34
+
35
+ var _GridProps = require("./GridProps");
36
+
37
+ Object.keys(_GridProps).forEach(function (key) {
38
+ if (key === "default" || key === "__esModule") return;
39
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
40
+ if (key in exports && exports[key] === _GridProps[key]) return;
41
+ Object.defineProperty(exports, key, {
42
+ enumerable: true,
43
+ get: function () {
44
+ return _GridProps[key];
45
+ }
46
+ });
47
+ });
48
+
49
+ var _gridClasses = _interopRequireWildcard(require("./gridClasses"));
50
+
51
+ Object.keys(_gridClasses).forEach(function (key) {
52
+ if (key === "default" || key === "__esModule") return;
53
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
54
+ if (key in exports && exports[key] === _gridClasses[key]) return;
55
+ Object.defineProperty(exports, key, {
56
+ enumerable: true,
57
+ get: function () {
58
+ return _gridClasses[key];
59
+ }
60
+ });
61
+ });
62
+
63
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
64
+
65
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -0,0 +1,6 @@
1
+ {
2
+ "sideEffects": false,
3
+ "module": "../esm/Unstable_Grid/index.js",
4
+ "main": "./index.js",
5
+ "types": "./index.d.ts"
6
+ }
File without changes
@@ -45,17 +45,23 @@ export interface CssVarsProviderConfig<ColorScheme extends string> {
45
45
  */
46
46
  enableColorScheme?: boolean;
47
47
  /**
48
- * CSS variable prefix
49
- * @default ''
48
+ * A function to determine if the key, value should be attached as CSS Variable
49
+ * `keys` is an array that represents the object path keys.
50
+ * Ex, if the theme is { foo: { bar: 'var(--test)' } }
51
+ * then, keys = ['foo', 'bar']
52
+ * value = 'var(--test)'
50
53
  */
51
- prefix?: string;
54
+ shouldSkipGeneratingVar?: (keys: string[], value: string | number) => boolean;
52
55
  }
53
56
 
54
- export interface CreateCssVarsProviderResult<ColorScheme extends string, ThemeInput> {
57
+ export interface CreateCssVarsProviderResult<ColorScheme extends string> {
55
58
  CssVarsProvider: (
56
59
  props: React.PropsWithChildren<
57
60
  Partial<CssVarsProviderConfig<ColorScheme>> & {
58
- theme?: ThemeInput;
61
+ theme?: {
62
+ cssVarPrefix?: string;
63
+ colorSchemes: Record<ColorScheme, Record<string, any>>;
64
+ };
59
65
  /**
60
66
  * The document used to perform `disableTransitionOnChange` feature
61
67
  * @default document
@@ -83,10 +89,7 @@ export interface CreateCssVarsProviderResult<ColorScheme extends string, ThemeIn
83
89
  getInitColorSchemeScript: typeof getInitColorSchemeScript;
84
90
  }
85
91
 
86
- export default function createCssVarsProvider<
87
- ColorScheme extends string,
88
- ThemeInput extends { colorSchemes?: Partial<Record<ColorScheme, any>> },
89
- >(
92
+ export default function createCssVarsProvider<ColorScheme extends string>(
90
93
  options: CssVarsProviderConfig<ColorScheme> & {
91
94
  /**
92
95
  * Design system default theme
@@ -114,14 +117,6 @@ export default function createCssVarsProvider<
114
117
  * }
115
118
  */
116
119
  theme: any;
117
- /**
118
- * A function to determine if the key, value should be attached as CSS Variable
119
- * `keys` is an array that represents the object path keys.
120
- * Ex, if the theme is { foo: { bar: 'var(--test)' } }
121
- * then, keys = ['foo', 'bar']
122
- * value = 'var(--test)'
123
- */
124
- shouldSkipGeneratingVar?: (keys: string[], value: string | number) => boolean;
125
120
  /**
126
121
  * A function to be called after the CSS variables are attached. The result of this function will be the final theme pass to ThemeProvider.
127
122
  *
@@ -130,7 +125,7 @@ export default function createCssVarsProvider<
130
125
  */
131
126
  resolveTheme?: (theme: any) => any; // the type is any because it depends on the design system.
132
127
  },
133
- ): CreateCssVarsProviderResult<ColorScheme, ThemeInput>;
128
+ ): CreateCssVarsProviderResult<ColorScheme>;
134
129
 
135
130
  // disable automatic export
136
131
  export {};