vuetify
Version:
Vue Material Component Framework
539 lines (537 loc) • 24.9 kB
TypeScript
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>;