UNPKG

seehar-design-vue

Version:

Seehar Design Vue - A Vue.js 3 UI library

64 lines (57 loc) 1.84 kB
import { CSSClassesList, CSSRawClassesList, WithVariantProps } from '../types/variant' import { PropType } from 'vue' export type VariantJSWithClassesProps<ClassesKeys> = { classes?: PropType<CSSRawClassesList<ClassesKeys>> base?: PropType<CSSRawClassesList<ClassesKeys>> variants?: PropType<CSSRawClassesList<ClassesKeys>> variant?: PropType<string | string[] | undefined> } export type VariantJSWithClassesListProps<ClassesKeys> = { classes?: { type: PropType<CSSRawClassesList<ClassesKeys>> default: undefined } base?: { type: PropType<CSSRawClassesList<ClassesKeys>> default: undefined } variants?: { type: PropType<CSSRawClassesList<ClassesKeys>> default: undefined } variant?: { type: PropType<string | string[] | undefined> // type: string | undefined | (string | undefined)[] default?: string } } export type VariantJSWithClassesUseVariants<ClassesKeys> = { classes?: CSSRawClassesList<ClassesKeys> base?: CSSRawClassesList<ClassesKeys> variants?: Record<string, Record<string, string>> variant?: string | string[] | undefined } declare type ObjectWithClassesList = { classesList?: CSSClassesList } export declare const parseVariantWithClassesList: <P extends ObjectWithClassesList>() => P export const getVariantPropsWithClassesList = < ClassesKeys extends Record<string, unknown> >(): VariantJSWithClassesListProps<ClassesKeys> => ({ classes: { type: Object as PropType<CSSRawClassesList<ClassesKeys>>, default: undefined }, base: { type: Object as PropType<CSSRawClassesList<ClassesKeys>>, default: undefined }, variants: { type: Object as PropType<WithVariantProps<ClassesKeys>>, default: undefined }, variant: { type: [String, Array] as PropType<string | string[] | undefined>, default: undefined } })