saturation/uisaturation/ui
DocsComponentsBlocksPages
GitHub

Sections

IntroductionComponentsInstallationMCPTheming

Components

ComponentsAccordionAI Chat InputAlertAnimated GroupAnimated NumberAvatarBadgeBeamBlur FadeBorder TrailBreadcrumbButtonButton GroupCalendar PickerCardChartCheckboxCollapsibleComboboxCommandComparison SliderContext MenuCredit CardData TableDate PickerDialogDropdown MenuEmoji PickerEmptyFieldFiltersFull CalendarGlow EffectInputInput GroupInput OTPItemKanbanKbdMenubarNavigation MenuNovel EditorPaginationParallaxProgressProgressive BlurRadio GroupRippleSelectSeparatorSheetSkeletonSliderSonnerSpinnerSpotlightSwitchTableTabsText EffectText ShimmerTextareaToggleToggle GroupTreeTypography
Docs/Components/File Upload Zone

File Upload Zone

A drag-and-drop file upload zone with progress tracking and file status display.

Loading...

Installation

pnpm dlx shadcn@latest add https://ui.saturation.io/r/file-upload-zone.json

Usage

import { FileUploadZone } from "@/components/ui/file-upload-zone"
<FileUploadZone
  files={uploadedFiles}
  onFilesDrop={(files) => handleFiles(files)}
  onRemoveFile={(id) => removeFile(id)}
/>

API Reference

FileUploadZone

PropTypeDefaultDescription
filesUploadedFile[][]Array of uploaded file objects with progress and status.
onFilesDrop(files: File[]) => void—Callback when files are dropped or selected.
onRemoveFile(fileId: string) => void—Callback when a file is removed.
showDropZonebooleantrueWhether to show the drop zone area.
classNamestring—Additional CSS classes.

UploadedFile

interface UploadedFile {
  id: string
  name: string
  progress: number
  status: "uploading" | "scanning" | "matched" | "unmatched" | "error"
  matchedWith?: string
}
PreviousFieldNextFilters

On This Page

  • Installation
  • Usage
  • API Reference
  • FileUploadZone
  • UploadedFile

Drop files here

Invoices and receipts accepted

invoice-march.pdfMatched
Matched with Transaction #4521
receipt-042.pngUploading
statement-q1.pdfScanning