NumberInput

Numeric input with +/- stepper buttons, keyboard arrow control (Shift = large step), PageUp/Down, Home/End to clamp, and optional mouse-wheel adjust.

$
L

Usage

import { NumberInput } from '@bwo-ui/react';

const [qty, setQty] = useState<number | null>(1);

<NumberInput value={qty} onValueChange={setQty} min={0} max={99} step={1} />

<NumberInput defaultValue={19.99} step={0.01} precision={2} prefix="$" />

Props

PropTypeDefaultDescription
valuenumber | null—Controlled value.
defaultValuenumber | null—Initial uncontrolled value.
onValueChange(value: number | null) => void—Change handler.
min / maxnumber—Bounds for stepping and clamping.
stepnumber1Increment for ArrowUp/Down and the stepper buttons.
largeStepnumber—Step applied with Shift / PageUp / PageDown. Default: step × 10.
precisionnumber—Decimal places. Default: derived from step.
showSteppersbooleantrueRender the +/- stepper buttons.
clampOnBlurbooleantrueClamp to [min, max] on blur.
prefix / suffixstring—Adornments rendered inside the field.
disableWheelboolean—Disable mouse-wheel value changes.