UNPKG

@mui/utils

Version:
29 lines 952 B
/** * Compose classes from multiple sources. * * @example * ```tsx * const slots = { * root: ['root', 'primary'], * label: ['label'], * }; * * const getUtilityClass = (slot) => `MuiButton-${slot}`; * * const classes = { * root: 'my-root-class', * }; * * const output = composeClasses(slots, getUtilityClass, classes); * // { * // root: 'MuiButton-root MuiButton-primary my-root-class', * // label: 'MuiButton-label', * // } * ``` * * @param slots a list of classes for each possible slot * @param getUtilityClass a function to resolve the class based on the slot name * @param classes the input classes from props * @returns the resolved classes for all slots */ export default function composeClasses<ClassKey extends string>(slots: Record<ClassKey, ReadonlyArray<string | false | undefined | null>>, getUtilityClass: (slot: string) => string, classes?: Record<string, string> | undefined): Record<ClassKey, string>;