Skip to content

Components

Floating panel that shows upload progress, errors, and per-file actions. Includes tabs for filtering (All / Uploading / Completed / Failed), real-time speed and ETA, and toast notifications.

<script>
import { FirebaseUploadManager, UploadPanel } from 'svelte-firebase-upload';
const manager = new FirebaseUploadManager({ autoStart: true });
let showPanel = $state(true);
</script>
<UploadPanel
uploadManager={manager}
bind:visible={showPanel}
position="bottom-right"
onerror={(item, error) => console.log('Failed:', item.file.name, error)}
/>
PropTypeDefaultDescription
uploadManagerFirebaseUploadManagerrequiredManager instance
visiblebooleantrueBindable show/hide
position'bottom-right' | 'bottom-left''bottom-right'Panel screen position
onerror(item: UploadItem, error: string) => voidError callback
  • Minimize/expand toggle for compact view
  • Tabbed filtering — All, Uploading, Completed, Failed
  • Per-file actions — cancel (uploading), retry (failed), copy link (completed)
  • Close protection — disabled during active uploads
  • Toast notifications — automatic error/warning toasts
  • Virtualized list — efficient rendering for large file counts

Drag & drop area with click-to-browse. Supports custom content via Svelte snippets.

<UploadDropZone
uploadManager={manager}
accept="image/*,.pdf"
path="user-uploads/"
maxSize={10 * 1024 * 1024}
/>
PropTypeDefaultDescription
uploadManagerFirebaseUploadManagerrequiredManager instance
acceptstring''File type filter (MIME types or extensions)
multiplebooleantrueAllow multiple files
maxSizenumberMax file size in bytes
pathstring'uploads/'Firebase Storage directory
disabledbooleanfalseDisable interaction
classstringCustom CSS class
childrenSnippetCustom drop zone content