import * as React from "react"
import * as ProgressPrimitive from "@radix-ui/react-progress"

import { cn } from "@/lib/utils"

const Progress = React.forwardRef<
	React.ElementRef<typeof ProgressPrimitive.Root> & { progressBackgroundClass?: string },
	React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root> & { progressBackgroundClass?: string }
>(({ className, value, progressBackgroundClass = "", ...props }, ref) => (
	<ProgressPrimitive.Root
		ref={ref}
		className={cn("relative h-2 w-full overflow-hidden rounded-full bg-vscode-editor-background", className)}
		{...props}>
		<ProgressPrimitive.Indicator
			className={cn("h-full w-full flex-1 bg-vscode-badge-background transition-all", progressBackgroundClass)}
			style={{ transform: `translateX(-${100 - (value || 0)}%)` }}
		/>
	</ProgressPrimitive.Root>
))
Progress.displayName = ProgressPrimitive.Root.displayName

export { Progress }
