import React, {ElementType, HTMLProps, ReactElement, ReactNode} from 'react';
import {InputSize} from './input-size';
export interface BaseFieldProps {
disabled?: boolean;
required?: boolean;
labelSuffix?: ReactNode;
autoFocus?: boolean;
autoSelectText?: boolean;
labelElementType?: ElementType;
label?: ReactNode;
labelPosition?: 'top' | 'side';
labelDisplay?: string;
size?: InputSize;
inputRadius?: 'rounded-full' | 'rounded' | 'rounded-none' | string;
inputRing?: string;
inputFontSize?: string;
inputBorder?: string;
inputShadow?: string;
invalid?: boolean;
errorMessage?: ReactNode;
description?: ReactNode;
descriptionPosition?: 'top' | 'bottom';
flexibleHeight?: boolean;
// usually an icon or icon button, displayed inside the input
startAdornment?: React.ReactNode;
endAdornment?: React.ReactNode;
adornmentPosition?: string;
// usually a text button, displayed side by side with input
startAppend?: ReactElement;
endAppend?: ReactElement;
className?: string;
inputWrapperClassName?: string;
inputClassName?: string;
unstyled?: boolean;
background?: 'bg-transparent' | 'bg-alt' | 'bg-paper' | 'bg-white';
inputTestId?: string;
}
export interface BaseFieldPropsWithDom
extends BaseFieldProps,
Omit, 'label' | 'size' | 'ref' | 'children'> {}