flbxcup/resources/js/components/ui/pagination/pagination-link.svelte
2025-06-23 23:12:40 +02:00

39 lines
769 B
Svelte

<script lang="ts">
import { Pagination as PaginationPrimitive } from "bits-ui";
import { cn } from "@/lib/utils.js";
import { type Props, buttonVariants } from "@/components/ui/button/index.js";
let {
ref = $bindable(null),
class: className,
size = "icon",
isActive = false,
page,
children,
...restProps
}: PaginationPrimitive.PageProps &
Props & {
isActive: boolean;
} = $props();
</script>
{#snippet Fallback()}
{page.value}
{/snippet}
<PaginationPrimitive.Page
bind:ref
{page}
aria-current={isActive ? "page" : undefined}
data-slot="pagination-link"
data-active={isActive}
class={cn(
buttonVariants({
variant: isActive ? "outline" : "ghost",
size,
}),
className
)}
children={children || Fallback}
{...restProps}
/>