GitHub

File Upload

File upload input with drag and drop support

Basic Usage

Loading...

Installation

pnpm add @corew500/ui

Usage

import { FileUpload } from "@corew500/ui/file-upload"

<FileUpload>Content</FileUpload>

Variants

fileUploadVariants

AxisValuesDefault
size
smdefaultlg
default

dropzoneVariants

AxisValuesDefault
variant
defaultoutline
default
isDragActive
truefalse
false
disabled
truefalse
false

API Reference

Props

PropTypeDefaultDescription
acceptstringAccepted file types (e.g., "image/*", ".pdf,.doc")
maxSizenumberMaximum file size in bytes
maxFilesnumberMaximum number of files
multipleenumtrueAllow multiple files
disabledenumfalseDisabled state
valueFileUploadFile[]Current files (controlled)
onFilesChange(files: FileUploadFile[]) => voidCalled when files change
onError(error: FileUploadError) => voidCalled when an error occurs
sizeenum

Accessibility

Keyboard Navigation

  • - File input is keyboard accessible via native input element

Screen Readers

  • Dropzone announces drag state to screen readers
  • File list includes proper ARIA labels for remove buttons
  • Upload progress communicated via aria-valuenow attributes

Localization

Translatable Content

  • - Pass translated strings to FileUploadLabel and FileUploadTrigger

Locale-Specific Formatting

  • File size formatting can be customized via formatFileSize utility

Additional

  • Error messages should be localized before passing to onError callback