owned this note changed 5 years ago
Linked with GitHub

additional features edit.statebox.cloud

[milestone](https://github.com/statebox/purescript-studio/milestone/4

wanted additional features

  • project support (screens/dialogs for selecting, adding, renaming and deleting)
  • storage of multiple diagrams (per project) in firebase
  • storage of typedefs in firebase
  • storage of petrinets in firebase

later we want to add an "algebra", ie. the thing that combines petri net definitions, type labels and diagrams into a contract transaction.

Routes

The routes should follow the "breadcrumbs" in the header bar.
so, username » project1 = /username/project1

Project Support

select from multiple projects, add/remove projects

Contents of a Project

Once a project is selected, show the first element in the viewer/editor (kdmonmor diagram in this case).

the menu on the left shows a grouped list of the elements

let project = {
  diagrams: [
     {name: 'diagram 1', diagram: { pixels, context }}
  ]
}

Left menu, project contents

it should be possible to add [ + ] or remove [ x ] an element.

Typedefs editing

Typedefs should just show an editor and the parsed result or errors.

the result is shown as haskell in the screenshot, we can add syntax highlighting to this as a start.

it's probably better to show the parsed types as a tree

the editor should become monaco-js

Petrinet editing

Petri net typed in using the mithril-studio text format and autolayout petrinet.org/purescript-studio viewer.

"Algebra"

The algebra is the thing that takes

  • refers to a number of types
  • refers to a number of petrinets
  • provides a labelling of transitions to typedefs

it builds a context for monmor to glue petrinets:

  • one generator for each net,
  • the input/output wire types come from the labeling on the initial/terminal transitions

the algebra computes a set of transactions (the root and the contract)

  • in addition, we would like to take a labeling of transition to public key can carry this forword into the glued petri net
Select a repo