UploadTray
v1.0.8Updated 27 Aug 2026Gmail-style floating upload manager. Fixed corner positioning, minimisable header (thin progress visible while minimised), persistent across pages, autoCloseOnComplete, notifyOnComplete (sonner toast), four corners, conf
Preview
Live · 9 stories▸Why this is recommendedformuploadtrayfloating+5
The default, out-of-the-box UploadTray.
- ✓Floating upload tray that shows progress for many files
- ✓Minimizable upload manager persistent across page navigation
- ✓Gmail-style background uploads tray
- ✓Large-batch bulk imports with many files
- ✓Long-running uploads outside the current page
- Fixed corner positioning (4 corners)
- Minimisable header with thin progress visible while minimised
- Persistent across page navigation
- autoCloseOnComplete after all uploads finish
- notifyOnComplete via sonner toast
- Configurable width / offset / maxBodyHeight
- Per-file pause / resume / retry / cancel / remove / open actions
- Tray-level clear-completed action
- Custom title renderer (UploadTrayStats)
- i18n: labels prop overrides every built-in string (header titles, row status text, tooltips/aria-labels, empty state, completion toasts); numbers, byte sizes and ETA durations format through LocaleProvider
- ✕Inline single upload (use FileUpload)
- ✕Embedded progress inside a form (use UploadProgress)
Install
Ask your agent, or call the MCP tool directly. The resolved bundle is written into your project.
Usage
Tick variants in the left menu — each adds a tab with that variant’s real story source, the same code the preview above renders.
Props
filesFile list shared with UploadProgress
yesonFileActionPer-file action dispatcher
—onClearCompletedClear all completed handler
—openControlled open state
—minimizedControlled minimised state
—positionCorner position
—offsetDistance from edge (default 24)
—widthTray width (default 360)
—maxBodyHeightBody max height (default 360)
—autoCloseOnCompleteClose when all done
—notifyOnCompleteSonner toast on completion
—titleRendererCustom header title
—labelsOverride any built-in UI string — header titles, row status text, action tooltips/aria-labels, empty state, completion toasts (i18n). Merged over DEFAULT_UPLOAD_TRAY_LABELS; {token} templates for parameterized strings. Numbers, byte sizes and ETA durations follow LocaleProvider.
—