@ffsm/html-factory
Version:
A lightweight utility for creating React HTML factory components with TypeScript support, ref forwarding, and className merging.
22 lines (21 loc) • 712 B
JavaScript
/**
* Utility function to combine class names with deduplication
* @param {...Array<string | number | boolean | null | undefined>} classes - Classes to combine
* @returns {string} A combined, deduplicated string of class names
*
* @example
* clsx('btn', conditional && 'btn-primary', 'btn') // 'btn btn-primary'
*/
export function clsx() {
var classes = [];
for (var _i = 0; _i < arguments.length; _i++) {
classes[_i] = arguments[_i];
}
return classes
.filter(function (c) { return typeof c === 'string' && !!c.trim(); })
.join(' ')
.trim()
.split(' ')
.filter(function (c, i, s) { return !!c && s.indexOf(c) === i; })
.join(' ');
}