UNPKG

@material-ui/core

Version:

React components that implement Google's Material Design.

144 lines (114 loc) 4.8 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.styles = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _clsx = _interopRequireDefault(require("clsx")); var _styles = require("../styles"); var _utils = require("../utils"); var styles = function styles(theme) { var _root; return { /* Styles applied to the root element. */ root: (_root = { width: '100%', marginLeft: 'auto', boxSizing: 'border-box', marginRight: 'auto', paddingLeft: theme.spacing(2), paddingRight: theme.spacing(2) }, (0, _defineProperty2.default)(_root, theme.breakpoints.up('sm'), { paddingLeft: theme.spacing(3), paddingRight: theme.spacing(3) }), (0, _defineProperty2.default)(_root, theme.breakpoints.up('md'), { paddingLeft: theme.spacing(4), paddingRight: theme.spacing(4) }), _root), /* Styles applied to the root element if `fixed={true}`. */ fixed: Object.keys(theme.breakpoints.values).reduce(function (acc, breakpoint) { var value = theme.breakpoints.values[breakpoint]; if (value !== 0) { acc[theme.breakpoints.up(breakpoint)] = { maxWidth: value }; } return acc; }, {}), /* Styles applied to the root element if `maxWidth="xs"`. */ maxWidthXs: (0, _defineProperty2.default)({}, theme.breakpoints.up('xs'), { maxWidth: Math.max(theme.breakpoints.values.xs, 444) }), /* Styles applied to the root element if `maxWidth="sm"`. */ maxWidthSm: (0, _defineProperty2.default)({}, theme.breakpoints.up('sm'), { maxWidth: theme.breakpoints.values.sm }), /* Styles applied to the root element if `maxWidth="md"`. */ maxWidthMd: (0, _defineProperty2.default)({}, theme.breakpoints.up('md'), { maxWidth: theme.breakpoints.values.md }), /* Styles applied to the root element if `maxWidth="lg"`. */ maxWidthLg: (0, _defineProperty2.default)({}, theme.breakpoints.up('lg'), { maxWidth: theme.breakpoints.values.lg }), /* Styles applied to the root element if `maxWidth="xl"`. */ maxWidthXl: (0, _defineProperty2.default)({}, theme.breakpoints.up('xl'), { maxWidth: theme.breakpoints.values.xl }) }; }; exports.styles = styles; var Container = _react.default.forwardRef(function Container(props, ref) { var classes = props.classes, className = props.className, _props$component = props.component, Component = _props$component === void 0 ? 'div' : _props$component, _props$fixed = props.fixed, fixed = _props$fixed === void 0 ? false : _props$fixed, _props$maxWidth = props.maxWidth, maxWidth = _props$maxWidth === void 0 ? 'lg' : _props$maxWidth, other = (0, _objectWithoutProperties2.default)(props, ["classes", "className", "component", "fixed", "maxWidth"]); return _react.default.createElement(Component, (0, _extends2.default)({ className: (0, _clsx.default)(classes.root, className, fixed && classes.fixed, maxWidth !== false && classes["maxWidth".concat((0, _utils.capitalize)(String(maxWidth)))]), ref: ref }, other)); }); process.env.NODE_ENV !== "production" ? Container.propTypes = { children: _propTypes.default.node.isRequired, /** * Override or extend the styles applied to the component. * See [CSS API](#css) below for more details. */ classes: _propTypes.default.object.isRequired, /** * @ignore */ className: _propTypes.default.string, /** * The component used for the root node. * Either a string to use a DOM element or a component. */ component: _propTypes.default.elementType, /** * Set the max-width to match the min-width of the current breakpoint. * This is useful if you'd prefer to design for a fixed set of sizes * instead of trying to accommodate a fully fluid viewport. * It's fluid by default. */ fixed: _propTypes.default.bool, /** * Determine the max-width of the container. * The container width grows with the size of the screen. * Set to `false` to disable `maxWidth`. */ maxWidth: _propTypes.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false]) } : void 0; var _default = (0, _styles.withStyles)(styles, { name: 'MuiContainer' })(Container); exports.default = _default;