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 🙏

© 2026 – Pkg Stats / Ryan Hefner

amped-react-form-builder

v0.3.0

Published

Tired of making form after form in React? Yeah me too. Build forms easier in React with JSON.

Readme

Amped Form Builder

Tired of making form after form in React? Yeah me too. Build forms easier in React with JSON.

This library takes JSON and converts it into HTML and provides a simple API for you to interact with the form data. You can use the built in components and logic or provide a few props and make it totally custom.

Installation

npm i -s amped-react-form-builder

Usage example

import React, { Component } from 'react';

import { AmpedForm } from './containers/form';
import { kitchenSinkForm } from './constants/forms';

import './demo.scss';

export default class Demo extends Component {
  render() {
    return (
      <div className="form-builder-page">
        <AmpedForm
          formData={kitchenSinkForm}
          onSubmit={(values) => console.log('Form submitted', values) }
        />

      </div>
    );
  }
}

AmpedForm

Props

formData

The JSON data that the form will be created out of.

{
  fields: [ 
    [
      {
        label: String,
        type: String
      }
    ]
    
  ]
}
  • fields - [[FieldObject]] - An array containing all of the fields in the form. All of the indexes in this array are arrays themselves. You can think of this as the rows and columns in the form.
  • FieldObject Object - This contains all of the data for a single field in the form. There are many common keys between all fields types but some unique ones to provide extra functionality
    • label [Required] - String - The label that will appear along side the field in a <label></label> tag
    • type [Required] - String - The type of field that should be rendered. There is no fixed values for this with the exception of it needs to be a key in the ComponentMap that is passed to the form
    • name - String - The key that the value of the field is saved to when passed back from the form. This defaults to the label
    • disabled - Boolean - Whether the field is disabled or not.
    • defaultValue - String|Number - If there is a default value and AmpedForm when there is a constant default value to the form. If you are creating a form to edit existing values, it will be easier to pass that data as [name]: value to the formEntries prop.
    • options - [{label: String, value: String|Number] - This is used for form types with multiple options. The built in types are select, checkbox, radio

componentMap

When the built in field components won't work (like 99% of the time) you can override the built-in components with this prop

{
  [field type]: {
    component: [field component]
  }

The built in ones are:

  • checkbox
  • header
  • number
  • radio
  • select
  • switch
  • text
  • textarea

You can pass these or makeup your own and pass it as the type in the json form data.

onSubmit

This is a callback function which is invoked when the submit button is clicked or enter is hit enter in any of the built in text fields.