Quillan-Ronin / llama.cpp /tools /server /webui /src /lib /components /ui /scroll-area /scroll-area.svelte
| <script lang="ts"> | |
| import { ScrollArea as ScrollAreaPrimitive } from 'bits-ui'; | |
| import { Scrollbar } from './index.js'; | |
| import { cn, type WithoutChild } from '$lib/components/ui/utils'; | |
| let { | |
| ref = $bindable(null), | |
| class: className, | |
| orientation = 'vertical', | |
| scrollbarXClasses = '', | |
| scrollbarYClasses = '', | |
| children, | |
| ...restProps | |
| }: WithoutChild<ScrollAreaPrimitive.RootProps> & { | |
| orientation?: 'vertical' | 'horizontal' | 'both' | undefined; | |
| scrollbarXClasses?: string | undefined; | |
| scrollbarYClasses?: string | undefined; | |
| } = $props(); | |
| </script> | |
| <ScrollAreaPrimitive.Root | |
| bind:ref | |
| data-slot="scroll-area" | |
| class={cn('relative', className)} | |
| {...restProps} | |
| > | |
| <ScrollAreaPrimitive.Viewport | |
| data-slot="scroll-area-viewport" | |
| class="size-full rounded-[inherit] ring-ring/10 outline-ring/50 transition-[color,box-shadow] focus-visible:ring-4 focus-visible:outline-1 dark:ring-ring/20 dark:outline-ring/40" | |
| > | |
| {@render children?.()} | |
| </ScrollAreaPrimitive.Viewport> | |
| {#if orientation === 'vertical' || orientation === 'both'} | |
| <Scrollbar orientation="vertical" class={scrollbarYClasses} /> | |
| {/if} | |
| {#if orientation === 'horizontal' || orientation === 'both'} | |
| <Scrollbar orientation="horizontal" class={scrollbarXClasses} /> | |
| {/if} | |
| <ScrollAreaPrimitive.Corner /> | |
| </ScrollAreaPrimitive.Root> | |