import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area"
import * as React from "react"
import { twMerge } from "tailwind-merge"
const ScrollArea = React.forwardRef<
React.ComponentRef<typeof ScrollAreaPrimitive.Root>,
React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>
>(({ className, children, ...props }, ref) => (
<ScrollAreaPrimitive.Root ref={ref} className={twMerge("overflow-hidden", className)} {...props}>
{children}
<ScrollAreaPrimitive.Corner />
<ScrollBar orientation="vertical" />
</ScrollAreaPrimitive.Root>
))
ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName
const ScrollViewport = React.forwardRef<
React.ComponentRef<typeof ScrollAreaPrimitive.Viewport>,
React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Viewport>
>(({ className, children, ...props }, ref) => (
<ScrollAreaPrimitive.Viewport
ref={ref}
className={twMerge("size-full rounded-[inherit]", className)}
{...props}
>
{children}
</ScrollAreaPrimitive.Viewport>
))
ScrollViewport.displayName = ScrollAreaPrimitive.Viewport.displayName
const ScrollBar = React.forwardRef<
React.ComponentRef<typeof ScrollAreaPrimitive.Scrollbar>,
React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Scrollbar>
>(({ className, orientation = "vertical", ...props }, ref) => (
<ScrollAreaPrimitive.Scrollbar
ref={ref}
orientation={orientation}
className={twMerge(
"flex select-none data-[state=hidden]:animate-fd-fade-out",
orientation === "vertical" && "h-full w-1.5",
orientation === "horizontal" && "h-1.5 flex-col",
className,
)}
{...props}
>
<ScrollAreaPrimitive.ScrollAreaThumb className="relative flex-1 rounded-full bg-fd-border" />
</ScrollAreaPrimitive.Scrollbar>
))
ScrollBar.displayName = ScrollAreaPrimitive.Scrollbar.displayName
export { ScrollArea, ScrollBar, ScrollViewport }