UNPKG

@klass/core

Version:

Class variant utility

100 lines (99 loc) 2.85 kB
import type { ClassValue } from "clsx"; import type { TransformKey, ItFn, AsCondition, AsConditionFn, VariantsSchema, RestrictedVariantsKey, StrictVariantsSchema, VariantsOf, VariantOptions, VariantFn, VariantGroup, CompoundVariant, KlassOptions, KlassFn, ConditionSchema, RevariantOptions, RevariantFn, RevariantGroup, ReklassOptions, ReklassFn } from "./types"; /** * * @param options variant options * @returns variant function * * @see {@link https://klass.pages.dev/klass/core.html#variant | variant} */ declare const variant: <T extends { [type: string]: ClassValue; }>(options: VariantOptions<T>) => VariantFn<T>; /** * * @param options variants options * @param config additional config * @returns klass function * * @example * klass({ * base: "base", * variants: { * color: { * neutral: "color-neutral", * primary: "color-primary" * }, * size: { * sm: "size-sm", * md: "size-md", * lg: "size-lg" * } * }, * defaultVariants: { * color: "primary", * size: "md" * }, * }); * * @see {@link https://klass.pages.dev/klass/core.html#klass | klass} */ declare const klass: <T extends StrictVariantsSchema>(options: KlassOptions<T>, config?: { it?: ItFn; }) => KlassFn<T>; /** * * @param options responsive variant options * @param config additional config * @returns revariant function * * @see {@link https://klass.pages.dev/klass/core.html#revariant | revariant} */ declare const revariant: <C extends ConditionSchema, T extends { [type: string]: ClassValue; }>(options: RevariantOptions<C, T>, config?: { as?: AsCondition; }) => RevariantFn<C, T>; /** * * @param options responsive variants options * @param config additional config * @returns reklass function * * @example * reklass({ * conditions: { * base: "", * sm: "sm:", * md: "md:", * lg: "lg:", * xl: "xl:", * xxl: "2xl:" * }, * defaultCondition: "base", * variants: { * m: { * "0": "m-0", * "1": "m-1", * "2": "m-2", * "3": "m-3", * "4": "m-4" * }, * p: { * "0": "p-0", * "1": "p-1", * "2": "p-2", * "3": "p-3", * "4": "p-4" * } * } * }); * * @see {@link https://klass.pages.dev/klass/core.html#reklass | reklass} */ declare const reklass: <C extends ConditionSchema, T extends VariantsSchema>(options: ReklassOptions<C, T>, config?: { as?: AsCondition; it?: ItFn; }) => ReklassFn<C, T>; export type { ClassValue, TransformKey, ItFn, AsCondition, AsConditionFn, VariantsSchema, RestrictedVariantsKey, StrictVariantsSchema, VariantsOf, VariantOptions, VariantFn, VariantGroup, CompoundVariant, KlassOptions, KlassFn, ConditionSchema, RevariantOptions, RevariantFn, RevariantGroup, ReklassOptions, ReklassFn, }; export { variant, klass, revariant, reklass };