@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
29 lines (28 loc) • 1.23 kB
JavaScript
"use client";
import { DEFAULT_THEME } from "../default-theme.mjs";
import { mergeMantineTheme } from "../merge-mantine-theme/merge-mantine-theme.mjs";
import { createContext, use, useMemo } from "react";
import { jsx } from "react/jsx-runtime";
//#region packages/@mantine/core/src/core/MantineProvider/MantineThemeProvider/MantineThemeProvider.tsx
const MantineThemeContext = createContext(null);
const useSafeMantineTheme = () => use(MantineThemeContext) || DEFAULT_THEME;
function useMantineTheme() {
const ctx = 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__ */ jsx(MantineThemeContext, {
value: useMemo(() => mergeMantineTheme(inherit ? parentTheme : DEFAULT_THEME, theme), [
theme,
parentTheme,
inherit
]),
children
});
}
MantineThemeProvider.displayName = "@mantine/core/MantineThemeProvider";
//#endregion
export { MantineThemeContext, MantineThemeProvider, useMantineTheme, useSafeMantineTheme };
//# sourceMappingURL=MantineThemeProvider.mjs.map