Concrete
media
Primitive

Upload item

Single uploaded-file row with thumbnail, progress, status, and remove affordance.

Use UploadItem inside upload components or queues. Keep the row compact and let progress/status carry the interaction state.

Q2_report.pdf2.4 MB
Playground

Props in the URL.

Controls update query params directly, so every primitive state can be linked, rendered, and screenshotted deterministically.

Loading playground.
States

Rendered matrix.

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

interface-reference.png2.4 MB
Image

Image row with preview affordance.

/render state
Q2_report.pdfFile type is not accepted.
Error

Rejected file row.

/render state
Props

Public contract.

NameTypeDefaultDescription
name *ReactNode-Visible file name.
metaReactNode-Size, type, or secondary upload metadata.
errorReactNode-Error copy shown instead of metadata.
status'idle' | 'uploading' | 'success' | 'error'idleUpload item status.
progressnumber-Optional 0-100 upload progress rail.
previewUrlstring-Image preview URL.
iconIconNamefileFallback glyph when no preview is present.
onRemove() => void-Shows and handles the remove affordance.