37 lines
1.1 KiB
JavaScript
37 lines
1.1 KiB
JavaScript
import { classMapToString, stylesToObject } from "../theme/utils.mjs";
|
|
import { Styles } from "@a2ui/lit/0.8";
|
|
import { clsx } from "clsx";
|
|
|
|
//#region src/react-renderer/lib/utils.ts
|
|
/**
|
|
* Utility function to merge class names.
|
|
* Combines clsx for conditional classes.
|
|
*
|
|
* @param inputs - Class values to merge
|
|
* @returns Merged class name string
|
|
*
|
|
* @example
|
|
* cn('base-class', condition && 'conditional-class', { 'object-class': true })
|
|
*/
|
|
function cn(...inputs) {
|
|
return clsx(inputs);
|
|
}
|
|
/**
|
|
* Merges multiple class maps into a single class map.
|
|
* Uses Lit's Styles.merge() function directly for consistency.
|
|
*
|
|
* Lit's merge handles prefix conflicts: if you have 'layout-p-2' and 'layout-p-4',
|
|
* only the latter is kept (same prefix 'layout-p-' means they conflict).
|
|
*
|
|
* @param maps - Class maps to merge
|
|
* @returns A merged class map
|
|
*/
|
|
function mergeClassMaps(...maps) {
|
|
const validMaps = maps.filter((m) => m !== void 0);
|
|
if (validMaps.length === 0) return {};
|
|
return Styles.merge(...validMaps);
|
|
}
|
|
|
|
//#endregion
|
|
export { cn, mergeClassMaps };
|
|
//# sourceMappingURL=utils.mjs.map
|