Skip to main content

Contributing

Project description

Pre-requisites: Node >=18, Yarn

Dockview is a layout manager library designed to provide a complete layouting solution. It is written in plain TypeScript and can be used without any framework although an extensive React wrapper has always and will always be provided for those using the React framework.

The project is hosted on GitHub and developed within a Monorepo powered by Lerna. It is developed using the yarn package manager since at the time of creation yarn was far superior when it came to managing monorepos. The Monorepo contains three packages:

packages/dockview-core

The core project is entirely written in plain TypeScript without any frameworks or dependencies and it's source-code can be found within the dockview-core package which is also published to npm.

packages/dockview

A complete collection of React components for use through the React framework to use dockview seamlessly and is published to npm. It depends explicitly on dockview-core so there is no need to additionally install dockview-core.

Dockview was originally a React-only library which is why the React version maintains the name dockview after splitting the core logic into a seperate package named dockview-core.

packages/docs

This package contains the code for this documentation website and examples hosted through CodeSandbox. It is not a published package on npm.

Run the project locally

  1. After you have cloned the project from GitHub run yarn at the root of the project which will install all project dependencies.
  2. In order build packages/dockview-core then packages/dockview.
  3. Run the docs website through npm run start in the packages/docs directory and go to http://localhost:3000 which will now be running the local copy of dockview that you have just built.

Examples

All examples can be found under packages/docs/sandboxes. Each example is an independently runnable example through CodeSandbox. Through the documentation you will see links to runnable CodeSandbox examples.

FAQ

Are there any plans to publish wrapper libraries for other frameworks such as Angular and Vue?

Currently no but this is open for contributors to try.