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 🙏

© 2024 – Pkg Stats / Ryan Hefner

@korautils/forms

v0.0.2-alpha.4

Published

FormBuilder es una librería diseñada para ofrecer una solución eficiente y versátil en la creación de formularios dinámicos con patrones de diseño avanzados. Implementa patrones como Builder, Observer y Factory, lo que permite centralizar la lógica de los

Downloads

510

Readme

KoraForms (🚧 Alpha)

FormBuilder es una librería diseñada para ofrecer una solución eficiente y versátil en la creación de formularios dinámicos con patrones de diseño avanzados. Implementa patrones como Builder, Observer y Factory, lo que permite centralizar la lógica de los componentes, simplificar la integración y maximizar la reutilización en proyectos que requieren un enfoque ágil y adaptable.

Con FormBuilder, puedes generar formularios complejos de manera intuitiva, mantener un código limpio y organizado, y ajustarlos rápidamente a las necesidades cambiantes de tu proyecto. La librería incluye herramientas para gestionar el estado de los componentes hijos creados con ElementBuilder, así como para configurar y aplicar validaciones de manera flexible.

Además, FormBuilder facilita la integración con APIs, permitiéndote definir configuraciones como la URL, el método HTTP y otros parámetros necesarios. Solo necesitas agregar los campos requeridos y esta herramienta se encargará de enviar los datos a la API especificada, optimizando tu flujo de desarrollo.

Nota sobre la versión alpha

⚠️ Esta librería está en fase alpha. Actualmente se encuentra en una etapa de pruebas, lo que significa que:

  • La versión publicada no es estable y puede contener errores.
  • Puede experimentar cambios significativos en su API, funcionalidades o estructura en futuras actualizaciones.
  • Aunque puedes descargarla y probar su funcionamiento, no se recomienda para aplicaciones en producción.

Si decides probar esta versión, agradeceremos mucho tus comentarios, sugerencias o reportes de errores en la sección de Issues. ¡Tu feedback nos ayuda a mejorar!


Instalación

Para instalar esta versión alpha, ejecuta:

npm install @korautils/forms

Implementación

import './App.css'
import { Fragment } from 'react/jsx-runtime'
import { FormBuilder, ElementBuilder } from '@korautils/forms'

function App() {
  return (
    <Fragment>
      <h2>Test FormBuilder</h2>

      <div
        style={{
          width: '100%',
          display: 'block',
          backgroundColor: '#f4f4f4',
          padding: '20px',
        }}
      >
        {FormBuilder.newForm()
          .setCols(3)
          .setApi({
            method: 'POST',
            url: 'https://localhost:8000',
          })
          .addItem(
            ElementBuilder.newElement()
              .textField({
                name: 'fullname',
                label: 'Full name',
              })
              .addValidation({
                type: 'string',
                required: { value: true, message: 'Full name is required' },
              })
          )
          .addItem(
            ElementBuilder.newElement()
              .textField({
                name: 'email',
                label: 'Email',
              })
              .addValidation({
                type: 'string',
                isEmail: { value: true },
              })
          )
          .addItem(
            ElementBuilder.newElement().select({
              label: 'Selector',
              name: 'options',
              options: [
                {
                  label: 'Opción 1',
                  value: 'option1',
                },
                {
                  label: 'Opción 2',
                  value: 'option1',
                },
              ],
            })
          )
          .addItem(
            ElementBuilder.newElement().button({
              type: 'submit',
              name: 'button',
              label: 'Send',
            })
          )
          .build()}
      </div>
    </Fragment>
  )
}

export default App