basic — step 1, min 0, ArrowUp/Down and steppers clamp; typed out-of-range keeps the text and flags an error
valueChange: —
money — step 0.01 (→ 2 decimals), grouping, prefix; posts "12400.5" while showing "12,400.50"
suffix unit · filled variant · empty with placeholder
disabled · readonly · error
currency — currency="USD": symbol placement, grouping
and fraction digits from Intl (JPY → 0); posts the plain decimal.
With Django's jsi18n loaded, DECIMAL_SEPARATOR /
THOUSAND_SEPARATOR win over Intl.
USD valueChange: —
RTL — steppers and prefix mirror
form post — hidden input carries the canonical value
posted: —