No description
Find a file
2023-08-28 21:01:56 +01:00
.circleci fix: forces case sensitive dir names through Git 2023-07-25 16:31:06 +01:00
.codesandbox chore: enables docs to run at start (Codesandbox) 2023-08-25 21:49:43 +01:00
.vscode refactor: integrates the renderer with react 2023-07-20 16:45:54 +01:00
docs chore: updates codesandbox config (builds docs before starting) 2023-08-25 21:45:47 +01:00
src feat: allows saving of scene 2023-08-28 21:01:56 +01:00
webpack feat: allows saving of scene 2023-08-28 21:01:56 +01:00
.eslintrc refactor: connector functionality 2023-08-15 16:24:39 +01:00
.gitignore
.nvmrc chore: adds an nvmrc file to ensure consistent node version 2023-08-05 09:54:31 +01:00
.prettierrc refactor: integrates the renderer with react 2023-07-20 16:45:54 +01:00
jest.config.js feat: implements group rendering (UI not implemented yet) 2023-07-26 13:04:27 +01:00
LICENSE
package-lock.json feat: allows saving of scene 2023-08-28 21:01:56 +01:00
package.json feat: allows saving of scene 2023-08-28 21:01:56 +01:00
README.md chore: updates README 2023-08-26 21:05:39 +01:00
tsconfig.json fix: excludes docs folder from tsconfig 2023-08-26 17:24:09 +01:00

readme-header

Isoflow Editor | Github | Discord

An open-source React component for drawing network diagrams.

License: MIT CircleCI

Key Features

  • Annotation tools: Annotate your architecture with isometric icons, labels, regions and connectors.
  • Customizable: Use the standard free set of networking icons (also included under the MIT licence), or create your own.
  • Export options: Export diagrams as images, JSON or YAML.

Roadmap

Beta release progress: ████████░

  • Basic view controls (pan & zoom)
  • Create / delete nodes
  • Create / delete connectors
  • Create / delete rectangle areas
  • onSceneUpdate callback
  • Drag items
  • Iconpacks
  • Documentation
  • Export options

Quick start

Install the Isoflow npm package:

npm install isoflow

Basic usage is as follows:

import Isoflow from 'isoflow';
import { networkingIsopack } from 'isoflow/dist/iconpacks';

const initialData = {
  icons: networkingIsopack,
  nodes: [
    {
      id: "node1",
      iconId: "server",
      position: {
        x: 0,
        y: 0,
      },
    },
  ],
  connectors: [],
  rectangles: []
};

const App = () => (
  <Isoflow initialData={initialData} />
);

Note: Isoflow cannot be server-side rendered. If using Next.js, make sure you only import Isoflow in the browser:

const Isoflow = dynamic(() => import("isoflow"), {
  ssr: false,
});

Developer documentation

For more detailed API documentation, examples and more, see the developer documentation.

CodeSandbox

Demo the latest version of Isoflow on Codesandbox here. The sandbox is always synced with the Github repo.

Contributing