UNPKG

@nex-ui/react

Version:

🎉 A beautiful, modern, and reliable React component library.

30 lines (27 loc) • 841 B
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 };