UNPKG

braid-design-system

Version:
37 lines (36 loc) 1.48 kB
"use strict"; const react = require("react"); const lib_components_BraidProvider_BraidThemeContext_cjs = require("../BraidProvider/BraidThemeContext.cjs"); const lib_css_atoms_sprinkles_css_cjs = require("../../css/atoms/sprinkles.css.cjs"); const backgroundContext = react.createContext({ lightMode: "body", darkMode: "bodyDark" }); const BackgroundProvider = backgroundContext.Provider; const useBackground = () => react.useContext(backgroundContext); const useBackgroundLightness = (backgroundOverride) => { const backgroundFromContext = useBackground(); const background = backgroundOverride || backgroundFromContext; const { backgroundLightness } = lib_components_BraidProvider_BraidThemeContext_cjs.useBraidTheme(); const lightnessMap = { ...backgroundLightness, customDark: "dark", customLight: "light" }; return { lightMode: lightnessMap[background.lightMode], darkMode: lightnessMap[background.darkMode] }; }; const useColorContrast = () => { const background = useBackground(); const backgroundLightness = useBackgroundLightness(); return (map) => lib_css_atoms_sprinkles_css_cjs.mapColorModeValue( backgroundLightness, (lightness, mode) => typeof map === "function" ? map(lightness, background[mode]) : map[lightness] ); }; exports.BackgroundProvider = BackgroundProvider; exports.useBackground = useBackground; exports.useBackgroundLightness = useBackgroundLightness; exports.useColorContrast = useColorContrast;