import { P as PartialRecord, O as ObjectKeyArrayPicker, a as ObjectKeyPicker } from './types-BXKyjXhG.js'; import cx, { ClassValue } from './cx.js'; import 'csstype'; type SlotClassRecord = PartialRecord; type SlotClassVariantRecord = Record>>; type SlotClassVariantExtendProps = { classNames: SlotClassRecord; }; interface SlotClassVariantDefinition | undefined> { slots: S[]; base?: SlotClassRecord; variants?: T; compoundVariants?: (ObjectKeyArrayPicker & SlotClassVariantExtendProps)[]; defaultVariants?: ObjectKeyPicker; classNameResolver?: typeof cx; } type SlotClassVariantFnProps | undefined> = T extends undefined ? Partial> : ObjectKeyPicker & Partial>; type SlotClassVariantFn | undefined> = (props?: SlotClassVariantFnProps) => Record; type SlotClassVariantCreatorFn = | undefined>(config: SlotClassVariantDefinition) => SlotClassVariantFn; /** * Creates a slot-based class variant function that manages class names for multiple slots with variants. * * @param config - Configuration object for creating the variant function * @returns A function that accepts variant props and returns class names for each slot * * @example * ```typescript * const button = scv({ * slots: ['root', 'icon'], * base: { * root: 'btn', * icon: 'btn-icon' * }, * variants: { * size: { * sm: { * root: 'btn-sm', * icon: 'icon-sm' * }, * lg: { * root: 'btn-lg', * icon: 'icon-lg' * } * } * }, * defaultVariants: { * size: 'sm' * } * }) * * // Usage * const classes = button({ size: 'lg' }) * // Result: { root: 'btn btn-lg', icon: 'btn-icon icon-lg' } * ``` */ declare const scv: SlotClassVariantCreatorFn; export { type SlotClassRecord, type SlotClassVariantCreatorFn, type SlotClassVariantDefinition, type SlotClassVariantExtendProps, type SlotClassVariantFn, type SlotClassVariantFnProps, type SlotClassVariantRecord, scv as default, scv };