@mui/material
Version:
React components that implement Google's Material Design.
105 lines (85 loc) • 3.28 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.defaultOpacity = exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
var _utils = require("@mui/utils");
var _system = require("@mui/system");
var _createTheme = _interopRequireDefault(require("./createTheme"));
var _createPalette = _interopRequireDefault(require("./createPalette"));
const _excluded = ["colorSchemes", "opacity"],
_excluded2 = ["palette"];
const defaultOpacity = {
active: 0.54,
hover: 0.04,
selected: 0.08,
disabled: 0.26,
focus: 0.12
};
exports.defaultOpacity = defaultOpacity;
function createTheme(options = {}, ...args) {
var _colorSchemesInput$li, _colorSchemesInput$da;
const {
colorSchemes: colorSchemesInput = {},
opacity: opacityInput = {}
} = options,
input = (0, _objectWithoutPropertiesLoose2.default)(options, _excluded); // eslint-disable-next-line prefer-const
let _createThemeWithoutVa = (0, _createTheme.default)((0, _extends2.default)({}, input, colorSchemesInput.light && {
palette: (_colorSchemesInput$li = colorSchemesInput.light) == null ? void 0 : _colorSchemesInput$li.palette
})),
{
palette: lightPalette
} = _createThemeWithoutVa,
muiTheme = (0, _objectWithoutPropertiesLoose2.default)(_createThemeWithoutVa, _excluded2);
const {
palette: darkPalette
} = (0, _createTheme.default)({
palette: (0, _extends2.default)({
mode: 'dark'
}, (_colorSchemesInput$da = colorSchemesInput.dark) == null ? void 0 : _colorSchemesInput$da.palette)
});
colorSchemesInput.light = {
palette: lightPalette
};
colorSchemesInput.dark = {
palette: darkPalette
};
const colorSchemes = {};
Object.keys(colorSchemesInput).forEach(key => {
const palette = (0, _createPalette.default)(colorSchemesInput[key].palette);
Object.keys(palette).forEach(color => {
const colors = palette[color];
if (colors.main) {
palette[color].mainChannel = (0, _system.colorChannel)(colors.main);
}
if (colors.light) {
palette[color].lightChannel = (0, _system.colorChannel)(colors.light);
}
if (colors.dark) {
palette[color].darkChannel = (0, _system.colorChannel)(colors.dark);
}
if (colors.primary) {
palette[color].primaryChannel = (0, _system.colorChannel)(colors.primary);
}
if (colors.secondary) {
palette[color].secondaryChannel = (0, _system.colorChannel)(colors.secondary);
}
if (colors.disabled) {
palette[color].disabledChannel = (0, _system.colorChannel)(colors.disabled);
}
});
colorSchemes[key] = {
palette
};
});
const opacity = (0, _extends2.default)({}, defaultOpacity, opacityInput);
muiTheme.colorSchemes = colorSchemes;
muiTheme.opacity = opacity;
muiTheme = args.reduce((acc, argument) => (0, _utils.deepmerge)(acc, argument), muiTheme);
return muiTheme;
}
var _default = createTheme;
exports.default = _default;
;