UNPKG

@material-ui/core

Version:

React components that implement Google's Material Design.

165 lines (134 loc) 5.68 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); 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 = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _clsx = _interopRequireDefault(require("clsx")); var _withStyles = _interopRequireDefault(require("../styles/withStyles")); var _capitalize = _interopRequireDefault(require("../utils/capitalize")); var styles = function styles(theme) { return { /* Styles applied to the root element. */ root: (0, _defineProperty2.default)({ width: '100%', marginLeft: 'auto', boxSizing: 'border-box', marginRight: 'auto', paddingLeft: theme.spacing(2), paddingRight: theme.spacing(2), display: 'block' }, theme.breakpoints.up('sm'), { paddingLeft: theme.spacing(3), paddingRight: theme.spacing(3) }), /* Styles applied to the root element if `disableGutters={true}`. */ disableGutters: { paddingLeft: 0, paddingRight: 0 }, /* 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 = /*#__PURE__*/React.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$disableGutters = props.disableGutters, disableGutters = _props$disableGutters === void 0 ? false : _props$disableGutters, _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", "disableGutters", "fixed", "maxWidth"]); return /*#__PURE__*/React.createElement(Component, (0, _extends2.default)({ className: (0, _clsx.default)(classes.root, className, fixed && classes.fixed, disableGutters && classes.disableGutters, maxWidth !== false && classes["maxWidth".concat((0, _capitalize.default)(String(maxWidth)))]), ref: ref }, other)); }); process.env.NODE_ENV !== "production" ? Container.propTypes = { // ----------------------------- Warning -------------------------------- // | These PropTypes are generated from the TypeScript type definitions | // | To update them edit the d.ts file and run "yarn proptypes" | // ---------------------------------------------------------------------- /** * @ignore */ children: _propTypes.default /* @typescript-to-proptypes-ignore */ .node.isRequired, /** * Override or extend the styles applied to the component. * See [CSS API](#css) below for more details. */ classes: _propTypes.default.object, /** * @ignore */ className: _propTypes.default.string, /** * The component used for the root node. * Either a string to use a HTML element or a component. */ component: _propTypes.default /* @typescript-to-proptypes-ignore */ .elementType, /** * If `true`, the left and right padding is removed. */ disableGutters: _propTypes.default.bool, /** * 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(['lg', 'md', 'sm', 'xl', 'xs', false]) } : void 0; var _default = (0, _withStyles.default)(styles, { name: 'MuiContainer' })(Container); exports.default = _default;