UNPKG

@mantine/core

Version:

React components library focused on usability, accessibility and developer experience

41 lines (38 loc) 1.66 kB
'use client'; import React from 'react'; import { convertCssVariables } from '../convert-css-variables/convert-css-variables.mjs'; import { useMantineStyleNonce, useMantineCssVariablesResolver } from '../Mantine.context.mjs'; import { useMantineTheme } from '../MantineThemeProvider/MantineThemeProvider.mjs'; import { getMergedVariables } from './get-merged-variables.mjs'; import { removeDefaultVariables } from './remove-default-variables.mjs'; function getColorSchemeCssVariables(selector) { return ` ${selector}[data-mantine-color-scheme="dark"] { --mantine-color-scheme: dark; } ${selector}[data-mantine-color-scheme="light"] { --mantine-color-scheme: light; } `; } function MantineCssVariables({ cssVariablesSelector }) { const theme = useMantineTheme(); const nonce = useMantineStyleNonce(); const generator = useMantineCssVariablesResolver(); const mergedVariables = getMergedVariables({ theme, generator }); const shouldCleanVariables = cssVariablesSelector === ":root"; const cleanedVariables = shouldCleanVariables ? removeDefaultVariables(mergedVariables) : mergedVariables; const css = convertCssVariables(cleanedVariables, cssVariablesSelector); if (css) { return /* @__PURE__ */ React.createElement( "style", { "data-mantine-styles": true, nonce: nonce?.(), dangerouslySetInnerHTML: { __html: `${css}${shouldCleanVariables ? "" : getColorSchemeCssVariables(cssVariablesSelector)}` } } ); } return null; } MantineCssVariables.displayName = "@mantine/CssVariables"; export { MantineCssVariables }; //# sourceMappingURL=MantineCssVariables.mjs.map