31 lines
789 B
Vue
31 lines
789 B
Vue
<script setup lang="ts">
|
|
import { type HTMLAttributes, computed } from "vue"
|
|
import { PaginationLast, type PaginationLastProps } from "radix-vue"
|
|
import { Button } from "~/components/ui/button"
|
|
import { cn } from "~/lib/utils"
|
|
import { PhCaretDoubleRight } from "@phosphor-icons/vue"
|
|
|
|
const props = withDefaults(
|
|
defineProps<PaginationLastProps & { class?: HTMLAttributes["class"] }>(),
|
|
{
|
|
asChild: true
|
|
}
|
|
)
|
|
|
|
const delegatedProps = computed(() => {
|
|
const { class: _, ...delegated } = props
|
|
|
|
return delegated
|
|
})
|
|
</script>
|
|
|
|
<template>
|
|
<PaginationLast v-bind="delegatedProps">
|
|
<Button :class="cn('size-8 md:size-10 p-0', props.class)" variant="outline">
|
|
<slot>
|
|
<PhCaretDoubleRight class="size-4" />
|
|
</slot>
|
|
</Button>
|
|
</PaginationLast>
|
|
</template>
|