import * as React from 'react';

interface ProgressProps extends React.HTMLAttributes<HTMLDivElement> {
    value?: number;
    max?: number;
}

const Progress = React.forwardRef<HTMLDivElement, ProgressProps>(
    ({ className, value = 0, max = 100, ...props }, ref) => {
        const percentage = Math.min(Math.max((value / max) * 100, 0), 100);

        return (
            <div
                ref={ref}
                className={`relative h-2 w-full overflow-hidden rounded-full bg-neutral-200 dark:bg-neutral-800 ${className || ''}`}
                {...props}
            >
                <div
                    className="h-full bg-primary transition-all duration-300 ease-in-out"
                    style={{ width: `${percentage}%` }}
                />
            </div>
        );
    }
);
Progress.displayName = 'Progress';

export { Progress };

