UNPKG

@mui/system

Version:

MUI System is a set of CSS utilities to help you build custom designs more efficiently. It makes it possible to rapidly lay out custom designs.

51 lines 1.44 kB
import borders from "../borders/index.js"; import display from "../display/index.js"; import flexbox from "../flexbox/index.js"; import grid from "../cssGrid/index.js"; import positions from "../positions/index.js"; import palette from "../palette/index.js"; import shadows from "../shadows/index.js"; import sizing from "../sizing/index.js"; import spacing from "../spacing/index.js"; import typography from "../typography/index.js"; const filterPropsMapping = { borders: borders.filterProps, display: display.filterProps, flexbox: flexbox.filterProps, grid: grid.filterProps, positions: positions.filterProps, palette: palette.filterProps, shadows: shadows.filterProps, sizing: sizing.filterProps, spacing: spacing.filterProps, typography: typography.filterProps }; export const styleFunctionMapping = { borders, display, flexbox, grid, positions, palette, shadows, sizing, spacing, typography }; export const propToStyleFunction = Object.keys(filterPropsMapping).reduce((acc, styleFnName) => { filterPropsMapping[styleFnName].forEach(propName => { acc[propName] = styleFunctionMapping[styleFnName]; }); return acc; }, {}); function getThemeValue(prop, value, theme) { const inputProps = { [prop]: value, theme }; const styleFunction = propToStyleFunction[prop]; return styleFunction ? styleFunction(inputProps) : { [prop]: value }; } export default getThemeValue;