npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@modular-web/rc-form

v1.1.1

Published

Un componente de formulario flexible y personalizable construido con React, TypeScript y TailwindCSS.

Readme

Form component React + TypeScript + TailwindCSS

npm version

Descripción

FormComponent es un componente de formulario flexible y personalizable construido con React, TypeScript y TailwindCSS. Este componente te permite crear formularios rápidamente y de manera eficiente, con la capacidad de personalizar los inputs, el título del formulario y el texto del botón de envío. Además, cuenta con soporte para children, permitiéndote agregar contenido adicional abajo del formulario, como enlaces para registro de nuevos usuarios o métodos alternativos de inicio de sesión.

Características

  • Inputs Personalizables: Define los campos de entrada del formulario según tus necesidades, especificando etiquetas, tipos, nombres, IDs y más.
  • Título Personalizable: Establece el título del formulario para que se adapte a su propósito específico.
  • Texto del Botón Personalizable: Personaliza el texto del botón de envío para que sea claro y relevante para los usuarios.
  • Soporte para Children: Añade contenido adicional en el footer del formulario, ideal para enlaces, instrucciones adicionales o métodos alternativos de autenticación.
  • Estilizado con TailwindCSS: Aprovecha las utilidades de TailwindCSS para un diseño rápido y responsivo.

Instalación

Puedes instalar el paquete utilizando npm. Ejecuta el siguiente comando en tu terminal:

npm install @modular-web/rc-form

O si prefieres usar Yarn, puedes instalarlo con el siguiente comando:

yarn add @modular-web/rc-form

Props

| Prop | Tipo | Descripción | Opcional | |--------------|-------------------------------|--------------------------------|-----------| | title | string | El título del formulario | No | | textButton | string | El texto del botón de envío | No | | inputs | Array<{...}> | Lista de objetos de entrada que definen los campos del formulario | Sí | | submit | (data: { values: any; event?: FormEvent<HTMLFormElement> }) => void | Función que se llama cuando se envía el formulario. Incluye valores y evento | Sí | | Children | JSX | Aquí puedes agregar cualquier jsx debajo del formulario | Sí |

Composición del Array inputs

| Prop | Tipo | Descripción | Opcional | |------------|------------|-------------------|----------| | id | string | Identificador único para el campo | No | | name | string | Nombre del campo | No | | type | string | Tipo de campo (ej: 'text', 'password', etc.) | No | | required | boolean | Si el campo es obligatorio | No | | label | string | Etiqueta para el campo | Sí | | className| string | Clases de CSS (ej: 'text-[#333]') | Sí | | placeholder| string | Texto de marcador de posición en el campo | Sí | | clearable| boolean | Si se puede limpiar el campo (por defecto false) | Sí | | toggleable| boolean | Mostrar/ocultar contraseña (solo aplica para campos de tipo password)| Sí | | pattern | string | Patrón para validar la entrada | Sí |

Ejemplo de uso:


import React from 'react';
import {FormComponent, Inputs} from '@modular-web/rc-form';

const inputs:Array<Inputs> = [
  {
    // Campos obligatorios
    id: 'username',
    name: 'username',
    type: 'text',
    required: true,
    // Campos opcionales
    label: 'Username',
    className: 'text-[#333]', // Clases de tailwindcss
    placeholder: 'Ingresa tu username',
    clearable: true, // Si quieres activar el limpiar el campo
  },
  // ... Agrega todos los campos que necesites
]

function App() {
  return (
    <FormComponent
      title="Iniciar Sesión"
      textButton="Iniciar Sesión"
      inputs={inputs}
      submit={({values, event}) => {
        console.log("Es un JSON", event, values);
      }}
    />
  );
};

export default App;

En este ejemplo:

  • Importamos el componente FormComponent y el tipo Inputs desde el paquete @modular-web/rc-form.
  • Definimos un arreglo de inputs con los campos necesarios para el formulario.
  • Utilizamos el componente FormComponent en el componente principal App, pasando las propiedades title, textButton, inputs y submit.

Contribuir

Si desea contribuir a este proyecto, por favor sigue los siguientes pasos:

  1. Haz un fork del repositorio.
  2. Crea una nueva rama (git checkout -b feature/nueva-funconalidad).
  3. Realiza tus cambios y haz commit (git commit -m 'Añadir nueva funcionalidad').
  4. Sube tus cambios (git push origin feature/nueva-funcionalidad).
  5. Abre un Pull Request.

Licencia

Este proyecto está licenciado bajo la Licencia MIT. Para más detalles, consulta el archivo LICENSE. MIT