UNPKG

5.34 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports.default = exports.styles = void 0;
9
10var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
12var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
14var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
16var _react = _interopRequireDefault(require("react"));
17
18var _propTypes = _interopRequireDefault(require("prop-types"));
19
20var _clsx = _interopRequireDefault(require("clsx"));
21
22var _withStyles = _interopRequireDefault(require("../styles/withStyles"));
23
24var _capitalize = _interopRequireDefault(require("../utils/capitalize"));
25
26var styles = function styles(theme) {
27 var _root;
28
29 return {
30 /* Styles applied to the root element. */
31 root: (_root = {
32 width: '100%',
33 marginLeft: 'auto',
34 boxSizing: 'border-box',
35 marginRight: 'auto',
36 paddingLeft: theme.spacing(2),
37 paddingRight: theme.spacing(2)
38 }, (0, _defineProperty2.default)(_root, theme.breakpoints.up('sm'), {
39 paddingLeft: theme.spacing(3),
40 paddingRight: theme.spacing(3)
41 }), (0, _defineProperty2.default)(_root, theme.breakpoints.up('md'), {
42 paddingLeft: theme.spacing(4),
43 paddingRight: theme.spacing(4)
44 }), _root),
45
46 /* Styles applied to the root element if `disableGutters={true}`. */
47 disableGutters: {
48 paddingLeft: 0,
49 paddingRight: 0
50 },
51
52 /* Styles applied to the root element if `fixed={true}`. */
53 fixed: Object.keys(theme.breakpoints.values).reduce(function (acc, breakpoint) {
54 var value = theme.breakpoints.values[breakpoint];
55
56 if (value !== 0) {
57 acc[theme.breakpoints.up(breakpoint)] = {
58 maxWidth: value
59 };
60 }
61
62 return acc;
63 }, {}),
64
65 /* Styles applied to the root element if `maxWidth="xs"`. */
66 maxWidthXs: (0, _defineProperty2.default)({}, theme.breakpoints.up('xs'), {
67 maxWidth: Math.max(theme.breakpoints.values.xs, 444)
68 }),
69
70 /* Styles applied to the root element if `maxWidth="sm"`. */
71 maxWidthSm: (0, _defineProperty2.default)({}, theme.breakpoints.up('sm'), {
72 maxWidth: theme.breakpoints.values.sm
73 }),
74
75 /* Styles applied to the root element if `maxWidth="md"`. */
76 maxWidthMd: (0, _defineProperty2.default)({}, theme.breakpoints.up('md'), {
77 maxWidth: theme.breakpoints.values.md
78 }),
79
80 /* Styles applied to the root element if `maxWidth="lg"`. */
81 maxWidthLg: (0, _defineProperty2.default)({}, theme.breakpoints.up('lg'), {
82 maxWidth: theme.breakpoints.values.lg
83 }),
84
85 /* Styles applied to the root element if `maxWidth="xl"`. */
86 maxWidthXl: (0, _defineProperty2.default)({}, theme.breakpoints.up('xl'), {
87 maxWidth: theme.breakpoints.values.xl
88 })
89 };
90};
91
92exports.styles = styles;
93
94var Container = _react.default.forwardRef(function Container(props, ref) {
95 var classes = props.classes,
96 className = props.className,
97 _props$component = props.component,
98 Component = _props$component === void 0 ? 'div' : _props$component,
99 _props$disableGutters = props.disableGutters,
100 disableGutters = _props$disableGutters === void 0 ? false : _props$disableGutters,
101 _props$fixed = props.fixed,
102 fixed = _props$fixed === void 0 ? false : _props$fixed,
103 _props$maxWidth = props.maxWidth,
104 maxWidth = _props$maxWidth === void 0 ? 'lg' : _props$maxWidth,
105 other = (0, _objectWithoutProperties2.default)(props, ["classes", "className", "component", "disableGutters", "fixed", "maxWidth"]);
106 return _react.default.createElement(Component, (0, _extends2.default)({
107 className: (0, _clsx.default)(classes.root, className, fixed && classes.fixed, disableGutters && classes.disableGutters, maxWidth !== false && classes["maxWidth".concat((0, _capitalize.default)(String(maxWidth)))]),
108 ref: ref
109 }, other));
110});
111
112process.env.NODE_ENV !== "production" ? Container.propTypes = {
113 children: _propTypes.default.node.isRequired,
114
115 /**
116 * Override or extend the styles applied to the component.
117 * See [CSS API](#css) below for more details.
118 */
119 classes: _propTypes.default.object.isRequired,
120
121 /**
122 * @ignore
123 */
124 className: _propTypes.default.string,
125
126 /**
127 * The component used for the root node.
128 * Either a string to use a DOM element or a component.
129 */
130 component: _propTypes.default.elementType,
131
132 /**
133 * If `true`, the left and right padding is removed.
134 */
135 disableGutters: _propTypes.default.bool,
136
137 /**
138 * Set the max-width to match the min-width of the current breakpoint.
139 * This is useful if you'd prefer to design for a fixed set of sizes
140 * instead of trying to accommodate a fully fluid viewport.
141 * It's fluid by default.
142 */
143 fixed: _propTypes.default.bool,
144
145 /**
146 * Determine the max-width of the container.
147 * The container width grows with the size of the screen.
148 * Set to `false` to disable `maxWidth`.
149 */
150 maxWidth: _propTypes.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false])
151} : void 0;
152
153var _default = (0, _withStyles.default)(styles, {
154 name: 'MuiContainer'
155})(Container);
156
157exports.default = _default;
\No newline at end of file