Files
classroomio/packages/ui/src/base/pagination/pagination-link.svelte
T

40 lines
783 B
Svelte

<script lang="ts">
import { Pagination as PaginationPrimitive } from 'bits-ui';
import { cn } from '../../tools';
import { type Props, buttonVariants } from '../button';
let {
ref = $bindable(null),
class: className,
size = 'icon',
isActive,
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}
/>