# ScrubInput Native numeric input with optional label dragging, bounds, steps, suffixes, and display formatting. Use ScrubInput for precise numeric values in an inspector. Keep the native number input as the primary control. Treat label dragging as an optional pointer shortcut. ## API The package declarations define these public members. ### Inherited prop contracts - `AccessibleName` — Requires exactly one accessible name: `label`, `aria-label`, or `aria-labelledby`. - `Omit` — Props from this native base are accepted except the listed members. | Member | Type | Kind | Required | Default | Description | | --- | --- | --- | --- | --- | --- | | `aria-label` | `string` | prop | No | `undefined` | No additional description. | | `aria-labelledby` | `string` | prop | No | `undefined` | No additional description. | | `formatValue` | `(value: number) => string` | callback | No | `undefined` | Formats the unfocused value and its accessible value text. | | `label` | `string` | prop | No | `undefined` | No additional description. | | `max` | `number` | prop | No | `undefined` | No additional description. | | `min` | `number` | prop | No | `undefined` | No additional description. | | `onValueChange` | `(value: number \| undefined) => void` | callback | No | `undefined` | No additional description. | | `scrub` | `boolean` | prop | No | `false` | Enables pointer dragging on the visible label. | | `step` | `number \| 'any'` | prop | No | `1` | No additional description. | | `suffix` | `string` | prop | No | `undefined` | Visible unit shown after the native input value. | | `value` | `number` | binding | No | `undefined` | Current numeric value. An undefined value leaves the input empty. | ## Related - [Label](/docs/components/label): Visible form label with required-state treatment. - [Input](/docs/components/input): Single-line field with internal or external labeling, hint, error, icons, and password reveal. - [Switch](/docs/components/switch): Bindable binary switch with visible or aria-only labeling.