UNPKG

vuetify

Version:

Vue Material Component Framework

539 lines (537 loc) 24.9 kB
import { IconValue } from "../../composables/icons.js"; import type { PropType, Ref } from 'vue'; import type { LoaderSlotProps } from "../../composables/loader.js"; import type { GenericProps } from "../../util/index.js"; declare const allowedVariants: readonly ["underlined", "outlined", "filled", "solo", "solo-inverted", "solo-filled", "plain"]; type Variant = typeof allowedVariants[number]; export interface DefaultInputSlot { isActive: Ref<boolean>; isFocused: Ref<boolean>; controlRef: Ref<HTMLElement | undefined>; focus: () => void; blur: () => void; } export interface VFieldSlot extends DefaultInputSlot { props: Record<string, unknown>; } export declare const makeVFieldProps: <Defaults extends { theme?: unknown; rounded?: unknown; tile?: unknown; loading?: unknown; class?: unknown; style?: unknown; appendInnerIcon?: unknown; bgColor?: unknown; clearable?: unknown; clearIcon?: unknown; active?: unknown; centerAffix?: unknown; color?: unknown; baseColor?: unknown; dirty?: unknown; disabled?: unknown; glow?: unknown; error?: unknown; flat?: unknown; iconColor?: unknown; label?: unknown; persistentClear?: unknown; prependInnerIcon?: unknown; reverse?: unknown; singleLine?: unknown; variant?: unknown; 'onClick:clear'?: unknown; 'onClick:appendInner'?: unknown; 'onClick:prependInner'?: unknown; } = {}>(defaults?: Defaults | undefined) => { theme: unknown extends Defaults["theme"] ? StringConstructor : { type: PropType<unknown extends Defaults["theme"] ? string : string | Defaults["theme"]>; default: unknown extends Defaults["theme"] ? string : string | Defaults["theme"]; }; rounded: unknown extends Defaults["rounded"] ? { type: (StringConstructor | BooleanConstructor | NumberConstructor)[]; default: undefined; } : Omit<{ type: (StringConstructor | BooleanConstructor | NumberConstructor)[]; default: undefined; }, "type" | "default"> & { type: PropType<unknown extends Defaults["rounded"] ? string | number | boolean : string | number | boolean | Defaults["rounded"]>; default: unknown extends Defaults["rounded"] ? string | number | boolean : NonNullable<string | number | boolean> | Defaults["rounded"]; }; tile: unknown extends Defaults["tile"] ? BooleanConstructor : { type: PropType<unknown extends Defaults["tile"] ? boolean : boolean | Defaults["tile"]>; default: unknown extends Defaults["tile"] ? boolean : boolean | Defaults["tile"]; }; loading: unknown extends Defaults["loading"] ? (StringConstructor | BooleanConstructor)[] : { type: PropType<unknown extends Defaults["loading"] ? string | boolean : string | boolean | Defaults["loading"]>; default: unknown extends Defaults["loading"] ? string | boolean : NonNullable<string | boolean> | Defaults["loading"]; }; class: unknown extends Defaults["class"] ? PropType<any> : { type: PropType<unknown extends Defaults["class"] ? any : any>; default: unknown extends Defaults["class"] ? any : any; }; style: unknown extends Defaults["style"] ? { type: PropType<import("vue").StyleValue>; default: null; } : Omit<{ type: PropType<import("vue").StyleValue>; default: null; }, "type" | "default"> & { type: PropType<unknown extends Defaults["style"] ? import("vue").StyleValue : import("vue").StyleValue | Defaults["style"]>; default: unknown extends Defaults["style"] ? import("vue").StyleValue : NonNullable<import("vue").StyleValue> | Defaults["style"]; }; appendInnerIcon: unknown extends Defaults["appendInnerIcon"] ? PropType<IconValue> : { type: PropType<unknown extends Defaults["appendInnerIcon"] ? IconValue : IconValue | Defaults["appendInnerIcon"]>; default: unknown extends Defaults["appendInnerIcon"] ? IconValue : NonNullable<IconValue> | Defaults["appendInnerIcon"]; }; bgColor: unknown extends Defaults["bgColor"] ? StringConstructor : { type: PropType<unknown extends Defaults["bgColor"] ? string : string | Defaults["bgColor"]>; default: unknown extends Defaults["bgColor"] ? string : string | Defaults["bgColor"]; }; clearable: unknown extends Defaults["clearable"] ? BooleanConstructor : { type: PropType<unknown extends Defaults["clearable"] ? boolean : boolean | Defaults["clearable"]>; default: unknown extends Defaults["clearable"] ? boolean : boolean | Defaults["clearable"]; }; clearIcon: unknown extends Defaults["clearIcon"] ? { type: PropType<IconValue>; default: string; } : Omit<{ type: PropType<IconValue>; default: string; }, "type" | "default"> & { type: PropType<unknown extends Defaults["clearIcon"] ? IconValue : IconValue | Defaults["clearIcon"]>; default: unknown extends Defaults["clearIcon"] ? IconValue : NonNullable<IconValue> | Defaults["clearIcon"]; }; active: unknown extends Defaults["active"] ? BooleanConstructor : { type: PropType<unknown extends Defaults["active"] ? boolean : boolean | Defaults["active"]>; default: unknown extends Defaults["active"] ? boolean : boolean | Defaults["active"]; }; centerAffix: unknown extends Defaults["centerAffix"] ? { type: BooleanConstructor; default: undefined; } : Omit<{ type: BooleanConstructor; default: undefined; }, "type" | "default"> & { type: PropType<unknown extends Defaults["centerAffix"] ? boolean : boolean | Defaults["centerAffix"]>; default: unknown extends Defaults["centerAffix"] ? boolean : boolean | Defaults["centerAffix"]; }; color: unknown extends Defaults["color"] ? StringConstructor : { type: PropType<unknown extends Defaults["color"] ? string : string | Defaults["color"]>; default: unknown extends Defaults["color"] ? string : string | Defaults["color"]; }; baseColor: unknown extends Defaults["baseColor"] ? StringConstructor : { type: PropType<unknown extends Defaults["baseColor"] ? string : string | Defaults["baseColor"]>; default: unknown extends Defaults["baseColor"] ? string : string | Defaults["baseColor"]; }; dirty: unknown extends Defaults["dirty"] ? BooleanConstructor : { type: PropType<unknown extends Defaults["dirty"] ? boolean : boolean | Defaults["dirty"]>; default: unknown extends Defaults["dirty"] ? boolean : boolean | Defaults["dirty"]; }; disabled: unknown extends Defaults["disabled"] ? { type: BooleanConstructor; default: null; } : Omit<{ type: BooleanConstructor; default: null; }, "type" | "default"> & { type: PropType<unknown extends Defaults["disabled"] ? boolean : boolean | Defaults["disabled"]>; default: unknown extends Defaults["disabled"] ? boolean : boolean | Defaults["disabled"]; }; glow: unknown extends Defaults["glow"] ? BooleanConstructor : { type: PropType<unknown extends Defaults["glow"] ? boolean : boolean | Defaults["glow"]>; default: unknown extends Defaults["glow"] ? boolean : boolean | Defaults["glow"]; }; error: unknown extends Defaults["error"] ? BooleanConstructor : { type: PropType<unknown extends Defaults["error"] ? boolean : boolean | Defaults["error"]>; default: unknown extends Defaults["error"] ? boolean : boolean | Defaults["error"]; }; flat: unknown extends Defaults["flat"] ? BooleanConstructor : { type: PropType<unknown extends Defaults["flat"] ? boolean : boolean | Defaults["flat"]>; default: unknown extends Defaults["flat"] ? boolean : boolean | Defaults["flat"]; }; iconColor: unknown extends Defaults["iconColor"] ? (StringConstructor | BooleanConstructor)[] : { type: PropType<unknown extends Defaults["iconColor"] ? string | boolean : string | boolean | Defaults["iconColor"]>; default: unknown extends Defaults["iconColor"] ? string | boolean : NonNullable<string | boolean> | Defaults["iconColor"]; }; label: unknown extends Defaults["label"] ? StringConstructor : { type: PropType<unknown extends Defaults["label"] ? string : string | Defaults["label"]>; default: unknown extends Defaults["label"] ? string : string | Defaults["label"]; }; persistentClear: unknown extends Defaults["persistentClear"] ? BooleanConstructor : { type: PropType<unknown extends Defaults["persistentClear"] ? boolean : boolean | Defaults["persistentClear"]>; default: unknown extends Defaults["persistentClear"] ? boolean : boolean | Defaults["persistentClear"]; }; prependInnerIcon: unknown extends Defaults["prependInnerIcon"] ? PropType<IconValue> : { type: PropType<unknown extends Defaults["prependInnerIcon"] ? IconValue : IconValue | Defaults["prependInnerIcon"]>; default: unknown extends Defaults["prependInnerIcon"] ? IconValue : NonNullable<IconValue> | Defaults["prependInnerIcon"]; }; reverse: unknown extends Defaults["reverse"] ? BooleanConstructor : { type: PropType<unknown extends Defaults["reverse"] ? boolean : boolean | Defaults["reverse"]>; default: unknown extends Defaults["reverse"] ? boolean : boolean | Defaults["reverse"]; }; singleLine: unknown extends Defaults["singleLine"] ? BooleanConstructor : { type: PropType<unknown extends Defaults["singleLine"] ? boolean : boolean | Defaults["singleLine"]>; default: unknown extends Defaults["singleLine"] ? boolean : boolean | Defaults["singleLine"]; }; variant: unknown extends Defaults["variant"] ? { type: PropType<Variant>; default: string; validator: (v: any) => boolean; } : Omit<{ type: PropType<Variant>; default: string; validator: (v: any) => boolean; }, "type" | "default"> & { type: PropType<unknown extends Defaults["variant"] ? "filled" | "outlined" | "plain" | "underlined" | "solo" | "solo-inverted" | "solo-filled" : "filled" | "outlined" | "plain" | "underlined" | "solo" | "solo-inverted" | "solo-filled" | Defaults["variant"]>; default: unknown extends Defaults["variant"] ? "filled" | "outlined" | "plain" | "underlined" | "solo" | "solo-inverted" | "solo-filled" : NonNullable<"filled" | "outlined" | "plain" | "underlined" | "solo" | "solo-inverted" | "solo-filled"> | Defaults["variant"]; }; 'onClick:clear': unknown extends Defaults["onClick:clear"] ? PropType<(args_0: MouseEvent) => void> : { type: PropType<unknown extends Defaults["onClick:clear"] ? (args_0: MouseEvent) => void : ((args_0: MouseEvent) => void) | Defaults["onClick:clear"]>; default: unknown extends Defaults["onClick:clear"] ? (args_0: MouseEvent) => void : ((args_0: MouseEvent) => void) | Defaults["onClick:clear"]; }; 'onClick:appendInner': unknown extends Defaults["onClick:appendInner"] ? PropType<(args_0: MouseEvent) => void> : { type: PropType<unknown extends Defaults["onClick:appendInner"] ? (args_0: MouseEvent) => void : ((args_0: MouseEvent) => void) | Defaults["onClick:appendInner"]>; default: unknown extends Defaults["onClick:appendInner"] ? (args_0: MouseEvent) => void : ((args_0: MouseEvent) => void) | Defaults["onClick:appendInner"]; }; 'onClick:prependInner': unknown extends Defaults["onClick:prependInner"] ? PropType<(args_0: MouseEvent) => void> : { type: PropType<unknown extends Defaults["onClick:prependInner"] ? (args_0: MouseEvent) => void : ((args_0: MouseEvent) => void) | Defaults["onClick:prependInner"]>; default: unknown extends Defaults["onClick:prependInner"] ? (args_0: MouseEvent) => void : ((args_0: MouseEvent) => void) | Defaults["onClick:prependInner"]; }; }; export type VFieldSlots = { clear: DefaultInputSlot & { props: Record<string, any>; }; 'prepend-inner': DefaultInputSlot; 'append-inner': DefaultInputSlot; label: DefaultInputSlot & { label: string | undefined; props: Record<string, any>; }; loader: LoaderSlotProps; default: VFieldSlot; }; export declare const VField: { new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{ flat: boolean; reverse: boolean; variant: "filled" | "outlined" | "plain" | "underlined" | "solo" | "solo-inverted" | "solo-filled"; error: boolean; active: boolean; style: import("vue").StyleValue; disabled: boolean; focused: boolean; tile: boolean; clearIcon: IconValue; glow: boolean; clearable: boolean; dirty: boolean; persistentClear: boolean; singleLine: boolean; } & { id?: string | undefined; color?: string | undefined; loading?: string | boolean | undefined; label?: string | undefined; class?: any; theme?: string | undefined; 'onUpdate:focused'?: ((args_0: boolean) => void) | undefined; rounded?: string | number | boolean | undefined; baseColor?: string | undefined; bgColor?: string | undefined; appendInnerIcon?: IconValue | undefined; prependInnerIcon?: IconValue | undefined; 'onClick:clear'?: ((args_0: MouseEvent) => void) | undefined; 'onClick:appendInner'?: ((args_0: MouseEvent) => void) | undefined; 'onClick:prependInner'?: ((args_0: MouseEvent) => void) | undefined; centerAffix?: boolean | undefined; iconColor?: string | boolean | undefined; } & { "onUpdate:focused"?: ((focused: boolean) => any) | undefined; }, { controlRef: Ref<HTMLElement | undefined, HTMLElement | undefined>; fieldIconColor: import("vue").ComputedRef<string | undefined>; }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Omit<{ 'update:focused': (focused: boolean) => true; 'update:modelValue': (value: any) => true; }, "$children" | "v-slots" | "v-slot:default" | "modelValue" | "update:modelValue" | "v-slot:loader" | "v-slot:label" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner">, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, { flat: boolean; reverse: boolean; variant: "filled" | "outlined" | "plain" | "underlined" | "solo" | "solo-inverted" | "solo-filled"; error: boolean; active: boolean; style: import("vue").StyleValue; disabled: boolean; focused: boolean; rounded: string | number | boolean; tile: boolean; clearIcon: IconValue; centerAffix: boolean; glow: boolean; clearable: boolean; dirty: boolean; persistentClear: boolean; singleLine: boolean; }, true, {}, import("vue").SlotsType<Partial<{ clear: (arg: DefaultInputSlot & { props: Record<string, any>; }) => import("vue").VNode[]; 'prepend-inner': (arg: DefaultInputSlot) => import("vue").VNode[]; 'append-inner': (arg: DefaultInputSlot) => import("vue").VNode[]; label: (arg: DefaultInputSlot & { label: string | undefined; props: Record<string, any>; }) => import("vue").VNode[]; loader: (arg: LoaderSlotProps) => import("vue").VNode[]; default: (arg: VFieldSlot) => import("vue").VNode[]; }>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, { P: {}; B: {}; D: {}; C: {}; M: {}; Defaults: {}; }, { flat: boolean; reverse: boolean; variant: "filled" | "outlined" | "plain" | "underlined" | "solo" | "solo-inverted" | "solo-filled"; error: boolean; active: boolean; style: import("vue").StyleValue; disabled: boolean; focused: boolean; tile: boolean; clearIcon: IconValue; glow: boolean; clearable: boolean; dirty: boolean; persistentClear: boolean; singleLine: boolean; } & { id?: string | undefined; color?: string | undefined; loading?: string | boolean | undefined; label?: string | undefined; class?: any; theme?: string | undefined; 'onUpdate:focused'?: ((args_0: boolean) => void) | undefined; rounded?: string | number | boolean | undefined; baseColor?: string | undefined; bgColor?: string | undefined; appendInnerIcon?: IconValue | undefined; prependInnerIcon?: IconValue | undefined; 'onClick:clear'?: ((args_0: MouseEvent) => void) | undefined; 'onClick:appendInner'?: ((args_0: MouseEvent) => void) | undefined; 'onClick:prependInner'?: ((args_0: MouseEvent) => void) | undefined; centerAffix?: boolean | undefined; iconColor?: string | boolean | undefined; } & { "onUpdate:focused"?: ((focused: boolean) => any) | undefined; }, { controlRef: Ref<HTMLElement | undefined, HTMLElement | undefined>; fieldIconColor: import("vue").ComputedRef<string | undefined>; }, {}, {}, {}, { flat: boolean; reverse: boolean; variant: "filled" | "outlined" | "plain" | "underlined" | "solo" | "solo-inverted" | "solo-filled"; error: boolean; active: boolean; style: import("vue").StyleValue; disabled: boolean; focused: boolean; rounded: string | number | boolean; tile: boolean; clearIcon: IconValue; centerAffix: boolean; glow: boolean; clearable: boolean; dirty: boolean; persistentClear: boolean; singleLine: boolean; }>; __isFragment?: never; __isTeleport?: never; __isSuspense?: never; } & import("vue").ComponentOptionsBase<{ flat: boolean; reverse: boolean; variant: "filled" | "outlined" | "plain" | "underlined" | "solo" | "solo-inverted" | "solo-filled"; error: boolean; active: boolean; style: import("vue").StyleValue; disabled: boolean; focused: boolean; tile: boolean; clearIcon: IconValue; glow: boolean; clearable: boolean; dirty: boolean; persistentClear: boolean; singleLine: boolean; } & { id?: string | undefined; color?: string | undefined; loading?: string | boolean | undefined; label?: string | undefined; class?: any; theme?: string | undefined; 'onUpdate:focused'?: ((args_0: boolean) => void) | undefined; rounded?: string | number | boolean | undefined; baseColor?: string | undefined; bgColor?: string | undefined; appendInnerIcon?: IconValue | undefined; prependInnerIcon?: IconValue | undefined; 'onClick:clear'?: ((args_0: MouseEvent) => void) | undefined; 'onClick:appendInner'?: ((args_0: MouseEvent) => void) | undefined; 'onClick:prependInner'?: ((args_0: MouseEvent) => void) | undefined; centerAffix?: boolean | undefined; iconColor?: string | boolean | undefined; } & { "onUpdate:focused"?: ((focused: boolean) => any) | undefined; }, { controlRef: Ref<HTMLElement | undefined, HTMLElement | undefined>; fieldIconColor: import("vue").ComputedRef<string | undefined>; }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Omit<{ 'update:focused': (focused: boolean) => true; 'update:modelValue': (value: any) => true; }, "$children" | "v-slots" | "v-slot:default" | "modelValue" | "update:modelValue" | "v-slot:loader" | "v-slot:label" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner">, string, { flat: boolean; reverse: boolean; variant: "filled" | "outlined" | "plain" | "underlined" | "solo" | "solo-inverted" | "solo-filled"; error: boolean; active: boolean; style: import("vue").StyleValue; disabled: boolean; focused: boolean; rounded: string | number | boolean; tile: boolean; clearIcon: IconValue; centerAffix: boolean; glow: boolean; clearable: boolean; dirty: boolean; persistentClear: boolean; singleLine: boolean; }, {}, string, import("vue").SlotsType<Partial<{ clear: (arg: DefaultInputSlot & { props: Record<string, any>; }) => import("vue").VNode[]; 'prepend-inner': (arg: DefaultInputSlot) => import("vue").VNode[]; 'append-inner': (arg: DefaultInputSlot) => import("vue").VNode[]; label: (arg: DefaultInputSlot & { label: string | undefined; props: Record<string, any>; }) => import("vue").VNode[]; loader: (arg: LoaderSlotProps) => import("vue").VNode[]; default: (arg: VFieldSlot) => import("vue").VNode[]; }>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new <T>(props: { modelValue?: T; "onUpdate:modelValue"?: (value: T) => void; }, slots: VFieldSlots) => GenericProps<typeof props, typeof slots>) & import("../../util/index.js").FilterPropsOptions<{ theme: StringConstructor; rounded: { type: (StringConstructor | BooleanConstructor | NumberConstructor)[]; default: undefined; }; tile: BooleanConstructor; loading: (StringConstructor | BooleanConstructor)[]; class: PropType<import("../../composables/component.js").ClassValue>; style: { type: PropType<import("vue").StyleValue>; default: null; }; appendInnerIcon: PropType<IconValue>; bgColor: StringConstructor; clearable: BooleanConstructor; clearIcon: { type: PropType<IconValue>; default: string; }; active: BooleanConstructor; centerAffix: { type: BooleanConstructor; default: undefined; }; color: StringConstructor; baseColor: StringConstructor; dirty: BooleanConstructor; disabled: { type: BooleanConstructor; default: null; }; glow: BooleanConstructor; error: BooleanConstructor; flat: BooleanConstructor; iconColor: (StringConstructor | BooleanConstructor)[]; label: StringConstructor; persistentClear: BooleanConstructor; prependInnerIcon: PropType<IconValue>; reverse: BooleanConstructor; singleLine: BooleanConstructor; variant: { type: PropType<Variant>; default: string; validator: (v: any) => boolean; }; 'onClick:clear': PropType<(args_0: MouseEvent) => void>; 'onClick:appendInner': PropType<(args_0: MouseEvent) => void>; 'onClick:prependInner': PropType<(args_0: MouseEvent) => void>; focused: BooleanConstructor; 'onUpdate:focused': PropType<(args_0: boolean) => void>; id: StringConstructor; }, import("vue").ExtractPropTypes<{ theme: StringConstructor; rounded: { type: (StringConstructor | BooleanConstructor | NumberConstructor)[]; default: undefined; }; tile: BooleanConstructor; loading: (StringConstructor | BooleanConstructor)[]; class: PropType<import("../../composables/component.js").ClassValue>; style: { type: PropType<import("vue").StyleValue>; default: null; }; appendInnerIcon: PropType<IconValue>; bgColor: StringConstructor; clearable: BooleanConstructor; clearIcon: { type: PropType<IconValue>; default: string; }; active: BooleanConstructor; centerAffix: { type: BooleanConstructor; default: undefined; }; color: StringConstructor; baseColor: StringConstructor; dirty: BooleanConstructor; disabled: { type: BooleanConstructor; default: null; }; glow: BooleanConstructor; error: BooleanConstructor; flat: BooleanConstructor; iconColor: (StringConstructor | BooleanConstructor)[]; label: StringConstructor; persistentClear: BooleanConstructor; prependInnerIcon: PropType<IconValue>; reverse: BooleanConstructor; singleLine: BooleanConstructor; variant: { type: PropType<Variant>; default: string; validator: (v: any) => boolean; }; 'onClick:clear': PropType<(args_0: MouseEvent) => void>; 'onClick:appendInner': PropType<(args_0: MouseEvent) => void>; 'onClick:prependInner': PropType<(args_0: MouseEvent) => void>; focused: BooleanConstructor; 'onUpdate:focused': PropType<(args_0: boolean) => void>; id: StringConstructor; }>>; export type VField = InstanceType<typeof VField>;