@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
33 lines (32 loc) • 1.54 kB
JavaScript
"use client";
require("../../../_virtual/_rolldown/runtime.cjs");
const require_default_theme = require("../default-theme.cjs");
const require_merge_mantine_theme = require("../merge-mantine-theme/merge-mantine-theme.cjs");
let react = require("react");
let react_jsx_runtime = require("react/jsx-runtime");
//#region packages/@mantine/core/src/core/MantineProvider/MantineThemeProvider/MantineThemeProvider.tsx
const MantineThemeContext = (0, react.createContext)(null);
const useSafeMantineTheme = () => (0, react.use)(MantineThemeContext) || require_default_theme.DEFAULT_THEME;
function useMantineTheme() {
const ctx = (0, react.use)(MantineThemeContext);
if (!ctx) throw new Error("@mantine/core: MantineProvider was not found in component tree, make sure you have it in your app");
return ctx;
}
function MantineThemeProvider({ theme, children, inherit = true }) {
const parentTheme = useSafeMantineTheme();
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MantineThemeContext, {
value: (0, react.useMemo)(() => require_merge_mantine_theme.mergeMantineTheme(inherit ? parentTheme : require_default_theme.DEFAULT_THEME, theme), [
theme,
parentTheme,
inherit
]),
children
});
}
MantineThemeProvider.displayName = "@mantine/core/MantineThemeProvider";
//#endregion
exports.MantineThemeContext = MantineThemeContext;
exports.MantineThemeProvider = MantineThemeProvider;
exports.useMantineTheme = useMantineTheme;
exports.useSafeMantineTheme = useSafeMantineTheme;
//# sourceMappingURL=MantineThemeProvider.cjs.map