element-plus
Version:
A Component Library for Vue 3
129 lines (128 loc) • 5.41 kB
TypeScript
import type { Component, ExtractPublicPropTypes } from 'vue';
import type { ComponentSize } from 'element-plus/es/constants';
export declare const buttonTypes: readonly ["default", "primary", "success", "warning", "info", "danger", "text", ""];
export declare const buttonNativeTypes: readonly ["button", "submit", "reset"];
export type ButtonType = (typeof buttonTypes)[number];
export type ButtonNativeType = (typeof buttonNativeTypes)[number];
export interface ButtonProps {
/**
* @description button size
*/
size?: ComponentSize;
/**
* @description disable the button
*/
disabled?: boolean;
/**
* @description button type
*/
type?: ButtonType;
/**
* @description icon component
*/
icon?: string | Component;
/**
* @description native button type
*/
nativeType?: ButtonNativeType;
/**
* @description determine whether it's loading
*/
loading?: boolean;
/**
* @description customize loading icon component
*/
loadingIcon?: string | Component;
/**
* @description determine whether it's a plain button
*/
plain?: boolean;
/**
* @description determine whether it's a text button
*/
text?: boolean;
/**
* @description determine whether it's a link button
*/
link?: boolean;
/**
* @description determine whether the text button background color is always on
*/
bg?: boolean;
/**
* @description native button autofocus
*/
autofocus?: boolean;
/**
* @description determine whether it's a round button
*/
round?: boolean;
/**
* @description determine whether it's a circle button
*/
circle?: boolean;
/**
* @description custom button color, automatically calculate `hover` and `active` color
*/
color?: string;
/**
* @description dark mode, which automatically converts `color` to dark mode colors
*/
dark?: boolean;
/**
* @description automatically insert a space between two chinese characters
*/
autoInsertSpace?: boolean;
/**
* @description custom element tag
*/
tag?: string | Component;
}
/**
* @deprecated Removed after 3.0.0, Use `ButtonProps` instead.
*/
export declare const buttonProps: {
readonly size: {
readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<StringConstructor, "" | "small" | "default" | "large", never>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly disabled: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
readonly type: import("element-plus/es/utils").EpPropFinalized<StringConstructor, "" | "text" | "default" | "primary" | "success" | "warning" | "info" | "danger", unknown, "", boolean>;
readonly icon: {
readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => (string | Component) & {}) | (() => string | Component) | ((new (...args: any[]) => (string | Component) & {}) | (() => string | Component))[], unknown, unknown>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly nativeType: import("element-plus/es/utils").EpPropFinalized<StringConstructor, "button" | "reset" | "submit", unknown, "button", boolean>;
readonly loading: BooleanConstructor;
readonly loadingIcon: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (string | Component) & {}) | (() => string | Component) | ((new (...args: any[]) => (string | Component) & {}) | (() => string | Component))[], unknown, unknown, () => any, boolean>;
readonly plain: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
readonly text: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
readonly link: BooleanConstructor;
readonly bg: BooleanConstructor;
readonly autofocus: BooleanConstructor;
readonly round: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
readonly circle: BooleanConstructor;
readonly color: StringConstructor;
readonly dark: BooleanConstructor;
readonly autoInsertSpace: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
readonly tag: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (string | Component) & {}) | (() => string | Component) | ((new (...args: any[]) => (string | Component) & {}) | (() => string | Component))[], unknown, unknown, "button", boolean>;
};
export declare const buttonEmits: {
click: (evt: MouseEvent) => boolean;
};
/**
* @deprecated Removed after 3.0.0, Use `ButtonProps` instead.
*/
export type ButtonPropsPublic = ExtractPublicPropTypes<typeof buttonProps>;
export type ButtonEmits = typeof buttonEmits;
export interface ButtonConfigContext {
type?: ButtonProps['type'];
plain?: ButtonProps['plain'];
text?: ButtonProps['text'];
round?: ButtonProps['round'];
autoInsertSpace?: ButtonProps['autoInsertSpace'];
}