You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

22 lines
770 B
JavaScript

export default function composeClasses(slots, getUtilityClass) {
var classes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
var output = {};
Object.keys(slots).forEach(
// `Object.keys(slots)` can't be wider than `T` because we infer `T` from `slots`.
// @ts-expect-error https://github.com/microsoft/TypeScript/pull/12253#issuecomment-263132208
function (slot) {
output[slot] = slots[slot].reduce(function (acc, key) {
if (key) {
var utilityClass = getUtilityClass(key);
if (utilityClass !== '') {
acc.push(utilityClass);
}
if (classes && classes[key]) {
acc.push(classes[key]);
}
}
return acc;
}, []).join(' ');
});
return output;
}