@firecms/ui
Version:
Awesome Firebase/Firestore-based headless open-source CMS
59 lines (58 loc) • 2.01 kB
TypeScript
import React from "react";
export type InputType = "text" | "number" | "phone" | "email" | "password" | "search" | "url" | "date" | "time" | "datetime-local" | "month" | "week" | "color";
export type TextFieldProps<T extends string | number> = {
type?: InputType;
value?: T;
onChange?: (event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => void;
label?: React.ReactNode;
multiline?: boolean;
disabled?: boolean;
invisible?: boolean;
error?: boolean;
endAdornment?: React.ReactNode;
autoFocus?: boolean;
placeholder?: string;
size?: "smallest" | "small" | "medium" | "large";
className?: string;
style?: React.CSSProperties;
inputClassName?: string;
inputStyle?: React.CSSProperties;
inputRef?: React.ForwardedRef<any>;
/**
* Maximum number of rows to display.
*/
maxRows?: number | string;
/**
* Minimum number of rows to display.
* @default 1
*/
minRows?: number | string;
} & Omit<React.InputHTMLAttributes<HTMLInputElement>, "size">;
export declare const TextField: React.ForwardRefExoticComponent<{
type?: InputType;
value?: string | number | undefined;
onChange?: (event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => void;
label?: React.ReactNode;
multiline?: boolean;
disabled?: boolean;
invisible?: boolean;
error?: boolean;
endAdornment?: React.ReactNode;
autoFocus?: boolean;
placeholder?: string;
size?: "smallest" | "small" | "medium" | "large";
className?: string;
style?: React.CSSProperties;
inputClassName?: string;
inputStyle?: React.CSSProperties;
inputRef?: React.ForwardedRef<any>;
/**
* Maximum number of rows to display.
*/
maxRows?: number | string;
/**
* Minimum number of rows to display.
* @default 1
*/
minRows?: number | string;
} & Omit<React.InputHTMLAttributes<HTMLInputElement>, "size"> & React.RefAttributes<HTMLDivElement>>;