bearnie

File Upload

A drag and drop file input with preview support.

Click to upload or drag and drop

PNG, JPG or PDF (max. 10MB)

Installation

npx bearnie add file-upload
npx bearnie add file-upload

Usage

import {
FileUpload,
FileUploadTrigger,
FileUploadInput,
FileUploadDropzone,
FileUploadPreview,
} from "@/components/ui/file-upload"
<FileUpload class="space-y-4">
<FileUploadInput name="file" />
<FileUploadDropzone />
<FileUploadPreview />
</FileUpload>

Examples

With button trigger

Single file

Upload a document

PDF, DOC, or DOCX

Multiple files

Upload multiple images

Select multiple files or drag them here

Props

FileUpload

Root container that manages the file upload state.

PropTypeDefaultDescription
multiplebooleanfalseAllow multiple file selection
acceptstring-Accepted file types (MIME types)
maxSizenumber-Maximum file size in bytes
disabledbooleanfalseDisable the upload
classstring-Additional CSS classes

FileUploadInput

Hidden file input element.

PropTypeDefaultDescription
namestring-Input name for form submission
multiplebooleanfalseAllow multiple files
acceptstring-Accepted file types

FileUploadDropzone

Visual drop area for drag and drop. Clicking also opens the file picker.

FileUploadTrigger

Optional button to trigger file selection without the dropzone.

FileUploadPreview

Displays selected files with name, size, and remove button.