1 | "use strict";
|
2 |
|
3 | var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
4 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
5 | Object.defineProperty(exports, "__esModule", {
|
6 | value: true
|
7 | });
|
8 | Object.defineProperty(exports, "createMuiTheme", {
|
9 | enumerable: true,
|
10 | get: function () {
|
11 | return _createThemeNoVars.createMuiTheme;
|
12 | }
|
13 | });
|
14 | exports.default = createTheme;
|
15 | var _createPalette = _interopRequireDefault(require("./createPalette"));
|
16 | var _createThemeWithVars = _interopRequireDefault(require("./createThemeWithVars"));
|
17 | var _createThemeNoVars = _interopRequireWildcard(require("./createThemeNoVars"));
|
18 |
|
19 | function attachColorScheme(theme, scheme, colorScheme) {
|
20 | if (!theme.colorSchemes) {
|
21 | return undefined;
|
22 | }
|
23 | if (colorScheme) {
|
24 | theme.colorSchemes[scheme] = {
|
25 | ...(colorScheme !== true && colorScheme),
|
26 | palette: (0, _createPalette.default)({
|
27 | ...(colorScheme === true ? {} : colorScheme.palette),
|
28 | mode: scheme
|
29 | })
|
30 | };
|
31 | }
|
32 | }
|
33 |
|
34 |
|
35 |
|
36 |
|
37 |
|
38 |
|
39 |
|
40 | function createTheme(options = {},
|
41 | // cast type to skip module augmentation test
|
42 | ...args) {
|
43 | const {
|
44 | palette,
|
45 | cssVariables = false,
|
46 | colorSchemes: initialColorSchemes = !palette ? {
|
47 | light: true
|
48 | } : undefined,
|
49 | defaultColorScheme: initialDefaultColorScheme = palette?.mode,
|
50 | ...rest
|
51 | } = options;
|
52 | const defaultColorSchemeInput = initialDefaultColorScheme || 'light';
|
53 | const defaultScheme = initialColorSchemes?.[defaultColorSchemeInput];
|
54 | const colorSchemesInput = {
|
55 | ...initialColorSchemes,
|
56 | ...(palette ? {
|
57 | [defaultColorSchemeInput]: {
|
58 | ...(typeof defaultScheme !== 'boolean' && defaultScheme),
|
59 | palette
|
60 | }
|
61 | } : undefined)
|
62 | };
|
63 | if (cssVariables === false) {
|
64 | if (!('colorSchemes' in options)) {
|
65 |
|
66 | return (0, _createThemeNoVars.default)(options, ...args);
|
67 | }
|
68 | let paletteOptions = palette;
|
69 | if (!('palette' in options)) {
|
70 | if (colorSchemesInput[defaultColorSchemeInput]) {
|
71 | if (colorSchemesInput[defaultColorSchemeInput] !== true) {
|
72 | paletteOptions = colorSchemesInput[defaultColorSchemeInput].palette;
|
73 | } else if (defaultColorSchemeInput === 'dark') {
|
74 |
|
75 | paletteOptions = {
|
76 | mode: 'dark'
|
77 | };
|
78 | }
|
79 | }
|
80 | }
|
81 | const theme = (0, _createThemeNoVars.default)({
|
82 | ...options,
|
83 | palette: paletteOptions
|
84 | }, ...args);
|
85 | theme.defaultColorScheme = defaultColorSchemeInput;
|
86 | theme.colorSchemes = colorSchemesInput;
|
87 | if (theme.palette.mode === 'light') {
|
88 | theme.colorSchemes.light = {
|
89 | ...(colorSchemesInput.light !== true && colorSchemesInput.light),
|
90 | palette: theme.palette
|
91 | };
|
92 | attachColorScheme(theme, 'dark', colorSchemesInput.dark);
|
93 | }
|
94 | if (theme.palette.mode === 'dark') {
|
95 | theme.colorSchemes.dark = {
|
96 | ...(colorSchemesInput.dark !== true && colorSchemesInput.dark),
|
97 | palette: theme.palette
|
98 | };
|
99 | attachColorScheme(theme, 'light', colorSchemesInput.light);
|
100 | }
|
101 | return theme;
|
102 | }
|
103 | if (!palette && !('light' in colorSchemesInput) && defaultColorSchemeInput === 'light') {
|
104 | colorSchemesInput.light = true;
|
105 | }
|
106 | return (0, _createThemeWithVars.default)({
|
107 | ...rest,
|
108 | colorSchemes: colorSchemesInput,
|
109 | defaultColorScheme: defaultColorSchemeInput,
|
110 | ...(typeof cssVariables !== 'boolean' && cssVariables)
|
111 | }, ...args);
|
112 | } |
\ | No newline at end of file |