@gravity-ui/uikit
Version:
Gravity UI base styling and components
63 lines (62 loc) • 3.21 kB
TypeScript
import type * as React from 'react';
import type { DOMProps, QAProps } from "../types.js";
export type InputControlView = 'normal' | 'clear';
export type InputControlSize = 's' | 'm' | 'l' | 'xl';
export type InputControlPin = 'round-round' | 'brick-brick' | 'clear-clear' | 'round-brick' | 'brick-round' | 'round-clear' | 'clear-round' | 'brick-clear' | 'clear-brick';
export type InputControlState = 'error';
export type BaseInputControlProps<T = Element> = DOMProps & QAProps & {
/** The control's `autocomplete` attribute */
autoComplete?: boolean | 'on' | 'off' | string;
/** The control's `autofocus` attribute */
autoFocus?: boolean;
/** React ref provided to the control */
controlRef?: React.Ref<T>;
/** The control's default value. Use when the component is not controlled */
defaultValue?: string;
/** Indicates that the user cannot interact with the control */
disabled?: boolean;
/** Shows error state and optional message if property identified as a string
* @deprecated Prop `error` has a lower priority than `errorMessage`. Use `errorMessage` instead
*/
error?: string | boolean;
/** Determines content of the error message */
errorMessage?: React.ReactNode;
/** Determines whether the error message will be placed under the input field as text or in the tooltip */
errorPlacement?: 'outside' | 'inside';
/** Describes the validation state */
validationState?: 'invalid';
/** Shows icon for clearing control's value */
hasClear?: boolean;
/** The control's `id` attribute */
id?: string;
/** The control's `name` attribute. Will be autogenerated if not specified */
name?: string;
/** Fires when the control lost focus. Provides focus event as an callback's argument */
onBlur?: React.FocusEventHandler<T>;
/** Fires when the input’s value is changed by the user. Provides change event as an callback's argument */
onChange?: React.ChangeEventHandler<T>;
/** Fires when the control gets focus. Provides focus event as an callback's argument */
onFocus?: React.FocusEventHandler<T>;
/** Fires when a key is pressed. Provides keyboard event as an callback's argument */
onKeyDown?: React.KeyboardEventHandler<T>;
/** @deprecated use `onKeyDown` instead */
onKeyPress?: React.KeyboardEventHandler<T>;
/** Fires when a key is released. Provides keyboard event as an callback's argument */
onKeyUp?: React.KeyboardEventHandler<T>;
/** Fires when the input’s value is changed by the user. Provides new value as an callback's argument */
onUpdate?: (value: string) => void;
/** The control's border view. `'round-round'` by default */
pin?: InputControlPin;
/** Text that appears in the control when it has no value set */
placeholder?: string;
/** Indicates that the user cannot change control's value */
readOnly?: boolean;
/** The control's size. `'m'` by default */
size?: InputControlSize;
/** The control's `tabindex` attribute */
tabIndex?: number;
/** The control's value */
value?: string;
/** The control's view. `'normal'` by default */
view?: InputControlView;
};