Files
element-plus/packages/components/button/src/button.ts
云游君 4560adfdf8 refactor(style): adjust component size to large/default/small (#4491)
* refactor(style): adjust component size to large/default/small

* refactor(components): avatar size & use flex instead of block

* refactor(components): adjust check button size

* refactor(components): adjust tag size

* refactor(components): adjust size doc

* fix(components): datetime-picker demo style width

* refactor(components): color-picker size & block to flex

* refactor(components): adjust slider input size

* refactor(components): adjust radio input size for demo

* refactor(components): adjust select size & docs

* refactor(components): adjust form radio size & docs

* refactor(components): add windicss for docs

* refactor(components): adjust skeleton avatar size to css var

* refactor(components): simplify typography size demo

* refactor(components): adjust dropdown size & demo

* refactor(components): adjust descriptions size

* fix(components): datetime-picker showcase class pollute global button

* chore(ci): upgrade docs dependencies to fix ci

* fix(ci): add highlight because vitepress not export it

* fix(ci): disable line for no-console

* fix(ci): remove mini to fix test

* fix(style): code font size

* fix(style): button span flex style

* fix(style): button padding horizontal default 15px

* refactor(components): adjust tag padding size & demo

* refactor(components): adjust form line-height for input

* refactor(components): adjust dropdown menu size & button padding

* fix(style): picker separator block to flex center

* fix: dropdown button span items-center

* style: adjust input-with-icon & size demo & fix input vitepress load

* chore: upgrade dependencies

* chore: upgrade dependencies

* ci: fix website build

* ci: regenerate pnpm-lock.yaml

* ci: use dev pnpm-lock

* ci: update pnpm-lock.yaml
2021-12-12 17:54:21 +08:00

63 lines
1.4 KiB
TypeScript

import { useSizeProp } from '@element-plus/hooks'
import { buildProps, definePropType } from '@element-plus/utils/props'
import type { ExtractPropTypes, Component } from 'vue'
import type button from './button.vue'
export const buttonType = [
'default',
'primary',
'success',
'warning',
'info',
'danger',
'text',
'',
] as const
export const buttonSize = ['', 'large', 'default', 'small'] as const
export const buttonNativeType = ['button', 'submit', 'reset'] as const
export const buttonProps = buildProps({
size: useSizeProp,
disabled: Boolean,
type: {
type: String,
values: buttonType,
default: '',
},
icon: {
type: definePropType<string | Component>([String, Object]),
default: '',
},
nativeType: {
type: String,
values: buttonNativeType,
default: 'button',
},
loading: Boolean,
plain: Boolean,
autofocus: Boolean,
round: Boolean,
circle: Boolean,
color: String,
autoInsertSpace: {
type: Boolean,
default: undefined,
},
} as const)
export interface ButtonConfigContext {
autoInsertSpace?: boolean
}
export const buttonEmits = {
click: (evt: MouseEvent) => evt instanceof MouseEvent,
}
export type ButtonProps = ExtractPropTypes<typeof buttonProps>
export type ButtonEmits = typeof buttonEmits
export type ButtonType = ButtonProps['type']
export type ButtonNativeType = ButtonProps['nativeType']
export type ButtonInstance = InstanceType<typeof button>