braid-design-system
Version:
Themeable design system for the SEEK Group
37 lines (36 loc) • 1.48 kB
JavaScript
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;
;