File uploader
A multi-file uploader with a compact dropzone, image thumbnails from object URLs, per-file progress, type and size validation, reorder, retry and remove.
Preview
Attach to LNT-219
Drop files or choose from your device
IMAGES, PDF, CSV · up to 10.0 MB · 6 files max
plan-picker-v3.png
822 KBUploaded
launch-brief.pdf
1.2 MBUploading 62%
pricing-table.csv
18 KBWaiting
team-offsite.mov
46.0 MBMOV files aren't accepted
Install
Pro source requires Pebble Pro. Try the full preview above.
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| accept | string[] | — | Accepted MIME types, type/* or .ext; others are rejected with a reason. |
| maxSize | number | — | Largest file in bytes. |
| maxFiles | number | — | Most files in the list; extra files are skipped. |
| defaultItems | UploadItem[] | [] | { id, name, size, type, status, progress?, error?, file? } — e.g. files already uploaded. |
| onItemsChange | (items: UploadItem[]) => void | — | Called after adds, progress, reorders and removals. |
| upload | (file, onProgress) => Promise<void> | — | Uploads one file and reports 0–1 progress; reject to mark it failed. |
| label | string | "Attachments" | Name of the file input and the list. |
| hint | string | built from the rules | Muted line under the dropzone title. |
Pro component
Try the full preview above. Editable source and build guides require Pebble Pro.
