@klass/core
Version:
Class variant utility
100 lines (99 loc) • 2.85 kB
TypeScript
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 };