import type { RefObject } from 'react'; import type { ArcComponentSize, IARCProps, IButtonProps, RenderableContent } from '@adam-sv/arc'; import { FloatingPanelAnchorDirection } from '@adam-sv/arc'; export interface IInputSkeletonProps extends IARCProps { label?: string; error?: string; disabled?: boolean; labelHtmlFor?: string; buttonProps?: IButtonProps; info?: RenderableContent; infoAnchorPosition?: FloatingPanelAnchorDirection; componentSize?: ArcComponentSize; skeletonRef?: RefObject; onDoubleClick?: React.MouseEventHandler; onFocusSkeleton?: React.FocusEventHandler; onBlurSkeleton?: React.FocusEventHandler; type?: string; name?: string; } export interface IInputPropsBase extends IInputSkeletonProps { autocomplete?: 'on' | 'off'; autofocus?: boolean; onChange?: (value: string | number, e: React.ChangeEvent) => unknown; onKeyUp?: React.KeyboardEventHandler; onKeyDown?: React.KeyboardEventHandler; onKeyPress?: React.KeyboardEventHandler; onSubmit?: React.FormEventHandler; onFocus?: (ev: React.FocusEvent) => void; onBlur?: (ev: React.FocusEvent) => void; value?: InputValue; min?: InputValue; max?: InputValue; placeholder?: string; readOnly?: boolean; required?: boolean; type?: string; } export type InputValue = number | string;