ui-next-library
Version:
Biblioteca de componentes UI para Next.js
78 lines (68 loc) • 2.23 kB
TypeScript
declare module "ui-next-library" {
import { ComponentType, FC, InputHTMLAttributes, ButtonHTMLAttributes, ReactNode, HTMLAttributes } from "react";
interface TextProps extends InputHTMLAttributes<HTMLInputElement> {
Icon?: ComponentType<any>;
iconPosition?: "left" | "right";
iconClassName?: string;
error?: boolean;
errorMessage?: string;
register?: Function;
registerOptions?: object;
}
interface EmailProps extends TextProps {
errorMessage?: string;
}
interface PasswordProps extends TextProps {
showPasswordIcon?: boolean;
requireValidation?: boolean;
customValidationMessage?: string;
}
interface NumberProps extends TextProps {
decimals?: number;
requiredMessage?: string;
}
interface ButtonBaseProps extends ButtonHTMLAttributes<HTMLButtonElement> {
children?: ReactNode;
}
interface SubmitProps extends ButtonBaseProps {
isLoading?: boolean;
loadingtext?: string;
showLoadingIcon?: boolean;
loadingIcon?: ComponentType<any>;
color?: "blue" | "green" | "red" | "gray";
fullWidth?: boolean;
size?: "sm" | "md" | "lg";
height?: string;
children?: ReactNode;
}
interface ContainerElementsProps extends HTMLAttributes<HTMLDivElement> {
title?: string;
width?: string;
height?: string;
titlePosition?: "left" | "center" | "right";
backgroundColor?: string;
rounded?: string;
shadow?: string;
shadowColor?: "black" | "white";
shadowIntensity?: "light" | "normal" | "strong";
border?: boolean;
borderColor?: string;
padding?: string;
gap?: string;
titleClassName?: string;
bodyClassName?: string;
children?: ReactNode;
}
interface SpinnerProps {
className?: string;
size?: string;
}
export const Text: FC<TextProps>;
export const Email: FC<EmailProps>;
export const Password: FC<PasswordProps>;
export const Number: FC<NumberProps>;
export const ButtonBase: FC<ButtonBaseProps>;
export const Submit: FC<SubmitProps>;
export const ContainerElements: FC<ContainerElementsProps>;
export const Spinner: FC<SpinnerProps>;
}