UNPKG

@mantine/core

Version:

React components library focused on usability, accessibility and developer experience

29 lines (28 loc) 1.23 kB
"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