import { FC, HTMLInputTypeAttribute, ReactElement, ReactNode } from 'react'; import { FieldComponentProps } from '@cezembre/forms'; import { IconName } from './icon'; export type AutoComplete = 'off' | 'on' | 'name' | 'honorific-prefix' | 'given-name' | 'additional-name' | 'family-name' | 'honorific-suffix' | 'nickname' | 'email' | 'username' | 'new-password' | 'current-password' | 'one-time-code' | 'organization-title' | 'organization' | 'street-address' | 'address-line1' | 'address-line2' | 'address-line3' | 'address-level4' | 'address-level3' | 'address-level2' | 'address-level1' | 'country' | 'country-name' | 'postal-code' | 'cc-name' | 'cc-additional-name' | 'cc-family-name' | 'cc-number' | 'cc-exp' | 'cc-exp-month' | 'cc-exp-year' | 'cc-csc' | 'cc-type' | 'pack-currency' | 'pack-amount' | 'language' | 'bday' | 'bday-day' | 'bday-month' | 'bday-year' | 'sex' | 'tel' | 'tel-country-code' | 'tel-national' | 'tel-area-code' | 'tel-local' | 'tel-extension' | 'impp' | 'url' | 'photo'; export type InputShape = 'square' | 'round'; export type InputTheme = 'light' | 'darker' | 'lighter' | 'dark'; export type InputSize = 'small' | 'medium' | 'big'; export type InputAdapter = (value: string) => V; export type InputResolver = (value?: V) => string; export interface InputSuggestion { value: V; } export interface SuggestionsNamespace = InputSuggestion> { namespace: string; suggestions?: S[]; } export interface SuggestionProps = InputSuggestion> { suggestion: S; } export interface InputProps = InputSuggestion> extends FieldComponentProps { adapter?: InputAdapter; resolver?: InputResolver; format?: InputResolver; type?: HTMLInputTypeAttribute; shape?: InputShape; theme?: InputTheme; size?: InputSize; label?: string; placeholder?: string; instructions?: string; autoComplete?: AutoComplete | string; spellCheck?: boolean; suggestions?: S[] | SuggestionsNamespace[]; SuggestionItem?: FC>; suggestionsKeyExtractor?: (suggestion: S) => string; suggestionsHeader?: ReactNode; suggestionsFooter?: ReactNode; onSelectSuggestion?: (suggestion: S) => void; leftComponent?: ReactNode | IconName; rightComponent?: ReactNode | IconName; autoCorrect?: boolean; autoCapitalize?: string; } export declare function Input = InputSuggestion>({ value, error, warning, isActive, visited, submitted, onFocus, name, onChange, onBlur, type, shape, theme, size, adapter, resolver, format, label, placeholder, instructions, autoComplete, spellCheck, suggestions, SuggestionItem, suggestionsKeyExtractor, suggestionsHeader, suggestionsFooter, onSelectSuggestion, leftComponent, rightComponent, autoCorrect, autoCapitalize, }: InputProps): ReactElement;