@nex-ui/react
Version:
🎉 A beautiful, modern, and reliable React component library.
30 lines (27 loc) • 841 B
JavaScript
import { forEach, reduce } from '@nex-ui/utils';
import clsx from 'clsx';
function composeClasses(slots, getUtilityClass, classes) {
const output = {};
// @ts-expect-error
forEach(slots, (slotClasses, slot)=>{
let className = undefined;
if (classes && slot in classes) {
className = classes?.[slot];
}
const result = reduce(slotClasses, (acc, slotClass)=>{
if (slotClass && typeof slotClass === 'string') {
const utilityClass = getUtilityClass(slotClass);
if (utilityClass !== '') {
acc.push(utilityClass);
}
}
return acc;
}, []);
output[slot] = clsx([
className,
result
]);
});
return output;
}
export { composeClasses };