UNPKG

ui-next-library

Version:
189 lines (147 loc) 5.17 kB
# UI Next Library Biblioteca de componentes React para proyectos Next.js con Tailwind CSS. ## Instalación ```bash npm install ui-next-library ``` ## Componentes disponibles ### Text Componente de entrada de texto simple con soporte para iconos. ```jsx import { Text } from 'ui-next-library'; import { FaUser } from 'react-icons/fa'; function MyComponent() { const [value, setValue] = useState(''); return ( <Text value={value} onChange={(e) => setValue(e.target.value)} placeholder="Ingresa texto" Icon={FaUser} iconPosition="left" // o "right" /> ); } ``` #### Props | Prop | Tipo | Default | Descripción | |------|------|---------|-------------| | value | string | - | Valor del input | | placeholder | string | "" | Texto de placeholder | | type | string | "text" | Tipo de input (text, password, etc.) | | disabled | boolean | false | Deshabilita el input | | readOnly | boolean | false | Hace el input de solo lectura | | required | boolean | false | Marca el input como requerido | | id | string | "" | ID del input | | name | string | "" | Nombre del input | | Icon | Component | null | Componente de icono (react-icons) | | iconPosition | string | "left" | Posición del icono ("left" o "right") | | iconClassName | string | "" | Clases adicionales para el icono | | className | string | "" | Clases adicionales para el input | | onChange | function | null | Función que se ejecuta al cambiar el valor | | onBlur | function | null | Función que se ejecuta al perder el foco | | onFocus | function | null | Función que se ejecuta al obtener el foco | | onKeyDown | function | null | Función que se ejecuta al presionar una tecla | ### Email Componente de entrada de correo electrónico con validación. ```jsx import { Email } from 'ui-next-library'; function MyComponent() { const [email, setEmail] = useState(''); return ( <Email value={email} onChange={(e) => setEmail(e.target.value)} placeholder="ejemplo@correo.com" /> ); } ``` #### Props Hereda todas las props de Text y añade: | Prop | Tipo | Default | Descripción | |------|------|---------|-------------| | Icon | Component | FaEnvelope | Icono por defecto | | placeholder | string | "ejemplo@correo.com" | Placeholder por defecto | ### Password Componente de entrada de contraseña con soporte para mostrar/ocultar la contraseña. ```jsx import { Password } from 'ui-next-library'; function MyComponent() { const [password, setPassword] = useState(''); return ( <Password value={password} onChange={(e) => setPassword(e.target.value)} placeholder="Contraseña" requireValidation={true} // Activar validación interna /> ); } ``` #### Props Hereda todas las props de Text y añade: | Prop | Tipo | Default | Descripción | |------|------|---------|-------------| | Icon | Component | FaLock | Icono por defecto | | showPasswordIcon | boolean | true | Muestra/oculta el icono para ver la contraseña | | placeholder | string | "Contraseña" | Placeholder por defecto | | requireValidation | boolean | false | Activa la validación interna (mayúsculas y números) | | customValidationMessage | string | "Debe incluir mayúsculas, números y caracteres especiales" | Mensaje de validación personalizado | ### Submit Botón de envío para formularios con soporte para estados de carga. ```jsx import { Submit } from 'ui-next-library'; function MyComponent() { const [isLoading, setIsLoading] = useState(false); const handleSubmit = async (e) => { e.preventDefault(); setIsLoading(true); // Lógica de envío await submitData(); setIsLoading(false); }; return ( <form onSubmit={handleSubmit}> {/* Campos del formulario */} <Submit isLoading={isLoading} fullWidth color="blue" height="2.5rem" // Control de altura personalizada > Enviar formulario </Submit> </form> ); } ``` #### Props | Prop | Tipo | Default | Descripción | |------|------|---------|-------------| | children | ReactNode | "Enviar" | Contenido del botón | | type | string | "submit" | Tipo de botón | | disabled | boolean | false | Deshabilita el botón | | isLoading | boolean | false | Muestra estado de carga | | loadingText | string | "Procesando..." | Texto durante la carga | | showLoadingIcon | boolean | true | Muestra el icono de carga | | loadingIcon | Component | null | Componente personalizado para el icono de carga | | color | string | "blue" | Color del botón (blue, green, red, gray) | | size | string | "md" | Tamaño del botón (sm, md, lg) | | height | string | null | Altura personalizada (ejemplo: "2rem", "40px") | | fullWidth | boolean | false | Usar ancho completo | | className | string | "" | Clases adicionales | | onClick | function | null | Función que se ejecuta al hacer clic | ## Desarrollo ```bash # Instalar dependencias npm install # Iniciar servidor de desarrollo npm run dev # Construir la biblioteca npm run build # Publicar una nueva versión npm run release:patch # o release:minor, release:major ``` ## Licencia MIT