///
import type { IntentProps, MaybeElement, Props } from "../../common/props";
import type { IconName } from "../icon/icon";
/**
* Shared props interface for text & numeric inputs.
*/
export interface InputSharedProps extends IntentProps, Props {
/**
* Whether the input is non-interactive.
*
* Note that the content in `rightElement` must be disabled separately if defined;
* this prop will not affect it.
*
* @default false
*/
disabled?: boolean;
/**
* Whether the component should take up the full width of its container.
*/
fill?: boolean;
/**
* Ref attached to the HTML `` element backing this component.
*/
inputRef?: React.Ref;
/**
* Element to render on the left side of input.
* This prop is mutually exclusive with `leftIcon`.
*/
leftElement?: JSX.Element;
/**
* Name of a Blueprint UI icon to render on the left side of the input group,
* before the user's cursor.
*
* This prop is mutually exclusive with `leftElement`.
*
* Note: setting a JSX.Element here is deprecated; use the `leftElement` prop instead.
*/
leftIcon?: IconName | MaybeElement;
/**
* Placeholder text in the absence of any value.
*/
placeholder?: string;
/**
* Element to render on right side of input.
* For best results, use a minimal button, tag, or small spinner.
*/
rightElement?: JSX.Element;
}