import { FocusEvent, ReactNode, HTMLInputTypeAttribute, HTMLInputAutoCompleteAttribute } from "react"; import React from "react"; interface NvInputProps { /** Callback fired when the value is changed. */ onChange?: (newValue: string) => void; /** Callback fired when the input is focused. */ onFocus?: (e: FocusEvent) => void; /** Callback fired when the input is blurred. */ onBlur?: (e: FocusEvent) => void; /** Fallback value in case if value is not provided. */ defaultValue?: string; /** The value of the input element. */ value?: string; /** The short hint displayed in the input before the user enters a value. */ placeholder?: string; /** If true, the component is disabled. */ disabled?: boolean; /** If true, the border of the input is red. */ invalid?: boolean; /** The type attribute of the input element. */ type?: HTMLInputTypeAttribute; /** The autocomplete attribute of the input element. */ autocomplete?: HTMLInputAutoCompleteAttribute; /** The autofocus attribute of the input element. */ autofocus?: boolean; /** The name attribute of the input element. */ name?: string; /** The required attribute of the input element. */ required?: boolean; /** The readonly attribute of the input element. */ readonly?: boolean; /** If true, adds styled wrapper for the input element. */ useContainer?: boolean; /** If true, makes the input element stretch. Usefully when useContainer is false. */ flexible?: boolean; /** The id attribute of the input element. */ uid?: string; /** The tabIndex attribute of the input element. */ inputTabIndex?: number; /** The additional CSS class for the input element. */ className?: string; } /** * NvInput component that provides a customizable input field with various options like onChange, onFocus, onBlur, etc. * * @param {function} onChange Function to handle input change event * @param {function} onFocus Function to handle input focus event * @param {function} onBlur Function to handle input blur event * @param {string} className Additional CSS class for styling * @param {string} defaultValue Default value for the input field * @param {string} value Current value of the input field * @param {string} placeholder Placeholder text for the input field * @param {boolean} disabled Indicates if the input field is disabled * @param {boolean} invalid Indicates if the input field is invalid * @param {string} type Type of the input field (e.g., text, number) * @param {string} autocomplete Autocomplete attribute for the input field * @param {boolean} autofocus Indicates if the input field should be autofocused * @param {string} name Name attribute for the input field * @param {boolean} required Indicates if the input field is required * @param {boolean} readonly Indicates if the input field is read-only * @param {boolean} useContainer Indicates whether to use a container for the input field * @param {boolean} flexible Indicates if the input field width should adjust dynamically * @param {string} uid Unique identifier for the input field * @param {number} inputTabIndex Tab index for the input field * @param {ReactNode} children Additional elements to be rendered within the input component * @returns A customizable input component with specified behavior and styling */ declare const NvInput: React.ForwardRefExoticComponent>; export default NvInput;