7 lines
606 B
Vue
7 lines
606 B
Vue
<script setup lang="ts">
|
|
import type { UiButtonType, UiSeverity } from '../contracts'
|
|
withDefaults(defineProps<{ label?: string; severity?: UiSeverity; type?: UiButtonType; disabled?: boolean; loading?: boolean }>(), { severity: 'primary', type: 'button', disabled: false, loading: false })
|
|
const emit = defineEmits<{ activate: [event: MouseEvent] }>()
|
|
</script>
|
|
<template><button class="ks-native-button" :class="`is-${severity}`" :type="type" :disabled="disabled || loading" @click="emit('activate', $event)"><span v-if="loading" aria-hidden="true">…</span><slot>{{ label }}</slot></button></template>
|