Spaces:
Running
Running
| <script lang="ts"> | |
| import { ScrollArea as ScrollAreaPrimitive } from "bits-ui"; | |
| import { Scrollbar } from "./index.js"; | |
| import { cn, type WithoutChild } from "$lib/utils.js"; | |
| 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="ring-ring/10 dark:ring-ring/20 dark:outline-ring/40 outline-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] focus-visible:ring-4 focus-visible:outline-1" | |
| > | |
| {@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> | |