UNPKG

css-variants

Version:

A lightweight, flexible API for managing CSS class variants.

15 lines (14 loc) 739 B
import { Properties } from 'csstype'; export type OneOrMore<T> = T | T[]; export type PartialRecord<S extends string, T> = Partial<Record<S, T>>; export type RequireAtLeastOne<T> = { [K in keyof T]-?: Required<Pick<T, K>> & Partial<Pick<T, Exclude<keyof T, K>>>; }[keyof T]; export type StringToBoolean<T> = T extends 'true' | 'false' ? boolean : T; export type ObjectKeyPicker<T> = keyof never extends keyof T ? Record<string, unknown> : { [K in keyof T]?: StringToBoolean<keyof T[K]> | undefined; }; export type ObjectKeyArrayPicker<T> = keyof never extends keyof T ? Record<string, unknown> : { [K in keyof T]?: OneOrMore<StringToBoolean<keyof T[K]>> | undefined; }; export type CssProperties = Properties<string | number>;