use-vibes
Version:
Transform any DOM element into an AI-powered micro-app
42 lines • 1.42 kB
JavaScript
/**
* Utility functions for managing component styling
*/
/**
* Combines multiple class names into a single string, filtering out falsy values
* Also adds backward compatibility class names for testing and legacy support
*
* @example
* // Returns "foo bar baz"
* combineClasses('foo', 'bar', 'baz')
*
* @example
* // Returns "btn btn-primary"
* combineClasses('btn', condition && 'btn-primary', false && 'btn-large')
*
* @example
* // Returns "imggen-root img-gen-container" (with legacy class name)
* combineClasses('imggen-root', classes.root)
*/
export function combineClasses(...classes) {
// Filter out falsy values
const validClasses = classes.filter(Boolean);
// Add backward compatibility classes (img-gen-* format)
const allClasses = [...validClasses];
// For each imggen-* class, add a corresponding img-gen-* class for backward compatibility
validClasses.forEach((cls) => {
if (cls.startsWith('imggen-')) {
// Convert imggen-root to img-gen-root, etc.
const legacyClass = cls.replace('imggen-', 'img-gen-');
// Only add if not already present
if (!allClasses.includes(legacyClass)) {
allClasses.push(legacyClass);
}
}
});
return allClasses.join(' ');
}
/**
* Default empty classes object
*/
export const defaultClasses = {};
//# sourceMappingURL=style-utils.js.map