# Core/NumberField - Usage

Number field built on React Aria `NumberField`, with custom increment/decrement controls (native spinners hidden).

| Prop | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `onChange` | `(value: number) => void` | No | `--` | Called with the unformatted number value when the number changes. |
| `formatOptions` | `Intl.NumberFormatOptions` | No | `--` | Locale-aware display and parsing for the displayed value (see https://react-aria.adobe.com/NumberField#format-options) |
| `min` | `number` | No | `--` | Minimum value |
| `max` | `number` | No | `--` | Maximum value |
| `step` | `number` | No | `--` | Step increment. When omitted, defaults to `1` (same as native `input type="number"`). |
| `helperText` | `string` | No | `--` | Helper text below the field. Replaced by error message when status is error. Use for requirements, disclaimers. |
| `label` | `string` | No | `--` | Label for the field. Required for accessibility; use aria-label if another element acts as label. |
| `layout` | `'vertical' \| 'horizontal'` | No | `--` | Label and field layout: vertical (label above) or horizontal (label on leading side). Prefer vertical; use horizontal when space is limited. |