@material-ui/core
Version:
React components that implement Google's Material Design.
75 lines (60 loc) • 2.49 kB
JavaScript
var warnOnce;
export default function createSpacing() {
var spacingInput = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 8;
// Already transformed.
if (spacingInput.mui) {
return spacingInput;
} // All components align to an 8dp square baseline grid for mobile, tablet, and desktop.
// https://material.io/design/layout/understanding-layout.html#pixel-density
var transform;
if (typeof spacingInput === 'function') {
transform = spacingInput;
} else {
if (process.env.NODE_ENV !== 'production') {
if (typeof spacingInput !== 'number') {
console.error(["Material-UI: the `theme.spacing` value (".concat(spacingInput, ") is invalid."), 'It should be a number or a function.'].join('\n'));
}
}
transform = function transform(factor) {
if (process.env.NODE_ENV !== 'production') {
if (typeof factor !== 'number') {
console.error("Expected spacing argument to be a number, got ".concat(factor));
}
}
return spacingInput * factor;
};
}
var spacing = function spacing() {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (process.env.NODE_ENV !== 'production') {
if (!(args.length <= 4)) {
console.error("Material-UI: Too many arguments provided, expected between 0 and 4, got ".concat(args.length));
}
}
if (args.length === 0) {
return transform(1);
}
if (args.length === 1) {
return transform(args[0]);
}
return args.map(function (factor) {
var output = transform(factor);
return typeof output === 'number' ? "".concat(output, "px") : output;
}).join(' ');
}; // Backward compatibility, to remove in v5.
Object.defineProperty(spacing, 'unit', {
get: function get() {
if (process.env.NODE_ENV !== 'production') {
if (!warnOnce || process.env.NODE_ENV === 'test') {
console.error(['Material-UI: theme.spacing.unit usage has been deprecated.', 'It will be removed in v5.', 'You can replace `theme.spacing.unit * y` with `theme.spacing(y)`.', '', 'You can use the `https://github.com/mui-org/material-ui/tree/master/packages/material-ui-codemod/README.md#theme-spacing-api` migration helper to make the process smoother.'].join('\n'));
}
warnOnce = true;
}
return spacingInput;
}
});
spacing.mui = true;
return spacing;
}