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

react-design-editor

v0.2.1

Published

Design Editor Tools with React.js + ant.design + fabric.js

Readme

React Design Editor

build

React Design Editor is a module for React, written in Javascript/Typescript which provides two primary features:

  • Image Editor - Create images in React, draw diagrams and arrange compositions using the image editor and save the result to one of several export formats, provides functionality similar to Powerpoint.
  • Business Process Modelling (BPM) - Design flowcharts and process workflows in React and export the model to JSON, which can be imported into the tool (load/save).

The module primarily uses the Ant Design, Fabric.js and React libraries, but a full list of required dependencies can be found below.

Try it out today - the project is being continually developed to support a variety of different functions.

View Demo

Feature List

  • [x] Add, remove, resize, reorder, clone, copy/paste and drag/drop elements
  • [x] Build workflows with configurable trigger, logic, data and action nodes
  • [x] Connect workflow nodes with labeled ports, multiple routes and automatic layout
  • [x] Copy, paste and Ctrl-drag workflow nodes while preserving selected internal links and ports
  • [x] Review workflow validation, canvas status and undo/redo history
  • [x] Drawing capability, with polygon, line, arrows and link support
  • [x] Preview mode, tooltips, group/ungroup and zoom functionality
  • [x] Upload (with drag/drop), import and export to JSON or image
  • [x] Image cropping, image filters, alignment and zoom-aware alignment guides
  • [x] Distance measurement guides and equal-spacing snap assistance
  • [x] Snap to grid, rulers, context menu, animation and video elements
  • [x] Various icons in icon picker and fonts from Google Fonts (20)
  • [x] HTML/CSS/JS Element, iFrame element
  • [x] Animation support, with Fade / Bounce / Shake / Scaling / Rotation / Flash effects
  • [x] Monaco code editor with HTML / CSS / JavaScript preview
  • [x] PowerPoint-style interactions, including selection, grab, Shift axis lock and Ctrl-drag duplication
  • [x] Multiple layouts, with fixed, responsive, fullscreen and grid modes
  • [x] SVG, Chart and GIF elements
  • [x] Undo/Redo support
  • [x] Light and dark editor themes
  • [ ] Wireframes - in development
  • [ ] Multiple Map - in development

Installation

Run npm install react-design-editor or yarn add react-design-editor

Import the bundled editor stylesheet from your app entry:

import 'react-design-editor/react-design-editor.css';

Then import the components you need from the package entry.

Getting Started

  1. Clone this Project with git clone https://github.com/salgum1114/react-design-editor.git
  2. Install dependencies with npm install or yarn
  3. Run the App with npm start or yarn start
  4. Open your web browser to http://localhost:4000

Library builds run with Vite only:

  • npm run build:demo builds the demo app into docs
  • npm run build:lib builds the package into dist and emits declarations
  • npm run serve previews the demo build locally

Using the Canvas Component

The published package provides the Canvas component and its canvas handlers. Toolbars, palettes and property panels shown in the demo can be built around this component as needed.

import { useRef } from 'react';
import { Canvas, type CanvasInstance } from 'react-design-editor';
import 'react-design-editor/react-design-editor.css';

export default function DesignCanvas() {
	const canvasRef = useRef<CanvasInstance | null>(null);

	const addRectangle = () => {
		canvasRef.current?.handler.add({
			type: 'rect',
			name: 'Rectangle',
			width: 160,
			height: 90,
			fill: '#5ee0bd',
			rx: 8,
			ry: 8,
		});
	};

	const saveCanvas = () => {
		const objects = canvasRef.current?.handler.exportJSON() ?? [];
		localStorage.setItem('design', JSON.stringify(objects));
	};

	const loadCanvas = async () => {
		const saved = localStorage.getItem('design');
		if (saved) {
			await canvasRef.current?.handler.importJSON(JSON.parse(saved));
		}
	};

	return (
		<div>
			<button type="button" onClick={addRectangle}>Add rectangle</button>
			<button type="button" onClick={saveCanvas}>Save</button>
			<button type="button" onClick={loadCanvas}>Load</button>

			<Canvas
				ref={canvasRef}
				style={{ width: '100%', height: 600 }}
				canvasOption={{ backgroundColor: '#f4f7f9' }}
				workareaOption={{
					width: 800,
					height: 500,
					backgroundColor: '#ffffff',
				}}
				canvasActions={{
					clipboard: true,
					transaction: true,
				}}
				onSelect={object => {
					console.log('Selected object:', object);
				}}
			/>
		</div>
	);
}

Use canvasRef.current.handler to add or remove objects, change the selection, control zoom, run undo/redo operations and import or export canvas data. The parent element or the style prop must provide a visible height when responsive sizing is enabled.

Screenshots

Image Map Editor

1. Fixed Layout Mode

fixed

2. Responsive Layout Mode

responsive

3. Full Screen Layout Mode

fullscreen

4. Preview Mode

preview

Workflow Editor

workflow

❤️ Sponsors and Backers

Sponsored by Workflows for Confluence

Dependencies

| Dependency | License(s) | | --------------------------------------------------------------- | -------------------------------------------------- | | React | MIT | | Ant Design | MIT | | Fabric.js | MIT | | MediaElement.js | MIT | | Monaco Editor | MIT | | interact.js | MIT | | anime.js | MIT | | Vite | MIT | | fontawesome5 | Icons (CC BY 4.0), Fonts (SIL OFL 1.1), Code (MIT) |