Skip to content
Devix Open Source

Changelog

Every release of File Uploader, newest first. Breaking changes are flagged.

v1.0.0

12 Sep 2026

First release.

Added

  • Sizes that say their own unit: a bare number is always bytes, '5MB' is 5,000,000 and '5MiB' is 5,242,880 — the confusion behind the four most-reacted open issues on Dropzone.
  • Rejection with a reason: 'too-large', 'too-small', 'wrong-type', 'too-many', 'duplicate', 'empty' or 'rejected', each with the limit and the actual value, and a rule of your own that can answer with a code or its own sentence. Rejected files stay in the list saying what happened.
  • Type matching on the extension as well as the media type, because Windows calls .csv an Excel file and a file out of an archive often has no type at all.
  • Resumable chunked uploads over a plain protocol — headers and a raw body, no envelope — with a HEAD probe that asks the server what it already has.
  • Retries with exponential backoff for the failures worth repeating (a dropped connection, a 500, a 429) and none for the ones that are the server's answer (a 422, a 401).
  • Upload speed and time remaining, from a rolling average that says nothing rather than claiming a stale rate when a connection stalls.
  • Files uploaded in the order they were added, concurrency of them at a time.
  • Dropped folders read to the end — readEntries hands back a hundred at a time and must be called until it returns none — with each file's path kept and sent.
  • Pasted screenshots taken as files, and renamed, because every one of them is called image.png.
  • A footer that counts what it can honestly count: uploads when there is a server, attachments when there is not.
  • Per-file progress, cancel, retry and remove; image thumbnails; transform for compressing or stripping a file before it is sent.
  • Without a url, the widget enhances the input and a plain form posts the files itself.
  • The real <input type="file"> kept as the control, with the drop zone as its label, named buttons per row, a real progressbar, and a live region.
  • React, Vue, Svelte, <dx-uploader> and a CDN build over one DOM core.
  • Theming through CSS variables, classNames on every part, replaceable icons, theme: 'auto', a @layer devix stylesheet, RTL by way of logical properties, and forced-colors support.
  • 8.9 kB gzip of JavaScript and 1.3 kB of CSS, zero dependencies. The core — sizes, validation, sending and the queue — is 3.6 kB on its own.