|
9 | 9 | import { defineComponent } from 'vue'; |
10 | 10 |
|
11 | 11 | export default defineComponent({ |
12 | | - props: { |
13 | | - full: { type: Boolean, default: false }, |
14 | | - sm: { type: Boolean, default: false }, |
15 | | - md: { type: Boolean, default: true }, |
16 | | - lg: { type: Boolean, default: false }, |
17 | | - primary: { type: Boolean, default: true }, |
18 | | - secondary: { type: Boolean, default: false }, |
19 | | - tertiary: { type: Boolean, default: false }, |
20 | | - icon: { default: null }, |
21 | | - iconRight: { type: Boolean, default: false }, |
22 | | - bgColor: { type: String, default: 'bg-accent' }, |
23 | | - borderColor: { type: String, default: 'border-accent' }, |
24 | | - }, |
25 | | - emits: ['click'], |
26 | | - setup(props, { emit }) { |
27 | | - function onclick() { |
28 | | - emit('click', true); |
29 | | - } |
| 12 | + props: { |
| 13 | + full: { type: Boolean, default: false }, |
| 14 | + sm: { type: Boolean, default: false }, |
| 15 | + md: { type: Boolean, default: true }, |
| 16 | + lg: { type: Boolean, default: false }, |
| 17 | + primary: { type: Boolean, default: true }, |
| 18 | + secondary: { type: Boolean, default: false }, |
| 19 | + tertiary: { type: Boolean, default: false }, |
| 20 | + icon: { default: null }, |
| 21 | + iconRight: { type: Boolean, default: false }, |
| 22 | + bgColor: { type: String, default: 'bg-accent' }, |
| 23 | + borderColor: { type: String, default: 'border-accent' }, |
| 24 | + }, |
| 25 | + emits: ['click'], |
| 26 | + setup(props, { emit }) { |
| 27 | + function onclick() { |
| 28 | + emit('click', true); |
| 29 | + } |
30 | 30 |
|
31 | | - const textColor = computed(() => { |
32 | | - return props.bgColor.includes('warning') ? 'text-primary' : 'text-white'; |
33 | | - }); |
34 | | - const classes = computed(() => { |
35 | | - return [ |
36 | | - { |
37 | | - lg: props.lg, |
38 | | - md: props.md && !props.lg && !props.sm, |
39 | | - sm: props.sm, |
40 | | - 'flex-row-reverse': props.iconRight, |
41 | | - 'text-center justify-center w-full': props.full, |
42 | | - }, |
43 | | - props.primary && !props.secondary && !props.tertiary |
44 | | - ? `primary ${props.bgColor} text-primary hover:${props.bgColor} border ${props.borderColor} hover:ring-4 md:hover:ring-8 hover:ring-tertiary` |
45 | | - : '', |
46 | | - props.secondary |
47 | | - ? `secondary bg-transparent text-heading hover:bg-transparent border ${props.borderColor} hover:ring-4 md:hover:ring-8 hover:ring-tertiary` |
48 | | - : '', |
49 | | - props.tertiary |
50 | | - ? `tertiary bg-transparent text-heading hover:bg-transparent hover:scale-105 border border-transparent hover:ring-4 md:hover:ring-8 hover:ring-transparent` |
51 | | - : '', |
52 | | - ]; |
53 | | - }); |
54 | | - return { classes, onclick }; |
55 | | - }, |
| 31 | + const textColor = computed(() => { |
| 32 | + return props.bgColor.includes('warning') ? 'text-primary' : 'text-white'; |
| 33 | + }); |
| 34 | + const classes = computed(() => { |
| 35 | + return [ |
| 36 | + { |
| 37 | + lg: props.lg, |
| 38 | + md: props.md && !props.lg && !props.sm, |
| 39 | + sm: props.sm, |
| 40 | + 'flex-row-reverse': props.iconRight, |
| 41 | + 'text-center justify-center w-full': props.full, |
| 42 | + }, |
| 43 | + props.primary && !props.secondary && !props.tertiary |
| 44 | + ? `primary ${props.bgColor} text-primary hover:${props.bgColor} border ${props.borderColor} hover:ring-4 md:hover:ring-8 hover:ring-tertiary` |
| 45 | + : '', |
| 46 | + props.secondary |
| 47 | + ? `secondary bg-transparent text-heading hover:bg-transparent border ${props.borderColor} hover:ring-4 md:hover:ring-8 hover:ring-tertiary` |
| 48 | + : '', |
| 49 | + props.tertiary |
| 50 | + ? `tertiary bg-transparent text-heading hover:bg-transparent hover:scale-105 border border-transparent hover:ring-4 md:hover:ring-8 hover:ring-transparent` |
| 51 | + : '', |
| 52 | + ]; |
| 53 | + }); |
| 54 | + return { classes, onclick }; |
| 55 | + }, |
56 | 56 | }); |
57 | 57 | </script> |
58 | 58 | <style scoped> |
|
0 commit comments