<template> <button :disabled="disabled || loading" class="btn" ref="submitBtn" :class="{ loading: loading, }" > <label v-if="$slots.icon" class="swap swap-rotate mr-2" :class="{ 'swap-active': isHover }"> <slot name="icon" /> </label> <slot /> </button> </template> <script setup lang="ts"> defineProps({ loading: { type: Boolean, default: false, }, disabled: { type: Boolean, default: false, }, }); const submitBtn = ref(null); const isHover = useElementHover(submitBtn); </script>