cvb
Version:
Class Variance Builder 👷🏼
43 lines • 2.35 kB
TypeScript
import { ClassDictionary, ClassProp, ClassValue, Pretty, RecipeCompoundSelection, RecipeCompoundVariant, RecipeSelection, RecipeVariantRecord, SlotRecipeCompoundVariant, SlotRecipeVariantRecord } from './types.js';
export declare const isEmpty: (obj: Record<PropertyKey, any>) => boolean;
export declare const falsyToString: <T>(value: T) => string | T;
/**
* Merges two given objects, Props take precedence over Defaults
* @param props
* @param defaults
* @returns
*/
export declare const mergeDefaultsAndProps: <V extends RecipeVariantRecord, P extends RecipeSelection<V> & ClassProp, D extends RecipeSelection<V>>(props: P | undefined, defaults: D) => Record<keyof V, NonNullable<ClassValue>>;
/**
* Returns a list of class variants based on the given Props and Defaults
* @param props
* @param variants
* @param defaults
* @returns
*/
export declare const getVariantClassNames: <V extends RecipeVariantRecord, P extends RecipeSelection<V> & ClassProp, D extends RecipeSelection<V>>(props: P | undefined, variants: V, defaults?: D) => string;
/**
* Returns selected compound className variants based on Props and Defaults
* @param compoundVariants
* @param defaultsAndProps
* @returns
*/
export declare const getCompoundVariantClassNames: <V extends RecipeVariantRecord>(compoundVariants: Pretty<RecipeCompoundVariant<RecipeCompoundSelection<V>>>[], defaultsAndProps: ClassDictionary) => string;
/**
* Returns a list of class variants based on the given Props and Defaults for the required Slot
* @param props
* @param slot
* @param variants
* @param defaults
* @returns
*/
export declare const getVariantClassNamesBySlot: <S extends string, V extends SlotRecipeVariantRecord<S>, P extends RecipeSelection<V> & ClassProp, D extends RecipeSelection<V>>(props: P | undefined, slot: S, variants: V, defaults?: D) => string;
/**
* Returns selected compound className variants based on Props and Defaults for the required Slot
* @param slot
* @param compoundVariants
* @param defaultsAndProps
* @returns
*/
export declare const getCompoundVariantClassNamesBySlot: <S extends string, V extends SlotRecipeVariantRecord<S> = SlotRecipeVariantRecord<S>>(slot: S, compoundVariants: Pretty<SlotRecipeCompoundVariant<S, RecipeCompoundSelection<V>>>[], defaultsAndProps: ClassDictionary) => string;
//# sourceMappingURL=utils.d.ts.map