import type { InputHTMLAttributes, ReactNode } from 'react';
export type QuantityStepperSize = 'sm' | 'md' | 'lg';
export interface QuantityStepperProps extends Omit, 'onChange' | 'value' | 'size' | 'prefix'> {
/**
* Numeric value of the stepper
*/
value: number;
/**
* Callback fired when value changes
*/
onChange: (value: number) => void;
/**
* Minimum allowable value
* @default 0
*/
min?: number;
/**
* Maximum allowable value
* @default 99999
*/
max?: number;
/**
* Increment/decrement step interval
* @default 1
*/
step?: number;
/**
* Optional field label text
*/
label?: string;
/**
* Optional label hint text displayed next to label
*/
labelHint?: string;
/**
* Optional helper text rendered beneath the field
*/
helperText?: string;
/**
* Error message text. Setting this marks field as invalid.
*/
error?: string;
/**
* Show or hide the error message text underneath
* @default true
*/
showErrorMessage?: boolean;
/**
* Size variant matching Input component dimensions
* @default "md"
*/
size?: QuantityStepperSize;
/**
* Optional prefix icon or element
*/
prefix?: ReactNode;
/**
* Optional suffix element (e.g. unit label like "kg", "items")
*/
suffix?: ReactNode;
/**
* Disabled state for input and controls
* @default false
*/
disabled?: boolean;
}