export interface FormAdminComponentProps {
    action?: string;
    method?: "GET" | "POST";
    className?: string;
}

export interface InputElementFormAdminComponentProps {
    type: string;
    name: string;
    value?: string | number | string[];
    label?: string;
    placeholder?: string;
    id?: string;
    className?: string;
    containerClassName?: string;
    isValid?: boolean;
    isRequired?: boolean;
    isDisabled?: boolean;
    onKeyUp?: (event: KeyboardEvent<HTMLInputElement>, value: string) => void;
}

export interface CheckboxElementFormAdminComponentProps {
    name: string;
    label: string;
    value?: string | number | string[];
    id?: string;
    className?: string;
    containerClassName?: string;
    isValid?: boolean;
    isRequired?: boolean;
    isDisabled?: boolean;
}

export interface SelectElementFormAdminComponentProps {
    options: SelectOption[];
    name?: string;
    value?: string | number | string[];
    label?: string;
    id?: string;
    className?: string;
    containerClassName?: string;
    isValid?: boolean;
    isRequired?: boolean;
    isDisabled?: boolean;
    isMultiple?: boolean;
}

export interface SelectOption {
    text: string;
    value?: string;
    className?: string;
    isSelected?: boolean;
    isDisabled?: boolean;
}

export interface ButtonElementFormAdminComponentProps {
    type: "submit" | "reset" | "button";
    name?: string;
    value?: string | number | string[];
    id?: string;
    form?: string;
    isDisabled?: boolean;
    className?: string;
}
