import React from 'react'; import { StyleProp, ViewStyle, TextStyle } from 'react-native'; export type Ux4gInputFieldSize = 'small' | 'medium' | 'large' | 'xl'; export declare const Ux4gInputFieldSizeMap: Record; export type Ux4gInputFieldType = 'text' | 'password' | 'number' | 'email'; export type Ux4gInputFieldStatus = 'defaultStatus' | 'error' | 'warning' | 'success'; export interface Ux4gInputFieldProps { /** * Current text string inside the input field. */ value: string; /** * Callback triggered when text inside the input field changes. */ onValueChange: (value: string) => void; /** * Size of the input field (`small` 32px, `medium` 40px, `large` 48px, `xl` 56px when `singleLine = true`). * @default 'medium' */ size?: Ux4gInputFieldSize; /** * Type of input field (`text`, `password`, `number`, `email`). * @default 'text' */ type?: Ux4gInputFieldType; /** * Validation status (`defaultStatus`, `error`, `warning`, `success`). * @default 'defaultStatus' */ status?: Ux4gInputFieldStatus; /** * Explicit override for secure text entry / password obscuring. * If omitted, defaults to `type === 'password' && obscureText`. */ secureTextEntry?: boolean; /** * Optional label displayed above the input box. */ label?: string; /** * Whether the field is required (displays red `*` right after the label text). * @default false */ required?: boolean; /** * Placeholder hint text displayed inside the input box when empty. */ placeholder?: string; /** * Optional caption or validation message displayed below the input box. */ caption?: string; /** * Optional leading widget/icon inside the left side of the input box. */ leadingIcon?: React.ReactNode; /** * Optional trailing widget/icon inside the right side of the input box when `type !== 'password'`. */ trailingIcon?: React.ReactNode; /** * Callback triggered when `trailingIcon` is pressed. */ onTrailingIconPressed?: () => void; /** * Optional text prefix string displayed immediately after `leadingIcon`. */ prefixText?: string; /** * Optional text postfix string displayed immediately before `trailingIcon`. */ postfixText?: string; /** * Optional trailing widget/icon displayed right after the label text in the top label row. */ trailingIconLabel?: React.ReactNode; /** * Whether the input field is interactive (`true`) or disabled (`false`). * @default true */ enabled?: boolean; /** * Whether the input field is read-only (`true`) or editable (`false`). * @default false */ readOnly?: boolean; /** * Whether the field is a single-line input (`true`) or multi-line area (`false`). * @default true */ singleLine?: boolean; /** * Maximum lines when `singleLine = false`. */ maxLines?: number; /** * Maximum character length allowed (`maxLength`). */ maxLength?: number; /** * Text alignment (`left`, `center`, `right`). * @default 'left' */ textAlign?: 'left' | 'center' | 'right'; /** * Custom style for input text (`style`). */ style?: StyleProp; /** * Custom style for placeholder text (`placeholderStyle`). */ placeholderStyle?: StyleProp; /** * Custom style for top label (`labelStyle`). */ labelStyle?: StyleProp; /** * Custom style for bottom caption text (`captionStyle`). */ captionStyle?: StyleProp; /** * Custom background color override (`backgroundColor`). */ backgroundColor?: string; /** * Custom border color override (`borderColor`). */ borderColor?: string; /** * Custom disabled border color override (`disabledBorderColor`). */ disabledBorderColor?: string; /** * Custom border width (`borderWidth`). * @default 1.0 */ borderWidth?: number; /** * Custom disabled border width (`disabledBorderWidth`). * @default 0.0 */ disabledBorderWidth?: number; /** * Custom outer container style. */ containerStyle?: StyleProp; /** * Optional testID for automated testing. */ testID?: string; } /** * **Ux4gInputField** (`InputField`) * * Direct React Native port of Flutter `input_field.dart` (`Ux4gInputField`). * Complete feature parity across sizes (`small`, `medium`, `large`, `xl`), types (`text`, `password`, `number`, `email`), * validation statuses (`defaultStatus`, `error`, `warning`, `success`), prefix/postfix strings, leading/trailing icons, and captions. */ export declare const Ux4gInputField: React.FC; //# sourceMappingURL=InputField.d.ts.map