UNPKG

4.7 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports.createMuiTheme = createMuiTheme;
9exports.default = void 0;
10
11var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
13var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
14
15var _utils = require("@material-ui/utils");
16
17var _createBreakpoints = _interopRequireDefault(require("./createBreakpoints"));
18
19var _createMixins = _interopRequireDefault(require("./createMixins"));
20
21var _createPalette = _interopRequireDefault(require("./createPalette"));
22
23var _createTypography = _interopRequireDefault(require("./createTypography"));
24
25var _shadows = _interopRequireDefault(require("./shadows"));
26
27var _shape = _interopRequireDefault(require("./shape"));
28
29var _createSpacing = _interopRequireDefault(require("./createSpacing"));
30
31var _transitions = _interopRequireDefault(require("./transitions"));
32
33var _zIndex = _interopRequireDefault(require("./zIndex"));
34
35function createTheme() {
36 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
37 var _options$breakpoints = options.breakpoints,
38 breakpointsInput = _options$breakpoints === void 0 ? {} : _options$breakpoints,
39 _options$mixins = options.mixins,
40 mixinsInput = _options$mixins === void 0 ? {} : _options$mixins,
41 _options$palette = options.palette,
42 paletteInput = _options$palette === void 0 ? {} : _options$palette,
43 spacingInput = options.spacing,
44 _options$typography = options.typography,
45 typographyInput = _options$typography === void 0 ? {} : _options$typography,
46 other = (0, _objectWithoutProperties2.default)(options, ["breakpoints", "mixins", "palette", "spacing", "typography"]);
47 var palette = (0, _createPalette.default)(paletteInput);
48 var breakpoints = (0, _createBreakpoints.default)(breakpointsInput);
49 var spacing = (0, _createSpacing.default)(spacingInput);
50 var muiTheme = (0, _utils.deepmerge)({
51 breakpoints: breakpoints,
52 direction: 'ltr',
53 mixins: (0, _createMixins.default)(breakpoints, spacing, mixinsInput),
54 overrides: {},
55 // Inject custom styles
56 palette: palette,
57 props: {},
58 // Provide default props
59 shadows: _shadows.default,
60 typography: (0, _createTypography.default)(palette, typographyInput),
61 spacing: spacing,
62 shape: _shape.default,
63 transitions: _transitions.default,
64 zIndex: _zIndex.default
65 }, other);
66
67 for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
68 args[_key - 1] = arguments[_key];
69 }
70
71 muiTheme = args.reduce(function (acc, argument) {
72 return (0, _utils.deepmerge)(acc, argument);
73 }, muiTheme);
74
75 if (process.env.NODE_ENV !== 'production') {
76 var pseudoClasses = ['checked', 'disabled', 'error', 'focused', 'focusVisible', 'required', 'expanded', 'selected'];
77
78 var traverse = function traverse(node, parentKey) {
79 var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
80 var key; // eslint-disable-next-line guard-for-in, no-restricted-syntax
81
82 for (key in node) {
83 var child = node[key];
84
85 if (depth === 1) {
86 if (key.indexOf('Mui') === 0 && child) {
87 traverse(child, key, depth + 1);
88 }
89 } else if (pseudoClasses.indexOf(key) !== -1 && Object.keys(child).length > 0) {
90 if (process.env.NODE_ENV !== 'production') {
91 console.error(["Material-UI: The `".concat(parentKey, "` component increases ") + "the CSS specificity of the `".concat(key, "` internal state."), 'You can not override it like this: ', JSON.stringify(node, null, 2), '', 'Instead, you need to use the $ruleName syntax:', JSON.stringify({
92 root: (0, _defineProperty2.default)({}, "&$".concat(key), child)
93 }, null, 2), '', 'https://material-ui.com/r/pseudo-classes-guide'].join('\n'));
94 } // Remove the style to prevent global conflicts.
95
96
97 node[key] = {};
98 }
99 }
100 };
101
102 traverse(muiTheme.overrides);
103 }
104
105 return muiTheme;
106}
107
108var warnedOnce = false;
109
110function createMuiTheme() {
111 if (process.env.NODE_ENV !== 'production') {
112 if (!warnedOnce) {
113 warnedOnce = true;
114 console.error(['Material-UI: the createMuiTheme function was renamed to createTheme.', '', "You should use `import { createTheme } from '@material-ui/core/styles'`"].join('\n'));
115 }
116 }
117
118 return createTheme.apply(void 0, arguments);
119}
120
121var _default = createTheme;
122exports.default = _default;
\No newline at end of file