<script setup lang="ts"> import { cn } from '@/lib/utils' import { AlertDialogContent, type AlertDialogContentEmits, type AlertDialogContentProps, AlertDialogOverlay, AlertDialogPortal, useForwardPropsEmits, } from 'reka-ui' import { computed, type HTMLAttributes } from 'vue' const props = defineProps<AlertDialogContentProps & { class?: HTMLAttributes['class'] }>() const emits = defineEmits<AlertDialogContentEmits>() const delegatedProps = computed(() => { const { class: _, ...delegated } = props return delegated }) const forwarded = useForwardPropsEmits(delegatedProps, emits) </script> <template> <AlertDialogPortal> <AlertDialogOverlay class="fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0" /> <AlertDialogContent v-bind="forwarded" :class=" cn( 'fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg', props.class, ) " > <slot /> </AlertDialogContent> </AlertDialogPortal> </template>