import React from "react"; import { NumberInput } from "@tremor/react"; interface NumericalInputProps { step?: number; style?: React.CSSProperties; placeholder?: string; min?: number; max?: number; onChange?: any; // Using any to avoid type conflicts with Tremor's NumberInput [key: string]: any; } /** * A reusable numerical input component * @param {Object} props - Component props * @param {number} [props.step=0.01] - Step increment for the input * @param {Object} [props.style] - Custom styles to apply * @param {string} [props.placeholder="Enter a numerical value"] - Placeholder text * @param {number} [props.min] - Minimum value * @param {number} [props.max] - Maximum value * @param {Function} [props.onChange] - On change handler * @param {any} props.rest - Additional props passed to NumberInput */ const NumericalInput: React.FC = ({ step = 0.01, style = { width: "100%" }, placeholder = "Enter a numerical value", min, max, onChange, ...rest }) => { return ( event.currentTarget.blur()} step={step} style={style} placeholder={placeholder} min={min} max={max} onChange={onChange} {...rest} /> ); }; export default NumericalInput;