FileUpload

Drag-and-drop zone with a file list. Supports accept, multiple, and maxSize. Controlled or uncontrolled.

$npx shadcn@latest add https://ui.btng.studio/r/file-upload

Single file

Click or drop. Selecting a file replaces the previous one.

Multiple with controlled state

Pass multiple to allow many files; drive the list via files + onFilesChange.