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

@arudovwen/form-builder-react

v1.4.38

Published

A React-based form builder component library.

Downloads

1,749

Readme

React Form Builder

The Form Builder Package is a reusable library designed to simplify the creation and management of dynamic forms in web applications. It provides a robust API and customizable components to streamline form-building workflows.

Note: This package is still in development.

Features

  • Drag-and-Drop Support: Easily add and arrange form elements.
  • Customizable Components: Modify form elements to suit your needs.
  • Dynamic Rendering: Automatically update forms based on user input or configuration.
  • TypeScript Support: Fully typed for better developer experience.
  • Lightweight and Fast: Built with modern tools for optimal performance.

Installation

Install the package via npm:

npm install @arudovwen/form-builder-react

Demo

Explore the live demo of the Form Builder Package:

GitHub Repository

Find the source code and contribute to the project on GitHub:
Form Builder GitHub Repository

Usage

Here’s a quick example of how to use the Form Builder Package:

import React, { useState, useEffect } from "react";
import { FormBuilder, FormViewer } from "@arudovwen/form-builder-react";
import "@arudovwen/form-builder-react/dist/index.css";

function App() {
  const [formData, setFormData] = useState(null);
  const [loading, setLoading] = useState(true);

  useEffect(() => {
    try {
      const storedData = localStorage.getItem("formData");
      setFormData(storedData ? JSON.parse(storedData) : null);
    } catch (error) {
      console.error("Error parsing formData from localStorage:", error);
      setFormData(null);
    }

    const timer = setTimeout(() => {
      setLoading(false);
    }, 4000);

    return () => clearTimeout(timer); // Cleanup timeout on unmount
  }, []);

  const config = {
    buttonColor: "#333",
    loaderColor: "#333",
  };

  return (
    <>
      <FormBuilder
        onSubmit={(form_data: any) => console.log(form_data)}
        config={config}
        title="My Form Title"
      />
      <FormViewer
        onSubmit={(e: any) => console.log(e)}
        form_data={formData}
        answerData={[]}
        config={config}
        loading={loading}
      />
    </>
  );
}

export default App;

Props for FormBuilder

| Prop | Type | Description | | ------------ | --------------------- | ------------------------------------------------------------------------------------------------------------------ | | title | string | TItle of the form, optional | | form_data | FormElement[] | Array of form elements to render in the form. | | answerData | any[] | Array of user-provided answers to the form. | | config | object | Configuration object (e.g., buttonColor, loaderColor, elementColor, elementBgColor, elementBorderColor). | | onSubmit | (data: any) => void | Callback function triggered when the form is submitted. | | loading | boolean | Indicates whether the form is in a loading state. | | isReadOnly | boolean | Determines if the form is rendered in read-only mode. | | renderType | string | Determines the style the form is rendered, either multi or single. | | goBackUrl | function | function to navigate back or somewhere on your app |
| previewLoading | boolean | Shows loading icon | | saveLoading | boolean | Shows loading icon|
| publishLoading | boolean | Shows loading icon |
| onTitleChange | function | function to navigate back or somewhere on your app |

Form Element Types

The FormElement type supports the following fields:

| Field | Type | Description | | ------------- | -------- | ------------------------------------------ | | id | string | Unique identifier for the form element. | | type | string | Type of the input (e.g., text, email). | | label | string | Label for the form element. | | placeholder | string | Placeholder text for the input. |

Development

To contribute or modify the package:

  1. Clone the repository:

    git clone https://github.com/arudovwen/Form.Builder.git
    cd Form.Builder
  2. Install dependencies:

    npm install
  3. Build the package:

    npm run build
  4. Run tests:

    npm test

Scripts

  • npm run build: Build the package for production.
  • npm test: Run unit tests.
  • npm run lint: Check code quality with ESLint.

License

This package is licensed under the MIT License. See the LICENSE file for more details.

Acknowledgments

Contributing

Contributions are welcome! Please fork the repository, create a feature branch, and submit a pull request.


Happy form building!