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/bearnie/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.

Prop Type Default Description
multiple boolean false Allow multiple file selection
accept string - Accepted file types (MIME types)
maxSize number - Maximum file size in bytes
disabled boolean false Disable the upload
class string - Additional CSS classes

FileUploadInput

Hidden file input element.

Prop Type Default Description
name string - Input name for form submission
multiple boolean false Allow multiple files
accept string - 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.