Concrete
form
Component

File upload

Local upload queue composition with dropzone, file validation, progress rows, and remove actions.

File upload owns local selection and value shape only. Applications own signed URLs, transport, retries, virus scanning, and persistence.

Upload filesDrop PDFs, images, or source packets.
Q2_report.pdf2.3 MB - 72%
Playground

Props in the URL.

Controls update query params directly. Complex slots use curated fixtures so component states stay deterministic, linkable, and screenshot-ready.

Loading playground.
States

Rendered matrix.

Every state maps to the same component render route through the `state` query param.

Upload filesDrop PDFs, images, or source packets.
Q2_report.pdf2.3 MB - 72%
Default

Dropzone with a completed file row.

/render state
Upload filesDrop PDFs, images, or source packets.
Empty

Empty drop target.

/render state
Upload filesDrop PDFs, images, or source packets.
archive.zipFile type is not accepted.
Error

Rejected file row with validation copy.

/render state
Props

Public contract.

NameTypeDefaultDescription
valuereadonly UploadItemValue[]-Controlled upload queue.
defaultValuereadonly UploadItemValue[][]Uncontrolled initial upload queue.
acceptstring-Native accept filter for selected files.
maxSizenumber-Maximum file size in bytes.
multiplebooleantrueAllows multiple files in the queue.
previewImagesbooleanfalseCreates local object URLs for image previews.
onValueChange(value: readonly UploadItemValue[]) => void-Receives queue values.
onFilesChange(files: readonly File[]) => void-Receives raw dropped or selected files.
labelReactNode-Field label.