@mui/system
Advanced tools
Comparing version 6.0.0-alpha.13 to 6.0.0-alpha.14
@@ -9,3 +9,3 @@ import { CSSObject } from '@mui/styled-engine'; | ||
export { Breakpoint, BreakpointOverrides } from './createBreakpoints'; | ||
export { Breakpoint, Breakpoints, BreakpointOverrides } from './createBreakpoints'; | ||
@@ -12,0 +12,0 @@ export type Direction = 'ltr' | 'rtl'; |
/** | ||
* @mui/system v6.0.0-alpha.13 | ||
* @mui/system v6.0.0-alpha.14 | ||
* | ||
@@ -4,0 +4,0 @@ * @license MIT |
/** | ||
* @mui/system v6.0.0-alpha.13 | ||
* @mui/system v6.0.0-alpha.14 | ||
* | ||
@@ -4,0 +4,0 @@ * @license MIT |
@@ -42,9 +42,32 @@ import * as React from 'react'; | ||
wrap, | ||
gridSize | ||
size | ||
} = ownerState; | ||
const slots = { | ||
root: ['root', container && 'container', wrap !== 'wrap' && `wrap-xs-${String(wrap)}`, ...generateDirectionClasses(direction), ...generateSizeClassNames(gridSize), ...(container ? generateSpacingClassNames(spacing, theme.breakpoints.keys[0]) : [])] | ||
root: ['root', container && 'container', wrap !== 'wrap' && `wrap-xs-${String(wrap)}`, ...generateDirectionClasses(direction), ...generateSizeClassNames(size), ...(container ? generateSpacingClassNames(spacing, theme.breakpoints.keys[0]) : [])] | ||
}; | ||
return composeClasses(slots, slot => generateUtilityClass(componentName, slot), {}); | ||
}; | ||
function parseResponsiveProp(propValue, breakpoints, shouldUseValue = () => true) { | ||
const parsedProp = {}; | ||
if (propValue === null) { | ||
return parsedProp; | ||
} | ||
if (Array.isArray(propValue)) { | ||
propValue.forEach((value, index) => { | ||
if (value !== null && shouldUseValue(value) && breakpoints.keys[index]) { | ||
parsedProp[breakpoints.keys[index]] = value; | ||
} | ||
}); | ||
} else if (typeof propValue === 'object') { | ||
Object.keys(propValue).forEach(key => { | ||
const value = propValue[key]; | ||
if (value !== null && value !== undefined && shouldUseValue(value)) { | ||
parsedProp[key] = value; | ||
} | ||
}); | ||
} else { | ||
parsedProp[breakpoints.keys[0]] = propValue; | ||
} | ||
return parsedProp; | ||
} | ||
const GridRoot = createStyledComponent(generateGridColumnsStyles, generateGridColumnSpacingStyles, generateGridRowSpacingStyles, generateGridSizeStyles, generateGridDirectionStyles, generateGridStyles, generateGridOffsetStyles); | ||
@@ -63,2 +86,4 @@ const Grid = /*#__PURE__*/React.forwardRef(function Grid(inProps, ref) { | ||
wrap = 'wrap', | ||
size: sizeProp = {}, | ||
offset: offsetProp = {}, | ||
spacing: spacingProp = 0, | ||
@@ -70,15 +95,4 @@ rowSpacing: rowSpacingProp = spacingProp, | ||
} = props; | ||
// collect breakpoints related props because they can be customized from the theme. | ||
const gridSize = {}; | ||
const gridOffset = {}; | ||
const other = {}; | ||
Object.entries(rest).forEach(([key, val]) => { | ||
if (theme.breakpoints.values[key] !== undefined) { | ||
gridSize[key] = val; | ||
} else if (theme.breakpoints.values[key.replace('Offset', '')] !== undefined) { | ||
gridOffset[key.replace('Offset', '')] = val; | ||
} else { | ||
other[key] = val; | ||
} | ||
}); | ||
const size = parseResponsiveProp(sizeProp, theme.breakpoints, val => val !== false); | ||
const offset = parseResponsiveProp(offsetProp, theme.breakpoints); | ||
const columns = inProps.columns ?? (level ? undefined : columnsProp); | ||
@@ -98,4 +112,4 @@ const spacing = inProps.spacing ?? (level ? undefined : spacingProp); | ||
columnSpacing, | ||
gridSize, | ||
gridOffset | ||
size, | ||
offset | ||
}; | ||
@@ -108,3 +122,3 @@ const classes = useUtilityClasses(ownerState, theme); | ||
className: clsx(classes.root, className), | ||
...other, | ||
...rest, | ||
children: React.Children.map(children, child => { | ||
@@ -128,16 +142,8 @@ if ( /*#__PURE__*/React.isValidElement(child) && isMuiElement(child, ['Grid'])) { | ||
direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]), | ||
lg: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]), | ||
lgOffset: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]), | ||
md: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]), | ||
mdOffset: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]), | ||
offset: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])), PropTypes.object]), | ||
rowSpacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]), | ||
sm: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]), | ||
smOffset: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]), | ||
size: PropTypes.oneOfType([PropTypes.string, PropTypes.bool, PropTypes.number, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.bool, PropTypes.number])), PropTypes.object]), | ||
spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]), | ||
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]), | ||
wrap: PropTypes.oneOf(['nowrap', 'wrap-reverse', 'wrap']), | ||
xl: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]), | ||
xlOffset: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]), | ||
xs: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]), | ||
xsOffset: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]) | ||
wrap: PropTypes.oneOf(['nowrap', 'wrap-reverse', 'wrap']) | ||
} : void 0; | ||
@@ -144,0 +150,0 @@ |
@@ -49,34 +49,6 @@ 'use client'; | ||
/** | ||
* If a number, it sets the number of columns the grid item uses. | ||
* It can't be greater than the total number of columns of the container (12 by default). | ||
* If 'auto', the grid item's width matches its content. | ||
* If false, the prop is ignored. | ||
* If true, the grid item's width grows to use the space available in the grid container. | ||
* The value is applied for the `lg` breakpoint and wider screens if not overridden. | ||
* @default false | ||
* Defines the offset value for the type `item` components. | ||
*/ | ||
lg: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]), | ||
offset: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.string, PropTypes.number, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])), PropTypes.object]), | ||
/** | ||
* If a number, it sets the margin-left equals to the number of columns the grid item uses. | ||
* If 'auto', the grid item push itself to the right-end of the container. | ||
* The value is applied for the `lg` breakpoint and wider screens if not overridden. | ||
*/ | ||
lgOffset: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]), | ||
/** | ||
* If a number, it sets the number of columns the grid item uses. | ||
* It can't be greater than the total number of columns of the container (12 by default). | ||
* If 'auto', the grid item's width matches its content. | ||
* If false, the prop is ignored. | ||
* If true, the grid item's width grows to use the space available in the grid container. | ||
* The value is applied for the `md` breakpoint and wider screens if not overridden. | ||
* @default false | ||
*/ | ||
md: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]), | ||
/** | ||
* If a number, it sets the margin-left equals to the number of columns the grid item uses. | ||
* If 'auto', the grid item push itself to the right-end of the container. | ||
* The value is applied for the `md` breakpoint and wider screens if not overridden. | ||
*/ | ||
mdOffset: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]), | ||
/** | ||
* Defines the vertical space between the type `item` components. | ||
@@ -87,18 +59,6 @@ * It overrides the value of the `spacing` prop. | ||
/** | ||
* If a number, it sets the number of columns the grid item uses. | ||
* It can't be greater than the total number of columns of the container (12 by default). | ||
* If 'auto', the grid item's width matches its content. | ||
* If false, the prop is ignored. | ||
* If true, the grid item's width grows to use the space available in the grid container. | ||
* The value is applied for the `sm` breakpoint and wider screens if not overridden. | ||
* @default false | ||
* Defines the size of the the type `item` components. | ||
*/ | ||
sm: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]), | ||
size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.string, PropTypes.bool, PropTypes.number, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.bool, PropTypes.number])), PropTypes.object]), | ||
/** | ||
* If a number, it sets the margin-left equals to the number of columns the grid item uses. | ||
* If 'auto', the grid item push itself to the right-end of the container. | ||
* The value is applied for the `sm` breakpoint and wider screens if not overridden. | ||
*/ | ||
smOffset: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]), | ||
/** | ||
* Defines the space between the type `item` components. | ||
@@ -141,36 +101,4 @@ * It can only be used on a type `container` component. | ||
*/ | ||
wrap: PropTypes.oneOf(['nowrap', 'wrap-reverse', 'wrap']), | ||
/** | ||
* If a number, it sets the number of columns the grid item uses. | ||
* It can't be greater than the total number of columns of the container (12 by default). | ||
* If 'auto', the grid item's width matches its content. | ||
* If false, the prop is ignored. | ||
* If true, the grid item's width grows to use the space available in the grid container. | ||
* The value is applied for the `xl` breakpoint and wider screens if not overridden. | ||
* @default false | ||
*/ | ||
xl: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]), | ||
/** | ||
* If a number, it sets the margin-left equals to the number of columns the grid item uses. | ||
* If 'auto', the grid item push itself to the right-end of the container. | ||
* The value is applied for the `xl` breakpoint and wider screens if not overridden. | ||
*/ | ||
xlOffset: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]), | ||
/** | ||
* If a number, it sets the number of columns the grid item uses. | ||
* It can't be greater than the total number of columns of the container (12 by default). | ||
* If 'auto', the grid item's width matches its content. | ||
* If false, the prop is ignored. | ||
* If true, the grid item's width grows to use the space available in the grid container. | ||
* The value is applied for all the screen sizes with the lowest priority. | ||
* @default false | ||
*/ | ||
xs: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]), | ||
/** | ||
* If a number, it sets the margin-left equals to the number of columns the grid item uses. | ||
* If 'auto', the grid item push itself to the right-end of the container. | ||
* The value is applied for the `xs` breakpoint and wider screens if not overridden. | ||
*/ | ||
xsOffset: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]) | ||
wrap: PropTypes.oneOf(['nowrap', 'wrap-reverse', 'wrap']) | ||
} : void 0; | ||
export default Grid; |
@@ -9,3 +9,3 @@ import generateUtilityClasses from '@mui/utils/generateUtilityClasses'; | ||
const WRAPS = ['nowrap', 'wrap-reverse', 'wrap']; | ||
const GRID_SIZES = ['auto', true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; | ||
const GRID_SIZES = ['auto', 'grow', 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; | ||
const gridClasses = generateUtilityClasses('MuiGrid', ['root', 'container', 'item', | ||
@@ -12,0 +12,0 @@ // spacings |
@@ -36,5 +36,5 @@ import { traverseBreakpoints } from './traverseBreakpoints'; | ||
const styles = {}; | ||
traverseBreakpoints(theme.breakpoints, ownerState.gridSize, (appendStyle, value) => { | ||
traverseBreakpoints(theme.breakpoints, ownerState.size, (appendStyle, value) => { | ||
let style = {}; | ||
if (value === true) { | ||
if (value === 'grow') { | ||
style = { | ||
@@ -72,3 +72,3 @@ flexBasis: 0, | ||
const styles = {}; | ||
traverseBreakpoints(theme.breakpoints, ownerState.gridOffset, (appendStyle, value) => { | ||
traverseBreakpoints(theme.breakpoints, ownerState.offset, (appendStyle, value) => { | ||
let style = {}; | ||
@@ -180,5 +180,5 @@ if (value === 'auto') { | ||
}; | ||
export const generateSizeClassNames = gridSize => { | ||
export const generateSizeClassNames = size => { | ||
const classNames = []; | ||
Object.entries(gridSize).forEach(([key, value]) => { | ||
Object.entries(size).forEach(([key, value]) => { | ||
if (value !== false && value !== undefined) { | ||
@@ -185,0 +185,0 @@ classNames.push(`grid-${key}-${String(value)}`); |
/** | ||
* @mui/system v6.0.0-alpha.13 | ||
* @mui/system v6.0.0-alpha.14 | ||
* | ||
@@ -4,0 +4,0 @@ * @license MIT |
@@ -51,9 +51,32 @@ "use strict"; | ||
wrap, | ||
gridSize | ||
size | ||
} = ownerState; | ||
const slots = { | ||
root: ['root', container && 'container', wrap !== 'wrap' && `wrap-xs-${String(wrap)}`, ...(0, _gridGenerator.generateDirectionClasses)(direction), ...(0, _gridGenerator.generateSizeClassNames)(gridSize), ...(container ? (0, _gridGenerator.generateSpacingClassNames)(spacing, theme.breakpoints.keys[0]) : [])] | ||
root: ['root', container && 'container', wrap !== 'wrap' && `wrap-xs-${String(wrap)}`, ...(0, _gridGenerator.generateDirectionClasses)(direction), ...(0, _gridGenerator.generateSizeClassNames)(size), ...(container ? (0, _gridGenerator.generateSpacingClassNames)(spacing, theme.breakpoints.keys[0]) : [])] | ||
}; | ||
return (0, _composeClasses.default)(slots, slot => (0, _generateUtilityClass.default)(componentName, slot), {}); | ||
}; | ||
function parseResponsiveProp(propValue, breakpoints, shouldUseValue = () => true) { | ||
const parsedProp = {}; | ||
if (propValue === null) { | ||
return parsedProp; | ||
} | ||
if (Array.isArray(propValue)) { | ||
propValue.forEach((value, index) => { | ||
if (value !== null && shouldUseValue(value) && breakpoints.keys[index]) { | ||
parsedProp[breakpoints.keys[index]] = value; | ||
} | ||
}); | ||
} else if (typeof propValue === 'object') { | ||
Object.keys(propValue).forEach(key => { | ||
const value = propValue[key]; | ||
if (value !== null && value !== undefined && shouldUseValue(value)) { | ||
parsedProp[key] = value; | ||
} | ||
}); | ||
} else { | ||
parsedProp[breakpoints.keys[0]] = propValue; | ||
} | ||
return parsedProp; | ||
} | ||
const GridRoot = createStyledComponent(_gridGenerator.generateGridColumnsStyles, _gridGenerator.generateGridColumnSpacingStyles, _gridGenerator.generateGridRowSpacingStyles, _gridGenerator.generateGridSizeStyles, _gridGenerator.generateGridDirectionStyles, _gridGenerator.generateGridStyles, _gridGenerator.generateGridOffsetStyles); | ||
@@ -73,2 +96,4 @@ const Grid = /*#__PURE__*/React.forwardRef(function Grid(inProps, ref) { | ||
wrap = 'wrap', | ||
size: sizeProp = {}, | ||
offset: offsetProp = {}, | ||
spacing: spacingProp = 0, | ||
@@ -80,15 +105,4 @@ rowSpacing: rowSpacingProp = spacingProp, | ||
} = props; | ||
// collect breakpoints related props because they can be customized from the theme. | ||
const gridSize = {}; | ||
const gridOffset = {}; | ||
const other = {}; | ||
Object.entries(rest).forEach(([key, val]) => { | ||
if (theme.breakpoints.values[key] !== undefined) { | ||
gridSize[key] = val; | ||
} else if (theme.breakpoints.values[key.replace('Offset', '')] !== undefined) { | ||
gridOffset[key.replace('Offset', '')] = val; | ||
} else { | ||
other[key] = val; | ||
} | ||
}); | ||
const size = parseResponsiveProp(sizeProp, theme.breakpoints, val => val !== false); | ||
const offset = parseResponsiveProp(offsetProp, theme.breakpoints); | ||
const columns = (_inProps$columns = inProps.columns) != null ? _inProps$columns : level ? undefined : columnsProp; | ||
@@ -108,4 +122,4 @@ const spacing = (_inProps$spacing = inProps.spacing) != null ? _inProps$spacing : level ? undefined : spacingProp; | ||
columnSpacing, | ||
gridSize, | ||
gridOffset | ||
size, | ||
offset | ||
}; | ||
@@ -118,3 +132,3 @@ const classes = useUtilityClasses(ownerState, theme); | ||
className: (0, _clsx.default)(classes.root, className), | ||
...other, | ||
...rest, | ||
children: React.Children.map(children, child => { | ||
@@ -139,16 +153,8 @@ if ( /*#__PURE__*/React.isValidElement(child) && (0, _isMuiElement.default)(child, ['Grid'])) { | ||
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]), | ||
lg: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number, _propTypes.default.bool]), | ||
lgOffset: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number]), | ||
md: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number, _propTypes.default.bool]), | ||
mdOffset: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number]), | ||
offset: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number])), _propTypes.default.object]), | ||
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]), | ||
sm: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number, _propTypes.default.bool]), | ||
smOffset: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number]), | ||
size: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool, _propTypes.default.number, _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool, _propTypes.default.number])), _propTypes.default.object]), | ||
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]), | ||
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]), | ||
wrap: _propTypes.default.oneOf(['nowrap', 'wrap-reverse', 'wrap']), | ||
xl: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number, _propTypes.default.bool]), | ||
xlOffset: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number]), | ||
xs: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number, _propTypes.default.bool]), | ||
xsOffset: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number]) | ||
wrap: _propTypes.default.oneOf(['nowrap', 'wrap-reverse', 'wrap']) | ||
} : void 0; | ||
@@ -155,0 +161,0 @@ |
@@ -55,34 +55,6 @@ "use strict"; | ||
/** | ||
* If a number, it sets the number of columns the grid item uses. | ||
* It can't be greater than the total number of columns of the container (12 by default). | ||
* If 'auto', the grid item's width matches its content. | ||
* If false, the prop is ignored. | ||
* If true, the grid item's width grows to use the space available in the grid container. | ||
* The value is applied for the `lg` breakpoint and wider screens if not overridden. | ||
* @default false | ||
* Defines the offset value for the type `item` components. | ||
*/ | ||
lg: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number, _propTypes.default.bool]), | ||
offset: _propTypes.default /* @typescript-to-proptypes-ignore */.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number])), _propTypes.default.object]), | ||
/** | ||
* If a number, it sets the margin-left equals to the number of columns the grid item uses. | ||
* If 'auto', the grid item push itself to the right-end of the container. | ||
* The value is applied for the `lg` breakpoint and wider screens if not overridden. | ||
*/ | ||
lgOffset: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number]), | ||
/** | ||
* If a number, it sets the number of columns the grid item uses. | ||
* It can't be greater than the total number of columns of the container (12 by default). | ||
* If 'auto', the grid item's width matches its content. | ||
* If false, the prop is ignored. | ||
* If true, the grid item's width grows to use the space available in the grid container. | ||
* The value is applied for the `md` breakpoint and wider screens if not overridden. | ||
* @default false | ||
*/ | ||
md: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number, _propTypes.default.bool]), | ||
/** | ||
* If a number, it sets the margin-left equals to the number of columns the grid item uses. | ||
* If 'auto', the grid item push itself to the right-end of the container. | ||
* The value is applied for the `md` breakpoint and wider screens if not overridden. | ||
*/ | ||
mdOffset: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number]), | ||
/** | ||
* Defines the vertical space between the type `item` components. | ||
@@ -93,18 +65,6 @@ * It overrides the value of the `spacing` prop. | ||
/** | ||
* If a number, it sets the number of columns the grid item uses. | ||
* It can't be greater than the total number of columns of the container (12 by default). | ||
* If 'auto', the grid item's width matches its content. | ||
* If false, the prop is ignored. | ||
* If true, the grid item's width grows to use the space available in the grid container. | ||
* The value is applied for the `sm` breakpoint and wider screens if not overridden. | ||
* @default false | ||
* Defines the size of the the type `item` components. | ||
*/ | ||
sm: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number, _propTypes.default.bool]), | ||
size: _propTypes.default /* @typescript-to-proptypes-ignore */.oneOfType([_propTypes.default.string, _propTypes.default.bool, _propTypes.default.number, _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool, _propTypes.default.number])), _propTypes.default.object]), | ||
/** | ||
* If a number, it sets the margin-left equals to the number of columns the grid item uses. | ||
* If 'auto', the grid item push itself to the right-end of the container. | ||
* The value is applied for the `sm` breakpoint and wider screens if not overridden. | ||
*/ | ||
smOffset: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number]), | ||
/** | ||
* Defines the space between the type `item` components. | ||
@@ -147,36 +107,4 @@ * It can only be used on a type `container` component. | ||
*/ | ||
wrap: _propTypes.default.oneOf(['nowrap', 'wrap-reverse', 'wrap']), | ||
/** | ||
* If a number, it sets the number of columns the grid item uses. | ||
* It can't be greater than the total number of columns of the container (12 by default). | ||
* If 'auto', the grid item's width matches its content. | ||
* If false, the prop is ignored. | ||
* If true, the grid item's width grows to use the space available in the grid container. | ||
* The value is applied for the `xl` breakpoint and wider screens if not overridden. | ||
* @default false | ||
*/ | ||
xl: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number, _propTypes.default.bool]), | ||
/** | ||
* If a number, it sets the margin-left equals to the number of columns the grid item uses. | ||
* If 'auto', the grid item push itself to the right-end of the container. | ||
* The value is applied for the `xl` breakpoint and wider screens if not overridden. | ||
*/ | ||
xlOffset: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number]), | ||
/** | ||
* If a number, it sets the number of columns the grid item uses. | ||
* It can't be greater than the total number of columns of the container (12 by default). | ||
* If 'auto', the grid item's width matches its content. | ||
* If false, the prop is ignored. | ||
* If true, the grid item's width grows to use the space available in the grid container. | ||
* The value is applied for all the screen sizes with the lowest priority. | ||
* @default false | ||
*/ | ||
xs: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number, _propTypes.default.bool]), | ||
/** | ||
* If a number, it sets the margin-left equals to the number of columns the grid item uses. | ||
* If 'auto', the grid item push itself to the right-end of the container. | ||
* The value is applied for the `xs` breakpoint and wider screens if not overridden. | ||
*/ | ||
xsOffset: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number]) | ||
wrap: _propTypes.default.oneOf(['nowrap', 'wrap-reverse', 'wrap']) | ||
} : void 0; | ||
var _default = exports.default = Grid; |
@@ -17,3 +17,3 @@ "use strict"; | ||
const WRAPS = ['nowrap', 'wrap-reverse', 'wrap']; | ||
const GRID_SIZES = ['auto', true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; | ||
const GRID_SIZES = ['auto', 'grow', 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; | ||
const gridClasses = (0, _generateUtilityClasses.default)('MuiGrid', ['root', 'container', 'item', | ||
@@ -20,0 +20,0 @@ // spacings |
@@ -42,5 +42,5 @@ "use strict"; | ||
const styles = {}; | ||
(0, _traverseBreakpoints.traverseBreakpoints)(theme.breakpoints, ownerState.gridSize, (appendStyle, value) => { | ||
(0, _traverseBreakpoints.traverseBreakpoints)(theme.breakpoints, ownerState.size, (appendStyle, value) => { | ||
let style = {}; | ||
if (value === true) { | ||
if (value === 'grow') { | ||
style = { | ||
@@ -79,3 +79,3 @@ flexBasis: 0, | ||
const styles = {}; | ||
(0, _traverseBreakpoints.traverseBreakpoints)(theme.breakpoints, ownerState.gridOffset, (appendStyle, value) => { | ||
(0, _traverseBreakpoints.traverseBreakpoints)(theme.breakpoints, ownerState.offset, (appendStyle, value) => { | ||
let style = {}; | ||
@@ -195,5 +195,5 @@ if (value === 'auto') { | ||
exports.generateGridStyles = generateGridStyles; | ||
const generateSizeClassNames = gridSize => { | ||
const generateSizeClassNames = size => { | ||
const classNames = []; | ||
Object.entries(gridSize).forEach(([key, value]) => { | ||
Object.entries(size).forEach(([key, value]) => { | ||
if (value !== false && value !== undefined) { | ||
@@ -200,0 +200,0 @@ classNames.push(`grid-${key}-${String(value)}`); |
{ | ||
"name": "@mui/system", | ||
"version": "6.0.0-alpha.13", | ||
"version": "6.0.0-alpha.14", | ||
"private": false, | ||
@@ -33,6 +33,6 @@ "author": "MUI Team", | ||
"prop-types": "^15.8.1", | ||
"@mui/private-theming": "6.0.0-alpha.13", | ||
"@mui/styled-engine": "6.0.0-alpha.13", | ||
"@mui/private-theming": "6.0.0-alpha.14", | ||
"@mui/types": "^7.2.14", | ||
"@mui/utils": "6.0.0-alpha.13" | ||
"@mui/styled-engine": "6.0.0-alpha.14", | ||
"@mui/utils": "6.0.0-alpha.14" | ||
}, | ||
@@ -39,0 +39,0 @@ "peerDependencies": { |
@@ -42,9 +42,32 @@ import * as React from 'react'; | ||
wrap, | ||
gridSize | ||
size | ||
} = ownerState; | ||
const slots = { | ||
root: ['root', container && 'container', wrap !== 'wrap' && `wrap-xs-${String(wrap)}`, ...generateDirectionClasses(direction), ...generateSizeClassNames(gridSize), ...(container ? generateSpacingClassNames(spacing, theme.breakpoints.keys[0]) : [])] | ||
root: ['root', container && 'container', wrap !== 'wrap' && `wrap-xs-${String(wrap)}`, ...generateDirectionClasses(direction), ...generateSizeClassNames(size), ...(container ? generateSpacingClassNames(spacing, theme.breakpoints.keys[0]) : [])] | ||
}; | ||
return composeClasses(slots, slot => generateUtilityClass(componentName, slot), {}); | ||
}; | ||
function parseResponsiveProp(propValue, breakpoints, shouldUseValue = () => true) { | ||
const parsedProp = {}; | ||
if (propValue === null) { | ||
return parsedProp; | ||
} | ||
if (Array.isArray(propValue)) { | ||
propValue.forEach((value, index) => { | ||
if (value !== null && shouldUseValue(value) && breakpoints.keys[index]) { | ||
parsedProp[breakpoints.keys[index]] = value; | ||
} | ||
}); | ||
} else if (typeof propValue === 'object') { | ||
Object.keys(propValue).forEach(key => { | ||
const value = propValue[key]; | ||
if (value !== null && value !== undefined && shouldUseValue(value)) { | ||
parsedProp[key] = value; | ||
} | ||
}); | ||
} else { | ||
parsedProp[breakpoints.keys[0]] = propValue; | ||
} | ||
return parsedProp; | ||
} | ||
const GridRoot = createStyledComponent(generateGridColumnsStyles, generateGridColumnSpacingStyles, generateGridRowSpacingStyles, generateGridSizeStyles, generateGridDirectionStyles, generateGridStyles, generateGridOffsetStyles); | ||
@@ -63,2 +86,4 @@ const Grid = /*#__PURE__*/React.forwardRef(function Grid(inProps, ref) { | ||
wrap = 'wrap', | ||
size: sizeProp = {}, | ||
offset: offsetProp = {}, | ||
spacing: spacingProp = 0, | ||
@@ -70,15 +95,4 @@ rowSpacing: rowSpacingProp = spacingProp, | ||
} = props; | ||
// collect breakpoints related props because they can be customized from the theme. | ||
const gridSize = {}; | ||
const gridOffset = {}; | ||
const other = {}; | ||
Object.entries(rest).forEach(([key, val]) => { | ||
if (theme.breakpoints.values[key] !== undefined) { | ||
gridSize[key] = val; | ||
} else if (theme.breakpoints.values[key.replace('Offset', '')] !== undefined) { | ||
gridOffset[key.replace('Offset', '')] = val; | ||
} else { | ||
other[key] = val; | ||
} | ||
}); | ||
const size = parseResponsiveProp(sizeProp, theme.breakpoints, val => val !== false); | ||
const offset = parseResponsiveProp(offsetProp, theme.breakpoints); | ||
const columns = inProps.columns ?? (level ? undefined : columnsProp); | ||
@@ -98,4 +112,4 @@ const spacing = inProps.spacing ?? (level ? undefined : spacingProp); | ||
columnSpacing, | ||
gridSize, | ||
gridOffset | ||
size, | ||
offset | ||
}; | ||
@@ -108,3 +122,3 @@ const classes = useUtilityClasses(ownerState, theme); | ||
className: clsx(classes.root, className), | ||
...other, | ||
...rest, | ||
children: React.Children.map(children, child => { | ||
@@ -128,16 +142,8 @@ if ( /*#__PURE__*/React.isValidElement(child) && isMuiElement(child, ['Grid'])) { | ||
direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]), | ||
lg: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]), | ||
lgOffset: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]), | ||
md: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]), | ||
mdOffset: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]), | ||
offset: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])), PropTypes.object]), | ||
rowSpacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]), | ||
sm: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]), | ||
smOffset: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]), | ||
size: PropTypes.oneOfType([PropTypes.string, PropTypes.bool, PropTypes.number, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.bool, PropTypes.number])), PropTypes.object]), | ||
spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]), | ||
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]), | ||
wrap: PropTypes.oneOf(['nowrap', 'wrap-reverse', 'wrap']), | ||
xl: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]), | ||
xlOffset: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]), | ||
xs: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]), | ||
xsOffset: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]) | ||
wrap: PropTypes.oneOf(['nowrap', 'wrap-reverse', 'wrap']) | ||
} : void 0; | ||
@@ -144,0 +150,0 @@ |
@@ -49,34 +49,6 @@ 'use client'; | ||
/** | ||
* If a number, it sets the number of columns the grid item uses. | ||
* It can't be greater than the total number of columns of the container (12 by default). | ||
* If 'auto', the grid item's width matches its content. | ||
* If false, the prop is ignored. | ||
* If true, the grid item's width grows to use the space available in the grid container. | ||
* The value is applied for the `lg` breakpoint and wider screens if not overridden. | ||
* @default false | ||
* Defines the offset value for the type `item` components. | ||
*/ | ||
lg: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]), | ||
offset: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.string, PropTypes.number, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])), PropTypes.object]), | ||
/** | ||
* If a number, it sets the margin-left equals to the number of columns the grid item uses. | ||
* If 'auto', the grid item push itself to the right-end of the container. | ||
* The value is applied for the `lg` breakpoint and wider screens if not overridden. | ||
*/ | ||
lgOffset: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]), | ||
/** | ||
* If a number, it sets the number of columns the grid item uses. | ||
* It can't be greater than the total number of columns of the container (12 by default). | ||
* If 'auto', the grid item's width matches its content. | ||
* If false, the prop is ignored. | ||
* If true, the grid item's width grows to use the space available in the grid container. | ||
* The value is applied for the `md` breakpoint and wider screens if not overridden. | ||
* @default false | ||
*/ | ||
md: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]), | ||
/** | ||
* If a number, it sets the margin-left equals to the number of columns the grid item uses. | ||
* If 'auto', the grid item push itself to the right-end of the container. | ||
* The value is applied for the `md` breakpoint and wider screens if not overridden. | ||
*/ | ||
mdOffset: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]), | ||
/** | ||
* Defines the vertical space between the type `item` components. | ||
@@ -87,18 +59,6 @@ * It overrides the value of the `spacing` prop. | ||
/** | ||
* If a number, it sets the number of columns the grid item uses. | ||
* It can't be greater than the total number of columns of the container (12 by default). | ||
* If 'auto', the grid item's width matches its content. | ||
* If false, the prop is ignored. | ||
* If true, the grid item's width grows to use the space available in the grid container. | ||
* The value is applied for the `sm` breakpoint and wider screens if not overridden. | ||
* @default false | ||
* Defines the size of the the type `item` components. | ||
*/ | ||
sm: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]), | ||
size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.string, PropTypes.bool, PropTypes.number, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.bool, PropTypes.number])), PropTypes.object]), | ||
/** | ||
* If a number, it sets the margin-left equals to the number of columns the grid item uses. | ||
* If 'auto', the grid item push itself to the right-end of the container. | ||
* The value is applied for the `sm` breakpoint and wider screens if not overridden. | ||
*/ | ||
smOffset: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]), | ||
/** | ||
* Defines the space between the type `item` components. | ||
@@ -141,36 +101,4 @@ * It can only be used on a type `container` component. | ||
*/ | ||
wrap: PropTypes.oneOf(['nowrap', 'wrap-reverse', 'wrap']), | ||
/** | ||
* If a number, it sets the number of columns the grid item uses. | ||
* It can't be greater than the total number of columns of the container (12 by default). | ||
* If 'auto', the grid item's width matches its content. | ||
* If false, the prop is ignored. | ||
* If true, the grid item's width grows to use the space available in the grid container. | ||
* The value is applied for the `xl` breakpoint and wider screens if not overridden. | ||
* @default false | ||
*/ | ||
xl: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]), | ||
/** | ||
* If a number, it sets the margin-left equals to the number of columns the grid item uses. | ||
* If 'auto', the grid item push itself to the right-end of the container. | ||
* The value is applied for the `xl` breakpoint and wider screens if not overridden. | ||
*/ | ||
xlOffset: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]), | ||
/** | ||
* If a number, it sets the number of columns the grid item uses. | ||
* It can't be greater than the total number of columns of the container (12 by default). | ||
* If 'auto', the grid item's width matches its content. | ||
* If false, the prop is ignored. | ||
* If true, the grid item's width grows to use the space available in the grid container. | ||
* The value is applied for all the screen sizes with the lowest priority. | ||
* @default false | ||
*/ | ||
xs: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]), | ||
/** | ||
* If a number, it sets the margin-left equals to the number of columns the grid item uses. | ||
* If 'auto', the grid item push itself to the right-end of the container. | ||
* The value is applied for the `xs` breakpoint and wider screens if not overridden. | ||
*/ | ||
xsOffset: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]) | ||
wrap: PropTypes.oneOf(['nowrap', 'wrap-reverse', 'wrap']) | ||
} : void 0; | ||
export default Grid; |
@@ -9,3 +9,3 @@ import generateUtilityClasses from '@mui/utils/generateUtilityClasses'; | ||
const WRAPS = ['nowrap', 'wrap-reverse', 'wrap']; | ||
const GRID_SIZES = ['auto', true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; | ||
const GRID_SIZES = ['auto', 'grow', 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; | ||
const gridClasses = generateUtilityClasses('MuiGrid', ['root', 'container', 'item', | ||
@@ -12,0 +12,0 @@ // spacings |
@@ -23,5 +23,5 @@ import { Breakpoints } from '../createTheme/createBreakpoints'; | ||
export declare const generateGridStyles: ({ ownerState }: Props) => {}; | ||
export declare const generateSizeClassNames: (gridSize: GridOwnerState['gridSize']) => string[]; | ||
export declare const generateSizeClassNames: (size: GridOwnerState['size']) => string[]; | ||
export declare const generateSpacingClassNames: (spacing: GridOwnerState['spacing'], smallestBreakpoint?: string) => string[]; | ||
export declare const generateDirectionClasses: (direction: ResponsiveStyleValue<GridDirection> | undefined) => string[]; | ||
export {}; |
@@ -36,5 +36,5 @@ import { traverseBreakpoints } from './traverseBreakpoints'; | ||
const styles = {}; | ||
traverseBreakpoints(theme.breakpoints, ownerState.gridSize, (appendStyle, value) => { | ||
traverseBreakpoints(theme.breakpoints, ownerState.size, (appendStyle, value) => { | ||
let style = {}; | ||
if (value === true) { | ||
if (value === 'grow') { | ||
style = { | ||
@@ -72,3 +72,3 @@ flexBasis: 0, | ||
const styles = {}; | ||
traverseBreakpoints(theme.breakpoints, ownerState.gridOffset, (appendStyle, value) => { | ||
traverseBreakpoints(theme.breakpoints, ownerState.offset, (appendStyle, value) => { | ||
let style = {}; | ||
@@ -180,5 +180,5 @@ if (value === 'auto') { | ||
}; | ||
export const generateSizeClassNames = gridSize => { | ||
export const generateSizeClassNames = size => { | ||
const classNames = []; | ||
Object.entries(gridSize).forEach(([key, value]) => { | ||
Object.entries(size).forEach(([key, value]) => { | ||
if (value !== false && value !== undefined) { | ||
@@ -185,0 +185,0 @@ classNames.push(`grid-${key}-${String(value)}`); |
import * as React from 'react'; | ||
import { OverrideProps, IfEquals } from '@mui/types'; | ||
import { OverrideProps, PartiallyRequired } from '@mui/types'; | ||
import { SxProps } from '../styleFunctionSx'; | ||
import { Theme, Breakpoint, BreakpointOverrides } from '../createTheme'; | ||
import { Theme, Breakpoint } from '../createTheme'; | ||
import { SystemProps } from '../Box'; | ||
@@ -12,91 +12,6 @@ type ResponsiveStyleValue<T> = T | Array<T | null> | { | ||
export type GridWrap = 'nowrap' | 'wrap' | 'wrap-reverse'; | ||
export type GridSize = 'auto' | number; | ||
export interface GridDefaultBreakpoints { | ||
export type GridSize = 'auto' | 'grow' | number | false; | ||
export type GridOffset = 'auto' | number; | ||
export interface GridBaseProps { | ||
/** | ||
* If a number, it sets the number of columns the grid item uses. | ||
* It can't be greater than the total number of columns of the container (12 by default). | ||
* If 'auto', the grid item's width matches its content. | ||
* If false, the prop is ignored. | ||
* If true, the grid item's width grows to use the space available in the grid container. | ||
* The value is applied for the `lg` breakpoint and wider screens if not overridden. | ||
* @default false | ||
*/ | ||
lg?: boolean | GridSize; | ||
/** | ||
* If a number, it sets the margin-left equals to the number of columns the grid item uses. | ||
* If 'auto', the grid item push itself to the right-end of the container. | ||
* The value is applied for the `lg` breakpoint and wider screens if not overridden. | ||
*/ | ||
lgOffset?: GridSize; | ||
/** | ||
* If a number, it sets the number of columns the grid item uses. | ||
* It can't be greater than the total number of columns of the container (12 by default). | ||
* If 'auto', the grid item's width matches its content. | ||
* If false, the prop is ignored. | ||
* If true, the grid item's width grows to use the space available in the grid container. | ||
* The value is applied for the `md` breakpoint and wider screens if not overridden. | ||
* @default false | ||
*/ | ||
md?: boolean | GridSize; | ||
/** | ||
* If a number, it sets the margin-left equals to the number of columns the grid item uses. | ||
* If 'auto', the grid item push itself to the right-end of the container. | ||
* The value is applied for the `md` breakpoint and wider screens if not overridden. | ||
*/ | ||
mdOffset?: GridSize; | ||
/** | ||
* If a number, it sets the number of columns the grid item uses. | ||
* It can't be greater than the total number of columns of the container (12 by default). | ||
* If 'auto', the grid item's width matches its content. | ||
* If false, the prop is ignored. | ||
* If true, the grid item's width grows to use the space available in the grid container. | ||
* The value is applied for the `sm` breakpoint and wider screens if not overridden. | ||
* @default false | ||
*/ | ||
sm?: boolean | GridSize; | ||
/** | ||
* If a number, it sets the margin-left equals to the number of columns the grid item uses. | ||
* If 'auto', the grid item push itself to the right-end of the container. | ||
* The value is applied for the `sm` breakpoint and wider screens if not overridden. | ||
*/ | ||
smOffset?: GridSize; | ||
/** | ||
* If a number, it sets the number of columns the grid item uses. | ||
* It can't be greater than the total number of columns of the container (12 by default). | ||
* If 'auto', the grid item's width matches its content. | ||
* If false, the prop is ignored. | ||
* If true, the grid item's width grows to use the space available in the grid container. | ||
* The value is applied for the `xl` breakpoint and wider screens if not overridden. | ||
* @default false | ||
*/ | ||
xl?: boolean | GridSize; | ||
/** | ||
* If a number, it sets the margin-left equals to the number of columns the grid item uses. | ||
* If 'auto', the grid item push itself to the right-end of the container. | ||
* The value is applied for the `xl` breakpoint and wider screens if not overridden. | ||
*/ | ||
xlOffset?: GridSize; | ||
/** | ||
* If a number, it sets the number of columns the grid item uses. | ||
* It can't be greater than the total number of columns of the container (12 by default). | ||
* If 'auto', the grid item's width matches its content. | ||
* If false, the prop is ignored. | ||
* If true, the grid item's width grows to use the space available in the grid container. | ||
* The value is applied for all the screen sizes with the lowest priority. | ||
* @default false | ||
*/ | ||
xs?: boolean | GridSize; | ||
/** | ||
* If a number, it sets the margin-left equals to the number of columns the grid item uses. | ||
* If 'auto', the grid item push itself to the right-end of the container. | ||
* The value is applied for the `xs` breakpoint and wider screens if not overridden. | ||
*/ | ||
xsOffset?: GridSize; | ||
} | ||
type CustomBreakpoints = Partial<Record<Breakpoint, boolean | GridSize> & Record<`${Breakpoint}Offset`, GridSize>>; | ||
interface BreakpointOverridesEmpty { | ||
} | ||
type Breakpoints = IfEquals<BreakpointOverrides, BreakpointOverridesEmpty, GridDefaultBreakpoints, CustomBreakpoints>; | ||
export interface GridBaseProps extends Breakpoints { | ||
/** | ||
* The content of the component. | ||
@@ -128,2 +43,6 @@ */ | ||
/** | ||
* Defines the offset value for the type `item` components. | ||
*/ | ||
offset?: ResponsiveStyleValue<GridOffset>; | ||
/** | ||
* @internal | ||
@@ -157,2 +76,6 @@ * The level of the grid starts from `0` | ||
/** | ||
* Defines the size of the the type `item` components. | ||
*/ | ||
size?: ResponsiveStyleValue<GridSize>; | ||
/** | ||
* Defines the space between the type `item` components. | ||
@@ -170,7 +93,3 @@ * It can only be used on a type `container` component. | ||
} | ||
export interface GridOwnerState extends GridBaseProps { | ||
unstable_level: number; | ||
gridSize: Partial<Record<Breakpoint, GridSize | boolean>>; | ||
gridOffset: Partial<Record<Breakpoint, GridSize>>; | ||
} | ||
export type GridOwnerState = PartiallyRequired<GridBaseProps, 'size' | 'offset' | 'unstable_level'>; | ||
export interface GridTypeMap<AdditionalProps = {}, DefaultComponent extends React.ElementType = 'div'> { | ||
@@ -177,0 +96,0 @@ props: AdditionalProps & GridBaseProps & { |
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1490116
17710
+ Added@mui/private-theming@6.0.0-alpha.14(transitive)
+ Added@mui/styled-engine@6.0.0-alpha.14(transitive)
+ Added@mui/utils@6.0.0-alpha.14(transitive)
- Removed@mui/private-theming@6.0.0-alpha.13(transitive)
- Removed@mui/styled-engine@6.0.0-alpha.13(transitive)
- Removed@mui/utils@6.0.0-alpha.13(transitive)
Updated@mui/utils@6.0.0-alpha.14