@mui/material
Version:
Material UI is an open-source React component library that implements Google's Material Design. It's comprehensive and can be used in production out of the box.
47 lines (46 loc) • 1.68 kB
JavaScript
'use client';
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = ThemeProvider;
var React = _interopRequireWildcard(require("react"));
var _ThemeProviderNoVars = _interopRequireDefault(require("./ThemeProviderNoVars"));
var _ThemeProviderWithVars = require("./ThemeProviderWithVars");
var _identifier = _interopRequireDefault(require("./identifier"));
var _jsxRuntime = require("react/jsx-runtime");
function ThemeProvider({
theme,
...props
}) {
if (typeof theme === 'function') {
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ThemeProviderNoVars.default, {
theme: theme,
...props
});
}
const muiTheme = _identifier.default in theme ? theme[_identifier.default] : theme;
if (!('colorSchemes' in muiTheme)) {
if (!('vars' in muiTheme)) {
// For non-CSS variables themes, set `vars` to null to prevent theme inheritance from the upper theme.
// The example use case is the docs demo that uses ThemeProvider to customize the theme while the upper theme is using CSS variables.
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ThemeProviderNoVars.default, {
theme: {
...theme,
vars: null
},
...props
});
}
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ThemeProviderNoVars.default, {
theme: theme,
...props
});
}
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ThemeProviderWithVars.CssVarsProvider, {
theme: theme,
...props
});
}
;