mirror of
https://github.com/frappe/books.git
synced 2025-02-06 14:09:25 +00:00
63 lines
1.2 KiB
Vue
63 lines
1.2 KiB
Vue
<template>
|
|
<button
|
|
class="
|
|
focus:outline-none
|
|
rounded-md
|
|
flex
|
|
justify-center
|
|
items-center
|
|
text-sm
|
|
"
|
|
:class="_class"
|
|
v-bind="$attrs"
|
|
>
|
|
<slot></slot>
|
|
</button>
|
|
</template>
|
|
<script>
|
|
export default {
|
|
name: 'Button',
|
|
props: {
|
|
type: {
|
|
type: String,
|
|
default: 'secondary',
|
|
},
|
|
icon: {
|
|
type: Boolean,
|
|
default: false,
|
|
},
|
|
disabled: {
|
|
type: Boolean,
|
|
default: false,
|
|
},
|
|
padding: {
|
|
type: Boolean,
|
|
default: true,
|
|
},
|
|
background: {
|
|
type: Boolean,
|
|
default: true,
|
|
},
|
|
},
|
|
computed: {
|
|
_class() {
|
|
return {
|
|
'opacity-50 cursor-not-allowed pointer-events-none': this.disabled,
|
|
'text-white': this.type === 'primary',
|
|
'bg-blue-500': this.type === 'primary' && this.background,
|
|
'text-gray-700': this.type !== 'primary',
|
|
'bg-gray-200': this.type !== 'primary' && this.background,
|
|
'h-8': this.background,
|
|
'px-3': this.padding && this.icon,
|
|
'px-6': this.padding && !this.icon,
|
|
};
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
<style scoped>
|
|
button:focus {
|
|
filter: brightness(0.95);
|
|
}
|
|
</style>
|