Files
convert-ui/components/ui/Progress.tsx
Sebastian Krüger 1771ca42eb feat: initialize Convert UI - browser-based file conversion app
- Add Next.js 16 with Turbopack and React 19
- Add Tailwind CSS 4 with OKLCH color system
- Implement FFmpeg.wasm for video/audio conversion
- Implement ImageMagick WASM for image conversion
- Add file upload with drag-and-drop
- Add format selector with fuzzy search
- Add conversion preview and download
- Add conversion history with localStorage
- Add dark/light theme support
- Support 22+ file formats across video, audio, and images

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 10:44:49 +01:00

34 lines
945 B
TypeScript

import * as React from 'react';
import { cn } from '@/lib/utils/cn';
export interface ProgressProps {
value: number;
max?: number;
className?: string;
showLabel?: boolean;
}
const Progress = React.forwardRef<HTMLDivElement, ProgressProps>(
({ value, max = 100, className, showLabel = false }, ref) => {
const percentage = Math.min(Math.max((value / max) * 100, 0), 100);
return (
<div ref={ref} className={cn('w-full', className)}>
<div className="relative h-4 w-full overflow-hidden rounded-full bg-secondary">
<div
className="h-full bg-primary transition-all duration-300 ease-in-out"
style={{ width: `${percentage}%` }}
/>
</div>
{showLabel && (
<div className="mt-1 text-xs text-muted-foreground text-right">{Math.round(percentage)}%</div>
)}
</div>
);
}
);
Progress.displayName = 'Progress';
export { Progress };