<script setup lang="ts"> import type { HTMLAttributes } from 'vue' import { cn } from '@/lib/utils' import { Primitive, type PrimitiveProps } from 'reka-ui' import { type ButtonVariants, buttonVariants } from '.' interface Props extends PrimitiveProps { variant?: ButtonVariants['variant'] size?: ButtonVariants['size'] class?: HTMLAttributes['class'] } const props = withDefaults(defineProps<Props>(), { as: 'button', }) </script> <template> <Primitive :as="as" :as-child="asChild" :class="cn(buttonVariants({ variant, size }), props.class)" > <slot /> </Primitive> </template>