- Components24
- Autocomplete
- Location Input
- Signature Input
- Signature Pad
- Credit Card
- Masked Input
- Color Picker
- Tag / Token Input
- Emoji Picker
- Transfer List
- Tree Select
- Image Upload / Dropzone
- Cron Expression Builder
- Inline Editable Field
- Sortable List Input
- Schedule / Availability Picker
- Phone Input
- Datetime Picker
- Smart Datetime Input
- File Upload
- Tags Input
- Multi Select
- Password Input
- Rating
File Upload
Composable dropzone with file list, keyboard support and size/count limits.
File Upload
Composable dropzone with file list, keyboard support and size/count limits.
Preview
Drop files or click to upload (max 5, 4MB each)
Features
- Drag and drop or click, powered by react-dropzone.
- File count and size limits with toast feedback (sonner).
- Arrow keys move between files; Delete removes one.
Installation
npx shadcn@latest add https://www.shadcn-form.com/r/file-upload.json
The CLI installs every dependency listed in the registry item.
Usage
import {FileInput,FileUploader,FileUploaderContent,FileUploaderItem,} from '@/components/ui/file-upload'const [files, setFiles] = React.useState<File[] | null>(null)const dropzoneOptions = { maxFiles: 5, maxSize: 1024 * 1024 * 4, multiple: true }<FileUploader value={files} onValueChange={setFiles} dropzoneOptions={dropzoneOptions}><FileInput className="outline-dashed outline-1"><p className="p-6 text-sm">Drop files or click to upload</p></FileInput><FileUploaderContent>{files?.map((file, i) => (<FileUploaderItem key={i} index={i}>{file.name}</FileUploaderItem>))}</FileUploaderContent></FileUploader>