Skip to content
Devix Open Source

Changelog

Every release of Amount Input, newest first. Breaking changes are flagged.

v1.0.0

15 Sep 2026

First release.

Added

  • An amount that is never a float. The state is the digits that were typed, and every value is a string: getValue() gives '1234.56' and getMinor() gives '123456', which is exactly what Devix VAT Calculator takes.
  • The number of decimal places taken from ISO 4217 rather than from Intl. The two disagree for eight currencies, and Intl reports none for the Pakistani rupee — a field built on it refuses the paisa someone just typed.
  • Separators, digit shapes, grouping sizes and the currency's position from Intl, so en-IN groups 12,34,567 and German writes the euro last.
  • A caret counted in digits rather than characters, so inserting a grouping separator as the number grows cannot move it.
  • A fraction that is padded when the field is left and never while it is being typed into, because 12.5 becoming 12.50 under the caret makes 12.55 impossible to type.
  • typing: 'cents', which fills from the right the way a card terminal does, backspace included.
  • Both decimal separators accepted in either locale — two different characters means the last is the decimal point — and Arabic-Indic, Persian, Devanagari and Thai digits read as digits.
  • A decimal separator typed into a currency with no minor unit kept on screen with every digit after it refused, rather than dropped silently, which would turn ¥1,234 into ¥123,456.
  • The plain decimal posted for you through a hidden field, so a form submit never sends AED 1,234.56 to a server.
  • min and max as decimal strings, refused as they are typed.
  • Negatives behind allowNegative, with accounting brackets for a ledger.
  • setCurrency(), which re-reads the amount through the new currency's decimals.
  • A DOM-free core — parse, format, toMinor, decimalsFor — for formatting a stored amount into a table, an invoice or a PDF on the server.
  • React, Vue, Svelte, <dx-amount-input> and a CDN build over one core.
  • 3.6 kB gzip, zero dependencies.