diff --git a/hugo/content/docs/recipes/styling.md b/hugo/content/docs/recipes/styling.md
index 78e5b3c..403c24d 100644
--- a/hugo/content/docs/recipes/styling.md
+++ b/hugo/content/docs/recipes/styling.md
@@ -108,7 +108,7 @@ class MyNodeView extends ShapeView {
## Styling on User Interaction
-Taking advantage of the conditional CSS classes, you can also apply styles to your diagram elements based on [user interaction]({{< ref "/docs/ref/user-interaction" >}}). For example, you could apply a CSS class to a node when it is selected. Without going into the details of how to handle user interaction, let's look at how Sprotty's default views handle this.
+Taking advantage of the conditional CSS classes, you can also apply styles to your diagram elements based on user interaction. For example, you could apply a CSS class to a node when it is selected. Without going into the details of how to handle user interaction, let's look at how Sprotty's default views handle this.
`SNodeImpl` has the default feature `selectFeature`, meaning that when a node is selected, its `selected` property is set to `true`. This property can be used in the corresponding view to add a CSS class to the selected element. For example in the `RectangularNodeView`:
diff --git a/hugo/content/docs/ref/features.md b/hugo/content/docs/ref/features.md
index ffd0a8a..4cf52de 100644
--- a/hugo/content/docs/ref/features.md
+++ b/hugo/content/docs/ref/features.md
@@ -17,7 +17,7 @@ export class SNodeImpl extends SConnectableElementImpl implements Selectable, Fa
}
```
-It is possible to fine-tune the behavior in the [dependency injection container]({{< ref "/docs/concepts/extension-points">}}#dependency-injection) by enabling or disabling features for a given model element type.
+It is possible to fine-tune the behavior in the [dependency injection container]({{< relref "extension-points">}}#dependency-injection) by enabling or disabling features for a given model element type.
```typescript
configureElement('my-node-type', SNodeImpl, RectangularNodeView, {enable: [layoutableChildFeature], disable: [moveFeature]})
diff --git a/hugo/content/docs/ref/smodel.md b/hugo/content/docs/ref/smodel.md
index a0be946..4d60864 100644
--- a/hugo/content/docs/ref/smodel.md
+++ b/hugo/content/docs/ref/smodel.md
@@ -64,7 +64,7 @@ This is the base class for **all** elements of the diagram model. This ensures t
* `type: string`: The type of the element. This value is used in the Sprotty configuration to specify the corresponding view for all elements of this type.
* `id: string`: The globally unique identifier of the element.
-* `features: FeatureSet` - *optional*: A set of [features]({{< ref "/docs/ref/features" >}}) that are enabled on the element. The list of features can be further configured in the [dependency injection container]({{< ref "/docs/concepts/extension-points">}}#dependency-injection).
+* `features: FeatureSet` - *optional*: A set of [features]({{< relref "features" >}}) that are enabled on the element. The list of features can be further configured in the [dependency injection container]({{< relref "extension-points">}}#dependency-injection).
* `cssClasses: string[]` - *optional*: A list of CSS classes that should be applied to the element.
### SParentElementImpl
@@ -142,15 +142,15 @@ Model element for **Nodes**, which are the main entity in a graph. A node can be
*Default features:*
-* [connectableFeature]({{< ref "/docs/ref/features" >}}#connectablefeature)
-* [deletableFeature]({{< ref "/docs/ref/features" >}}#deletablefeature)
-* [selectFeature]({{< ref "/docs/ref/features" >}}#selectfeature)
-* [boundsFeature]({{< ref "/docs/ref/features" >}}#boundsfeature)
-* [moveFeature]({{< ref "/docs/ref/features" >}}#movefeature)
-* [layoutContainerFeature]({{< ref "/docs/ref/features" >}}#layoutcontainerfeature)
-* [fadeFeature]({{< ref "/docs/ref/features" >}}#fadefeature)
-* [hoverFeedbackFeature]({{< ref "/docs/ref/features" >}}#hoverfeedbackfeature)
-* [popupFeature]({{< ref "/docs/ref/features" >}}#popupfeature)
+* [connectableFeature]({{< relref "features" >}}#connectablefeature)
+* [deletableFeature]({{< relref "features" >}}#deletablefeature)
+* [selectFeature]({{< relref "features" >}}#selectfeature)
+* [boundsFeature]({{< relref "features" >}}#boundsfeature)
+* [moveFeature]({{< relref "features" >}}#movefeature)
+* [layoutContainerFeature]({{< relref "features" >}}#layoutcontainerfeature)
+* [fadeFeature]({{< relref "features" >}}#fadefeature)
+* [hoverFeedbackFeature]({{< relref "features" >}}#hoverfeedbackfeature)
+* [popupFeature]({{< relref "features" >}}#popupfeature)
### SPortImpl
@@ -168,11 +168,11 @@ A port is a connection point for edges. It should **always** be contained in an
*Default features:*
-* [connectableFeature]({{< ref "/docs/ref/features" >}}#connectablefeature)
-* [selectFeature]({{< ref "/docs/ref/features" >}}#selectfeature)
-* [boundsFeature]({{< ref "/docs/ref/features" >}}#boundsfeature)
-* [fadeFeature]({{< ref "/docs/ref/features" >}}#fadefeature)
-* [hoverFeedbackFeature]({{< ref "/docs/ref/features" >}}#hoverfeedbackfeature)
+* [connectableFeature]({{< relref "features" >}}#connectablefeature)
+* [selectFeature]({{< relref "features" >}}#selectfeature)
+* [boundsFeature]({{< relref "features" >}}#boundsfeature)
+* [fadeFeature]({{< relref "features" >}}#fadefeature)
+* [hoverFeedbackFeature]({{< relref "features" >}}#hoverfeedbackfeature)
### SEdgeImpl
@@ -221,11 +221,11 @@ A label represents some text to be displayed and attached to a node, compartment
*Default features:*
-* [boundsFeature]({{< ref "/docs/ref/features" >}}#boundsfeature)
-* [alignFeature]({{< ref "/docs/ref/features" >}}#alignfeature)
-* [layoutableChildFeature]({{< ref "/docs/ref/features" >}}#layoutablechildfeature)
-* [edgeLayoutFeature]({{< ref "/docs/ref/features" >}}#edgelayoutfeature)
-* [fadeFeature]({{< ref "/docs/ref/features" >}}#fadefeature)
+* [boundsFeature]({{< relref "features" >}}#boundsfeature)
+* [alignFeature]({{< relref "features" >}}#alignfeature)
+* [layoutableChildFeature]({{< relref "features" >}}#layoutablechildfeature)
+* [edgeLayoutFeature]({{< relref "features" >}}#edgelayoutfeature)
+* [fadeFeature]({{< relref "features" >}}#fadefeature)
### SCompartmentImpl
@@ -242,10 +242,10 @@ A compartment is used to group multiple child elements of a node or compartment,
*Default features:*
-* [boundsFeature]({{< ref "/docs/ref/features" >}}#boundsfeature)
-* [layoutContainerFeature]({{< ref "/docs/ref/features" >}}#layoutcontainerfeature)
-* [layoutableChildFeature]({{< ref "/docs/ref/features" >}}#layoutablechildfeature)
-* [fadeFeature]({{< ref "/docs/ref/features" >}}#fadefeature)
+* [boundsFeature]({{< relref "features" >}}#boundsfeature)
+* [layoutContainerFeature]({{< relref "features" >}}#layoutcontainerfeature)
+* [layoutableChildFeature]({{< relref "features" >}}#layoutablechildfeature)
+* [fadeFeature]({{< relref "features" >}}#fadefeature)
### SGraphIndex
diff --git a/hugo/content/docs/ref/sprotty-core/AddRemoveBezierSegmentAction.Function.create.md b/hugo/content/docs/ref/sprotty-core/AddRemoveBezierSegmentAction.Function.create.md
new file mode 100644
index 0000000..3fd633e
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/AddRemoveBezierSegmentAction.Function.create.md
@@ -0,0 +1,22 @@
+
+[sprotty](../globals) / [AddRemoveBezierSegmentAction](../Namespace.AddRemoveBezierSegmentAction) / create
+
+# Function: create()
+
+> **create**(`actionTask`, `targetId`): [`AddRemoveBezierSegmentAction`](../Interface.AddRemoveBezierSegmentAction)
+
+Defined in: [packages/sprotty/src/features/routing/bezier-edge-router.ts:341](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/bezier-edge-router.ts#L341)
+
+## Parameters
+
+### actionTask
+
+`"add"` | `"remove"`
+
+### targetId
+
+`string`
+
+## Returns
+
+[`AddRemoveBezierSegmentAction`](../Interface.AddRemoveBezierSegmentAction)
diff --git a/hugo/content/docs/ref/sprotty-core/AddRemoveBezierSegmentAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-core/AddRemoveBezierSegmentAction.Variable.KIND.md
new file mode 100644
index 0000000..ae89677
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/AddRemoveBezierSegmentAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / [AddRemoveBezierSegmentAction](../Namespace.AddRemoveBezierSegmentAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"addRemoveBezierSegment"` = `'addRemoveBezierSegment'`
+
+Defined in: [packages/sprotty/src/features/routing/bezier-edge-router.ts:340](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/bezier-edge-router.ts#L340)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.AbstractEdgeRouter.md b/hugo/content/docs/ref/sprotty-core/Class.AbstractEdgeRouter.md
new file mode 100644
index 0000000..5b6fb4c
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.AbstractEdgeRouter.md
@@ -0,0 +1,561 @@
+
+### applyReconnect()
+
+> **applyReconnect**(`edge`, `newSourceId?`, `newTargetId?`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:316](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L316)
+
+Updates the routing points and handles of the given edge with regard to the given moves.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### newSourceId?
+
+`string`
+
+##### newTargetId?
+
+`string`
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`IEdgeRouter`](../Interface.IEdgeRouter).[`applyReconnect`](../Interface.IEdgeRouter.md#applyreconnect)
+
+***
+
+### applySnapshot()
+
+> **applySnapshot**(`edge`, `snapshot`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:375](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L375)
+
+Applies a snapshot to the current edge.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### snapshot
+
+[`EdgeSnapshot`](../Interface.EdgeSnapshot)
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`IEdgeRouter`](../Interface.IEdgeRouter).[`applySnapshot`](../Interface.IEdgeRouter.md#applysnapshot)
+
+***
+
+### calculateDefaultCorners()
+
+> `protected` **calculateDefaultCorners**(`edge`, `sourceAnchors`, `targetAnchors`, `options`): `Point`[]
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:389](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L389)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### sourceAnchors
+
+[`DefaultAnchors`](../Class.DefaultAnchors)
+
+##### targetAnchors
+
+[`DefaultAnchors`](../Class.DefaultAnchors)
+
+##### options
+
+[`LinearRouteOptions`](../Interface.LinearRouteOptions)
+
+#### Returns
+
+`Point`[]
+
+***
+
+### calculateSegment()
+
+> `protected` **calculateSegment**(`edge`, `t`): `undefined` \| \{ `lambda`: `number`; `segmentEnd`: `Point`; `segmentStart`: `Point`; \}
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:145](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L145)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### t
+
+`number`
+
+#### Returns
+
+`undefined` \| \{ `lambda`: `number`; `segmentEnd`: `Point`; `segmentStart`: `Point`; \}
+
+***
+
+### cleanupRoutingPoints()
+
+> **cleanupRoutingPoints**(`edge`, `routingPoints`, `updateHandles`, `addRoutingPoints`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:284](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L284)
+
+Remove/add points in order to keep routing constraints consistent, or reset RPs on reconnect.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### routingPoints
+
+`Point`[]
+
+##### updateHandles
+
+`boolean`
+
+##### addRoutingPoints
+
+`boolean`
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`IEdgeRouter`](../Interface.IEdgeRouter).[`cleanupRoutingPoints`](../Interface.IEdgeRouter.md#cleanuproutingpoints)
+
+***
+
+### commitRoute()
+
+> `protected` **commitRoute**(`edge`, `routedPoints`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:432](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L432)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### routedPoints
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+#### Returns
+
+`void`
+
+***
+
+### createRoutingHandles()
+
+> `abstract` **createRoutingHandles**(`edge`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:87](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L87)
+
+Creates the routing handles for the given target.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`IEdgeRouter`](../Interface.IEdgeRouter).[`createRoutingHandles`](../Interface.IEdgeRouter.md#createroutinghandles)
+
+***
+
+### derivativeAt()
+
+> **derivativeAt**(`edge`, `t`): `undefined` \| `Point`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:134](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L134)
+
+Calculates the derivative at a point on the edge.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### t
+
+`number`
+
+a value between 0 (sourceAnchor) and 1 (targetAnchor)
+
+#### Returns
+
+`undefined` \| `Point`
+
+the point or undefined if t is out of bounds or it cannot be computed
+
+#### Implementation of
+
+[`IEdgeRouter`](../Interface.IEdgeRouter).[`derivativeAt`](../Interface.IEdgeRouter.md#derivativeat)
+
+***
+
+### findOrthogonalIntersection()
+
+> **findOrthogonalIntersection**(`edge`, `point`): `object`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:91](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L91)
+
+Finds the orthogonal intersection point between an edge and a given point in 2D space.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+The edge to find the intersection point on.
+
+##### point
+
+`Point`
+
+The point to find the intersection with.
+
+#### Returns
+
+`object`
+
+The intersection point and its derivative on the respective edge segment.
+
+##### derivative
+
+> **derivative**: `Point`
+
+##### point
+
+> **point**: `Point`
+
+#### Implementation of
+
+[`IEdgeRouter`](../Interface.IEdgeRouter).[`findOrthogonalIntersection`](../Interface.IEdgeRouter.md#findorthogonalintersection)
+
+***
+
+### findRouteSegment()
+
+> `protected` **findRouteSegment**(`edge`, `route`, `handleIndex`): `object`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:217](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L217)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### route
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+##### handleIndex
+
+`number`
+
+#### Returns
+
+`object`
+
+##### end?
+
+> `optional` **end**: `Point`
+
+##### start?
+
+> `optional` **start**: `Point`
+
+***
+
+### getAnchorComputer()
+
+> `protected` **getAnchorComputer**(`connectable`): [`IAnchorComputer`](../Interface.IAnchorComputer)
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:245](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L245)
+
+#### Parameters
+
+##### connectable
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl)
+
+#### Returns
+
+[`IAnchorComputer`](../Interface.IAnchorComputer)
+
+***
+
+### getHandlePosition()
+
+> **getHandlePosition**(`edge`, `route`, `handle`): `undefined` \| `Point`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:192](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L192)
+
+Retuns the position of the given handle based on the routing points of the edge.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### route
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+##### handle
+
+[`SRoutingHandleImpl`](../Class.SRoutingHandleImpl)
+
+#### Returns
+
+`undefined` \| `Point`
+
+#### Implementation of
+
+[`IEdgeRouter`](../Interface.IEdgeRouter).[`getHandlePosition`](../Interface.IEdgeRouter.md#gethandleposition)
+
+***
+
+### getInnerHandlePosition()
+
+> `abstract` `protected` **getInnerHandlePosition**(`edge`, `route`, `handle`): `undefined` \| `Point`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:215](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L215)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### route
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+##### handle
+
+[`SRoutingHandleImpl`](../Class.SRoutingHandleImpl)
+
+#### Returns
+
+`undefined` \| `Point`
+
+***
+
+### getOptions()
+
+> `abstract` `protected` **getOptions**(`edge`): [`LinearRouteOptions`](../Interface.LinearRouteOptions)
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:89](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L89)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+#### Returns
+
+[`LinearRouteOptions`](../Interface.LinearRouteOptions)
+
+***
+
+### getSelfEdgeIndex()
+
+> `protected` **getSelfEdgeIndex**(`edge`): `number`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:424](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L424)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+#### Returns
+
+`number`
+
+***
+
+### getTranslatedAnchor()
+
+> **getTranslatedAnchor**(`connectable`, `refPoint`, `refContainer`, `edge`, `anchorCorrection`): `Point`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:237](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L237)
+
+#### Parameters
+
+##### connectable
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl)
+
+##### refPoint
+
+`Point`
+
+##### refContainer
+
+[`SParentElementImpl`](../Class.SParentElementImpl)
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### anchorCorrection
+
+`number` = `0`
+
+#### Returns
+
+`Point`
+
+***
+
+### pointAt()
+
+> **pointAt**(`edge`, `t`): `undefined` \| `Point`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:126](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L126)
+
+Calculates a point on the edge
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### t
+
+`number`
+
+a value between 0 (sourceAnchor) and 1 (targetAnchor)
+
+#### Returns
+
+`undefined` \| `Point`
+
+the point or undefined if t is out of bounds or it cannot be computed
+
+#### Implementation of
+
+[`IEdgeRouter`](../Interface.IEdgeRouter).[`pointAt`](../Interface.IEdgeRouter.md#pointat)
+
+***
+
+### resetRoutingPointsOnReconnect()
+
+> `protected` **resetRoutingPointsOnReconnect**(`edge`, `routingPoints`, `updateHandles`, `sourceAnchors`, `targetAnchors`): `boolean`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:290](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L290)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### routingPoints
+
+`Point`[]
+
+##### updateHandles
+
+`boolean`
+
+##### sourceAnchors
+
+[`DefaultAnchors`](../Class.DefaultAnchors)
+
+##### targetAnchors
+
+[`DefaultAnchors`](../Class.DefaultAnchors)
+
+#### Returns
+
+`boolean`
+
+***
+
+### route()
+
+> `abstract` **route**(`edge`): [`RoutedPoint`](../Interface.RoutedPoint)[]
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:85](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L85)
+
+Calculates the route of the given edge.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+#### Returns
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+#### Implementation of
+
+[`IEdgeRouter`](../Interface.IEdgeRouter).[`route`](../Interface.IEdgeRouter.md#route)
+
+***
+
+### takeSnapshot()
+
+> **takeSnapshot**(`edge`): [`EdgeSnapshot`](../Interface.EdgeSnapshot)
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:362](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L362)
+
+Creates a snapshot of the given edge, storing all the data needed to restore it to
+its current state.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+#### Returns
+
+[`EdgeSnapshot`](../Interface.EdgeSnapshot)
+
+#### Implementation of
+
+[`IEdgeRouter`](../Interface.IEdgeRouter).[`takeSnapshot`](../Interface.IEdgeRouter.md#takesnapshot)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.AbstractHoverMouseListener.md b/hugo/content/docs/ref/sprotty-core/Class.AbstractHoverMouseListener.md
new file mode 100644
index 0000000..536ec85
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.AbstractHoverMouseListener.md
@@ -0,0 +1,346 @@
+
+### decorate()
+
+> **decorate**(`vnode`, `element`): `VNode`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:218](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L218)
+
+#### Parameters
+
+##### vnode
+
+`VNode`
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+#### Returns
+
+`VNode`
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`decorate`](../Class.MouseListener.md#decorate)
+
+***
+
+### doubleClick()
+
+> **doubleClick**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:202](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L202)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`doubleClick`](../Class.MouseListener.md#doubleclick)
+
+***
+
+### dragOver()
+
+> **dragOver**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:210](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L210)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`dragOver`](../Class.MouseListener.md#dragover)
+
+***
+
+### drop()
+
+> **drop**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:214](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L214)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`drop`](../Class.MouseListener.md#drop)
+
+***
+
+### mouseDown()
+
+> **mouseDown**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:105](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L105)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Overrides
+
+[`MouseListener`](../Class.MouseListener).[`mouseDown`](../Class.MouseListener.md#mousedown)
+
+***
+
+### mouseEnter()
+
+> **mouseEnter**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:178](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L178)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseEnter`](../Class.MouseListener.md#mouseenter)
+
+***
+
+### mouseLeave()
+
+> **mouseLeave**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:182](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L182)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseLeave`](../Class.MouseListener.md#mouseleave)
+
+***
+
+### mouseMove()
+
+> **mouseMove**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:190](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L190)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseMove`](../Class.MouseListener.md#mousemove)
+
+***
+
+### mouseOut()
+
+> **mouseOut**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:174](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L174)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseOut`](../Class.MouseListener.md#mouseout)
+
+***
+
+### mouseOver()
+
+> **mouseOver**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:170](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L170)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseOver`](../Class.MouseListener.md#mouseover)
+
+***
+
+### mouseUp()
+
+> **mouseUp**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:110](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L110)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Overrides
+
+[`MouseListener`](../Class.MouseListener).[`mouseUp`](../Class.MouseListener.md#mouseup)
+
+***
+
+### startMouseOutTimer()
+
+> `protected` **startMouseOutTimer**(): `Promise`\<`Action`\>
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:122](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L122)
+
+#### Returns
+
+`Promise`\<`Action`\>
+
+***
+
+### stopMouseOutTimer()
+
+> `protected` **stopMouseOutTimer**(): `void`
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:115](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L115)
+
+#### Returns
+
+`void`
+
+***
+
+### stopMouseOverTimer()
+
+> `protected` **stopMouseOverTimer**(): `void`
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:133](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L133)
+
+#### Returns
+
+`void`
+
+***
+
+### wheel()
+
+> **wheel**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:198](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L198)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`WheelEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`wheel`](../Class.MouseListener.md#wheel)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.AbstractUIExtension.md b/hugo/content/docs/ref/sprotty-core/Class.AbstractUIExtension.md
new file mode 100644
index 0000000..d0c82ef
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.AbstractUIExtension.md
@@ -0,0 +1,190 @@
+
+### options
+
+> `protected` **options**: [`ViewerOptions`](../Interface.ViewerOptions)
+
+Defined in: [packages/sprotty/src/base/ui-extensions/ui-extension.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/ui-extensions/ui-extension.ts#L44)
+
+## Methods
+
+### containerClass()
+
+> `abstract` **containerClass**(): `string`
+
+Defined in: [packages/sprotty/src/base/ui-extensions/ui-extension.ts:51](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/ui-extensions/ui-extension.ts#L51)
+
+#### Returns
+
+`string`
+
+***
+
+### getOrCreateContainer()
+
+> `protected` **getOrCreateContainer**(`baseDivId`): `HTMLElement`
+
+Defined in: [packages/sprotty/src/base/ui-extensions/ui-extension.ts:89](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/ui-extensions/ui-extension.ts#L89)
+
+#### Parameters
+
+##### baseDivId
+
+`string`
+
+#### Returns
+
+`HTMLElement`
+
+***
+
+### hide()
+
+> **hide**(): `void`
+
+Defined in: [packages/sprotty/src/base/ui-extensions/ui-extension.ts:62](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/ui-extensions/ui-extension.ts#L62)
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`IUIExtension`](../Interface.IUIExtension).[`hide`](../Interface.IUIExtension.md#hide)
+
+***
+
+### id()
+
+> `abstract` **id**(): `string`
+
+Defined in: [packages/sprotty/src/base/ui-extensions/ui-extension.ts:50](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/ui-extensions/ui-extension.ts#L50)
+
+#### Returns
+
+`string`
+
+#### Implementation of
+
+[`IUIExtension`](../Interface.IUIExtension).[`id`](../Interface.IUIExtension.md#id)
+
+***
+
+### initialize()
+
+> `protected` **initialize**(): `boolean`
+
+Defined in: [packages/sprotty/src/base/ui-extensions/ui-extension.ts:75](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/ui-extensions/ui-extension.ts#L75)
+
+#### Returns
+
+`boolean`
+
+***
+
+### initializeContents()
+
+> `abstract` `protected` **initializeContents**(`containerElement`): `void`
+
+Defined in: [packages/sprotty/src/base/ui-extensions/ui-extension.ts:127](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/ui-extensions/ui-extension.ts#L127)
+
+Initializes the contents of this UI extension.
+
+Subclasses must implement this method to initialize the UI elements of this UI extension inside the specified `containerElement`.
+
+#### Parameters
+
+##### containerElement
+
+`HTMLElement`
+
+#### Returns
+
+`void`
+
+***
+
+### onBeforeShow()
+
+> `protected` **onBeforeShow**(`containerElement`, `root`, ...`contextElementIds`): `void`
+
+Defined in: [packages/sprotty/src/base/ui-extensions/ui-extension.ts:118](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/ui-extensions/ui-extension.ts#L118)
+
+Updates the `containerElement` under the given `context` before it becomes visible.
+
+Subclasses may override this method to, for instance, modifying the position of the
+`containerElement`, add or remove elements, etc. depending on the specified `root`
+or `contextElementIds`.
+
+#### Parameters
+
+##### containerElement
+
+`HTMLElement`
+
+##### root
+
+`Readonly`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+##### contextElementIds
+
+...`string`[]
+
+#### Returns
+
+`void`
+
+***
+
+### restoreFocus()
+
+> `protected` **restoreFocus**(): `void`
+
+Defined in: [packages/sprotty/src/base/ui-extensions/ui-extension.ts:68](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/ui-extensions/ui-extension.ts#L68)
+
+#### Returns
+
+`void`
+
+***
+
+### setContainerVisible()
+
+> `protected` **setContainerVisible**(`visible`): `void`
+
+Defined in: [packages/sprotty/src/base/ui-extensions/ui-extension.ts:99](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/ui-extensions/ui-extension.ts#L99)
+
+#### Parameters
+
+##### visible
+
+`boolean`
+
+#### Returns
+
+`void`
+
+***
+
+### show()
+
+> **show**(`root`, ...`contextElementIds`): `void`
+
+Defined in: [packages/sprotty/src/base/ui-extensions/ui-extension.ts:53](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/ui-extensions/ui-extension.ts#L53)
+
+#### Parameters
+
+##### root
+
+`Readonly`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+##### contextElementIds
+
+...`string`[]
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`IUIExtension`](../Interface.IUIExtension).[`show`](../Interface.IUIExtension.md#show)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ActionDispatcher.md b/hugo/content/docs/ref/sprotty-core/Class.ActionDispatcher.md
new file mode 100644
index 0000000..2229f46
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ActionDispatcher.md
@@ -0,0 +1,191 @@
+
+### commandStack
+
+> `protected` **commandStack**: [`ICommandStack`](../Interface.ICommandStack)
+
+Defined in: [packages/sprotty/src/base/actions/action-dispatcher.ts:49](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/actions/action-dispatcher.ts#L49)
+
+***
+
+### diagramLocker
+
+> `protected` **diagramLocker**: [`IDiagramLocker`](../Interface.IDiagramLocker)
+
+Defined in: [packages/sprotty/src/base/actions/action-dispatcher.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/actions/action-dispatcher.ts#L52)
+
+***
+
+### initialized
+
+> `protected` **initialized**: `undefined` \| `Promise`\<`void`\>
+
+Defined in: [packages/sprotty/src/base/actions/action-dispatcher.ts:56](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/actions/action-dispatcher.ts#L56)
+
+***
+
+### logger
+
+> `protected` **logger**: [`ILogger`](../Interface.ILogger)
+
+Defined in: [packages/sprotty/src/base/actions/action-dispatcher.ts:50](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/actions/action-dispatcher.ts#L50)
+
+***
+
+### postponedActions
+
+> `protected` **postponedActions**: [`PostponedAction`](../Interface.PostponedAction)[] = `[]`
+
+Defined in: [packages/sprotty/src/base/actions/action-dispatcher.ts:58](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/actions/action-dispatcher.ts#L58)
+
+***
+
+### requests
+
+> `protected` `readonly` **requests**: `Map`\<`string`, `Deferred`\<`ResponseAction`\>\>
+
+Defined in: [packages/sprotty/src/base/actions/action-dispatcher.ts:59](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/actions/action-dispatcher.ts#L59)
+
+***
+
+### syncer
+
+> `protected` **syncer**: [`AnimationFrameSyncer`](../Class.AnimationFrameSyncer)
+
+Defined in: [packages/sprotty/src/base/actions/action-dispatcher.ts:51](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/actions/action-dispatcher.ts#L51)
+
+## Methods
+
+### dispatch()
+
+> **dispatch**(`action`): `Promise`\<`void`\>
+
+Defined in: [packages/sprotty/src/base/actions/action-dispatcher.ts:76](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/actions/action-dispatcher.ts#L76)
+
+Dispatch an action by querying all handlers that are registered for its kind.
+The returned promise is resolved when all handler results (commands or actions)
+have been processed.
+
+#### Parameters
+
+##### action
+
+`Action`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Implementation of
+
+[`IActionDispatcher`](../Interface.IActionDispatcher).[`dispatch`](../Interface.IActionDispatcher.md#dispatch)
+
+***
+
+### dispatchAll()
+
+> **dispatchAll**(`actions`): `Promise`\<`void`\>
+
+Defined in: [packages/sprotty/src/base/actions/action-dispatcher.ts:91](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/actions/action-dispatcher.ts#L91)
+
+Calls `dispatch` on every action in the given array. The returned promise
+is resolved when the promises of all `dispatch` calls have been resolved.
+
+#### Parameters
+
+##### actions
+
+`Action`[]
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Implementation of
+
+[`IActionDispatcher`](../Interface.IActionDispatcher).[`dispatchAll`](../Interface.IActionDispatcher.md#dispatchall)
+
+***
+
+### handleAction()
+
+> `protected` **handleAction**(`action`): `Promise`\<`void`\>
+
+Defined in: [packages/sprotty/src/base/actions/action-dispatcher.ts:112](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/actions/action-dispatcher.ts#L112)
+
+#### Parameters
+
+##### action
+
+`Action`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### handleBlocked()
+
+> `protected` **handleBlocked**(`action`, `predicate`): `Promise`\<`void`\>
+
+Defined in: [packages/sprotty/src/base/actions/action-dispatcher.ts:163](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/actions/action-dispatcher.ts#L163)
+
+#### Parameters
+
+##### action
+
+`Action`
+
+##### predicate
+
+(`action`) => `boolean`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### initialize()
+
+> **initialize**(): `Promise`\<`void`\>
+
+Defined in: [packages/sprotty/src/base/actions/action-dispatcher.ts:61](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/actions/action-dispatcher.ts#L61)
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### request()
+
+> **request**\<`Res`\>(`action`): `Promise`\<`Res`\>
+
+Defined in: [packages/sprotty/src/base/actions/action-dispatcher.ts:102](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/actions/action-dispatcher.ts#L102)
+
+Dispatch a request. The returned promise is resolved when a response with matching
+identifier is dispatched. That response is _not_ passed to the registered action
+handlers. Instead, it is the responsibility of the caller of this method to handle
+the response properly. For example, it can be sent to the registered handlers by
+passing it again to the `dispatch` method.
+
+#### Type Parameters
+
+##### Res
+
+`Res` *extends* `ResponseAction`
+
+#### Parameters
+
+##### action
+
+`RequestAction`\<`Res`\>
+
+#### Returns
+
+`Promise`\<`Res`\>
+
+#### Implementation of
+
+[`IActionDispatcher`](../Interface.IActionDispatcher).[`request`](../Interface.IActionDispatcher.md#request)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ActionHandlerRegistry.md b/hugo/content/docs/ref/sprotty-core/Class.ActionHandlerRegistry.md
new file mode 100644
index 0000000..18fc45d
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ActionHandlerRegistry.md
@@ -0,0 +1,24 @@
+
+### register()
+
+> **register**(`key`, `instance`): `void`
+
+Defined in: [packages/sprotty/src/utils/registry.ts:154](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/registry.ts#L154)
+
+#### Parameters
+
+##### key
+
+`string`
+
+##### instance
+
+[`IActionHandler`](../Interface.IActionHandler)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`MultiInstanceRegistry`](../Class.MultiInstanceRegistry).[`register`](../Class.MultiInstanceRegistry.md#register)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.AddRemoveBezierSegmentCommand.md b/hugo/content/docs/ref/sprotty-core/Class.AddRemoveBezierSegmentCommand.md
new file mode 100644
index 0000000..9b97540
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.AddRemoveBezierSegmentCommand.md
@@ -0,0 +1,42 @@
+
+### redo()
+
+> **redo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/routing/bezier-edge-router.ts:388](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/bezier-edge-router.ts#L388)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`Command`](../Class.Command).[`redo`](../Class.Command.md#redo)
+
+***
+
+### undo()
+
+> **undo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/routing/bezier-edge-router.ts:384](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/bezier-edge-router.ts#L384)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`Command`](../Class.Command).[`undo`](../Class.Command.md#undo)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.AnchorComputerRegistry.md b/hugo/content/docs/ref/sprotty-core/Class.AnchorComputerRegistry.md
new file mode 100644
index 0000000..a7db659
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.AnchorComputerRegistry.md
@@ -0,0 +1,72 @@
+
+### missing()
+
+> `protected` **missing**(`key`): [`IAnchorComputer`](../Interface.IAnchorComputer)
+
+Defined in: [packages/sprotty/src/utils/registry.ts:145](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/registry.ts#L145)
+
+#### Parameters
+
+##### key
+
+`string`
+
+#### Returns
+
+[`IAnchorComputer`](../Interface.IAnchorComputer)
+
+#### Inherited from
+
+[`InstanceRegistry`](../Class.InstanceRegistry).[`missing`](../Class.InstanceRegistry.md#missing)
+
+***
+
+### override()
+
+> **override**(`key`, `instance`): `void`
+
+Defined in: [packages/sprotty/src/utils/registry.ts:116](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/registry.ts#L116)
+
+#### Parameters
+
+##### key
+
+`string`
+
+##### instance
+
+[`IAnchorComputer`](../Interface.IAnchorComputer)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`InstanceRegistry`](../Class.InstanceRegistry).[`override`](../Class.InstanceRegistry.md#override)
+
+***
+
+### register()
+
+> **register**(`key`, `instance`): `void`
+
+Defined in: [packages/sprotty/src/utils/registry.ts:106](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/registry.ts#L106)
+
+#### Parameters
+
+##### key
+
+`string`
+
+##### instance
+
+[`IAnchorComputer`](../Interface.IAnchorComputer)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`InstanceRegistry`](../Class.InstanceRegistry).[`register`](../Class.InstanceRegistry.md#register)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.Animation.md b/hugo/content/docs/ref/sprotty-core/Class.Animation.md
new file mode 100644
index 0000000..2068e3e
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.Animation.md
@@ -0,0 +1,40 @@
+
+### stop()
+
+> **stop**(): `void`
+
+Defined in: [packages/sprotty/src/base/animations/animation.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/animations/animation.ts#L74)
+
+Stop the animation at the current state.
+The promise returned by start() will be resolved with the current state after the next tweening step.
+
+#### Returns
+
+`void`
+
+***
+
+### tween()
+
+> `abstract` **tween**(`t`, `context`): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/animations/animation.ts:85](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/animations/animation.ts#L85)
+
+This method called by the animation at each rendering pass until
+the duration is reached. Implement it to interpolate the state.
+
+#### Parameters
+
+##### t
+
+`number`
+
+varies between 0 (start of animation) and 1 (end of animation)
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.AnimationFrameSyncer.md b/hugo/content/docs/ref/sprotty-core/Class.AnimationFrameSyncer.md
new file mode 100644
index 0000000..d5e5635
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.AnimationFrameSyncer.md
@@ -0,0 +1,64 @@
+
+### onEndOfNextFrame()
+
+> **onEndOfNextFrame**(`task`): `void`
+
+Defined in: [packages/sprotty/src/base/animations/animation-frame-syncer.ts:35](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/animations/animation-frame-syncer.ts#L35)
+
+#### Parameters
+
+##### task
+
+(`x?`) => `void`
+
+#### Returns
+
+`void`
+
+***
+
+### onNextFrame()
+
+> **onNextFrame**(`task`): `void`
+
+Defined in: [packages/sprotty/src/base/animations/animation-frame-syncer.ts:30](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/animations/animation-frame-syncer.ts#L30)
+
+#### Parameters
+
+##### task
+
+(`x?`) => `void`
+
+#### Returns
+
+`void`
+
+***
+
+### run()
+
+> `protected` **run**(`time`): `void`
+
+Defined in: [packages/sprotty/src/base/animations/animation-frame-syncer.ts:50](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/animations/animation-frame-syncer.ts#L50)
+
+#### Parameters
+
+##### time
+
+`number`
+
+#### Returns
+
+`void`
+
+***
+
+### trigger()
+
+> `protected` **trigger**(): `void`
+
+Defined in: [packages/sprotty/src/base/animations/animation-frame-syncer.ts:40](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/animations/animation-frame-syncer.ts#L40)
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ApplyLabelEditCommand.md b/hugo/content/docs/ref/sprotty-core/Class.ApplyLabelEditCommand.md
new file mode 100644
index 0000000..e896b38
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ApplyLabelEditCommand.md
@@ -0,0 +1,42 @@
+
+### redo()
+
+> **redo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/edit/edit-label.ts:84](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label.ts#L84)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`Command`](../Class.Command).[`redo`](../Class.Command.md#redo)
+
+***
+
+### undo()
+
+> **undo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/edit/edit-label.ts:77](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label.ts#L77)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`Command`](../Class.Command).[`undo`](../Class.Command.md#undo)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.BezierCurveEdgeView.md b/hugo/content/docs/ref/sprotty-core/Class.BezierCurveEdgeView.md
new file mode 100644
index 0000000..93270f7
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.BezierCurveEdgeView.md
@@ -0,0 +1,54 @@
+
+### renderDanglingEdge()
+
+> `protected` **renderDanglingEdge**(`message`, `edge`, `context`): `VNode`
+
+Defined in: [packages/sprotty/src/graph/views.tsx:382](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L382)
+
+#### Parameters
+
+##### message
+
+`string`
+
+##### edge
+
+[`SEdgeImpl`](../Class.SEdgeImpl)
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+#### Returns
+
+`VNode`
+
+***
+
+### renderLine()
+
+> `protected` **renderLine**(`edge`, `segments`, `context`, `args?`): `VNode`
+
+Defined in: [packages/sprotty/src/graph/views.tsx:335](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L335)
+
+#### Parameters
+
+##### edge
+
+[`SEdgeImpl`](../Class.SEdgeImpl)
+
+##### segments
+
+`Point`[]
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+##### args?
+
+[`IViewArgs`](../Interface.IViewArgs)
+
+#### Returns
+
+`VNode`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.BezierDiamondAnchor.md b/hugo/content/docs/ref/sprotty-core/Class.BezierDiamondAnchor.md
new file mode 100644
index 0000000..3209c52
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.BezierDiamondAnchor.md
@@ -0,0 +1,84 @@
+
+[sprotty](../globals) / BezierDiamondAnchor
+
+# Class: BezierDiamondAnchor
+
+Defined in: [packages/sprotty/src/features/routing/bezier-anchors.ts:39](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/bezier-anchors.ts#L39)
+
+## Extends
+
+- [`DiamondAnchor`](../Class.DiamondAnchor)
+
+## Constructors
+
+### Constructor
+
+> **new BezierDiamondAnchor**(): `BezierDiamondAnchor`
+
+#### Returns
+
+`BezierDiamondAnchor`
+
+#### Inherited from
+
+[`DiamondAnchor`](../Class.DiamondAnchor).[`constructor`](../Class.DiamondAnchor.md#constructor)
+
+## Accessors
+
+### kind
+
+#### Get Signature
+
+> **get** **kind**(): `string`
+
+Defined in: [packages/sprotty/src/features/routing/bezier-anchors.ts:41](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/bezier-anchors.ts#L41)
+
+##### Returns
+
+`string`
+
+#### Overrides
+
+[`DiamondAnchor`](../Class.DiamondAnchor).[`kind`](../Class.DiamondAnchor.md#kind)
+
+## Methods
+
+### getAnchor()
+
+> **getAnchor**(`connectable`, `refPoint`, `offset`): `Point`
+
+Defined in: [packages/sprotty/src/features/routing/polyline-anchors.ts:122](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/polyline-anchors.ts#L122)
+
+Compute an anchor position for routing an edge towards this element.
+
+The default implementation returns the element's center point. If edges should be connected
+differently, e.g. to some point on the boundary of the element's view, the according computation
+should be implemented in a subclass by overriding this method.
+
+#### Parameters
+
+##### connectable
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl)
+
+The node or port an edge should be connected to.
+
+##### refPoint
+
+`Point`
+
+##### offset
+
+`number`
+
+An optional offset value to be considered in the anchor computation;
+ positive values should shift the anchor away from this element, negative values
+ should shift the anchor more to the inside. Use this to adapt ot arrow heads.
+
+#### Returns
+
+`Point`
+
+#### Inherited from
+
+[`DiamondAnchor`](../Class.DiamondAnchor).[`getAnchor`](../Class.DiamondAnchor.md#getanchor)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.BezierEdgeRouter.md b/hugo/content/docs/ref/sprotty-core/Class.BezierEdgeRouter.md
new file mode 100644
index 0000000..9521fdd
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.BezierEdgeRouter.md
@@ -0,0 +1,725 @@
+
+### applyHandleMoves()
+
+> **applyHandleMoves**(`edge`, `moves`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/bezier-edge-router.ts:156](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/bezier-edge-router.ts#L156)
+
+Updates the routing points and handles of the given edge with regard to the given moves.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### moves
+
+[`ResolvedHandleMove`](../Interface.ResolvedHandleMove)[]
+
+#### Returns
+
+`void`
+
+#### Overrides
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`applyHandleMoves`](../Class.AbstractEdgeRouter.md#applyhandlemoves)
+
+***
+
+### applyInnerHandleMoves()
+
+> `protected` **applyInnerHandleMoves**(`edge`, `moves`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/bezier-edge-router.ts:228](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/bezier-edge-router.ts#L228)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### moves
+
+[`ResolvedHandleMove`](../Interface.ResolvedHandleMove)[]
+
+#### Returns
+
+`void`
+
+#### Overrides
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`applyInnerHandleMoves`](../Class.AbstractEdgeRouter.md#applyinnerhandlemoves)
+
+***
+
+### applyReconnect()
+
+> **applyReconnect**(`edge`, `newSourceId?`, `newTargetId?`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:316](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L316)
+
+Updates the routing points and handles of the given edge with regard to the given moves.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### newSourceId?
+
+`string`
+
+##### newTargetId?
+
+`string`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`applyReconnect`](../Class.AbstractEdgeRouter.md#applyreconnect)
+
+***
+
+### applySnapshot()
+
+> **applySnapshot**(`edge`, `snapshot`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:375](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L375)
+
+Applies a snapshot to the current edge.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### snapshot
+
+[`EdgeSnapshot`](../Interface.EdgeSnapshot)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`applySnapshot`](../Class.AbstractEdgeRouter.md#applysnapshot)
+
+***
+
+### calculateDefaultCorners()
+
+> `protected` **calculateDefaultCorners**(`edge`, `sourceAnchors`, `targetAnchors`, `options`): `Point`[]
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:389](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L389)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### sourceAnchors
+
+[`DefaultAnchors`](../Class.DefaultAnchors)
+
+##### targetAnchors
+
+[`DefaultAnchors`](../Class.DefaultAnchors)
+
+##### options
+
+[`LinearRouteOptions`](../Interface.LinearRouteOptions)
+
+#### Returns
+
+`Point`[]
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`calculateDefaultCorners`](../Class.AbstractEdgeRouter.md#calculatedefaultcorners)
+
+***
+
+### calculateSegment()
+
+> `protected` **calculateSegment**(`edge`, `t`): `undefined` \| \{ `lambda`: `number`; `segmentEnd`: `Point`; `segmentStart`: `Point`; \}
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:145](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L145)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### t
+
+`number`
+
+#### Returns
+
+`undefined` \| \{ `lambda`: `number`; `segmentEnd`: `Point`; `segmentStart`: `Point`; \}
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`calculateSegment`](../Class.AbstractEdgeRouter.md#calculatesegment)
+
+***
+
+### cleanupRoutingPoints()
+
+> **cleanupRoutingPoints**(`edge`, `routingPoints`, `updateHandles`, `addRoutingPoints`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:284](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L284)
+
+Remove/add points in order to keep routing constraints consistent, or reset RPs on reconnect.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### routingPoints
+
+`Point`[]
+
+##### updateHandles
+
+`boolean`
+
+##### addRoutingPoints
+
+`boolean`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`cleanupRoutingPoints`](../Class.AbstractEdgeRouter.md#cleanuproutingpoints)
+
+***
+
+### commitRoute()
+
+> `protected` **commitRoute**(`edge`, `routedPoints`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:432](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L432)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### routedPoints
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`commitRoute`](../Class.AbstractEdgeRouter.md#commitroute)
+
+***
+
+### createNewBezierSegment()
+
+> **createNewBezierSegment**(`index`, `edge`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/bezier-edge-router.ts:247](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/bezier-edge-router.ts#L247)
+
+#### Parameters
+
+##### index
+
+`number`
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+#### Returns
+
+`void`
+
+***
+
+### createRoutingHandles()
+
+> **createRoutingHandles**(`edge`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/bezier-edge-router.ts:96](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/bezier-edge-router.ts#L96)
+
+Creates the routing handles for the given target.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+#### Returns
+
+`void`
+
+#### Overrides
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`createRoutingHandles`](../Class.AbstractEdgeRouter.md#createroutinghandles)
+
+***
+
+### derivativeAt()
+
+> **derivativeAt**(`edge`, `t`): `undefined` \| `Point`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:134](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L134)
+
+Calculates the derivative at a point on the edge.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### t
+
+`number`
+
+a value between 0 (sourceAnchor) and 1 (targetAnchor)
+
+#### Returns
+
+`undefined` \| `Point`
+
+the point or undefined if t is out of bounds or it cannot be computed
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`derivativeAt`](../Class.AbstractEdgeRouter.md#derivativeat)
+
+***
+
+### findBezierControl()
+
+> `protected` **findBezierControl**(`edge`, `route`, `handleIndex`): `Point`
+
+Defined in: [packages/sprotty/src/features/routing/bezier-edge-router.ts:143](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/bezier-edge-router.ts#L143)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### route
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+##### handleIndex
+
+`number`
+
+#### Returns
+
+`Point`
+
+***
+
+### findOrthogonalIntersection()
+
+> **findOrthogonalIntersection**(`edge`, `point`): `object`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:91](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L91)
+
+Finds the orthogonal intersection point between an edge and a given point in 2D space.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+The edge to find the intersection point on.
+
+##### point
+
+`Point`
+
+The point to find the intersection with.
+
+#### Returns
+
+`object`
+
+The intersection point and its derivative on the respective edge segment.
+
+##### derivative
+
+> **derivative**: `Point`
+
+##### point
+
+> **point**: `Point`
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`findOrthogonalIntersection`](../Class.AbstractEdgeRouter.md#findorthogonalintersection)
+
+***
+
+### findRouteSegment()
+
+> `protected` **findRouteSegment**(`edge`, `route`, `handleIndex`): `object`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:217](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L217)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### route
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+##### handleIndex
+
+`number`
+
+#### Returns
+
+`object`
+
+##### end?
+
+> `optional` **end**: `Point`
+
+##### start?
+
+> `optional` **start**: `Point`
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`findRouteSegment`](../Class.AbstractEdgeRouter.md#findroutesegment)
+
+***
+
+### getAnchorComputer()
+
+> `protected` **getAnchorComputer**(`connectable`): [`IAnchorComputer`](../Interface.IAnchorComputer)
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:245](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L245)
+
+#### Parameters
+
+##### connectable
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl)
+
+#### Returns
+
+[`IAnchorComputer`](../Interface.IAnchorComputer)
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`getAnchorComputer`](../Class.AbstractEdgeRouter.md#getanchorcomputer)
+
+***
+
+### getHandlePosition()
+
+> **getHandlePosition**(`edge`, `route`, `handle`): `undefined` \| `Point`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:192](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L192)
+
+Retuns the position of the given handle based on the routing points of the edge.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### route
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+##### handle
+
+[`SRoutingHandleImpl`](../Class.SRoutingHandleImpl)
+
+#### Returns
+
+`undefined` \| `Point`
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`getHandlePosition`](../Class.AbstractEdgeRouter.md#gethandleposition)
+
+***
+
+### getInnerHandlePosition()
+
+> **getInnerHandlePosition**(`edge`, `route`, `handle`): `undefined` \| [`RoutedPoint`](../Interface.RoutedPoint) \| \{ `x`: `number`; `y`: `number`; \}
+
+Defined in: [packages/sprotty/src/features/routing/bezier-edge-router.ts:126](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/bezier-edge-router.ts#L126)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### route
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+##### handle
+
+[`SRoutingHandleImpl`](../Class.SRoutingHandleImpl)
+
+#### Returns
+
+`undefined` \| [`RoutedPoint`](../Interface.RoutedPoint) \| \{ `x`: `number`; `y`: `number`; \}
+
+#### Overrides
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`getInnerHandlePosition`](../Class.AbstractEdgeRouter.md#getinnerhandleposition)
+
+***
+
+### getOptions()
+
+> `protected` **getOptions**(`edge`): [`LinearRouteOptions`](../Interface.LinearRouteOptions)
+
+Defined in: [packages/sprotty/src/features/routing/bezier-edge-router.ts:232](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/bezier-edge-router.ts#L232)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+#### Returns
+
+[`LinearRouteOptions`](../Interface.LinearRouteOptions)
+
+#### Overrides
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`getOptions`](../Class.AbstractEdgeRouter.md#getoptions)
+
+***
+
+### getSelfEdgeIndex()
+
+> `protected` **getSelfEdgeIndex**(`edge`): `number`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:424](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L424)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+#### Returns
+
+`number`
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`getSelfEdgeIndex`](../Class.AbstractEdgeRouter.md#getselfedgeindex)
+
+***
+
+### getTranslatedAnchor()
+
+> **getTranslatedAnchor**(`connectable`, `refPoint`, `refContainer`, `edge`, `anchorCorrection`): `Point`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:237](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L237)
+
+#### Parameters
+
+##### connectable
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl)
+
+##### refPoint
+
+`Point`
+
+##### refContainer
+
+[`SParentElementImpl`](../Class.SParentElementImpl)
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### anchorCorrection
+
+`number` = `0`
+
+#### Returns
+
+`Point`
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`getTranslatedAnchor`](../Class.AbstractEdgeRouter.md#gettranslatedanchor)
+
+***
+
+### pointAt()
+
+> **pointAt**(`edge`, `t`): `undefined` \| `Point`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:126](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L126)
+
+Calculates a point on the edge
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### t
+
+`number`
+
+a value between 0 (sourceAnchor) and 1 (targetAnchor)
+
+#### Returns
+
+`undefined` \| `Point`
+
+the point or undefined if t is out of bounds or it cannot be computed
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`pointAt`](../Class.AbstractEdgeRouter.md#pointat)
+
+***
+
+### removeBezierSegment()
+
+> **removeBezierSegment**(`index`, `edge`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/bezier-edge-router.ts:273](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/bezier-edge-router.ts#L273)
+
+#### Parameters
+
+##### index
+
+`number`
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+#### Returns
+
+`void`
+
+***
+
+### resetRoutingPointsOnReconnect()
+
+> `protected` **resetRoutingPointsOnReconnect**(`edge`, `routingPoints`, `updateHandles`, `sourceAnchors`, `targetAnchors`): `boolean`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:290](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L290)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### routingPoints
+
+`Point`[]
+
+##### updateHandles
+
+`boolean`
+
+##### sourceAnchors
+
+[`DefaultAnchors`](../Class.DefaultAnchors)
+
+##### targetAnchors
+
+[`DefaultAnchors`](../Class.DefaultAnchors)
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`resetRoutingPointsOnReconnect`](../Class.AbstractEdgeRouter.md#resetroutingpointsonreconnect)
+
+***
+
+### route()
+
+> **route**(`edge`): [`RoutedPoint`](../Interface.RoutedPoint)[]
+
+Defined in: [packages/sprotty/src/features/routing/bezier-edge-router.ts:40](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/bezier-edge-router.ts#L40)
+
+Calculates the route of the given edge.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+#### Returns
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+#### Overrides
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`route`](../Class.AbstractEdgeRouter.md#route)
+
+***
+
+### takeSnapshot()
+
+> **takeSnapshot**(`edge`): [`EdgeSnapshot`](../Interface.EdgeSnapshot)
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:362](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L362)
+
+Creates a snapshot of the given edge, storing all the data needed to restore it to
+its current state.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+#### Returns
+
+[`EdgeSnapshot`](../Interface.EdgeSnapshot)
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`takeSnapshot`](../Class.AbstractEdgeRouter.md#takesnapshot)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.BezierEllipseAnchor.md b/hugo/content/docs/ref/sprotty-core/Class.BezierEllipseAnchor.md
new file mode 100644
index 0000000..d5d7818
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.BezierEllipseAnchor.md
@@ -0,0 +1,84 @@
+
+[sprotty](../globals) / BezierEllipseAnchor
+
+# Class: BezierEllipseAnchor
+
+Defined in: [packages/sprotty/src/features/routing/bezier-anchors.ts:23](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/bezier-anchors.ts#L23)
+
+## Extends
+
+- [`EllipseAnchor`](../Class.EllipseAnchor)
+
+## Constructors
+
+### Constructor
+
+> **new BezierEllipseAnchor**(): `BezierEllipseAnchor`
+
+#### Returns
+
+`BezierEllipseAnchor`
+
+#### Inherited from
+
+[`EllipseAnchor`](../Class.EllipseAnchor).[`constructor`](../Class.EllipseAnchor.md#constructor)
+
+## Accessors
+
+### kind
+
+#### Get Signature
+
+> **get** **kind**(): `string`
+
+Defined in: [packages/sprotty/src/features/routing/bezier-anchors.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/bezier-anchors.ts#L25)
+
+##### Returns
+
+`string`
+
+#### Overrides
+
+[`EllipseAnchor`](../Class.EllipseAnchor).[`kind`](../Class.EllipseAnchor.md#kind)
+
+## Methods
+
+### getAnchor()
+
+> **getAnchor**(`connectable`, `refPoint`, `offset`): `Point`
+
+Defined in: [packages/sprotty/src/features/routing/polyline-anchors.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/polyline-anchors.ts#L31)
+
+Compute an anchor position for routing an edge towards this element.
+
+The default implementation returns the element's center point. If edges should be connected
+differently, e.g. to some point on the boundary of the element's view, the according computation
+should be implemented in a subclass by overriding this method.
+
+#### Parameters
+
+##### connectable
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl)
+
+The node or port an edge should be connected to.
+
+##### refPoint
+
+`Point`
+
+##### offset
+
+`number` = `0`
+
+An optional offset value to be considered in the anchor computation;
+ positive values should shift the anchor away from this element, negative values
+ should shift the anchor more to the inside. Use this to adapt ot arrow heads.
+
+#### Returns
+
+`Point`
+
+#### Inherited from
+
+[`EllipseAnchor`](../Class.EllipseAnchor).[`getAnchor`](../Class.EllipseAnchor.md#getanchor)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.BezierMouseListener.md b/hugo/content/docs/ref/sprotty-core/Class.BezierMouseListener.md
new file mode 100644
index 0000000..0fab53c
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.BezierMouseListener.md
@@ -0,0 +1,258 @@
+
+### dragOver()
+
+> **dragOver**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:210](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L210)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`dragOver`](../Class.MouseListener.md#dragover)
+
+***
+
+### drop()
+
+> **drop**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:214](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L214)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`drop`](../Class.MouseListener.md#drop)
+
+***
+
+### mouseDown()
+
+> **mouseDown**(`target`, `event`): `Action`[]
+
+Defined in: [packages/sprotty/src/features/routing/bezier-edge-router.ts:320](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/bezier-edge-router.ts#L320)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`Action`[]
+
+#### Overrides
+
+[`MouseListener`](../Class.MouseListener).[`mouseDown`](../Class.MouseListener.md#mousedown)
+
+***
+
+### mouseEnter()
+
+> **mouseEnter**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:178](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L178)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseEnter`](../Class.MouseListener.md#mouseenter)
+
+***
+
+### mouseLeave()
+
+> **mouseLeave**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:182](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L182)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseLeave`](../Class.MouseListener.md#mouseleave)
+
+***
+
+### mouseMove()
+
+> **mouseMove**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:190](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L190)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseMove`](../Class.MouseListener.md#mousemove)
+
+***
+
+### mouseOut()
+
+> **mouseOut**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:174](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L174)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseOut`](../Class.MouseListener.md#mouseout)
+
+***
+
+### mouseOver()
+
+> **mouseOver**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:170](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L170)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseOver`](../Class.MouseListener.md#mouseover)
+
+***
+
+### mouseUp()
+
+> **mouseUp**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:194](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L194)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseUp`](../Class.MouseListener.md#mouseup)
+
+***
+
+### wheel()
+
+> **wheel**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:198](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L198)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`WheelEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`wheel`](../Class.MouseListener.md#wheel)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.BezierRectangleAnchor.md b/hugo/content/docs/ref/sprotty-core/Class.BezierRectangleAnchor.md
new file mode 100644
index 0000000..89bb82d
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.BezierRectangleAnchor.md
@@ -0,0 +1,28 @@
+
+### getYIntersection()
+
+> `protected` **getYIntersection**(`xIntersection`, `centerPoint`, `point`): `number`
+
+Defined in: [packages/sprotty/src/features/routing/polyline-anchors.ts:81](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/polyline-anchors.ts#L81)
+
+#### Parameters
+
+##### xIntersection
+
+`number`
+
+##### centerPoint
+
+`Point`
+
+##### point
+
+`Point`
+
+#### Returns
+
+`number`
+
+#### Inherited from
+
+[`RectangleAnchor`](../Class.RectangleAnchor).[`getYIntersection`](../Class.RectangleAnchor.md#getyintersection)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.BoundsAwareViewportCommand.md b/hugo/content/docs/ref/sprotty-core/Class.BoundsAwareViewportCommand.md
new file mode 100644
index 0000000..075649e
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.BoundsAwareViewportCommand.md
@@ -0,0 +1,172 @@
+
+### viewerOptions
+
+> `protected` **viewerOptions**: [`ViewerOptions`](../Interface.ViewerOptions)
+
+Defined in: [packages/sprotty/src/features/viewport/center-fit.ts:36](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/center-fit.ts#L36)
+
+## Methods
+
+### boundsInViewport()
+
+> `protected` **boundsInViewport**(`element`, `bounds`, `viewport`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/viewport/center-fit.ts:85](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/center-fit.ts#L85)
+
+#### Parameters
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### bounds
+
+`Bounds`
+
+##### viewport
+
+[`SModelRootImpl`](../Class.SModelRootImpl) & `Viewport`
+
+#### Returns
+
+`Bounds`
+
+***
+
+### equal()
+
+> `protected` **equal**(`vp1`, `vp2`): `boolean`
+
+Defined in: [packages/sprotty/src/features/viewport/center-fit.ts:127](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/center-fit.ts#L127)
+
+#### Parameters
+
+##### vp1
+
+`Viewport`
+
+##### vp2
+
+`Viewport`
+
+#### Returns
+
+`boolean`
+
+***
+
+### execute()
+
+> **execute**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/viewport/center-fit.ts:96](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/center-fit.ts#L96)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`Command`](../Class.Command).[`execute`](../Class.Command.md#execute)
+
+***
+
+### getElementIds()
+
+> `abstract` `protected` **getElementIds**(): `string`[]
+
+Defined in: [packages/sprotty/src/features/viewport/center-fit.ts:94](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/center-fit.ts#L94)
+
+#### Returns
+
+`string`[]
+
+***
+
+### getNewViewport()
+
+> `abstract` `protected` **getNewViewport**(`bounds`, `model`): `undefined` \| `Viewport`
+
+Defined in: [packages/sprotty/src/features/viewport/center-fit.ts:92](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/center-fit.ts#L92)
+
+#### Parameters
+
+##### bounds
+
+`Bounds`
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Returns
+
+`undefined` \| `Viewport`
+
+***
+
+### initialize()
+
+> `protected` **initialize**(`model`): `void`
+
+Defined in: [packages/sprotty/src/features/viewport/center-fit.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/center-fit.ts#L44)
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Returns
+
+`void`
+
+***
+
+### redo()
+
+> **redo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/viewport/center-fit.ts:114](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/center-fit.ts#L114)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`Command`](../Class.Command).[`redo`](../Class.Command.md#redo)
+
+***
+
+### undo()
+
+> **undo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/viewport/center-fit.ts:101](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/center-fit.ts#L101)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`Command`](../Class.Command).[`undo`](../Class.Command.md#undo)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.BoundsData.md b/hugo/content/docs/ref/sprotty-core/Class.BoundsData.md
new file mode 100644
index 0000000..9364eb3
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.BoundsData.md
@@ -0,0 +1,14 @@
+
+### boundsChanged
+
+> **boundsChanged**: `boolean`
+
+Defined in: [packages/sprotty/src/features/bounds/hidden-bounds-updater.ts:34](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/hidden-bounds-updater.ts#L34)
+
+***
+
+### vnode?
+
+> `optional` **vnode**: `VNode`
+
+Defined in: [packages/sprotty/src/features/bounds/hidden-bounds-updater.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/hidden-bounds-updater.ts#L31)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.BringToFrontCommand.md b/hugo/content/docs/ref/sprotty-core/Class.BringToFrontCommand.md
new file mode 100644
index 0000000..23ca575
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.BringToFrontCommand.md
@@ -0,0 +1,100 @@
+
+### bringToFront()
+
+> `protected` **bringToFront**(`selection`): `void`
+
+Defined in: [packages/sprotty/src/features/zorder/zorder.ts:92](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/zorder/zorder.ts#L92)
+
+#### Parameters
+
+##### selection
+
+[`ZOrderElement`](../TypeAlias.ZOrderElement)
+
+#### Returns
+
+`void`
+
+***
+
+### execute()
+
+> **execute**(`context`): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/features/zorder/zorder.ts:39](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/zorder/zorder.ts#L39)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Overrides
+
+[`Command`](../Class.Command).[`execute`](../Class.Command.md#execute)
+
+***
+
+### includeConnectedEdges()
+
+> `protected` **includeConnectedEdges**(`element?`): `void`
+
+Defined in: [packages/sprotty/src/features/zorder/zorder.ts:57](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/zorder/zorder.ts#L57)
+
+#### Parameters
+
+##### element?
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+#### Returns
+
+`void`
+
+***
+
+### redo()
+
+> **redo**(`context`): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/features/zorder/zorder.ts:85](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/zorder/zorder.ts#L85)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Overrides
+
+[`Command`](../Class.Command).[`redo`](../Class.Command.md#redo)
+
+***
+
+### undo()
+
+> **undo**(`context`): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/features/zorder/zorder.ts:76](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/zorder/zorder.ts#L76)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Overrides
+
+[`Command`](../Class.Command).[`undo`](../Class.Command.md#undo)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ButtonHandlerRegistry.md b/hugo/content/docs/ref/sprotty-core/Class.ButtonHandlerRegistry.md
new file mode 100644
index 0000000..082da08
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ButtonHandlerRegistry.md
@@ -0,0 +1,72 @@
+
+### missing()
+
+> `protected` **missing**(`key`): [`IButtonHandler`](../Interface.IButtonHandler)
+
+Defined in: [packages/sprotty/src/utils/registry.ts:145](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/registry.ts#L145)
+
+#### Parameters
+
+##### key
+
+`string`
+
+#### Returns
+
+[`IButtonHandler`](../Interface.IButtonHandler)
+
+#### Inherited from
+
+[`InstanceRegistry`](../Class.InstanceRegistry).[`missing`](../Class.InstanceRegistry.md#missing)
+
+***
+
+### override()
+
+> **override**(`key`, `instance`): `void`
+
+Defined in: [packages/sprotty/src/utils/registry.ts:116](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/registry.ts#L116)
+
+#### Parameters
+
+##### key
+
+`string`
+
+##### instance
+
+[`IButtonHandler`](../Interface.IButtonHandler)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`InstanceRegistry`](../Class.InstanceRegistry).[`override`](../Class.InstanceRegistry.md#override)
+
+***
+
+### register()
+
+> **register**(`key`, `instance`): `void`
+
+Defined in: [packages/sprotty/src/utils/registry.ts:106](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/registry.ts#L106)
+
+#### Parameters
+
+##### key
+
+`string`
+
+##### instance
+
+[`IButtonHandler`](../Interface.IButtonHandler)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`InstanceRegistry`](../Class.InstanceRegistry).[`register`](../Class.InstanceRegistry.md#register)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.CanvasBoundsInitializer.md b/hugo/content/docs/ref/sprotty-core/Class.CanvasBoundsInitializer.md
new file mode 100644
index 0000000..8530add
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.CanvasBoundsInitializer.md
@@ -0,0 +1,14 @@
+
+### postUpdate()
+
+> **postUpdate**(): `void`
+
+Defined in: [packages/sprotty/src/base/features/initialize-canvas.ts:47](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/features/initialize-canvas.ts#L47)
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`IVNodePostprocessor`](../Interface.IVNodePostprocessor).[`postUpdate`](../Interface.IVNodePostprocessor.md#postupdate)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.CenterCommand.md b/hugo/content/docs/ref/sprotty-core/Class.CenterCommand.md
new file mode 100644
index 0000000..a1292af
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.CenterCommand.md
@@ -0,0 +1,216 @@
+
+### oldViewport
+
+> **oldViewport**: `Viewport`
+
+Defined in: [packages/sprotty/src/features/viewport/center-fit.ts:37](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/center-fit.ts#L37)
+
+#### Inherited from
+
+[`BoundsAwareViewportCommand`](../Class.BoundsAwareViewportCommand).[`oldViewport`](../Class.BoundsAwareViewportCommand.md#oldviewport)
+
+***
+
+### viewerOptions
+
+> `protected` **viewerOptions**: [`ViewerOptions`](../Interface.ViewerOptions)
+
+Defined in: [packages/sprotty/src/features/viewport/center-fit.ts:36](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/center-fit.ts#L36)
+
+#### Inherited from
+
+[`BoundsAwareViewportCommand`](../Class.BoundsAwareViewportCommand).[`viewerOptions`](../Class.BoundsAwareViewportCommand.md#vieweroptions)
+
+***
+
+### KIND
+
+> `readonly` `static` **KIND**: `"center"` = `CenterAction.KIND`
+
+Defined in: [packages/sprotty/src/features/viewport/center-fit.ts:133](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/center-fit.ts#L133)
+
+## Methods
+
+### boundsInViewport()
+
+> `protected` **boundsInViewport**(`element`, `bounds`, `viewport`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/viewport/center-fit.ts:85](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/center-fit.ts#L85)
+
+#### Parameters
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### bounds
+
+`Bounds`
+
+##### viewport
+
+[`SModelRootImpl`](../Class.SModelRootImpl) & `Viewport`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`BoundsAwareViewportCommand`](../Class.BoundsAwareViewportCommand).[`boundsInViewport`](../Class.BoundsAwareViewportCommand.md#boundsinviewport)
+
+***
+
+### equal()
+
+> `protected` **equal**(`vp1`, `vp2`): `boolean`
+
+Defined in: [packages/sprotty/src/features/viewport/center-fit.ts:127](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/center-fit.ts#L127)
+
+#### Parameters
+
+##### vp1
+
+`Viewport`
+
+##### vp2
+
+`Viewport`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`BoundsAwareViewportCommand`](../Class.BoundsAwareViewportCommand).[`equal`](../Class.BoundsAwareViewportCommand.md#equal)
+
+***
+
+### execute()
+
+> **execute**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/viewport/center-fit.ts:96](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/center-fit.ts#L96)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Inherited from
+
+[`BoundsAwareViewportCommand`](../Class.BoundsAwareViewportCommand).[`execute`](../Class.BoundsAwareViewportCommand.md#execute)
+
+***
+
+### getElementIds()
+
+> **getElementIds**(): `string`[]
+
+Defined in: [packages/sprotty/src/features/viewport/center-fit.ts:139](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/center-fit.ts#L139)
+
+#### Returns
+
+`string`[]
+
+#### Overrides
+
+[`BoundsAwareViewportCommand`](../Class.BoundsAwareViewportCommand).[`getElementIds`](../Class.BoundsAwareViewportCommand.md#getelementids)
+
+***
+
+### getNewViewport()
+
+> **getNewViewport**(`bounds`, `model`): `undefined` \| `Viewport`
+
+Defined in: [packages/sprotty/src/features/viewport/center-fit.ts:143](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/center-fit.ts#L143)
+
+#### Parameters
+
+##### bounds
+
+`Bounds`
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Returns
+
+`undefined` \| `Viewport`
+
+#### Overrides
+
+[`BoundsAwareViewportCommand`](../Class.BoundsAwareViewportCommand).[`getNewViewport`](../Class.BoundsAwareViewportCommand.md#getnewviewport)
+
+***
+
+### initialize()
+
+> `protected` **initialize**(`model`): `void`
+
+Defined in: [packages/sprotty/src/features/viewport/center-fit.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/center-fit.ts#L44)
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`BoundsAwareViewportCommand`](../Class.BoundsAwareViewportCommand).[`initialize`](../Class.BoundsAwareViewportCommand.md#initialize)
+
+***
+
+### redo()
+
+> **redo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/viewport/center-fit.ts:114](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/center-fit.ts#L114)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Inherited from
+
+[`BoundsAwareViewportCommand`](../Class.BoundsAwareViewportCommand).[`redo`](../Class.BoundsAwareViewportCommand.md#redo)
+
+***
+
+### undo()
+
+> **undo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/viewport/center-fit.ts:101](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/center-fit.ts#L101)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Inherited from
+
+[`BoundsAwareViewportCommand`](../Class.BoundsAwareViewportCommand).[`undo`](../Class.BoundsAwareViewportCommand.md#undo)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.CenterGridSnapper.md b/hugo/content/docs/ref/sprotty-core/Class.CenterGridSnapper.md
new file mode 100644
index 0000000..9e0f992
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.CenterGridSnapper.md
@@ -0,0 +1,42 @@
+
+### gridY
+
+#### Get Signature
+
+> **get** **gridY**(): `number`
+
+Defined in: [packages/sprotty/src/features/move/snap.ts:42](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/snap.ts#L42)
+
+##### Returns
+
+`number`
+
+## Methods
+
+### snap()
+
+> **snap**(`position`, `element`): `Point`
+
+Defined in: [packages/sprotty/src/features/move/snap.ts:46](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/snap.ts#L46)
+
+#### Parameters
+
+##### position
+
+`Point`
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+#### Returns
+
+`Point`
+
+#### Retruns
+
+the closest snapped position that for the `element` located at `position`
+
+#### Implementation of
+
+[`ISnapper`](../Interface.ISnapper).[`snap`](../Interface.ISnapper.md#snap)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.CenterKeyboardListener.md b/hugo/content/docs/ref/sprotty-core/Class.CenterKeyboardListener.md
new file mode 100644
index 0000000..47261b4
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.CenterKeyboardListener.md
@@ -0,0 +1,24 @@
+
+### keyUp()
+
+> **keyUp**(`element`, `event`): `Action`[]
+
+Defined in: [packages/sprotty/src/base/views/key-tool.ts:82](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/key-tool.ts#L82)
+
+#### Parameters
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`KeyboardEvent`
+
+#### Returns
+
+`Action`[]
+
+#### Inherited from
+
+[`KeyListener`](../Class.KeyListener).[`keyUp`](../Class.KeyListener.md#keyup)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.CircularNode.md b/hugo/content/docs/ref/sprotty-core/Class.CircularNode.md
new file mode 100644
index 0000000..d17c49b
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.CircularNode.md
@@ -0,0 +1,475 @@
+
+### hoverFeedback
+
+> **hoverFeedback**: `boolean` = `false`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:58](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L58)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`hoverFeedback`](../Class.SNodeImpl.md#hoverfeedback)
+
+***
+
+### id
+
+> **id**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L27)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`id`](../Class.SNodeImpl.md#id)
+
+***
+
+### layout?
+
+> `optional` **layout**: `string`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:56](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L56)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`layout`](../Class.SNodeImpl.md#layout)
+
+***
+
+### layoutOptions?
+
+> `optional` **layoutOptions**: [`ModelLayoutOptions`](../TypeAlias.ModelLayoutOptions)
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:181](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L181)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`layoutOptions`](../Class.SNodeImpl.md#layoutoptions)
+
+***
+
+### opacity
+
+> **opacity**: `number` = `1`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:59](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L59)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`opacity`](../Class.SNodeImpl.md#opacity)
+
+***
+
+### parent
+
+> `readonly` **parent**: [`SParentElementImpl`](../Class.SParentElementImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:159](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L159)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`parent`](../Class.SNodeImpl.md#parent)
+
+***
+
+### position
+
+> **position**: `Point` = `Point.ORIGIN`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:179](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L179)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`position`](../Class.SNodeImpl.md#position)
+
+***
+
+### selected
+
+> **selected**: `boolean` = `false`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:57](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L57)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`selected`](../Class.SNodeImpl.md#selected)
+
+***
+
+### size
+
+> **size**: `Dimension` = `Dimension.EMPTY`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:180](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L180)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`size`](../Class.SNodeImpl.md#size)
+
+***
+
+### strokeWidth
+
+> **strokeWidth**: `number` = `0`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:114](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L114)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`strokeWidth`](../Class.SNodeImpl.md#strokewidth)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L26)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`type`](../Class.SNodeImpl.md#type)
+
+***
+
+### DEFAULT\_FEATURES
+
+> `readonly` `static` **DEFAULT\_FEATURES**: `symbol`[]
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L52)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`DEFAULT_FEATURES`](../Class.SNodeImpl.md#default_features)
+
+## Accessors
+
+### anchorKind
+
+#### Get Signature
+
+> **get** **anchorKind**(): `string`
+
+Defined in: [packages/sprotty/src/lib/model.ts:30](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/model.ts#L30)
+
+##### Returns
+
+`string`
+
+#### Overrides
+
+[`SNodeImpl`](../Class.SNodeImpl).[`anchorKind`](../Class.SNodeImpl.md#anchorkind)
+
+***
+
+### bounds
+
+#### Get Signature
+
+> **get** **bounds**(): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:183](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L183)
+
+##### Returns
+
+`Bounds`
+
+#### Set Signature
+
+> **set** **bounds**(`newBounds`): `void`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:192](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L192)
+
+##### Parameters
+
+###### newBounds
+
+`Bounds`
+
+##### Returns
+
+`void`
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`bounds`](../Class.SNodeImpl.md#bounds)
+
+***
+
+### incomingEdges
+
+#### Get Signature
+
+> **get** **incomingEdges**(): `FluentIterable`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:65](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L65)
+
+The incoming edges of this connectable element. They are resolved by the index, which must
+be an `SGraphIndex` for efficient lookup.
+
+##### Returns
+
+`FluentIterable`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`incomingEdges`](../Class.SNodeImpl.md#incomingedges)
+
+***
+
+### index
+
+#### Get Signature
+
+> **get** **index**(): [`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L44)
+
+##### Returns
+
+[`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`index`](../Class.SNodeImpl.md#index)
+
+***
+
+### outgoingEdges
+
+#### Get Signature
+
+> **get** **outgoingEdges**(): `FluentIterable`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L74)
+
+The outgoing edges of this connectable element. They are resolved by the index, which must
+be an `SGraphIndex` for efficient lookup.
+
+##### Returns
+
+`FluentIterable`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`outgoingEdges`](../Class.SNodeImpl.md#outgoingedges)
+
+***
+
+### root
+
+#### Get Signature
+
+> **get** **root**(): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L31)
+
+##### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`root`](../Class.SNodeImpl.md#root)
+
+## Methods
+
+### add()
+
+> **add**(`child`, `index?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L74)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### index?
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`add`](../Class.SNodeImpl.md#add)
+
+***
+
+### canConnect()
+
+> **canConnect**(`routable`, `role`): `boolean`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:61](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L61)
+
+#### Parameters
+
+##### routable
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### role
+
+`string`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`canConnect`](../Class.SNodeImpl.md#canconnect)
+
+***
+
+### hasFeature()
+
+> **hasFeature**(`feature`): `boolean`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L52)
+
+A feature is a symbol identifying some functionality that can be enabled or disabled for
+a model element. The set of supported features is determined by the `features` property.
+
+#### Parameters
+
+##### feature
+
+`symbol`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`hasFeature`](../Class.SNodeImpl.md#hasfeature)
+
+***
+
+### localToParent()
+
+> **localToParent**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:203](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L203)
+
+Transform the given bounds from the local coordinate system of this element to the coordinate
+system of its parent. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`localToParent`](../Class.SNodeImpl.md#localtoparent)
+
+***
+
+### move()
+
+> **move**(`child`, `newIndex`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:115](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L115)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### newIndex
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`move`](../Class.SNodeImpl.md#move)
+
+***
+
+### parentToLocal()
+
+> **parentToLocal**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:217](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L217)
+
+Transform the given bounds from the coordinate system of this element's parent to its local
+coordinate system. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`parentToLocal`](../Class.SNodeImpl.md#parenttolocal)
+
+***
+
+### remove()
+
+> **remove**(`child`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:88](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L88)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`remove`](../Class.SNodeImpl.md#remove)
+
+***
+
+### removeAll()
+
+> **removeAll**(`filter?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:98](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L98)
+
+#### Parameters
+
+##### filter?
+
+(`e`) => `boolean`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`removeAll`](../Class.SNodeImpl.md#removeall)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.CircularNodeView.md b/hugo/content/docs/ref/sprotty-core/Class.CircularNodeView.md
new file mode 100644
index 0000000..1e9744b
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.CircularNodeView.md
@@ -0,0 +1,28 @@
+
+### render()
+
+> **render**(`node`, `context`, `args?`): `undefined` \| `VNode`
+
+Defined in: [packages/sprotty/src/lib/svg-views.tsx:46](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/svg-views.tsx#L46)
+
+#### Parameters
+
+##### node
+
+`Readonly`\<[`SShapeElementImpl`](../Class.SShapeElementImpl) & `Hoverable` & `Selectable`\>
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+##### args?
+
+[`IViewArgs`](../Interface.IViewArgs)
+
+#### Returns
+
+`undefined` \| `VNode`
+
+#### Overrides
+
+[`ShapeView`](../Class.ShapeView).[`render`](../Class.ShapeView.md#render)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.CircularPort.md b/hugo/content/docs/ref/sprotty-core/Class.CircularPort.md
new file mode 100644
index 0000000..060ac81
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.CircularPort.md
@@ -0,0 +1,463 @@
+
+### hoverFeedback
+
+> **hoverFeedback**: `boolean` = `false`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:93](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L93)
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`hoverFeedback`](../Class.SPortImpl.md#hoverfeedback)
+
+***
+
+### id
+
+> **id**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L27)
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`id`](../Class.SPortImpl.md#id)
+
+***
+
+### layoutOptions?
+
+> `optional` **layoutOptions**: [`ModelLayoutOptions`](../TypeAlias.ModelLayoutOptions)
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:181](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L181)
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`layoutOptions`](../Class.SPortImpl.md#layoutoptions)
+
+***
+
+### opacity
+
+> **opacity**: `number` = `1`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:94](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L94)
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`opacity`](../Class.SPortImpl.md#opacity)
+
+***
+
+### parent
+
+> `readonly` **parent**: [`SParentElementImpl`](../Class.SParentElementImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:159](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L159)
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`parent`](../Class.SPortImpl.md#parent)
+
+***
+
+### position
+
+> **position**: `Point` = `Point.ORIGIN`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:179](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L179)
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`position`](../Class.SPortImpl.md#position)
+
+***
+
+### selected
+
+> **selected**: `boolean` = `false`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:92](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L92)
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`selected`](../Class.SPortImpl.md#selected)
+
+***
+
+### size
+
+> **size**: `Dimension` = `Dimension.EMPTY`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:180](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L180)
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`size`](../Class.SPortImpl.md#size)
+
+***
+
+### strokeWidth
+
+> **strokeWidth**: `number` = `0`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:114](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L114)
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`strokeWidth`](../Class.SPortImpl.md#strokewidth)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L26)
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`type`](../Class.SPortImpl.md#type)
+
+***
+
+### DEFAULT\_FEATURES
+
+> `readonly` `static` **DEFAULT\_FEATURES**: `symbol`[]
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:89](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L89)
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`DEFAULT_FEATURES`](../Class.SPortImpl.md#default_features)
+
+## Accessors
+
+### anchorKind
+
+#### Get Signature
+
+> **get** **anchorKind**(): `string`
+
+Defined in: [packages/sprotty/src/lib/model.ts:57](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/model.ts#L57)
+
+##### Returns
+
+`string`
+
+#### Overrides
+
+[`SPortImpl`](../Class.SPortImpl).[`anchorKind`](../Class.SPortImpl.md#anchorkind)
+
+***
+
+### bounds
+
+#### Get Signature
+
+> **get** **bounds**(): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:183](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L183)
+
+##### Returns
+
+`Bounds`
+
+#### Set Signature
+
+> **set** **bounds**(`newBounds`): `void`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:192](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L192)
+
+##### Parameters
+
+###### newBounds
+
+`Bounds`
+
+##### Returns
+
+`void`
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`bounds`](../Class.SPortImpl.md#bounds)
+
+***
+
+### incomingEdges
+
+#### Get Signature
+
+> **get** **incomingEdges**(): `FluentIterable`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:96](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L96)
+
+The incoming edges of this connectable element. They are resolved by the index, which must
+be an `SGraphIndex` for efficient lookup.
+
+##### Returns
+
+`FluentIterable`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`incomingEdges`](../Class.SPortImpl.md#incomingedges)
+
+***
+
+### index
+
+#### Get Signature
+
+> **get** **index**(): [`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L44)
+
+##### Returns
+
+[`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`index`](../Class.SPortImpl.md#index)
+
+***
+
+### outgoingEdges
+
+#### Get Signature
+
+> **get** **outgoingEdges**(): `FluentIterable`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:104](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L104)
+
+The outgoing edges of this connectable element. They are resolved by the index, which must
+be an `SGraphIndex` for efficient lookup.
+
+##### Returns
+
+`FluentIterable`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`outgoingEdges`](../Class.SPortImpl.md#outgoingedges)
+
+***
+
+### root
+
+#### Get Signature
+
+> **get** **root**(): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L31)
+
+##### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`root`](../Class.SPortImpl.md#root)
+
+## Methods
+
+### add()
+
+> **add**(`child`, `index?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L74)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### index?
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`add`](../Class.SPortImpl.md#add)
+
+***
+
+### canConnect()
+
+> **canConnect**(`routable`, `role`): `boolean`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:134](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L134)
+
+#### Parameters
+
+##### routable
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### role
+
+`"source"` | `"target"`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`canConnect`](../Class.SPortImpl.md#canconnect)
+
+***
+
+### hasFeature()
+
+> **hasFeature**(`feature`): `boolean`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L52)
+
+A feature is a symbol identifying some functionality that can be enabled or disabled for
+a model element. The set of supported features is determined by the `features` property.
+
+#### Parameters
+
+##### feature
+
+`symbol`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`hasFeature`](../Class.SPortImpl.md#hasfeature)
+
+***
+
+### localToParent()
+
+> **localToParent**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:203](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L203)
+
+Transform the given bounds from the local coordinate system of this element to the coordinate
+system of its parent. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`localToParent`](../Class.SPortImpl.md#localtoparent)
+
+***
+
+### move()
+
+> **move**(`child`, `newIndex`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:115](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L115)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### newIndex
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`move`](../Class.SPortImpl.md#move)
+
+***
+
+### parentToLocal()
+
+> **parentToLocal**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:217](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L217)
+
+Transform the given bounds from the coordinate system of this element's parent to its local
+coordinate system. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`parentToLocal`](../Class.SPortImpl.md#parenttolocal)
+
+***
+
+### remove()
+
+> **remove**(`child`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:88](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L88)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`remove`](../Class.SPortImpl.md#remove)
+
+***
+
+### removeAll()
+
+> **removeAll**(`filter?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:98](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L98)
+
+#### Parameters
+
+##### filter?
+
+(`e`) => `boolean`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`removeAll`](../Class.SPortImpl.md#removeall)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ClosePopupActionHandler.md b/hugo/content/docs/ref/sprotty-core/Class.ClosePopupActionHandler.md
new file mode 100644
index 0000000..a8f54b8
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ClosePopupActionHandler.md
@@ -0,0 +1,53 @@
+
+[sprotty](../globals) / ClosePopupActionHandler
+
+# Class: ClosePopupActionHandler
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:306](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L306)
+
+An action handler accepts an action and reacts to it by returning either a command to be
+executed, or another action to be dispatched.
+
+## Implements
+
+- [`IActionHandler`](../Interface.IActionHandler)
+
+## Constructors
+
+### Constructor
+
+> **new ClosePopupActionHandler**(): `ClosePopupActionHandler`
+
+#### Returns
+
+`ClosePopupActionHandler`
+
+## Properties
+
+### popupOpen
+
+> `protected` **popupOpen**: `boolean` = `false`
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:307](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L307)
+
+## Methods
+
+### handle()
+
+> **handle**(`action`): `void` \| `Action` \| [`ICommand`](../Interface.ICommand)
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:309](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L309)
+
+#### Parameters
+
+##### action
+
+`Action`
+
+#### Returns
+
+`void` \| `Action` \| [`ICommand`](../Interface.ICommand)
+
+#### Implementation of
+
+[`IActionHandler`](../Interface.IActionHandler).[`handle`](../Interface.IActionHandler.md#handle)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ColorMap.md b/hugo/content/docs/ref/sprotty-core/Class.ColorMap.md
new file mode 100644
index 0000000..5d91701
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ColorMap.md
@@ -0,0 +1,50 @@
+
+[sprotty](../globals) / ColorMap
+
+# Class: ColorMap
+
+Defined in: [packages/sprotty/src/utils/color.ts:35](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/color.ts#L35)
+
+## Constructors
+
+### Constructor
+
+> **new ColorMap**(`stops`): `ColorMap`
+
+Defined in: [packages/sprotty/src/utils/color.ts:37](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/color.ts#L37)
+
+#### Parameters
+
+##### stops
+
+[`RGBColor`](../Interface.RGBColor)[]
+
+#### Returns
+
+`ColorMap`
+
+## Properties
+
+### stops
+
+> `protected` **stops**: [`RGBColor`](../Interface.RGBColor)[]
+
+Defined in: [packages/sprotty/src/utils/color.ts:37](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/color.ts#L37)
+
+## Methods
+
+### getColor()
+
+> **getColor**(`t`): [`RGBColor`](../Interface.RGBColor)
+
+Defined in: [packages/sprotty/src/utils/color.ts:40](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/color.ts#L40)
+
+#### Parameters
+
+##### t
+
+`number`
+
+#### Returns
+
+[`RGBColor`](../Interface.RGBColor)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.Command.md b/hugo/content/docs/ref/sprotty-core/Class.Command.md
new file mode 100644
index 0000000..87abb2d
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.Command.md
@@ -0,0 +1,20 @@
+
+### undo()
+
+> `abstract` **undo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/base/commands/command.ts:108](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command.ts#L108)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Implementation of
+
+[`ICommand`](../Interface.ICommand).[`undo`](../Interface.ICommand.md#undo)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.CommandActionHandler.md b/hugo/content/docs/ref/sprotty-core/Class.CommandActionHandler.md
new file mode 100644
index 0000000..e51687c
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.CommandActionHandler.md
@@ -0,0 +1,53 @@
+
+[sprotty](../globals) / CommandActionHandler
+
+# Class: CommandActionHandler
+
+Defined in: [packages/sprotty/src/base/commands/command-registration.ts:24](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-registration.ts#L24)
+
+An action handler accepts an action and reacts to it by returning either a command to be
+executed, or another action to be dispatched.
+
+## Implements
+
+- [`IActionHandler`](../Interface.IActionHandler)
+
+## Constructors
+
+### Constructor
+
+> **new CommandActionHandler**(`commandRegistration`): `CommandActionHandler`
+
+Defined in: [packages/sprotty/src/base/commands/command-registration.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-registration.ts#L25)
+
+#### Parameters
+
+##### commandRegistration
+
+[`CommandRegistration`](../Interface.CommandRegistration)
+
+#### Returns
+
+`CommandActionHandler`
+
+## Methods
+
+### handle()
+
+> **handle**(`action`): [`ICommand`](../Interface.ICommand)
+
+Defined in: [packages/sprotty/src/base/commands/command-registration.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-registration.ts#L28)
+
+#### Parameters
+
+##### action
+
+`Action`
+
+#### Returns
+
+[`ICommand`](../Interface.ICommand)
+
+#### Implementation of
+
+[`IActionHandler`](../Interface.IActionHandler).[`handle`](../Interface.IActionHandler.md#handle)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.CommandActionHandlerInitializer.md b/hugo/content/docs/ref/sprotty-core/Class.CommandActionHandlerInitializer.md
new file mode 100644
index 0000000..0ab3340
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.CommandActionHandlerInitializer.md
@@ -0,0 +1,61 @@
+
+[sprotty](../globals) / CommandActionHandlerInitializer
+
+# Class: CommandActionHandlerInitializer
+
+Defined in: [packages/sprotty/src/base/commands/command-registration.ts:34](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-registration.ts#L34)
+
+Initializes and registers an action handler for multiple action kinds. In most cases
+`ActionHandlerRegistration` should be used instead.
+
+## Implements
+
+- [`IActionHandlerInitializer`](../Interface.IActionHandlerInitializer)
+
+## Constructors
+
+### Constructor
+
+> **new CommandActionHandlerInitializer**(`registrations`): `CommandActionHandlerInitializer`
+
+Defined in: [packages/sprotty/src/base/commands/command-registration.ts:36](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-registration.ts#L36)
+
+#### Parameters
+
+##### registrations
+
+[`CommandRegistration`](../Interface.CommandRegistration)[]
+
+#### Returns
+
+`CommandActionHandlerInitializer`
+
+## Properties
+
+### registrations
+
+> `protected` **registrations**: [`CommandRegistration`](../Interface.CommandRegistration)[]
+
+Defined in: [packages/sprotty/src/base/commands/command-registration.ts:36](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-registration.ts#L36)
+
+## Methods
+
+### initialize()
+
+> **initialize**(`registry`): `void`
+
+Defined in: [packages/sprotty/src/base/commands/command-registration.ts:39](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-registration.ts#L39)
+
+#### Parameters
+
+##### registry
+
+[`ActionHandlerRegistry`](../Class.ActionHandlerRegistry)
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`IActionHandlerInitializer`](../Interface.IActionHandlerInitializer).[`initialize`](../Interface.IActionHandlerInitializer.md#initialize)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.CommandPalette.md b/hugo/content/docs/ref/sprotty-core/Class.CommandPalette.md
new file mode 100644
index 0000000..1323c51
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.CommandPalette.md
@@ -0,0 +1,670 @@
+
+### autoCompleteResult
+
+> `protected` **autoCompleteResult**: `AutocompleteResult`
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:51](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L51)
+
+***
+
+### containerElement
+
+> `protected` **containerElement**: `HTMLElement`
+
+Defined in: [packages/sprotty/src/base/ui-extensions/ui-extension.ts:47](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/ui-extensions/ui-extension.ts#L47)
+
+#### Inherited from
+
+[`AbstractUIExtension`](../Class.AbstractUIExtension).[`containerElement`](../Class.AbstractUIExtension.md#containerelement)
+
+***
+
+### contextActions?
+
+> `protected` `optional` **contextActions**: [`LabeledAction`](../Class.LabeledAction)[]
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:53](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L53)
+
+***
+
+### debounceWaitMs
+
+> `protected` **debounceWaitMs**: `number` = `100`
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:46](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L46)
+
+***
+
+### defaultWidth
+
+> `protected` **defaultWidth**: `number` = `400`
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:45](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L45)
+
+***
+
+### domHelper
+
+> `protected` **domHelper**: `DOMHelper`
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:58](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L58)
+
+***
+
+### inputElement
+
+> `protected` **inputElement**: `HTMLInputElement`
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:49](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L49)
+
+***
+
+### loadingIndicator
+
+> `protected` **loadingIndicator**: `HTMLSpanElement`
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:50](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L50)
+
+***
+
+### loadingIndicatorClasses
+
+> `protected` **loadingIndicatorClasses**: `string`[]
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:42](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L42)
+
+***
+
+### logger
+
+> `protected` **logger**: [`ILogger`](../Interface.ILogger)
+
+Defined in: [packages/sprotty/src/base/ui-extensions/ui-extension.ts:45](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/ui-extensions/ui-extension.ts#L45)
+
+#### Inherited from
+
+[`AbstractUIExtension`](../Class.AbstractUIExtension).[`logger`](../Class.AbstractUIExtension.md#logger)
+
+***
+
+### mousePositionTracker
+
+> `protected` **mousePositionTracker**: [`MousePositionTracker`](../Class.MousePositionTracker)
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:59](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L59)
+
+***
+
+### noCommandsMsg
+
+> `protected` **noCommandsMsg**: `string` = `"No commands available"`
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:47](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L47)
+
+***
+
+### options
+
+> `protected` **options**: [`ViewerOptions`](../Interface.ViewerOptions)
+
+Defined in: [packages/sprotty/src/base/ui-extensions/ui-extension.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/ui-extensions/ui-extension.ts#L44)
+
+#### Inherited from
+
+[`AbstractUIExtension`](../Class.AbstractUIExtension).[`options`](../Class.AbstractUIExtension.md#options)
+
+***
+
+### paletteIndex
+
+> `protected` **paletteIndex**: `number` = `0`
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L52)
+
+***
+
+### viewerOptions
+
+> `protected` **viewerOptions**: [`ViewerOptions`](../Interface.ViewerOptions)
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:57](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L57)
+
+***
+
+### xOffset
+
+> `protected` **xOffset**: `number` = `20`
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:43](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L43)
+
+***
+
+### yOffset
+
+> `protected` **yOffset**: `number` = `20`
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L44)
+
+***
+
+### ID
+
+> `readonly` `static` **ID**: `"command-palette"` = `"command-palette"`
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:39](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L39)
+
+## Methods
+
+### autocompleteSettings()
+
+> `protected` **autocompleteSettings**(`root`): `AutocompleteSettings`\<[`LabeledAction`](../Class.LabeledAction)\>
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:114](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L114)
+
+#### Parameters
+
+##### root
+
+`Readonly`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+#### Returns
+
+`AutocompleteSettings`\<[`LabeledAction`](../Class.LabeledAction)\>
+
+***
+
+### containerClass()
+
+> **containerClass**(): `string`
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:62](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L62)
+
+#### Returns
+
+`string`
+
+#### Overrides
+
+[`AbstractUIExtension`](../Class.AbstractUIExtension).[`containerClass`](../Class.AbstractUIExtension.md#containerclass)
+
+***
+
+### customizeSuggestionContainer()
+
+> `protected` **customizeSuggestionContainer**(`container`, `inputRect`, `maxHeight`): `void`
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:208](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L208)
+
+#### Parameters
+
+##### container
+
+`HTMLDivElement`
+
+##### inputRect
+
+`DOMRect` | `ClientRect`
+
+##### maxHeight
+
+`number`
+
+#### Returns
+
+`void`
+
+***
+
+### cycle()
+
+> `protected` **cycle**(): `void`
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:91](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L91)
+
+#### Returns
+
+`void`
+
+***
+
+### cylceIfInvokePaletteKey()
+
+> `protected` **cylceIfInvokePaletteKey**(`event`): `any`
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:87](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L87)
+
+#### Parameters
+
+##### event
+
+`KeyboardEvent`
+
+#### Returns
+
+`any`
+
+***
+
+### executeAction()
+
+> `protected` **executeAction**(`input`): `void`
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:223](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L223)
+
+#### Parameters
+
+##### input
+
+[`LabeledAction`](../Class.LabeledAction) | `Action` | `Action`[]
+
+#### Returns
+
+`void`
+
+***
+
+### filterActions()
+
+> `protected` **filterActions**(`filterText`, `actions`): [`LabeledAction`](../Class.LabeledAction)[]
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:200](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L200)
+
+#### Parameters
+
+##### filterText
+
+`string`
+
+##### actions
+
+[`LabeledAction`](../Class.LabeledAction)[]
+
+#### Returns
+
+[`LabeledAction`](../Class.LabeledAction)[]
+
+***
+
+### getCodicon()
+
+> `protected` **getCodicon**(`iconId`): `string`
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:196](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L196)
+
+#### Parameters
+
+##### iconId
+
+`string`
+
+#### Returns
+
+`string`
+
+***
+
+### getFontAwesomeIcon()
+
+> `protected` **getFontAwesomeIcon**(`iconId`): `string`
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:192](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L192)
+
+#### Parameters
+
+##### iconId
+
+`string`
+
+#### Returns
+
+`string`
+
+***
+
+### getOrCreateContainer()
+
+> `protected` **getOrCreateContainer**(`baseDivId`): `HTMLElement`
+
+Defined in: [packages/sprotty/src/base/ui-extensions/ui-extension.ts:89](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/ui-extensions/ui-extension.ts#L89)
+
+#### Parameters
+
+##### baseDivId
+
+`string`
+
+#### Returns
+
+`HTMLElement`
+
+#### Inherited from
+
+[`AbstractUIExtension`](../Class.AbstractUIExtension).[`getOrCreateContainer`](../Class.AbstractUIExtension.md#getorcreatecontainer)
+
+***
+
+### hide()
+
+> **hide**(): `void`
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:216](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L216)
+
+#### Returns
+
+`void`
+
+#### Overrides
+
+[`AbstractUIExtension`](../Class.AbstractUIExtension).[`hide`](../Class.AbstractUIExtension.md#hide)
+
+***
+
+### hideIfEscapeEvent()
+
+> `protected` **hideIfEscapeEvent**(`event`): `any`
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:83](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L83)
+
+#### Parameters
+
+##### event
+
+`KeyboardEvent`
+
+#### Returns
+
+`any`
+
+***
+
+### id()
+
+> **id**(): `string`
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:61](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L61)
+
+#### Returns
+
+`string`
+
+#### Overrides
+
+[`AbstractUIExtension`](../Class.AbstractUIExtension).[`id`](../Class.AbstractUIExtension.md#id)
+
+***
+
+### initialize()
+
+> `protected` **initialize**(): `boolean`
+
+Defined in: [packages/sprotty/src/base/ui-extensions/ui-extension.ts:75](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/ui-extensions/ui-extension.ts#L75)
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`AbstractUIExtension`](../Class.AbstractUIExtension).[`initialize`](../Class.AbstractUIExtension.md#initialize)
+
+***
+
+### initializeContents()
+
+> `protected` **initializeContents**(`containerElement`): `void`
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:73](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L73)
+
+Initializes the contents of this UI extension.
+
+Subclasses must implement this method to initialize the UI elements of this UI extension inside the specified `containerElement`.
+
+#### Parameters
+
+##### containerElement
+
+`HTMLElement`
+
+#### Returns
+
+`void`
+
+#### Overrides
+
+[`AbstractUIExtension`](../Class.AbstractUIExtension).[`initializeContents`](../Class.AbstractUIExtension.md#initializecontents)
+
+***
+
+### onBeforeShow()
+
+> `protected` **onBeforeShow**(`containerElement`, `root`, ...`selectedElementIds`): `void`
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:96](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L96)
+
+Updates the `containerElement` under the given `context` before it becomes visible.
+
+Subclasses may override this method to, for instance, modifying the position of the
+`containerElement`, add or remove elements, etc. depending on the specified `root`
+or `contextElementIds`.
+
+#### Parameters
+
+##### containerElement
+
+`HTMLElement`
+
+##### root
+
+`Readonly`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+##### selectedElementIds
+
+...`string`[]
+
+#### Returns
+
+`void`
+
+#### Overrides
+
+[`AbstractUIExtension`](../Class.AbstractUIExtension).[`onBeforeShow`](../Class.AbstractUIExtension.md#onbeforeshow)
+
+***
+
+### onLoaded()
+
+> `protected` **onLoaded**(`success`): `void`
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:167](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L167)
+
+#### Parameters
+
+##### success
+
+`"success"` | `"error"`
+
+#### Returns
+
+`void`
+
+***
+
+### onLoading()
+
+> `protected` **onLoading**(): `void`
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:158](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L158)
+
+#### Returns
+
+`void`
+
+***
+
+### onSelect()
+
+> `protected` **onSelect**(`item`): `void`
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:133](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L133)
+
+#### Parameters
+
+##### item
+
+[`LabeledAction`](../Class.LabeledAction)
+
+#### Returns
+
+`void`
+
+***
+
+### renderIcon()
+
+> `protected` **renderIcon**(`itemElement`, `iconId`): `void`
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:188](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L188)
+
+#### Parameters
+
+##### itemElement
+
+`HTMLDivElement`
+
+##### iconId
+
+`string`
+
+#### Returns
+
+`void`
+
+***
+
+### renderLabeledActionSuggestion()
+
+> `protected` **renderLabeledActionSuggestion**(`item`, `value`): `HTMLDivElement`
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:173](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L173)
+
+#### Parameters
+
+##### item
+
+[`LabeledAction`](../Class.LabeledAction)
+
+##### value
+
+`string`
+
+#### Returns
+
+`HTMLDivElement`
+
+***
+
+### restoreFocus()
+
+> `protected` **restoreFocus**(): `void`
+
+Defined in: [packages/sprotty/src/base/ui-extensions/ui-extension.ts:68](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/ui-extensions/ui-extension.ts#L68)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`AbstractUIExtension`](../Class.AbstractUIExtension).[`restoreFocus`](../Class.AbstractUIExtension.md#restorefocus)
+
+***
+
+### setContainerVisible()
+
+> `protected` **setContainerVisible**(`visible`): `void`
+
+Defined in: [packages/sprotty/src/base/ui-extensions/ui-extension.ts:99](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/ui-extensions/ui-extension.ts#L99)
+
+#### Parameters
+
+##### visible
+
+`boolean`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`AbstractUIExtension`](../Class.AbstractUIExtension).[`setContainerVisible`](../Class.AbstractUIExtension.md#setcontainervisible)
+
+***
+
+### show()
+
+> **show**(`root`, ...`contextElementIds`): `void`
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:64](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L64)
+
+#### Parameters
+
+##### root
+
+`Readonly`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+##### contextElementIds
+
+...`string`[]
+
+#### Returns
+
+`void`
+
+#### Overrides
+
+[`AbstractUIExtension`](../Class.AbstractUIExtension).[`show`](../Class.AbstractUIExtension.md#show)
+
+***
+
+### updateAutoCompleteActions()
+
+> `protected` **updateAutoCompleteActions**(`update`, `text`, `root`): `void`
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:138](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L138)
+
+#### Parameters
+
+##### update
+
+(`items`) => `void`
+
+##### text
+
+`string`
+
+##### root
+
+`Readonly`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+#### Returns
+
+`void`
+
+***
+
+### isInvokePaletteKey()
+
+> `readonly` `static` **isInvokePaletteKey**(`event`): `boolean`
+
+Defined in: [packages/sprotty/src/features/command-palette/command-palette.ts:40](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/command-palette.ts#L40)
+
+#### Parameters
+
+##### event
+
+`KeyboardEvent`
+
+#### Returns
+
+`boolean`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.CommandPaletteActionProviderRegistry.md b/hugo/content/docs/ref/sprotty-core/Class.CommandPaletteActionProviderRegistry.md
new file mode 100644
index 0000000..f361740
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.CommandPaletteActionProviderRegistry.md
@@ -0,0 +1,70 @@
+
+[sprotty](../globals) / CommandPaletteActionProviderRegistry
+
+# Class: CommandPaletteActionProviderRegistry
+
+Defined in: [packages/sprotty/src/features/command-palette/action-providers.ts:32](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/action-providers.ts#L32)
+
+## Implements
+
+- [`ICommandPaletteActionProvider`](../Interface.ICommandPaletteActionProvider)
+
+## Constructors
+
+### Constructor
+
+> **new CommandPaletteActionProviderRegistry**(`actionProviders`): `CommandPaletteActionProviderRegistry`
+
+Defined in: [packages/sprotty/src/features/command-palette/action-providers.ts:34](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/action-providers.ts#L34)
+
+#### Parameters
+
+##### actionProviders
+
+[`ICommandPaletteActionProvider`](../Interface.ICommandPaletteActionProvider)[] = `[]`
+
+#### Returns
+
+`CommandPaletteActionProviderRegistry`
+
+## Properties
+
+### actionProviders
+
+> `protected` **actionProviders**: [`ICommandPaletteActionProvider`](../Interface.ICommandPaletteActionProvider)[] = `[]`
+
+Defined in: [packages/sprotty/src/features/command-palette/action-providers.ts:34](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/action-providers.ts#L34)
+
+## Methods
+
+### getActions()
+
+> **getActions**(`root`, `text`, `lastMousePosition?`, `index?`): `Promise`\<[`LabeledAction`](../Class.LabeledAction)[]\>
+
+Defined in: [packages/sprotty/src/features/command-palette/action-providers.ts:37](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/action-providers.ts#L37)
+
+#### Parameters
+
+##### root
+
+`Readonly`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+##### text
+
+`string`
+
+##### lastMousePosition?
+
+`Point`
+
+##### index?
+
+`number`
+
+#### Returns
+
+`Promise`\<[`LabeledAction`](../Class.LabeledAction)[]\>
+
+#### Implementation of
+
+[`ICommandPaletteActionProvider`](../Interface.ICommandPaletteActionProvider).[`getActions`](../Interface.ICommandPaletteActionProvider.md#getactions)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.CommandPaletteKeyListener.md b/hugo/content/docs/ref/sprotty-core/Class.CommandPaletteKeyListener.md
new file mode 100644
index 0000000..47261b4
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.CommandPaletteKeyListener.md
@@ -0,0 +1,24 @@
+
+### keyUp()
+
+> **keyUp**(`element`, `event`): `Action`[]
+
+Defined in: [packages/sprotty/src/base/views/key-tool.ts:82](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/key-tool.ts#L82)
+
+#### Parameters
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`KeyboardEvent`
+
+#### Returns
+
+`Action`[]
+
+#### Inherited from
+
+[`KeyListener`](../Class.KeyListener).[`keyUp`](../Class.KeyListener.md#keyup)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.CommandStack.md b/hugo/content/docs/ref/sprotty-core/Class.CommandStack.md
new file mode 100644
index 0000000..fbe31ea
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.CommandStack.md
@@ -0,0 +1,502 @@
+
+### modelFactory
+
+> `protected` **modelFactory**: [`IModelFactory`](../Interface.IModelFactory)
+
+Defined in: [packages/sprotty/src/base/commands/command-stack.ts:106](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack.ts#L106)
+
+***
+
+### modelViewer?
+
+> `protected` `optional` **modelViewer**: [`IViewer`](../Interface.IViewer)
+
+Defined in: [packages/sprotty/src/base/commands/command-stack.ts:114](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack.ts#L114)
+
+***
+
+### offStack
+
+> `protected` **offStack**: [`ICommand`](../Interface.ICommand)[] = `[]`
+
+Defined in: [packages/sprotty/src/base/commands/command-stack.ts:138](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack.ts#L138)
+
+System commands should be transparent to the user in undo/redo
+operations. When a system command is executed when the redo
+stack is not empty, it is pushed to offStack instead.
+
+On redo, all commands form this stack are undone such that the
+redo operation gets the exact same model as when it was executed
+first.
+
+On undo, all commands form this stack are undone as well as
+system ommands should be transparent to the user.
+
+***
+
+### options
+
+> `protected` **options**: [`CommandStackOptions`](../Interface.CommandStackOptions)
+
+Defined in: [packages/sprotty/src/base/commands/command-stack.ts:110](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack.ts#L110)
+
+***
+
+### popupModelViewer?
+
+> `protected` `optional` **popupModelViewer**: [`IViewer`](../Interface.IViewer)
+
+Defined in: [packages/sprotty/src/base/commands/command-stack.ts:116](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack.ts#L116)
+
+***
+
+### redoStack
+
+> `protected` **redoStack**: [`ICommand`](../Interface.ICommand)[] = `[]`
+
+Defined in: [packages/sprotty/src/base/commands/command-stack.ts:119](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack.ts#L119)
+
+***
+
+### stoppableCommands
+
+> `protected` **stoppableCommands**: `Map`\<`string`, [`IStoppableCommand`](../Interface.IStoppableCommand)\>
+
+Defined in: [packages/sprotty/src/base/commands/command-stack.ts:124](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack.ts#L124)
+
+Map which holds the last stoppable command for certain action kinds.
+
+***
+
+### syncer
+
+> `protected` **syncer**: [`AnimationFrameSyncer`](../Class.AnimationFrameSyncer)
+
+Defined in: [packages/sprotty/src/base/commands/command-stack.ts:109](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack.ts#L109)
+
+***
+
+### undoStack
+
+> `protected` **undoStack**: [`ICommand`](../Interface.ICommand)[] = `[]`
+
+Defined in: [packages/sprotty/src/base/commands/command-stack.ts:118](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack.ts#L118)
+
+***
+
+### viewerProvider
+
+> `protected` **viewerProvider**: [`IViewerProvider`](../Interface.IViewerProvider)
+
+Defined in: [packages/sprotty/src/base/commands/command-stack.ts:107](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack.ts#L107)
+
+## Accessors
+
+### currentModel
+
+#### Get Signature
+
+> **get** `protected` **currentModel**(): `Promise`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+Defined in: [packages/sprotty/src/base/commands/command-stack.ts:158](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack.ts#L158)
+
+##### Returns
+
+`Promise`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+## Methods
+
+### createContext()
+
+> `protected` **createContext**(`currentModel`): [`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+Defined in: [packages/sprotty/src/base/commands/command-stack.ts:427](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack.ts#L427)
+
+Assembles the context object that is passed to the commands execution method.
+
+#### Parameters
+
+##### currentModel
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Returns
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+***
+
+### execute()
+
+> **execute**(`command`): `Promise`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+Defined in: [packages/sprotty/src/base/commands/command-stack.ts:174](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack.ts#L174)
+
+Executes the given command on the current model and returns a
+Promise for the new result.
+
+Unless it is a special command, it is pushed to the undo stack
+such that it can be rolled back later and the redo stack is
+cleared.
+
+#### Parameters
+
+##### command
+
+[`ICommand`](../Interface.ICommand)
+
+#### Returns
+
+`Promise`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+#### Implementation of
+
+[`ICommandStack`](../Interface.ICommandStack).[`execute`](../Interface.ICommandStack.md#execute)
+
+***
+
+### executeAll()
+
+> **executeAll**(`commands`): `Promise`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+Defined in: [packages/sprotty/src/base/commands/command-stack.ts:164](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack.ts#L164)
+
+Executes all of the given commands. As opposed to calling
+execute() multiple times, the Viewer is only updated once after
+the last command has been executed.
+
+#### Parameters
+
+##### commands
+
+[`ICommand`](../Interface.ICommand)[]
+
+#### Returns
+
+`Promise`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+#### Implementation of
+
+[`ICommandStack`](../Interface.ICommandStack).[`executeAll`](../Interface.ICommandStack.md#executeall)
+
+***
+
+### handleCommand()
+
+> `protected` **handleCommand**(`command`, `operation`, `beforeResolve`): `void`
+
+Defined in: [packages/sprotty/src/base/commands/command-stack.ts:215](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack.ts#L215)
+
+Chains the current promise with another Promise that performs the
+given operation on the given command.
+
+#### Parameters
+
+##### command
+
+[`ICommand`](../Interface.ICommand)
+
+##### operation
+
+(`context`) => [`CommandReturn`](../TypeAlias.CommandReturn)
+
+##### beforeResolve
+
+(`command`, `context`) => `void`
+
+a function that is called directly before
+ resolving the Promise to return the new model. Usually puts the
+ command on the appropriate stack.
+
+#### Returns
+
+`void`
+
+***
+
+### initialize()
+
+> `protected` **initialize**(): `void`
+
+Defined in: [packages/sprotty/src/base/commands/command-stack.ts:141](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack.ts#L141)
+
+#### Returns
+
+`void`
+
+***
+
+### isBlockUndo()
+
+> `protected` **isBlockUndo**(`command`): `boolean`
+
+Defined in: [packages/sprotty/src/base/commands/command-stack.ts:446](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack.ts#L446)
+
+#### Parameters
+
+##### command
+
+[`ICommand`](../Interface.ICommand)
+
+#### Returns
+
+`boolean`
+
+***
+
+### isPushToOffStack()
+
+> `protected` **isPushToOffStack**(`command`): `boolean`
+
+Defined in: [packages/sprotty/src/base/commands/command-stack.ts:438](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack.ts#L438)
+
+#### Parameters
+
+##### command
+
+[`ICommand`](../Interface.ICommand)
+
+#### Returns
+
+`boolean`
+
+***
+
+### isPushToUndoStack()
+
+> `protected` **isPushToUndoStack**(`command`): `boolean`
+
+Defined in: [packages/sprotty/src/base/commands/command-stack.ts:442](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack.ts#L442)
+
+#### Parameters
+
+##### command
+
+[`ICommand`](../Interface.ICommand)
+
+#### Returns
+
+`boolean`
+
+***
+
+### mergeOrPush()
+
+> `protected` **mergeOrPush**(`command`, `context`): `void`
+
+Defined in: [packages/sprotty/src/base/commands/command-stack.ts:348](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack.ts#L348)
+
+Handling of commands after their execution.
+
+Hidden commands are not pushed to any stack.
+
+System commands are pushed to the offStack when the redo
+stack is not empty, allowing to undo the before a redo to keep the chain
+of commands consistent.
+
+Mergable commands are merged if possible.
+
+#### Parameters
+
+##### command
+
+[`ICommand`](../Interface.ICommand)
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+`void`
+
+***
+
+### pushToUndoStack()
+
+> `protected` **pushToUndoStack**(`command`): `void`
+
+Defined in: [packages/sprotty/src/base/commands/command-stack.ts:274](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack.ts#L274)
+
+#### Parameters
+
+##### command
+
+[`ICommand`](../Interface.ICommand)
+
+#### Returns
+
+`void`
+
+***
+
+### redo()
+
+> **redo**(): `Promise`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+Defined in: [packages/sprotty/src/base/commands/command-stack.ts:194](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack.ts#L194)
+
+Takes the topmost command from the redo stack, redoes its
+changes and pushes it ot the undo stack. Returns a Promise for
+the changed model.
+
+#### Returns
+
+`Promise`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+#### Implementation of
+
+[`ICommandStack`](../Interface.ICommandStack).[`redo`](../Interface.ICommandStack.md#redo)
+
+***
+
+### redoFollowingSystemCommands()
+
+> `protected` **redoFollowingSystemCommands**(): `void`
+
+Defined in: [packages/sprotty/src/base/commands/command-stack.ts:412](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack.ts#L412)
+
+System commands should be transparent to the user, so this method
+is called from redo() to re-execute all system commands
+at the top of the redoStack.
+
+#### Returns
+
+`void`
+
+***
+
+### thenUpdate()
+
+> `protected` **thenUpdate**(): `Promise`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+Defined in: [packages/sprotty/src/base/commands/command-stack.ts:284](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack.ts#L284)
+
+Notifies the Viewer to render the new model and/or the new hidden model
+and returns a Promise for the new model.
+
+#### Returns
+
+`Promise`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+***
+
+### undo()
+
+> **undo**(): `Promise`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+Defined in: [packages/sprotty/src/base/commands/command-stack.ts:180](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack.ts#L180)
+
+Takes the topmost command from the undo stack, undoes its
+changes and pushes it ot the redo stack. Returns a Promise for
+the changed model.
+
+#### Returns
+
+`Promise`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+#### Implementation of
+
+[`ICommandStack`](../Interface.ICommandStack).[`undo`](../Interface.ICommandStack.md#undo)
+
+***
+
+### undoOffStackSystemCommands()
+
+> `protected` **undoOffStackSystemCommands**(): `void`
+
+Defined in: [packages/sprotty/src/base/commands/command-stack.ts:381](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack.ts#L381)
+
+Reverts all system commands on the offStack.
+
+#### Returns
+
+`void`
+
+***
+
+### undoPreceedingSystemCommands()
+
+> `protected` **undoPreceedingSystemCommands**(): `void`
+
+Defined in: [packages/sprotty/src/base/commands/command-stack.ts:395](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack.ts#L395)
+
+System commands should be transparent to the user, so this method
+is called from undo() to revert all system commands
+at the top of the undoStack.
+
+#### Returns
+
+`void`
+
+***
+
+### update()
+
+> **update**(`model`, `cause?`): `void`
+
+Defined in: [packages/sprotty/src/base/commands/command-stack.ts:310](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack.ts#L310)
+
+Notify the `ModelViewer` that the model has changed.
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### cause?
+
+`Action`
+
+#### Returns
+
+`void`
+
+***
+
+### updateHidden()
+
+> **updateHidden**(`model`, `cause?`): `void`
+
+Defined in: [packages/sprotty/src/base/commands/command-stack.ts:320](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack.ts#L320)
+
+Notify the `HiddenModelViewer` that the hidden model has changed.
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### cause?
+
+`Action`
+
+#### Returns
+
+`void`
+
+***
+
+### updatePopup()
+
+> **updatePopup**(`model`, `cause?`): `void`
+
+Defined in: [packages/sprotty/src/base/commands/command-stack.ts:330](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack.ts#L330)
+
+Notify the `PopupModelViewer` that the popup model has changed.
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### cause?
+
+`Action`
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.CommitModelCommand.md b/hugo/content/docs/ref/sprotty-core/Class.CommitModelCommand.md
new file mode 100644
index 0000000..e393c2d
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.CommitModelCommand.md
@@ -0,0 +1,106 @@
+
+### originalModel
+
+> **originalModel**: `SModelRoot`
+
+Defined in: [packages/sprotty/src/model-source/commit-model.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/commit-model.ts#L52)
+
+***
+
+### KIND
+
+> `readonly` `static` **KIND**: `"commitModel"` = `CommitModelAction.KIND`
+
+Defined in: [packages/sprotty/src/model-source/commit-model.ts:48](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/commit-model.ts#L48)
+
+## Methods
+
+### doCommit()
+
+> `protected` **doCommit**(`model`, `result`, `doSetOriginal`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/model-source/commit-model.ts:64](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/commit-model.ts#L64)
+
+#### Parameters
+
+##### model
+
+`SModelRoot`
+
+##### result
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### doSetOriginal
+
+`boolean`
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+***
+
+### execute()
+
+> **execute**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/model-source/commit-model.ts:59](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/commit-model.ts#L59)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`SystemCommand`](../Class.SystemCommand).[`execute`](../Class.SystemCommand.md#execute)
+
+***
+
+### redo()
+
+> **redo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/model-source/commit-model.ts:83](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/commit-model.ts#L83)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`SystemCommand`](../Class.SystemCommand).[`redo`](../Class.SystemCommand.md#redo)
+
+***
+
+### undo()
+
+> **undo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/model-source/commit-model.ts:79](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/commit-model.ts#L79)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`SystemCommand`](../Class.SystemCommand).[`undo`](../Class.SystemCommand.md#undo)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.CompoundAnimation.md b/hugo/content/docs/ref/sprotty-core/Class.CompoundAnimation.md
new file mode 100644
index 0000000..a3201a7
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.CompoundAnimation.md
@@ -0,0 +1,102 @@
+
+### model
+
+> `protected` **model**: [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/animations/animation.ts:90](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/animations/animation.ts#L90)
+
+***
+
+### stopped
+
+> `protected` **stopped**: `boolean` = `false`
+
+Defined in: [packages/sprotty/src/base/animations/animation.ts:30](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/animations/animation.ts#L30)
+
+#### Inherited from
+
+[`Animation`](../Class.Animation).[`stopped`](../Class.Animation.md#stopped)
+
+## Methods
+
+### include()
+
+> **include**(`animation`): `this`
+
+Defined in: [packages/sprotty/src/base/animations/animation.ts:97](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/animations/animation.ts#L97)
+
+#### Parameters
+
+##### animation
+
+[`Animation`](../Class.Animation)
+
+#### Returns
+
+`this`
+
+***
+
+### start()
+
+> **start**(): `Promise`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+Defined in: [packages/sprotty/src/base/animations/animation.ts:32](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/animations/animation.ts#L32)
+
+#### Returns
+
+`Promise`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+#### Inherited from
+
+[`Animation`](../Class.Animation).[`start`](../Class.Animation.md#start)
+
+***
+
+### stop()
+
+> **stop**(): `void`
+
+Defined in: [packages/sprotty/src/base/animations/animation.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/animations/animation.ts#L74)
+
+Stop the animation at the current state.
+The promise returned by start() will be resolved with the current state after the next tweening step.
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`Animation`](../Class.Animation).[`stop`](../Class.Animation.md#stop)
+
+***
+
+### tween()
+
+> **tween**(`t`, `context`): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/animations/animation.ts:102](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/animations/animation.ts#L102)
+
+This method called by the animation at each rendering pass until
+the duration is reached. Implement it to interpolate the state.
+
+#### Parameters
+
+##### t
+
+`number`
+
+varies between 0 (start of animation) and 1 (end of animation)
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Overrides
+
+[`Animation`](../Class.Animation).[`tween`](../Class.Animation.md#tween)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ComputedBoundsApplicator.md b/hugo/content/docs/ref/sprotty-core/Class.ComputedBoundsApplicator.md
new file mode 100644
index 0000000..c8902f7
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ComputedBoundsApplicator.md
@@ -0,0 +1,24 @@
+
+### applyBounds()
+
+> `protected` **applyBounds**(`element`, `newPosition`, `newSize`): `void`
+
+Defined in: [packages/sprotty/src/model-source/model-source.ts:102](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/model-source.ts#L102)
+
+#### Parameters
+
+##### element
+
+`SModelElement`
+
+##### newPosition
+
+`undefined` | `Point`
+
+##### newSize
+
+`Dimension`
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ConsoleLogger.md b/hugo/content/docs/ref/sprotty-core/Class.ConsoleLogger.md
new file mode 100644
index 0000000..171806a
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ConsoleLogger.md
@@ -0,0 +1,88 @@
+
+### info()
+
+> **info**(`thisArg`, `message`, ...`params`): `void`
+
+Defined in: [packages/sprotty/src/utils/logging.ts:62](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/logging.ts#L62)
+
+#### Parameters
+
+##### thisArg
+
+`any`
+
+##### message
+
+`string`
+
+##### params
+
+...`any`[]
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`ILogger`](../Interface.ILogger).[`info`](../Interface.ILogger.md#info)
+
+***
+
+### log()
+
+> **log**(`thisArg`, `message`, ...`params`): `void`
+
+Defined in: [packages/sprotty/src/utils/logging.ts:69](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/logging.ts#L69)
+
+#### Parameters
+
+##### thisArg
+
+`any`
+
+##### message
+
+`string`
+
+##### params
+
+...`any`[]
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`ILogger`](../Interface.ILogger).[`log`](../Interface.ILogger.md#log)
+
+***
+
+### warn()
+
+> **warn**(`thisArg`, `message`, ...`params`): `void`
+
+Defined in: [packages/sprotty/src/utils/logging.ts:55](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/logging.ts#L55)
+
+#### Parameters
+
+##### thisArg
+
+`any`
+
+##### message
+
+`string`
+
+##### params
+
+...`any`[]
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`ILogger`](../Interface.ILogger).[`warn`](../Interface.ILogger.md#warn)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ContextMenuMouseListener.md b/hugo/content/docs/ref/sprotty-core/Class.ContextMenuMouseListener.md
new file mode 100644
index 0000000..ede91ab
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ContextMenuMouseListener.md
@@ -0,0 +1,332 @@
+
+### decorate()
+
+> **decorate**(`vnode`, `element`): `VNode`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:218](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L218)
+
+#### Parameters
+
+##### vnode
+
+`VNode`
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+#### Returns
+
+`VNode`
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`decorate`](../Class.MouseListener.md#decorate)
+
+***
+
+### doubleClick()
+
+> **doubleClick**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:202](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L202)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`doubleClick`](../Class.MouseListener.md#doubleclick)
+
+***
+
+### dragOver()
+
+> **dragOver**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:210](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L210)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`dragOver`](../Class.MouseListener.md#dragover)
+
+***
+
+### drop()
+
+> **drop**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:214](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L214)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`drop`](../Class.MouseListener.md#drop)
+
+***
+
+### mouseDown()
+
+> **mouseDown**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:186](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L186)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseDown`](../Class.MouseListener.md#mousedown)
+
+***
+
+### mouseEnter()
+
+> **mouseEnter**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:178](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L178)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseEnter`](../Class.MouseListener.md#mouseenter)
+
+***
+
+### mouseLeave()
+
+> **mouseLeave**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:182](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L182)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseLeave`](../Class.MouseListener.md#mouseleave)
+
+***
+
+### mouseMove()
+
+> **mouseMove**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:190](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L190)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseMove`](../Class.MouseListener.md#mousemove)
+
+***
+
+### mouseOut()
+
+> **mouseOut**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:174](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L174)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseOut`](../Class.MouseListener.md#mouseout)
+
+***
+
+### mouseOver()
+
+> **mouseOver**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:170](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L170)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseOver`](../Class.MouseListener.md#mouseover)
+
+***
+
+### mouseUp()
+
+> **mouseUp**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:194](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L194)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseUp`](../Class.MouseListener.md#mouseup)
+
+***
+
+### showContextMenu()
+
+> `protected` **showContextMenu**(`target`, `event`): `Promise`\<`void`\>
+
+Defined in: [packages/sprotty/src/features/context-menu/mouse-listener.ts:41](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/context-menu/mouse-listener.ts#L41)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### wheel()
+
+> **wheel**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:198](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L198)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`WheelEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`wheel`](../Class.MouseListener.md#wheel)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ContextMenuProviderRegistry.md b/hugo/content/docs/ref/sprotty-core/Class.ContextMenuProviderRegistry.md
new file mode 100644
index 0000000..f15e334
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ContextMenuProviderRegistry.md
@@ -0,0 +1,62 @@
+
+[sprotty](../globals) / ContextMenuProviderRegistry
+
+# Class: ContextMenuProviderRegistry
+
+Defined in: [packages/sprotty/src/features/context-menu/menu-providers.ts:32](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/context-menu/menu-providers.ts#L32)
+
+## Implements
+
+- [`IContextMenuItemProvider`](../Interface.IContextMenuItemProvider)
+
+## Constructors
+
+### Constructor
+
+> **new ContextMenuProviderRegistry**(`menuProviders`): `ContextMenuProviderRegistry`
+
+Defined in: [packages/sprotty/src/features/context-menu/menu-providers.ts:34](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/context-menu/menu-providers.ts#L34)
+
+#### Parameters
+
+##### menuProviders
+
+[`IContextMenuItemProvider`](../Interface.IContextMenuItemProvider)[] = `[]`
+
+#### Returns
+
+`ContextMenuProviderRegistry`
+
+## Properties
+
+### menuProviders
+
+> `protected` **menuProviders**: [`IContextMenuItemProvider`](../Interface.IContextMenuItemProvider)[] = `[]`
+
+Defined in: [packages/sprotty/src/features/context-menu/menu-providers.ts:34](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/context-menu/menu-providers.ts#L34)
+
+## Methods
+
+### getItems()
+
+> **getItems**(`root`, `lastMousePosition?`): `Promise`\<[`MenuItem`](../Interface.MenuItem)[]\>
+
+Defined in: [packages/sprotty/src/features/context-menu/menu-providers.ts:36](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/context-menu/menu-providers.ts#L36)
+
+#### Parameters
+
+##### root
+
+`Readonly`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+##### lastMousePosition?
+
+`Point`
+
+#### Returns
+
+`Promise`\<[`MenuItem`](../Interface.MenuItem)[]\>
+
+#### Implementation of
+
+[`IContextMenuItemProvider`](../Interface.IContextMenuItemProvider).[`getItems`](../Interface.IContextMenuItemProvider.md#getitems)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.CreateElementCommand.md b/hugo/content/docs/ref/sprotty-core/Class.CreateElementCommand.md
new file mode 100644
index 0000000..5084151
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.CreateElementCommand.md
@@ -0,0 +1,72 @@
+
+### KIND
+
+> `readonly` `static` **KIND**: `"createElement"` = `CreateElementAction.KIND`
+
+Defined in: [packages/sprotty/src/features/edit/create.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/create.ts#L25)
+
+## Methods
+
+### execute()
+
+> **execute**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/edit/create.ts:34](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/create.ts#L34)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`Command`](../Class.Command).[`execute`](../Class.Command.md#execute)
+
+***
+
+### redo()
+
+> **redo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/edit/create.ts:49](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/create.ts#L49)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`Command`](../Class.Command).[`redo`](../Class.Command.md#redo)
+
+***
+
+### undo()
+
+> **undo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/edit/create.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/create.ts#L44)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`Command`](../Class.Command).[`undo`](../Class.Command.md#undo)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.DecorationPlacer.md b/hugo/content/docs/ref/sprotty-core/Class.DecorationPlacer.md
new file mode 100644
index 0000000..eb986eb
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.DecorationPlacer.md
@@ -0,0 +1,14 @@
+
+### postUpdate()
+
+> **postUpdate**(): `void`
+
+Defined in: [packages/sprotty/src/features/decoration/decoration-placer.ts:67](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/decoration/decoration-placer.ts#L67)
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`IVNodePostprocessor`](../Interface.IVNodePostprocessor).[`postUpdate`](../Interface.IVNodePostprocessor.md#postupdate)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.DefaultAnchors.md b/hugo/content/docs/ref/sprotty-core/Class.DefaultAnchors.md
new file mode 100644
index 0000000..f98776a
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.DefaultAnchors.md
@@ -0,0 +1,66 @@
+
+### kind
+
+> `readonly` **kind**: `"source"` \| `"target"`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:42](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L42)
+
+***
+
+### left
+
+> `readonly` **left**: [`RoutedPoint`](../Interface.RoutedPoint)
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:37](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L37)
+
+***
+
+### right
+
+> `readonly` **right**: [`RoutedPoint`](../Interface.RoutedPoint)
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:38](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L38)
+
+***
+
+### top
+
+> `readonly` **top**: [`RoutedPoint`](../Interface.RoutedPoint)
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:39](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L39)
+
+## Methods
+
+### get()
+
+> **get**(`side`): [`RoutedPoint`](../Interface.RoutedPoint)
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:51](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L51)
+
+#### Parameters
+
+##### side
+
+[`Side`](../Enumeration.Side)
+
+#### Returns
+
+[`RoutedPoint`](../Interface.RoutedPoint)
+
+***
+
+### getNearestSide()
+
+> **getNearestSide**(`point`): [`Side`](../Enumeration.Side)
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:55](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L55)
+
+#### Parameters
+
+##### point
+
+`Point`
+
+#### Returns
+
+[`Side`](../Enumeration.Side)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.DefaultDiagramLocker.md b/hugo/content/docs/ref/sprotty-core/Class.DefaultDiagramLocker.md
new file mode 100644
index 0000000..f26c37e
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.DefaultDiagramLocker.md
@@ -0,0 +1,48 @@
+
+[sprotty](../globals) / DefaultDiagramLocker
+
+# Class: DefaultDiagramLocker
+
+Defined in: [packages/sprotty/src/base/actions/diagram-locker.ts:32](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/actions/diagram-locker.ts#L32)
+
+Allows to lock the diagram by preventing certain actions from being
+dispatched.
+
+This could for example be used to prevent the diagram from being modified
+when the underlying model is broken or the server is unavailable.
+
+## Implements
+
+- [`IDiagramLocker`](../Interface.IDiagramLocker)
+
+## Constructors
+
+### Constructor
+
+> **new DefaultDiagramLocker**(): `DefaultDiagramLocker`
+
+#### Returns
+
+`DefaultDiagramLocker`
+
+## Methods
+
+### isAllowed()
+
+> **isAllowed**(`action`): `boolean`
+
+Defined in: [packages/sprotty/src/base/actions/diagram-locker.ts:33](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/actions/diagram-locker.ts#L33)
+
+#### Parameters
+
+##### action
+
+`Action`
+
+#### Returns
+
+`boolean`
+
+#### Implementation of
+
+[`IDiagramLocker`](../Interface.IDiagramLocker).[`isAllowed`](../Interface.IDiagramLocker.md#isallowed)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.DeleteContextMenuItemProvider.md b/hugo/content/docs/ref/sprotty-core/Class.DeleteContextMenuItemProvider.md
new file mode 100644
index 0000000..2c72154
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.DeleteContextMenuItemProvider.md
@@ -0,0 +1,46 @@
+
+[sprotty](../globals) / DeleteContextMenuItemProvider
+
+# Class: DeleteContextMenuItemProvider
+
+Defined in: [packages/sprotty/src/features/context-menu/menu-providers.ts:69](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/context-menu/menu-providers.ts#L69)
+
+## Implements
+
+- [`IContextMenuItemProvider`](../Interface.IContextMenuItemProvider)
+
+## Constructors
+
+### Constructor
+
+> **new DeleteContextMenuItemProvider**(): `DeleteContextMenuItemProvider`
+
+#### Returns
+
+`DeleteContextMenuItemProvider`
+
+## Methods
+
+### getItems()
+
+> **getItems**(`root`, `lastMousePosition?`): `Promise`\<[`MenuItem`](../Interface.MenuItem)[]\>
+
+Defined in: [packages/sprotty/src/features/context-menu/menu-providers.ts:70](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/context-menu/menu-providers.ts#L70)
+
+#### Parameters
+
+##### root
+
+`Readonly`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+##### lastMousePosition?
+
+`Point`
+
+#### Returns
+
+`Promise`\<[`MenuItem`](../Interface.MenuItem)[]\>
+
+#### Implementation of
+
+[`IContextMenuItemProvider`](../Interface.IContextMenuItemProvider).[`getItems`](../Interface.IContextMenuItemProvider.md#getitems)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.DeleteElementCommand.md b/hugo/content/docs/ref/sprotty-core/Class.DeleteElementCommand.md
new file mode 100644
index 0000000..7c0a7a5
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.DeleteElementCommand.md
@@ -0,0 +1,42 @@
+
+### redo()
+
+> **redo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/edit/delete.ts:68](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/delete.ts#L68)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`Command`](../Class.Command).[`redo`](../Class.Command.md#redo)
+
+***
+
+### undo()
+
+> **undo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/edit/delete.ts:62](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/delete.ts#L62)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`Command`](../Class.Command).[`undo`](../Class.Command.md#undo)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.DiagramServerProxy.md b/hugo/content/docs/ref/sprotty-core/Class.DiagramServerProxy.md
new file mode 100644
index 0000000..0df638d
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.DiagramServerProxy.md
@@ -0,0 +1,303 @@
+
+### currentRoot
+
+> `protected` **currentRoot**: `SModelRoot`
+
+Defined in: [packages/sprotty/src/model-source/diagram-server.ts:61](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/diagram-server.ts#L61)
+
+***
+
+### lastSubmittedModelType
+
+> `protected` **lastSubmittedModelType**: `string`
+
+Defined in: [packages/sprotty/src/model-source/diagram-server.ts:66](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/diagram-server.ts#L66)
+
+***
+
+### logger
+
+> `protected` **logger**: [`ILogger`](../Interface.ILogger)
+
+Defined in: [packages/sprotty/src/model-source/diagram-server.ts:56](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/diagram-server.ts#L56)
+
+***
+
+### viewerOptions
+
+> `protected` **viewerOptions**: [`ViewerOptions`](../Interface.ViewerOptions)
+
+Defined in: [packages/sprotty/src/model-source/model-source.ts:50](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/model-source.ts#L50)
+
+#### Inherited from
+
+[`ModelSource`](../Class.ModelSource).[`viewerOptions`](../Class.ModelSource.md#vieweroptions)
+
+## Accessors
+
+### model
+
+#### Get Signature
+
+> **get** **model**(): `SModelRoot`
+
+Defined in: [packages/sprotty/src/model-source/diagram-server.ts:68](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/diagram-server.ts#L68)
+
+##### Returns
+
+`SModelRoot`
+
+#### Overrides
+
+[`ModelSource`](../Class.ModelSource).[`model`](../Class.ModelSource.md#model)
+
+## Methods
+
+### commitModel()
+
+> **commitModel**(`newRoot`): `SModelRoot` \| `Promise`\<`SModelRoot`\>
+
+Defined in: [packages/sprotty/src/model-source/diagram-server.ts:210](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/diagram-server.ts#L210)
+
+Commit changes from the internal SModel back to the currentModel.
+
+This method is meant to be called only by CommitModelCommand and other commands
+that need to feed the current internal model back to the model source. It does
+not have any side effects such as triggering layout or bounds computation, as the
+internal model is already current. See `CommitModelAction` for details.
+
+#### Parameters
+
+##### newRoot
+
+`SModelRoot`
+
+the new model.
+
+#### Returns
+
+`SModelRoot` \| `Promise`\<`SModelRoot`\>
+
+the previous model.
+
+#### Overrides
+
+[`ModelSource`](../Class.ModelSource).[`commitModel`](../Class.ModelSource.md#commitmodel)
+
+***
+
+### forwardToServer()
+
+> `protected` **forwardToServer**(`action`): `void`
+
+Defined in: [packages/sprotty/src/model-source/diagram-server.ts:96](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/diagram-server.ts#L96)
+
+#### Parameters
+
+##### action
+
+`Action`
+
+#### Returns
+
+`void`
+
+***
+
+### handle()
+
+> **handle**(`action`): `void` \| `Action` \| [`ICommand`](../Interface.ICommand)
+
+Defined in: [packages/sprotty/src/model-source/diagram-server.ts:89](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/diagram-server.ts#L89)
+
+#### Parameters
+
+##### action
+
+`Action`
+
+#### Returns
+
+`void` \| `Action` \| [`ICommand`](../Interface.ICommand)
+
+#### Overrides
+
+[`ModelSource`](../Class.ModelSource).[`handle`](../Class.ModelSource.md#handle)
+
+***
+
+### handleComputedBounds()
+
+> `protected` **handleComputedBounds**(`action`): `boolean`
+
+Defined in: [packages/sprotty/src/model-source/diagram-server.ts:184](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/diagram-server.ts#L184)
+
+If the server requires to compute a layout, the computed bounds are forwarded. Otherwise they
+are applied to the current model locally and a model update is triggered.
+
+#### Parameters
+
+##### action
+
+`ComputedBoundsAction`
+
+#### Returns
+
+`boolean`
+
+***
+
+### handleExportSvgAction()
+
+> `protected` **handleExportSvgAction**(`action`): `boolean`
+
+Defined in: [packages/sprotty/src/model-source/diagram-server.ts:200](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/diagram-server.ts#L200)
+
+#### Parameters
+
+##### action
+
+`ExportSvgAction`
+
+#### Returns
+
+`boolean`
+
+***
+
+### handleLocally()
+
+> `protected` **handleLocally**(`action`): `boolean`
+
+Defined in: [packages/sprotty/src/model-source/diagram-server.ts:132](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/diagram-server.ts#L132)
+
+Check whether the given action should be handled locally. Returns true if the action should
+still be sent to the server, and false if it's only handled locally.
+
+#### Parameters
+
+##### action
+
+`Action`
+
+#### Returns
+
+`boolean`
+
+***
+
+### handleRequestModel()
+
+> `protected` **handleRequestModel**(`action`): `boolean`
+
+Defined in: [packages/sprotty/src/model-source/diagram-server.ts:166](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/diagram-server.ts#L166)
+
+#### Parameters
+
+##### action
+
+`RequestModelAction`
+
+#### Returns
+
+`boolean`
+
+***
+
+### handleServerStateAction()
+
+> `protected` **handleServerStateAction**(`action`): `boolean`
+
+Defined in: [packages/sprotty/src/model-source/diagram-server.ts:206](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/diagram-server.ts#L206)
+
+#### Parameters
+
+##### action
+
+[`ServerStatusAction`](../Class.ServerStatusAction)
+
+#### Returns
+
+`boolean`
+
+***
+
+### initialize()
+
+> **initialize**(`registry`): `void`
+
+Defined in: [packages/sprotty/src/model-source/diagram-server.ts:72](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/diagram-server.ts#L72)
+
+#### Parameters
+
+##### registry
+
+[`ActionHandlerRegistry`](../Class.ActionHandlerRegistry)
+
+#### Returns
+
+`void`
+
+#### Overrides
+
+[`ModelSource`](../Class.ModelSource).[`initialize`](../Class.ModelSource.md#initialize)
+
+***
+
+### messageReceived()
+
+> `protected` **messageReceived**(`data`): `void`
+
+Defined in: [packages/sprotty/src/model-source/diagram-server.ts:113](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/diagram-server.ts#L113)
+
+Called when a message is received from the remote diagram server.
+
+#### Parameters
+
+##### data
+
+`any`
+
+#### Returns
+
+`void`
+
+***
+
+### sendMessage()
+
+> `abstract` `protected` **sendMessage**(`message`): `void`
+
+Defined in: [packages/sprotty/src/model-source/diagram-server.ts:108](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/diagram-server.ts#L108)
+
+Send a message to the remote diagram server.
+
+#### Parameters
+
+##### message
+
+`ActionMessage`
+
+#### Returns
+
+`void`
+
+***
+
+### storeNewModel()
+
+> `protected` **storeNewModel**(`action`): `void`
+
+Defined in: [packages/sprotty/src/model-source/diagram-server.ts:152](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/diagram-server.ts#L152)
+
+Put the new model contained in the given action into the model storage, if there is any.
+
+#### Parameters
+
+##### action
+
+`Action`
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.Diamond.md b/hugo/content/docs/ref/sprotty-core/Class.Diamond.md
new file mode 100644
index 0000000..ea0d3c3
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.Diamond.md
@@ -0,0 +1,92 @@
+
+### leftPoint
+
+#### Get Signature
+
+> **get** **leftPoint**(): `Point`
+
+Defined in: [packages/sprotty/src/utils/geometry.ts:62](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/geometry.ts#L62)
+
+##### Returns
+
+`Point`
+
+***
+
+### rightPoint
+
+#### Get Signature
+
+> **get** **rightPoint**(): `Point`
+
+Defined in: [packages/sprotty/src/utils/geometry.ts:48](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/geometry.ts#L48)
+
+##### Returns
+
+`Point`
+
+***
+
+### topLeftSideLine
+
+#### Get Signature
+
+> **get** **topLeftSideLine**(): [`Line`](../Interface.Line)
+
+Defined in: [packages/sprotty/src/utils/geometry.ts:73](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/geometry.ts#L73)
+
+##### Returns
+
+[`Line`](../Interface.Line)
+
+***
+
+### topPoint
+
+#### Get Signature
+
+> **get** **topPoint**(): `Point`
+
+Defined in: [packages/sprotty/src/utils/geometry.ts:41](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/geometry.ts#L41)
+
+##### Returns
+
+`Point`
+
+***
+
+### topRightSideLine
+
+#### Get Signature
+
+> **get** **topRightSideLine**(): [`Line`](../Interface.Line)
+
+Defined in: [packages/sprotty/src/utils/geometry.ts:69](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/geometry.ts#L69)
+
+##### Returns
+
+[`Line`](../Interface.Line)
+
+## Methods
+
+### closestSideLine()
+
+> **closestSideLine**(`refPoint`): [`Line`](../Interface.Line)
+
+Defined in: [packages/sprotty/src/utils/geometry.ts:90](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/geometry.ts#L90)
+
+Return the closest side of this diamond to the specified `refPoint`.
+
+#### Parameters
+
+##### refPoint
+
+`Point`
+
+a reference point
+
+#### Returns
+
+[`Line`](../Interface.Line)
+
+a line representing the closest side
diff --git a/hugo/content/docs/ref/sprotty-core/Class.DiamondAnchor.md b/hugo/content/docs/ref/sprotty-core/Class.DiamondAnchor.md
new file mode 100644
index 0000000..7a7c866
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.DiamondAnchor.md
@@ -0,0 +1,84 @@
+
+[sprotty](../globals) / DiamondAnchor
+
+# Class: DiamondAnchor
+
+Defined in: [packages/sprotty/src/features/routing/polyline-anchors.ts:116](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/polyline-anchors.ts#L116)
+
+## Extended by
+
+- [`BezierDiamondAnchor`](../Class.BezierDiamondAnchor)
+
+## Implements
+
+- [`IAnchorComputer`](../Interface.IAnchorComputer)
+
+## Constructors
+
+### Constructor
+
+> **new DiamondAnchor**(): `DiamondAnchor`
+
+#### Returns
+
+`DiamondAnchor`
+
+## Accessors
+
+### kind
+
+#### Get Signature
+
+> **get** **kind**(): `string`
+
+Defined in: [packages/sprotty/src/features/routing/polyline-anchors.ts:118](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/polyline-anchors.ts#L118)
+
+##### Returns
+
+`string`
+
+#### Implementation of
+
+[`IAnchorComputer`](../Interface.IAnchorComputer).[`kind`](../Interface.IAnchorComputer.md#kind)
+
+## Methods
+
+### getAnchor()
+
+> **getAnchor**(`connectable`, `refPoint`, `offset`): `Point`
+
+Defined in: [packages/sprotty/src/features/routing/polyline-anchors.ts:122](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/polyline-anchors.ts#L122)
+
+Compute an anchor position for routing an edge towards this element.
+
+The default implementation returns the element's center point. If edges should be connected
+differently, e.g. to some point on the boundary of the element's view, the according computation
+should be implemented in a subclass by overriding this method.
+
+#### Parameters
+
+##### connectable
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl)
+
+The node or port an edge should be connected to.
+
+##### refPoint
+
+`Point`
+
+##### offset
+
+`number`
+
+An optional offset value to be considered in the anchor computation;
+ positive values should shift the anchor away from this element, negative values
+ should shift the anchor more to the inside. Use this to adapt ot arrow heads.
+
+#### Returns
+
+`Point`
+
+#### Implementation of
+
+[`IAnchorComputer`](../Interface.IAnchorComputer).[`getAnchor`](../Interface.IAnchorComputer.md#getanchor)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.DiamondNode.md b/hugo/content/docs/ref/sprotty-core/Class.DiamondNode.md
new file mode 100644
index 0000000..07ed9b2
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.DiamondNode.md
@@ -0,0 +1,475 @@
+
+### hoverFeedback
+
+> **hoverFeedback**: `boolean` = `false`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:58](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L58)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`hoverFeedback`](../Class.SNodeImpl.md#hoverfeedback)
+
+***
+
+### id
+
+> **id**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L27)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`id`](../Class.SNodeImpl.md#id)
+
+***
+
+### layout?
+
+> `optional` **layout**: `string`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:56](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L56)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`layout`](../Class.SNodeImpl.md#layout)
+
+***
+
+### layoutOptions?
+
+> `optional` **layoutOptions**: [`ModelLayoutOptions`](../TypeAlias.ModelLayoutOptions)
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:181](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L181)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`layoutOptions`](../Class.SNodeImpl.md#layoutoptions)
+
+***
+
+### opacity
+
+> **opacity**: `number` = `1`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:59](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L59)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`opacity`](../Class.SNodeImpl.md#opacity)
+
+***
+
+### parent
+
+> `readonly` **parent**: [`SParentElementImpl`](../Class.SParentElementImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:159](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L159)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`parent`](../Class.SNodeImpl.md#parent)
+
+***
+
+### position
+
+> **position**: `Point` = `Point.ORIGIN`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:179](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L179)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`position`](../Class.SNodeImpl.md#position)
+
+***
+
+### selected
+
+> **selected**: `boolean` = `false`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:57](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L57)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`selected`](../Class.SNodeImpl.md#selected)
+
+***
+
+### size
+
+> **size**: `Dimension` = `Dimension.EMPTY`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:180](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L180)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`size`](../Class.SNodeImpl.md#size)
+
+***
+
+### strokeWidth
+
+> **strokeWidth**: `number` = `0`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:114](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L114)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`strokeWidth`](../Class.SNodeImpl.md#strokewidth)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L26)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`type`](../Class.SNodeImpl.md#type)
+
+***
+
+### DEFAULT\_FEATURES
+
+> `readonly` `static` **DEFAULT\_FEATURES**: `symbol`[]
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L52)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`DEFAULT_FEATURES`](../Class.SNodeImpl.md#default_features)
+
+## Accessors
+
+### anchorKind
+
+#### Get Signature
+
+> **get** **anchorKind**(): `string`
+
+Defined in: [packages/sprotty/src/lib/model.ts:48](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/model.ts#L48)
+
+##### Returns
+
+`string`
+
+#### Overrides
+
+[`SNodeImpl`](../Class.SNodeImpl).[`anchorKind`](../Class.SNodeImpl.md#anchorkind)
+
+***
+
+### bounds
+
+#### Get Signature
+
+> **get** **bounds**(): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:183](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L183)
+
+##### Returns
+
+`Bounds`
+
+#### Set Signature
+
+> **set** **bounds**(`newBounds`): `void`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:192](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L192)
+
+##### Parameters
+
+###### newBounds
+
+`Bounds`
+
+##### Returns
+
+`void`
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`bounds`](../Class.SNodeImpl.md#bounds)
+
+***
+
+### incomingEdges
+
+#### Get Signature
+
+> **get** **incomingEdges**(): `FluentIterable`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:65](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L65)
+
+The incoming edges of this connectable element. They are resolved by the index, which must
+be an `SGraphIndex` for efficient lookup.
+
+##### Returns
+
+`FluentIterable`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`incomingEdges`](../Class.SNodeImpl.md#incomingedges)
+
+***
+
+### index
+
+#### Get Signature
+
+> **get** **index**(): [`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L44)
+
+##### Returns
+
+[`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`index`](../Class.SNodeImpl.md#index)
+
+***
+
+### outgoingEdges
+
+#### Get Signature
+
+> **get** **outgoingEdges**(): `FluentIterable`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L74)
+
+The outgoing edges of this connectable element. They are resolved by the index, which must
+be an `SGraphIndex` for efficient lookup.
+
+##### Returns
+
+`FluentIterable`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`outgoingEdges`](../Class.SNodeImpl.md#outgoingedges)
+
+***
+
+### root
+
+#### Get Signature
+
+> **get** **root**(): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L31)
+
+##### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`root`](../Class.SNodeImpl.md#root)
+
+## Methods
+
+### add()
+
+> **add**(`child`, `index?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L74)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### index?
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`add`](../Class.SNodeImpl.md#add)
+
+***
+
+### canConnect()
+
+> **canConnect**(`routable`, `role`): `boolean`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:61](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L61)
+
+#### Parameters
+
+##### routable
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### role
+
+`string`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`canConnect`](../Class.SNodeImpl.md#canconnect)
+
+***
+
+### hasFeature()
+
+> **hasFeature**(`feature`): `boolean`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L52)
+
+A feature is a symbol identifying some functionality that can be enabled or disabled for
+a model element. The set of supported features is determined by the `features` property.
+
+#### Parameters
+
+##### feature
+
+`symbol`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`hasFeature`](../Class.SNodeImpl.md#hasfeature)
+
+***
+
+### localToParent()
+
+> **localToParent**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:203](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L203)
+
+Transform the given bounds from the local coordinate system of this element to the coordinate
+system of its parent. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`localToParent`](../Class.SNodeImpl.md#localtoparent)
+
+***
+
+### move()
+
+> **move**(`child`, `newIndex`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:115](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L115)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### newIndex
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`move`](../Class.SNodeImpl.md#move)
+
+***
+
+### parentToLocal()
+
+> **parentToLocal**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:217](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L217)
+
+Transform the given bounds from the coordinate system of this element's parent to its local
+coordinate system. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`parentToLocal`](../Class.SNodeImpl.md#parenttolocal)
+
+***
+
+### remove()
+
+> **remove**(`child`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:88](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L88)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`remove`](../Class.SNodeImpl.md#remove)
+
+***
+
+### removeAll()
+
+> **removeAll**(`filter?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:98](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L98)
+
+#### Parameters
+
+##### filter?
+
+(`e`) => `boolean`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`removeAll`](../Class.SNodeImpl.md#removeall)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.DiamondNodeView.md b/hugo/content/docs/ref/sprotty-core/Class.DiamondNodeView.md
new file mode 100644
index 0000000..61601dd
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.DiamondNodeView.md
@@ -0,0 +1,28 @@
+
+### render()
+
+> **render**(`node`, `context`, `args?`): `undefined` \| `VNode`
+
+Defined in: [packages/sprotty/src/lib/svg-views.tsx:82](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/svg-views.tsx#L82)
+
+#### Parameters
+
+##### node
+
+`Readonly`\<[`SShapeElementImpl`](../Class.SShapeElementImpl) & `Hoverable` & `Selectable`\>
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+##### args?
+
+[`IViewArgs`](../Interface.IViewArgs)
+
+#### Returns
+
+`undefined` \| `VNode`
+
+#### Overrides
+
+[`ShapeView`](../Class.ShapeView).[`render`](../Class.ShapeView.md#render)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.EdgeLayoutPostprocessor.md b/hugo/content/docs/ref/sprotty-core/Class.EdgeLayoutPostprocessor.md
new file mode 100644
index 0000000..2e28f1d
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.EdgeLayoutPostprocessor.md
@@ -0,0 +1,126 @@
+
+### getEdgePlacement()
+
+> `protected` **getEdgePlacement**(`element`): `EdgePlacement`
+
+Defined in: [packages/sprotty/src/features/edge-layout/edge-layout.ts:161](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-layout/edge-layout.ts#L161)
+
+#### Parameters
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+#### Returns
+
+`EdgePlacement`
+
+***
+
+### getQuadrant()
+
+> `protected` **getQuadrant**(`angle`): `object`
+
+Defined in: [packages/sprotty/src/features/edge-layout/edge-layout.ts:250](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-layout/edge-layout.ts#L250)
+
+#### Parameters
+
+##### angle
+
+`number`
+
+#### Returns
+
+`object`
+
+##### orientation
+
+> **orientation**: [`Orientation`](../TypeAlias.Orientation)
+
+##### position
+
+> **position**: `number`
+
+***
+
+### getRotatedAlignment()
+
+> `protected` **getRotatedAlignment**(`element`, `placement`, `flip`): `object`
+
+Defined in: [packages/sprotty/src/features/edge-layout/edge-layout.ts:119](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-layout/edge-layout.ts#L119)
+
+#### Parameters
+
+##### element
+
+`EdgeLayoutable` & [`SModelElementImpl`](../Class.SModelElementImpl) & [`InternalBoundsAware`](../Interface.InternalBoundsAware)
+
+##### placement
+
+`EdgePlacement`
+
+##### flip
+
+`boolean`
+
+#### Returns
+
+`object`
+
+##### x
+
+> **x**: `number`
+
+##### y
+
+> **y**: `number`
+
+***
+
+### linearFlip()
+
+> `protected` **linearFlip**(`p0`, `p1`, `p2`, `p3`, `position`): `Point`
+
+Defined in: [packages/sprotty/src/features/edge-layout/edge-layout.ts:261](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-layout/edge-layout.ts#L261)
+
+#### Parameters
+
+##### p0
+
+`Point`
+
+##### p1
+
+`Point`
+
+##### p2
+
+`Point`
+
+##### p3
+
+`Point`
+
+##### position
+
+`number`
+
+#### Returns
+
+`Point`
+
+***
+
+### postUpdate()
+
+> **postUpdate**(): `void`
+
+Defined in: [packages/sprotty/src/features/edge-layout/edge-layout.ts:265](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-layout/edge-layout.ts#L265)
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`IVNodePostprocessor`](../Interface.IVNodePostprocessor).[`postUpdate`](../Interface.IVNodePostprocessor.md#postupdate)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.EdgePlacement.md b/hugo/content/docs/ref/sprotty-core/Class.EdgePlacement.md
new file mode 100644
index 0000000..36089f1
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.EdgePlacement.md
@@ -0,0 +1,1156 @@
+
+### ~~position~~
+
+> **position**: `number`
+
+Defined in: [packages/sprotty/src/features/edge-layout/model.ts:65](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-layout/model.ts#L65)
+
+between 0 (source anchor) and 1 (target anchor)
+
+***
+
+### ~~rotate~~
+
+> **rotate**: `boolean`
+
+Defined in: [packages/sprotty/src/features/edge-layout/model.ts:55](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-layout/model.ts#L55)
+
+true, if the label should be rotated to touch the edge tangentially
+
+***
+
+### ~~side~~
+
+> **side**: [`EdgeSide`](../TypeAlias.EdgeSide)
+
+Defined in: [packages/sprotty/src/features/edge-layout/model.ts:60](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-layout/model.ts#L60)
+
+where is the label relative to the line's direction
+
+## Methods
+
+### ~~hasOwnProperty()~~
+
+> **hasOwnProperty**(`v`): `boolean`
+
+Defined in: node\_modules/typescript/lib/lib.es5.d.ts:140
+
+Determines whether an object has a property with the specified name.
+
+#### Parameters
+
+##### v
+
+`PropertyKey`
+
+A property name.
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+`Object.hasOwnProperty`
+
+***
+
+### ~~isPrototypeOf()~~
+
+> **isPrototypeOf**(`v`): `boolean`
+
+Defined in: node\_modules/typescript/lib/lib.es5.d.ts:146
+
+Determines whether an object exists in another object's prototype chain.
+
+#### Parameters
+
+##### v
+
+`Object`
+
+Another object whose prototype chain is to be checked.
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+`Object.isPrototypeOf`
+
+***
+
+### ~~propertyIsEnumerable()~~
+
+> **propertyIsEnumerable**(`v`): `boolean`
+
+Defined in: node\_modules/typescript/lib/lib.es5.d.ts:152
+
+Determines whether a specified property is enumerable.
+
+#### Parameters
+
+##### v
+
+`PropertyKey`
+
+A property name.
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+`Object.propertyIsEnumerable`
+
+***
+
+### ~~toLocaleString()~~
+
+> **toLocaleString**(): `string`
+
+Defined in: node\_modules/typescript/lib/lib.es5.d.ts:131
+
+Returns a date converted to a string using the current locale.
+
+#### Returns
+
+`string`
+
+#### Inherited from
+
+`Object.toLocaleString`
+
+***
+
+### ~~toString()~~
+
+> **toString**(): `string`
+
+Defined in: node\_modules/typescript/lib/lib.es5.d.ts:128
+
+Returns a string representation of an object.
+
+#### Returns
+
+`string`
+
+#### Inherited from
+
+`Object.toString`
+
+***
+
+### ~~valueOf()~~
+
+> **valueOf**(): `Object`
+
+Defined in: node\_modules/typescript/lib/lib.es5.d.ts:134
+
+Returns the primitive value of the specified object.
+
+#### Returns
+
+`Object`
+
+#### Inherited from
+
+`Object.valueOf`
+
+***
+
+### ~~assign()~~
+
+#### Call Signature
+
+> `static` **assign**\<`T`, `U`\>(`target`, `source`): `T` & `U`
+
+Defined in: node\_modules/typescript/lib/lib.es2015.core.d.ts:284
+
+Copy the values of all of the enumerable own properties from one or more source objects to a
+target object. Returns the target object.
+
+##### Type Parameters
+
+###### T
+
+`T` *extends* `object`
+
+###### U
+
+`U`
+
+##### Parameters
+
+###### target
+
+`T`
+
+The target object to copy to.
+
+###### source
+
+`U`
+
+The source object from which to copy properties.
+
+##### Returns
+
+`T` & `U`
+
+##### Inherited from
+
+`Object.assign`
+
+#### Call Signature
+
+> `static` **assign**\<`T`, `U`, `V`\>(`target`, `source1`, `source2`): `T` & `U` & `V`
+
+Defined in: node\_modules/typescript/lib/lib.es2015.core.d.ts:293
+
+Copy the values of all of the enumerable own properties from one or more source objects to a
+target object. Returns the target object.
+
+##### Type Parameters
+
+###### T
+
+`T` *extends* `object`
+
+###### U
+
+`U`
+
+###### V
+
+`V`
+
+##### Parameters
+
+###### target
+
+`T`
+
+The target object to copy to.
+
+###### source1
+
+`U`
+
+The first source object from which to copy properties.
+
+###### source2
+
+`V`
+
+The second source object from which to copy properties.
+
+##### Returns
+
+`T` & `U` & `V`
+
+##### Inherited from
+
+`Object.assign`
+
+#### Call Signature
+
+> `static` **assign**\<`T`, `U`, `V`, `W`\>(`target`, `source1`, `source2`, `source3`): `T` & `U` & `V` & `W`
+
+Defined in: node\_modules/typescript/lib/lib.es2015.core.d.ts:303
+
+Copy the values of all of the enumerable own properties from one or more source objects to a
+target object. Returns the target object.
+
+##### Type Parameters
+
+###### T
+
+`T` *extends* `object`
+
+###### U
+
+`U`
+
+###### V
+
+`V`
+
+###### W
+
+`W`
+
+##### Parameters
+
+###### target
+
+`T`
+
+The target object to copy to.
+
+###### source1
+
+`U`
+
+The first source object from which to copy properties.
+
+###### source2
+
+`V`
+
+The second source object from which to copy properties.
+
+###### source3
+
+`W`
+
+The third source object from which to copy properties.
+
+##### Returns
+
+`T` & `U` & `V` & `W`
+
+##### Inherited from
+
+`Object.assign`
+
+#### Call Signature
+
+> `static` **assign**(`target`, ...`sources`): `any`
+
+Defined in: node\_modules/typescript/lib/lib.es2015.core.d.ts:311
+
+Copy the values of all of the enumerable own properties from one or more source objects to a
+target object. Returns the target object.
+
+##### Parameters
+
+###### target
+
+`object`
+
+The target object to copy to.
+
+###### sources
+
+...`any`[]
+
+One or more source objects from which to copy properties
+
+##### Returns
+
+`any`
+
+##### Inherited from
+
+`Object.assign`
+
+***
+
+### ~~create()~~
+
+#### Call Signature
+
+> `static` **create**(`o`): `any`
+
+Defined in: node\_modules/typescript/lib/lib.es5.d.ts:188
+
+Creates an object that has the specified prototype or that has null prototype.
+
+##### Parameters
+
+###### o
+
+Object to use as a prototype. May be null.
+
+`null` | `object`
+
+##### Returns
+
+`any`
+
+##### Inherited from
+
+`Object.create`
+
+#### Call Signature
+
+> `static` **create**(`o`, `properties`): `any`
+
+Defined in: node\_modules/typescript/lib/lib.es5.d.ts:195
+
+Creates an object that has the specified prototype, and that optionally contains specified properties.
+
+##### Parameters
+
+###### o
+
+Object to use as a prototype. May be null
+
+`null` | `object`
+
+###### properties
+
+`PropertyDescriptorMap` & `ThisType`\<`any`\>
+
+JavaScript object that contains one or more property descriptors.
+
+##### Returns
+
+`any`
+
+##### Inherited from
+
+`Object.create`
+
+***
+
+### ~~defineProperties()~~
+
+> `static` **defineProperties**\<`T`\>(`o`, `properties`): `T`
+
+Defined in: node\_modules/typescript/lib/lib.es5.d.ts:210
+
+Adds one or more properties to an object, and/or modifies attributes of existing properties.
+
+#### Type Parameters
+
+##### T
+
+`T`
+
+#### Parameters
+
+##### o
+
+`T`
+
+Object on which to add or modify the properties. This can be a native JavaScript object or a DOM object.
+
+##### properties
+
+`PropertyDescriptorMap` & `ThisType`\<`any`\>
+
+JavaScript object that contains one or more descriptor objects. Each descriptor object describes a data property or an accessor property.
+
+#### Returns
+
+`T`
+
+#### Inherited from
+
+`Object.defineProperties`
+
+***
+
+### ~~defineProperty()~~
+
+> `static` **defineProperty**\<`T`\>(`o`, `p`, `attributes`): `T`
+
+Defined in: node\_modules/typescript/lib/lib.es5.d.ts:203
+
+Adds a property to an object, or modifies attributes of an existing property.
+
+#### Type Parameters
+
+##### T
+
+`T`
+
+#### Parameters
+
+##### o
+
+`T`
+
+Object on which to add or modify the property. This can be a native JavaScript object (that is, a user-defined object or a built in object) or a DOM object.
+
+##### p
+
+`PropertyKey`
+
+The property name.
+
+##### attributes
+
+`PropertyDescriptor` & `ThisType`\<`any`\>
+
+Descriptor for the property. It can be for a data property or an accessor property.
+
+#### Returns
+
+`T`
+
+#### Inherited from
+
+`Object.defineProperty`
+
+***
+
+### ~~entries()~~
+
+#### Call Signature
+
+> `static` **entries**\<`T`\>(`o`): \[`string`, `T`\][]
+
+Defined in: node\_modules/typescript/lib/lib.es2017.object.d.ts:36
+
+Returns an array of key/values of the enumerable properties of an object
+
+##### Type Parameters
+
+###### T
+
+`T`
+
+##### Parameters
+
+###### o
+
+Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.
+
+\{\[`s`: `string`\]: `T`; \} | `ArrayLike`\<`T`\>
+
+##### Returns
+
+\[`string`, `T`\][]
+
+##### Inherited from
+
+`Object.entries`
+
+#### Call Signature
+
+> `static` **entries**(`o`): \[`string`, `any`\][]
+
+Defined in: node\_modules/typescript/lib/lib.es2017.object.d.ts:42
+
+Returns an array of key/values of the enumerable properties of an object
+
+##### Parameters
+
+###### o
+
+Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.
+
+##### Returns
+
+\[`string`, `any`\][]
+
+##### Inherited from
+
+`Object.entries`
+
+***
+
+### ~~freeze()~~
+
+#### Call Signature
+
+> `static` **freeze**\<`T`\>(`f`): `T`
+
+Defined in: node\_modules/typescript/lib/lib.es5.d.ts:222
+
+Prevents the modification of existing property attributes and values, and prevents the addition of new properties.
+
+##### Type Parameters
+
+###### T
+
+`T` *extends* `Function`
+
+##### Parameters
+
+###### f
+
+`T`
+
+Object on which to lock the attributes.
+
+##### Returns
+
+`T`
+
+##### Inherited from
+
+`Object.freeze`
+
+#### Call Signature
+
+> `static` **freeze**\<`T`, `U`\>(`o`): `Readonly`\<`T`\>
+
+Defined in: node\_modules/typescript/lib/lib.es5.d.ts:228
+
+Prevents the modification of existing property attributes and values, and prevents the addition of new properties.
+
+##### Type Parameters
+
+###### T
+
+`T` *extends* `object`
+
+###### U
+
+`U` *extends* `string` \| `number` \| `bigint` \| `boolean` \| `symbol`
+
+##### Parameters
+
+###### o
+
+`T`
+
+Object on which to lock the attributes.
+
+##### Returns
+
+`Readonly`\<`T`\>
+
+##### Inherited from
+
+`Object.freeze`
+
+#### Call Signature
+
+> `static` **freeze**\<`T`\>(`o`): `Readonly`\<`T`\>
+
+Defined in: node\_modules/typescript/lib/lib.es5.d.ts:234
+
+Prevents the modification of existing property attributes and values, and prevents the addition of new properties.
+
+##### Type Parameters
+
+###### T
+
+`T`
+
+##### Parameters
+
+###### o
+
+`T`
+
+Object on which to lock the attributes.
+
+##### Returns
+
+`Readonly`\<`T`\>
+
+##### Inherited from
+
+`Object.freeze`
+
+***
+
+### ~~fromEntries()~~
+
+#### Call Signature
+
+> `static` **fromEntries**\<`T`\>(`entries`): `object`
+
+Defined in: node\_modules/typescript/lib/lib.es2019.object.d.ts:26
+
+Returns an object created by key-value entries for properties and methods
+
+##### Type Parameters
+
+###### T
+
+`T` = `any`
+
+##### Parameters
+
+###### entries
+
+`Iterable`\
+
+An iterable object that contains key-value entries for properties and methods.
+
+##### Returns
+
+`object`
+
+##### Inherited from
+
+`Object.fromEntries`
+
+#### Call Signature
+
+> `static` **fromEntries**(`entries`): `any`
+
+Defined in: node\_modules/typescript/lib/lib.es2019.object.d.ts:32
+
+Returns an object created by key-value entries for properties and methods
+
+##### Parameters
+
+###### entries
+
+`Iterable`\
+
+An iterable object that contains key-value entries for properties and methods.
+
+##### Returns
+
+`any`
+
+##### Inherited from
+
+`Object.fromEntries`
+
+***
+
+### ~~getOwnPropertyDescriptor()~~
+
+> `static` **getOwnPropertyDescriptor**(`o`, `p`): `undefined` \| `PropertyDescriptor`
+
+Defined in: node\_modules/typescript/lib/lib.es5.d.ts:175
+
+Gets the own property descriptor of the specified object.
+An own property descriptor is one that is defined directly on the object and is not inherited from the object's prototype.
+
+#### Parameters
+
+##### o
+
+`any`
+
+Object that contains the property.
+
+##### p
+
+`PropertyKey`
+
+Name of the property.
+
+#### Returns
+
+`undefined` \| `PropertyDescriptor`
+
+#### Inherited from
+
+`Object.getOwnPropertyDescriptor`
+
+***
+
+### ~~getOwnPropertyDescriptors()~~
+
+> `static` **getOwnPropertyDescriptors**\<`T`\>(`o`): \{ \[P in string \| number \| symbol\]: TypedPropertyDescriptor\ \} & `object`
+
+Defined in: node\_modules/typescript/lib/lib.es2017.object.d.ts:48
+
+Returns an object containing all own property descriptors of an object
+
+#### Type Parameters
+
+##### T
+
+`T`
+
+#### Parameters
+
+##### o
+
+`T`
+
+Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.
+
+#### Returns
+
+\{ \[P in string \| number \| symbol\]: TypedPropertyDescriptor\ \} & `object`
+
+#### Inherited from
+
+`Object.getOwnPropertyDescriptors`
+
+***
+
+### ~~getOwnPropertyNames()~~
+
+> `static` **getOwnPropertyNames**(`o`): `string`[]
+
+Defined in: node\_modules/typescript/lib/lib.es5.d.ts:182
+
+Returns the names of the own properties of an object. The own properties of an object are those that are defined directly
+on that object, and are not inherited from the object's prototype. The properties of an object include both fields (objects) and functions.
+
+#### Parameters
+
+##### o
+
+`any`
+
+Object that contains the own properties.
+
+#### Returns
+
+`string`[]
+
+#### Inherited from
+
+`Object.getOwnPropertyNames`
+
+***
+
+### ~~getOwnPropertySymbols()~~
+
+> `static` **getOwnPropertySymbols**(`o`): `symbol`[]
+
+Defined in: node\_modules/typescript/lib/lib.es2015.core.d.ts:317
+
+Returns an array of all symbol properties found directly on object o.
+
+#### Parameters
+
+##### o
+
+`any`
+
+Object to retrieve the symbols from.
+
+#### Returns
+
+`symbol`[]
+
+#### Inherited from
+
+`Object.getOwnPropertySymbols`
+
+***
+
+### ~~getPrototypeOf()~~
+
+> `static` **getPrototypeOf**(`o`): `any`
+
+Defined in: node\_modules/typescript/lib/lib.es5.d.ts:167
+
+Returns the prototype of an object.
+
+#### Parameters
+
+##### o
+
+`any`
+
+The object that references the prototype.
+
+#### Returns
+
+`any`
+
+#### Inherited from
+
+`Object.getPrototypeOf`
+
+***
+
+### ~~is()~~
+
+> `static` **is**(`value1`, `value2`): `boolean`
+
+Defined in: node\_modules/typescript/lib/lib.es2015.core.d.ts:330
+
+Returns true if the values are the same value, false otherwise.
+
+#### Parameters
+
+##### value1
+
+`any`
+
+The first value.
+
+##### value2
+
+`any`
+
+The second value.
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+`Object.is`
+
+***
+
+### ~~isExtensible()~~
+
+> `static` **isExtensible**(`o`): `boolean`
+
+Defined in: node\_modules/typescript/lib/lib.es5.d.ts:258
+
+Returns a value that indicates whether new properties can be added to an object.
+
+#### Parameters
+
+##### o
+
+`any`
+
+Object to test.
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+`Object.isExtensible`
+
+***
+
+### ~~isFrozen()~~
+
+> `static` **isFrozen**(`o`): `boolean`
+
+Defined in: node\_modules/typescript/lib/lib.es5.d.ts:252
+
+Returns true if existing property attributes and values cannot be modified in an object, and new properties cannot be added to the object.
+
+#### Parameters
+
+##### o
+
+`any`
+
+Object to test.
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+`Object.isFrozen`
+
+***
+
+### ~~isSealed()~~
+
+> `static` **isSealed**(`o`): `boolean`
+
+Defined in: node\_modules/typescript/lib/lib.es5.d.ts:246
+
+Returns true if existing property attributes cannot be modified in an object and new properties cannot be added to the object.
+
+#### Parameters
+
+##### o
+
+`any`
+
+Object to test.
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+`Object.isSealed`
+
+***
+
+### ~~keys()~~
+
+#### Call Signature
+
+> `static` **keys**(`o`): `string`[]
+
+Defined in: node\_modules/typescript/lib/lib.es5.d.ts:264
+
+Returns the names of the enumerable string properties and methods of an object.
+
+##### Parameters
+
+###### o
+
+`object`
+
+Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.
+
+##### Returns
+
+`string`[]
+
+##### Inherited from
+
+`Object.keys`
+
+#### Call Signature
+
+> `static` **keys**(`o`): `string`[]
+
+Defined in: node\_modules/typescript/lib/lib.es2015.core.d.ts:323
+
+Returns the names of the enumerable string properties and methods of an object.
+
+##### Parameters
+
+###### o
+
+Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.
+
+##### Returns
+
+`string`[]
+
+##### Inherited from
+
+`Object.keys`
+
+***
+
+### ~~preventExtensions()~~
+
+> `static` **preventExtensions**\<`T`\>(`o`): `T`
+
+Defined in: node\_modules/typescript/lib/lib.es5.d.ts:240
+
+Prevents the addition of new properties to an object.
+
+#### Type Parameters
+
+##### T
+
+`T`
+
+#### Parameters
+
+##### o
+
+`T`
+
+Object to make non-extensible.
+
+#### Returns
+
+`T`
+
+#### Inherited from
+
+`Object.preventExtensions`
+
+***
+
+### ~~seal()~~
+
+> `static` **seal**\<`T`\>(`o`): `T`
+
+Defined in: node\_modules/typescript/lib/lib.es5.d.ts:216
+
+Prevents the modification of attributes of existing properties, and prevents the addition of new properties.
+
+#### Type Parameters
+
+##### T
+
+`T`
+
+#### Parameters
+
+##### o
+
+`T`
+
+Object on which to lock the attributes.
+
+#### Returns
+
+`T`
+
+#### Inherited from
+
+`Object.seal`
+
+***
+
+### ~~setPrototypeOf()~~
+
+> `static` **setPrototypeOf**(`o`, `proto`): `any`
+
+Defined in: node\_modules/typescript/lib/lib.es2015.core.d.ts:337
+
+Sets the prototype of a specified object o to object proto or null. Returns the object o.
+
+#### Parameters
+
+##### o
+
+`any`
+
+The object to change its prototype.
+
+##### proto
+
+The value of the new prototype or null.
+
+`null` | `object`
+
+#### Returns
+
+`any`
+
+#### Inherited from
+
+`Object.setPrototypeOf`
+
+***
+
+### ~~values()~~
+
+#### Call Signature
+
+> `static` **values**\<`T`\>(`o`): `T`[]
+
+Defined in: node\_modules/typescript/lib/lib.es2017.object.d.ts:24
+
+Returns an array of values of the enumerable properties of an object
+
+##### Type Parameters
+
+###### T
+
+`T`
+
+##### Parameters
+
+###### o
+
+Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.
+
+\{\[`s`: `string`\]: `T`; \} | `ArrayLike`\<`T`\>
+
+##### Returns
+
+`T`[]
+
+##### Inherited from
+
+`Object.values`
+
+#### Call Signature
+
+> `static` **values**(`o`): `any`[]
+
+Defined in: node\_modules/typescript/lib/lib.es2017.object.d.ts:30
+
+Returns an array of values of the enumerable properties of an object
+
+##### Parameters
+
+###### o
+
+Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.
+
+##### Returns
+
+`any`[]
+
+##### Inherited from
+
+`Object.values`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.EdgeRouterRegistry.md b/hugo/content/docs/ref/sprotty-core/Class.EdgeRouterRegistry.md
new file mode 100644
index 0000000..248c424
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.EdgeRouterRegistry.md
@@ -0,0 +1,171 @@
+
+### get()
+
+> **get**(`kind`): [`IEdgeRouter`](../Interface.IEdgeRouter)
+
+Defined in: [packages/sprotty/src/features/routing/routing.ts:169](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/routing.ts#L169)
+
+#### Parameters
+
+##### kind
+
+`undefined` | `string`
+
+#### Returns
+
+[`IEdgeRouter`](../Interface.IEdgeRouter)
+
+#### Overrides
+
+[`InstanceRegistry`](../Class.InstanceRegistry).[`get`](../Class.InstanceRegistry.md#get)
+
+***
+
+### hasKey()
+
+> **hasKey**(`key`): `boolean`
+
+Defined in: [packages/sprotty/src/utils/registry.ts:132](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/registry.ts#L132)
+
+#### Parameters
+
+##### key
+
+`string`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`InstanceRegistry`](../Class.InstanceRegistry).[`hasKey`](../Class.InstanceRegistry.md#haskey)
+
+***
+
+### missing()
+
+> `protected` **missing**(`key`): [`IEdgeRouter`](../Interface.IEdgeRouter)
+
+Defined in: [packages/sprotty/src/utils/registry.ts:145](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/registry.ts#L145)
+
+#### Parameters
+
+##### key
+
+`string`
+
+#### Returns
+
+[`IEdgeRouter`](../Interface.IEdgeRouter)
+
+#### Inherited from
+
+[`InstanceRegistry`](../Class.InstanceRegistry).[`missing`](../Class.InstanceRegistry.md#missing)
+
+***
+
+### override()
+
+> **override**(`key`, `instance`): `void`
+
+Defined in: [packages/sprotty/src/utils/registry.ts:116](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/registry.ts#L116)
+
+#### Parameters
+
+##### key
+
+`string`
+
+##### instance
+
+[`IEdgeRouter`](../Interface.IEdgeRouter)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`InstanceRegistry`](../Class.InstanceRegistry).[`override`](../Class.InstanceRegistry.md#override)
+
+***
+
+### register()
+
+> **register**(`key`, `instance`): `void`
+
+Defined in: [packages/sprotty/src/utils/registry.ts:106](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/registry.ts#L106)
+
+#### Parameters
+
+##### key
+
+`string`
+
+##### instance
+
+[`IEdgeRouter`](../Interface.IEdgeRouter)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`InstanceRegistry`](../Class.InstanceRegistry).[`register`](../Class.InstanceRegistry.md#register)
+
+***
+
+### route()
+
+> **route**(`edge`, `args?`): [`RoutedPoint`](../Interface.RoutedPoint)[]
+
+Defined in: [packages/sprotty/src/features/routing/routing.ts:235](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/routing.ts#L235)
+
+Computes or obtains the route of a single edge.
+
+#### Parameters
+
+##### edge
+
+`Readonly`\<[`SRoutableElementImpl`](../Class.SRoutableElementImpl)\>
+
+the edge to be routed
+
+##### args?
+
+[`IViewArgs`](../Interface.IViewArgs)
+
+arguments that may contain an `EdgeRouting` already
+
+#### Returns
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+the route of the specified `edge`
+
+***
+
+### routeAllChildren()
+
+> **routeAllChildren**(`parent`): [`EdgeRouting`](../Class.EdgeRouting)
+
+Defined in: [packages/sprotty/src/features/routing/routing.ts:179](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/routing.ts#L179)
+
+Computes the routes of all edges contained by the specified `parent`.
+After all routes are available, it'll apply the registered `EdgeRoutePostProcessors`.
+
+#### Parameters
+
+##### parent
+
+`Readonly`\<[`SParentElementImpl`](../Class.SParentElementImpl)\>
+
+the parent to traverse for edges
+
+#### Returns
+
+[`EdgeRouting`](../Class.EdgeRouting)
+
+the routes of all edges that are children of `parent`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.EdgeRouting.md b/hugo/content/docs/ref/sprotty-core/Class.EdgeRouting.md
new file mode 100644
index 0000000..f065808
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.EdgeRouting.md
@@ -0,0 +1,16 @@
+
+### setAll()
+
+> **setAll**(`otherRoutes`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/routing.ts:265](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/routing.ts#L265)
+
+#### Parameters
+
+##### otherRoutes
+
+`EdgeRouting`
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.EditLabelActionHandler.md b/hugo/content/docs/ref/sprotty-core/Class.EditLabelActionHandler.md
new file mode 100644
index 0000000..d492ecd
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.EditLabelActionHandler.md
@@ -0,0 +1,44 @@
+
+[sprotty](../globals) / EditLabelActionHandler
+
+# Class: EditLabelActionHandler
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:37](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L37)
+
+Shows a UI extension for editing a label on emitted `EditLabelAction`s.
+
+## Implements
+
+- [`IActionHandler`](../Interface.IActionHandler)
+
+## Constructors
+
+### Constructor
+
+> **new EditLabelActionHandler**(): `EditLabelActionHandler`
+
+#### Returns
+
+`EditLabelActionHandler`
+
+## Methods
+
+### handle()
+
+> **handle**(`action`): `void` \| `Action` \| [`ICommand`](../Interface.ICommand)
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:38](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L38)
+
+#### Parameters
+
+##### action
+
+`Action`
+
+#### Returns
+
+`void` \| `Action` \| [`ICommand`](../Interface.ICommand)
+
+#### Implementation of
+
+[`IActionHandler`](../Interface.IActionHandler).[`handle`](../Interface.IActionHandler.md#handle)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.EditLabelKeyListener.md b/hugo/content/docs/ref/sprotty-core/Class.EditLabelKeyListener.md
new file mode 100644
index 0000000..47261b4
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.EditLabelKeyListener.md
@@ -0,0 +1,24 @@
+
+### keyUp()
+
+> **keyUp**(`element`, `event`): `Action`[]
+
+Defined in: [packages/sprotty/src/base/views/key-tool.ts:82](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/key-tool.ts#L82)
+
+#### Parameters
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`KeyboardEvent`
+
+#### Returns
+
+`Action`[]
+
+#### Inherited from
+
+[`KeyListener`](../Class.KeyListener).[`keyUp`](../Class.KeyListener.md#keyup)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.EditLabelMouseListener.md b/hugo/content/docs/ref/sprotty-core/Class.EditLabelMouseListener.md
new file mode 100644
index 0000000..38a1cf6
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.EditLabelMouseListener.md
@@ -0,0 +1,258 @@
+
+### dragOver()
+
+> **dragOver**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:210](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L210)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`dragOver`](../Class.MouseListener.md#dragover)
+
+***
+
+### drop()
+
+> **drop**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:214](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L214)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`drop`](../Class.MouseListener.md#drop)
+
+***
+
+### mouseDown()
+
+> **mouseDown**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:186](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L186)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseDown`](../Class.MouseListener.md#mousedown)
+
+***
+
+### mouseEnter()
+
+> **mouseEnter**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:178](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L178)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseEnter`](../Class.MouseListener.md#mouseenter)
+
+***
+
+### mouseLeave()
+
+> **mouseLeave**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:182](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L182)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseLeave`](../Class.MouseListener.md#mouseleave)
+
+***
+
+### mouseMove()
+
+> **mouseMove**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:190](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L190)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseMove`](../Class.MouseListener.md#mousemove)
+
+***
+
+### mouseOut()
+
+> **mouseOut**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:174](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L174)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseOut`](../Class.MouseListener.md#mouseout)
+
+***
+
+### mouseOver()
+
+> **mouseOver**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:170](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L170)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseOver`](../Class.MouseListener.md#mouseover)
+
+***
+
+### mouseUp()
+
+> **mouseUp**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:194](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L194)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseUp`](../Class.MouseListener.md#mouseup)
+
+***
+
+### wheel()
+
+> **wheel**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:198](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L198)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`WheelEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`wheel`](../Class.MouseListener.md#wheel)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.EditLabelUI.md b/hugo/content/docs/ref/sprotty-core/Class.EditLabelUI.md
new file mode 100644
index 0000000..542b7c3
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.EditLabelUI.md
@@ -0,0 +1,590 @@
+
+### containerElement
+
+> `protected` **containerElement**: `HTMLElement`
+
+Defined in: [packages/sprotty/src/base/ui-extensions/ui-extension.ts:47](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/ui-extensions/ui-extension.ts#L47)
+
+#### Inherited from
+
+[`AbstractUIExtension`](../Class.AbstractUIExtension).[`containerElement`](../Class.AbstractUIExtension.md#containerelement)
+
+***
+
+### domHelper
+
+> `protected` **domHelper**: `DOMHelper`
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:56](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L56)
+
+***
+
+### inputElement
+
+> `protected` **inputElement**: `HTMLInputElement`
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:60](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L60)
+
+***
+
+### isActive
+
+> `protected` **isActive**: `boolean` = `false`
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:66](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L66)
+
+***
+
+### isCurrentLabelValid
+
+> `protected` **isCurrentLabelValid**: `boolean` = `true`
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:68](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L68)
+
+***
+
+### label?
+
+> `protected` `optional` **label**: [`EditableLabel`](../Interface.EditableLabel) & [`SModelElementImpl`](../Class.SModelElementImpl)
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:63](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L63)
+
+***
+
+### labelElement
+
+> `protected` **labelElement**: `null` \| `HTMLElement`
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:64](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L64)
+
+***
+
+### labelValidator
+
+> **labelValidator**: [`IEditLabelValidator`](../Interface.IEditLabelValidator)
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:57](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L57)
+
+***
+
+### logger
+
+> `protected` **logger**: [`ILogger`](../Interface.ILogger)
+
+Defined in: [packages/sprotty/src/base/ui-extensions/ui-extension.ts:45](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/ui-extensions/ui-extension.ts#L45)
+
+#### Inherited from
+
+[`AbstractUIExtension`](../Class.AbstractUIExtension).[`logger`](../Class.AbstractUIExtension.md#logger)
+
+***
+
+### options
+
+> `protected` **options**: [`ViewerOptions`](../Interface.ViewerOptions)
+
+Defined in: [packages/sprotty/src/base/ui-extensions/ui-extension.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/ui-extensions/ui-extension.ts#L44)
+
+#### Inherited from
+
+[`AbstractUIExtension`](../Class.AbstractUIExtension).[`options`](../Class.AbstractUIExtension.md#options)
+
+***
+
+### previousLabelContent?
+
+> `protected` `optional` **previousLabelContent**: `string`
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:69](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L69)
+
+***
+
+### textAreaElement
+
+> `protected` **textAreaElement**: `HTMLTextAreaElement`
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:61](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L61)
+
+***
+
+### validationDecorator
+
+> **validationDecorator**: [`IEditLabelValidationDecorator`](../Interface.IEditLabelValidationDecorator)
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:58](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L58)
+
+***
+
+### validationTimeout?
+
+> `protected` `optional` **validationTimeout**: `number` = `undefined`
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:65](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L65)
+
+***
+
+### viewerOptions
+
+> `protected` **viewerOptions**: [`ViewerOptions`](../Interface.ViewerOptions)
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:55](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L55)
+
+***
+
+### ID
+
+> `readonly` `static` **ID**: `"editLabelUi"` = `'editLabelUi'`
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L52)
+
+## Accessors
+
+### editControl
+
+#### Get Signature
+
+> **get** **editControl**(): `HTMLInputElement` \| `HTMLTextAreaElement`
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:97](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L97)
+
+##### Returns
+
+`HTMLInputElement` \| `HTMLTextAreaElement`
+
+***
+
+### labelId
+
+#### Get Signature
+
+> **get** `protected` **labelId**(): `string`
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L74)
+
+##### Returns
+
+`string`
+
+## Methods
+
+### applyFontStyling()
+
+> `protected` **applyFontStyling**(): `void`
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:246](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L246)
+
+#### Returns
+
+`void`
+
+***
+
+### applyLabelEdit()
+
+> `protected` **applyLabelEdit**(): `Promise`\<`void`\>
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:122](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L122)
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### applyLabelEditOnEvent()
+
+> `protected` **applyLabelEditOnEvent**(`event`, `code?`, ...`modifiers?`): `void`
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:108](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L108)
+
+#### Parameters
+
+##### event
+
+`KeyboardEvent`
+
+##### code?
+
+`KeyCode`
+
+##### modifiers?
+
+...`KeyboardModifier`[]
+
+#### Returns
+
+`void`
+
+***
+
+### applyTextContents()
+
+> `protected` **applyTextContents**(): `void`
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:232](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L232)
+
+#### Returns
+
+`void`
+
+***
+
+### clearValidationResult()
+
+> `protected` **clearValidationResult**(): `void`
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:173](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L173)
+
+#### Returns
+
+`void`
+
+***
+
+### configureAndAdd()
+
+> `protected` **configureAndAdd**(`element`, `containerElement`): `void`
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:86](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L86)
+
+#### Parameters
+
+##### element
+
+`HTMLInputElement` | `HTMLTextAreaElement`
+
+##### containerElement
+
+`HTMLElement`
+
+#### Returns
+
+`void`
+
+***
+
+### containerClass()
+
+> **containerClass**(): `string`
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:72](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L72)
+
+#### Returns
+
+`string`
+
+#### Overrides
+
+[`AbstractUIExtension`](../Class.AbstractUIExtension).[`containerClass`](../Class.AbstractUIExtension.md#containerclass)
+
+***
+
+### getOrCreateContainer()
+
+> `protected` **getOrCreateContainer**(`baseDivId`): `HTMLElement`
+
+Defined in: [packages/sprotty/src/base/ui-extensions/ui-extension.ts:89](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/ui-extensions/ui-extension.ts#L89)
+
+#### Parameters
+
+##### baseDivId
+
+`string`
+
+#### Returns
+
+`HTMLElement`
+
+#### Inherited from
+
+[`AbstractUIExtension`](../Class.AbstractUIExtension).[`getOrCreateContainer`](../Class.AbstractUIExtension.md#getorcreatecontainer)
+
+***
+
+### hide()
+
+> **hide**(): `void`
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:187](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L187)
+
+#### Returns
+
+`void`
+
+#### Overrides
+
+[`AbstractUIExtension`](../Class.AbstractUIExtension).[`hide`](../Class.AbstractUIExtension.md#hide)
+
+***
+
+### hideIfEscapeEvent()
+
+> `protected` **hideIfEscapeEvent**(`event`): `void`
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:104](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L104)
+
+#### Parameters
+
+##### event
+
+`KeyboardEvent`
+
+#### Returns
+
+`void`
+
+***
+
+### id()
+
+> **id**(): `string`
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:71](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L71)
+
+#### Returns
+
+`string`
+
+#### Overrides
+
+[`AbstractUIExtension`](../Class.AbstractUIExtension).[`id`](../Class.AbstractUIExtension.md#id)
+
+***
+
+### initialize()
+
+> `protected` **initialize**(): `boolean`
+
+Defined in: [packages/sprotty/src/base/ui-extensions/ui-extension.ts:75](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/ui-extensions/ui-extension.ts#L75)
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`AbstractUIExtension`](../Class.AbstractUIExtension).[`initialize`](../Class.AbstractUIExtension.md#initialize)
+
+***
+
+### initializeContents()
+
+> `protected` **initializeContents**(`containerElement`): `void`
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:76](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L76)
+
+Initializes the contents of this UI extension.
+
+Subclasses must implement this method to initialize the UI elements of this UI extension inside the specified `containerElement`.
+
+#### Parameters
+
+##### containerElement
+
+`HTMLElement`
+
+#### Returns
+
+`void`
+
+#### Overrides
+
+[`AbstractUIExtension`](../Class.AbstractUIExtension).[`initializeContents`](../Class.AbstractUIExtension.md#initializecontents)
+
+***
+
+### onBeforeShow()
+
+> `protected` **onBeforeShow**(`containerElement`, `root`, ...`contextElementIds`): `void`
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:199](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L199)
+
+Updates the `containerElement` under the given `context` before it becomes visible.
+
+Subclasses may override this method to, for instance, modifying the position of the
+`containerElement`, add or remove elements, etc. depending on the specified `root`
+or `contextElementIds`.
+
+#### Parameters
+
+##### containerElement
+
+`HTMLElement`
+
+##### root
+
+`Readonly`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+##### contextElementIds
+
+...`string`[]
+
+#### Returns
+
+`void`
+
+#### Overrides
+
+[`AbstractUIExtension`](../Class.AbstractUIExtension).[`onBeforeShow`](../Class.AbstractUIExtension.md#onbeforeshow)
+
+***
+
+### performLabelValidation()
+
+> `protected` **performLabelValidation**(`event`, `value`): `void`
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:144](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L144)
+
+#### Parameters
+
+##### event
+
+`KeyboardEvent`
+
+##### value
+
+`string`
+
+#### Returns
+
+`void`
+
+***
+
+### restoreFocus()
+
+> `protected` **restoreFocus**(): `void`
+
+Defined in: [packages/sprotty/src/base/ui-extensions/ui-extension.ts:68](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/ui-extensions/ui-extension.ts#L68)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`AbstractUIExtension`](../Class.AbstractUIExtension).[`restoreFocus`](../Class.AbstractUIExtension.md#restorefocus)
+
+***
+
+### setContainerVisible()
+
+> `protected` **setContainerVisible**(`visible`): `void`
+
+Defined in: [packages/sprotty/src/base/ui-extensions/ui-extension.ts:99](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/ui-extensions/ui-extension.ts#L99)
+
+#### Parameters
+
+##### visible
+
+`boolean`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`AbstractUIExtension`](../Class.AbstractUIExtension).[`setContainerVisible`](../Class.AbstractUIExtension.md#setcontainervisible)
+
+***
+
+### setPosition()
+
+> `protected` **setPosition**(`containerElement`): `void`
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:209](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L209)
+
+#### Parameters
+
+##### containerElement
+
+`HTMLElement`
+
+#### Returns
+
+`void`
+
+***
+
+### show()
+
+> **show**(`root`, ...`contextElementIds`): `void`
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:179](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L179)
+
+#### Parameters
+
+##### root
+
+`Readonly`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+##### contextElementIds
+
+...`string`[]
+
+#### Returns
+
+`void`
+
+#### Overrides
+
+[`AbstractUIExtension`](../Class.AbstractUIExtension).[`show`](../Class.AbstractUIExtension.md#show)
+
+***
+
+### showValidationResult()
+
+> `protected` **showValidationResult**(`result`): `void`
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:166](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L166)
+
+#### Parameters
+
+##### result
+
+[`EditLabelValidationResult`](../Interface.EditLabelValidationResult)
+
+#### Returns
+
+`void`
+
+***
+
+### validateLabel()
+
+> `protected` **validateLabel**(`value`): `Promise`\<[`EditLabelValidationResult`](../Interface.EditLabelValidationResult)\>
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:151](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L151)
+
+#### Parameters
+
+##### value
+
+`string`
+
+#### Returns
+
+`Promise`\<[`EditLabelValidationResult`](../Interface.EditLabelValidationResult)\>
+
+***
+
+### validateLabelIfContentChange()
+
+> `protected` **validateLabelIfContentChange**(`event`, `value`): `void`
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:115](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L115)
+
+#### Parameters
+
+##### event
+
+`KeyboardEvent`
+
+##### value
+
+`string`
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ElementFader.md b/hugo/content/docs/ref/sprotty-core/Class.ElementFader.md
new file mode 100644
index 0000000..abde8e9
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ElementFader.md
@@ -0,0 +1,14 @@
+
+### postUpdate()
+
+> **postUpdate**(): `void`
+
+Defined in: [packages/sprotty/src/features/fade/fade.ts:68](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/fade/fade.ts#L68)
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`IVNodePostprocessor`](../Interface.IVNodePostprocessor).[`postUpdate`](../Interface.IVNodePostprocessor.md#postupdate)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.EllipseAnchor.md b/hugo/content/docs/ref/sprotty-core/Class.EllipseAnchor.md
new file mode 100644
index 0000000..941df52
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.EllipseAnchor.md
@@ -0,0 +1,84 @@
+
+[sprotty](../globals) / EllipseAnchor
+
+# Class: EllipseAnchor
+
+Defined in: [packages/sprotty/src/features/routing/polyline-anchors.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/polyline-anchors.ts#L25)
+
+## Extended by
+
+- [`BezierEllipseAnchor`](../Class.BezierEllipseAnchor)
+
+## Implements
+
+- [`IAnchorComputer`](../Interface.IAnchorComputer)
+
+## Constructors
+
+### Constructor
+
+> **new EllipseAnchor**(): `EllipseAnchor`
+
+#### Returns
+
+`EllipseAnchor`
+
+## Accessors
+
+### kind
+
+#### Get Signature
+
+> **get** **kind**(): `string`
+
+Defined in: [packages/sprotty/src/features/routing/polyline-anchors.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/polyline-anchors.ts#L27)
+
+##### Returns
+
+`string`
+
+#### Implementation of
+
+[`IAnchorComputer`](../Interface.IAnchorComputer).[`kind`](../Interface.IAnchorComputer.md#kind)
+
+## Methods
+
+### getAnchor()
+
+> **getAnchor**(`connectable`, `refPoint`, `offset`): `Point`
+
+Defined in: [packages/sprotty/src/features/routing/polyline-anchors.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/polyline-anchors.ts#L31)
+
+Compute an anchor position for routing an edge towards this element.
+
+The default implementation returns the element's center point. If edges should be connected
+differently, e.g. to some point on the boundary of the element's view, the according computation
+should be implemented in a subclass by overriding this method.
+
+#### Parameters
+
+##### connectable
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl)
+
+The node or port an edge should be connected to.
+
+##### refPoint
+
+`Point`
+
+##### offset
+
+`number` = `0`
+
+An optional offset value to be considered in the anchor computation;
+ positive values should shift the anchor away from this element, negative values
+ should shift the anchor more to the inside. Use this to adapt ot arrow heads.
+
+#### Returns
+
+`Point`
+
+#### Implementation of
+
+[`IAnchorComputer`](../Interface.IAnchorComputer).[`getAnchor`](../Interface.IAnchorComputer.md#getanchor)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.EmptyGroupView.md b/hugo/content/docs/ref/sprotty-core/Class.EmptyGroupView.md
new file mode 100644
index 0000000..54023fb
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.EmptyGroupView.md
@@ -0,0 +1,48 @@
+
+[sprotty](../globals) / EmptyGroupView
+
+# Class: EmptyGroupView
+
+Defined in: [packages/sprotty/src/lib/svg-views.tsx:102](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/svg-views.tsx#L102)
+
+Base interface for the components that turn GModelElements into virtual DOM elements.
+
+## Implements
+
+- [`IView`](../Interface.IView)
+
+## Constructors
+
+### Constructor
+
+> **new EmptyGroupView**(): `EmptyGroupView`
+
+#### Returns
+
+`EmptyGroupView`
+
+## Methods
+
+### render()
+
+> **render**(`model`, `context`): `VNode`
+
+Defined in: [packages/sprotty/src/lib/svg-views.tsx:103](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/svg-views.tsx#L103)
+
+#### Parameters
+
+##### model
+
+`Readonly`\<[`SModelElementImpl`](../Class.SModelElementImpl)\>
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+#### Returns
+
+`VNode`
+
+#### Implementation of
+
+[`IView`](../Interface.IView).[`render`](../Interface.IView.md#render)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.EmptyView.md b/hugo/content/docs/ref/sprotty-core/Class.EmptyView.md
new file mode 100644
index 0000000..6aed222
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.EmptyView.md
@@ -0,0 +1,48 @@
+
+[sprotty](../globals) / EmptyView
+
+# Class: EmptyView
+
+Defined in: [packages/sprotty/src/base/views/view.tsx:167](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/view.tsx#L167)
+
+This view is used when the model is the EMPTY_ROOT.
+
+## Implements
+
+- [`IView`](../Interface.IView)
+
+## Constructors
+
+### Constructor
+
+> **new EmptyView**(): `EmptyView`
+
+#### Returns
+
+`EmptyView`
+
+## Methods
+
+### render()
+
+> **render**(`model`, `context`): `VNode`
+
+Defined in: [packages/sprotty/src/base/views/view.tsx:168](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/view.tsx#L168)
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+#### Returns
+
+`VNode`
+
+#### Implementation of
+
+[`IView`](../Interface.IView).[`render`](../Interface.IView.md#render)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ExpandButtonHandler.md b/hugo/content/docs/ref/sprotty-core/Class.ExpandButtonHandler.md
new file mode 100644
index 0000000..1c4a78a
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ExpandButtonHandler.md
@@ -0,0 +1,50 @@
+
+[sprotty](../globals) / ExpandButtonHandler
+
+# Class: ExpandButtonHandler
+
+Defined in: [packages/sprotty/src/features/expand/expand.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/expand/expand.ts#L25)
+
+## Implements
+
+- [`IButtonHandler`](../Interface.IButtonHandler)
+
+## Constructors
+
+### Constructor
+
+> **new ExpandButtonHandler**(): `ExpandButtonHandler`
+
+#### Returns
+
+`ExpandButtonHandler`
+
+## Properties
+
+### TYPE
+
+> `static` **TYPE**: `string` = `'button:expand'`
+
+Defined in: [packages/sprotty/src/features/expand/expand.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/expand/expand.ts#L26)
+
+## Methods
+
+### buttonPressed()
+
+> **buttonPressed**(`button`): `Action`[]
+
+Defined in: [packages/sprotty/src/features/expand/expand.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/expand/expand.ts#L28)
+
+#### Parameters
+
+##### button
+
+[`SButtonImpl`](../Class.SButtonImpl)
+
+#### Returns
+
+`Action`[]
+
+#### Implementation of
+
+[`IButtonHandler`](../Interface.IButtonHandler).[`buttonPressed`](../Interface.IButtonHandler.md#buttonpressed)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ExpandButtonView.md b/hugo/content/docs/ref/sprotty-core/Class.ExpandButtonView.md
new file mode 100644
index 0000000..a787828
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ExpandButtonView.md
@@ -0,0 +1,48 @@
+
+[sprotty](../globals) / ExpandButtonView
+
+# Class: ExpandButtonView
+
+Defined in: [packages/sprotty/src/features/expand/views.tsx:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/expand/views.tsx#L28)
+
+Base interface for the components that turn GModelElements into virtual DOM elements.
+
+## Implements
+
+- [`IView`](../Interface.IView)
+
+## Constructors
+
+### Constructor
+
+> **new ExpandButtonView**(): `ExpandButtonView`
+
+#### Returns
+
+`ExpandButtonView`
+
+## Methods
+
+### render()
+
+> **render**(`button`, `context`): `VNode`
+
+Defined in: [packages/sprotty/src/features/expand/views.tsx:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/expand/views.tsx#L29)
+
+#### Parameters
+
+##### button
+
+[`SButtonImpl`](../Class.SButtonImpl)
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+#### Returns
+
+`VNode`
+
+#### Implementation of
+
+[`IView`](../Interface.IView).[`render`](../Interface.IView.md#render)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ExportSvgCommand.md b/hugo/content/docs/ref/sprotty-core/Class.ExportSvgCommand.md
new file mode 100644
index 0000000..7e166d0
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ExportSvgCommand.md
@@ -0,0 +1,20 @@
+
+### undo()
+
+> **undo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/base/commands/command.ts:152](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command.ts#L152)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Inherited from
+
+[`HiddenCommand`](../Class.HiddenCommand).[`undo`](../Class.HiddenCommand.md#undo)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ExportSvgKeyListener.md b/hugo/content/docs/ref/sprotty-core/Class.ExportSvgKeyListener.md
new file mode 100644
index 0000000..47261b4
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ExportSvgKeyListener.md
@@ -0,0 +1,24 @@
+
+### keyUp()
+
+> **keyUp**(`element`, `event`): `Action`[]
+
+Defined in: [packages/sprotty/src/base/views/key-tool.ts:82](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/key-tool.ts#L82)
+
+#### Parameters
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`KeyboardEvent`
+
+#### Returns
+
+`Action`[]
+
+#### Inherited from
+
+[`KeyListener`](../Class.KeyListener).[`keyUp`](../Class.KeyListener.md#keyup)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ExportSvgPostprocessor.md b/hugo/content/docs/ref/sprotty-core/Class.ExportSvgPostprocessor.md
new file mode 100644
index 0000000..9c3ff07
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ExportSvgPostprocessor.md
@@ -0,0 +1,20 @@
+
+### postUpdate()
+
+> **postUpdate**(`cause?`): `void`
+
+Defined in: [packages/sprotty/src/features/export/export.ts:116](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/export/export.ts#L116)
+
+#### Parameters
+
+##### cause?
+
+`Action`
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`IVNodePostprocessor`](../Interface.IVNodePostprocessor).[`postUpdate`](../Interface.IVNodePostprocessor.md#postupdate)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.FactoryRegistry.md b/hugo/content/docs/ref/sprotty-core/Class.FactoryRegistry.md
new file mode 100644
index 0000000..b46eb6e
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.FactoryRegistry.md
@@ -0,0 +1,64 @@
+
+### missing()
+
+> `protected` **missing**(`key`, `arg`): `T`
+
+Defined in: [packages/sprotty/src/utils/registry.ts:97](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/registry.ts#L97)
+
+#### Parameters
+
+##### key
+
+`string`
+
+##### arg
+
+`U`
+
+#### Returns
+
+`T`
+
+***
+
+### override()
+
+> **override**(`key`, `factory`): `void`
+
+Defined in: [packages/sprotty/src/utils/registry.ts:68](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/registry.ts#L68)
+
+#### Parameters
+
+##### key
+
+`string`
+
+##### factory
+
+(`u`) => `T`
+
+#### Returns
+
+`void`
+
+***
+
+### register()
+
+> **register**(`key`, `factory`): `void`
+
+Defined in: [packages/sprotty/src/utils/registry.ts:58](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/registry.ts#L58)
+
+#### Parameters
+
+##### key
+
+`string`
+
+##### factory
+
+(`u`) => `T`
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.FadeAnimation.md b/hugo/content/docs/ref/sprotty-core/Class.FadeAnimation.md
new file mode 100644
index 0000000..ebb7d9d
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.FadeAnimation.md
@@ -0,0 +1,92 @@
+
+### model
+
+> `protected` **model**: [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/features/fade/fade.ts:34](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/fade/fade.ts#L34)
+
+***
+
+### removeAfterFadeOut
+
+> `protected` **removeAfterFadeOut**: `boolean` = `false`
+
+Defined in: [packages/sprotty/src/features/fade/fade.ts:37](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/fade/fade.ts#L37)
+
+***
+
+### stopped
+
+> `protected` **stopped**: `boolean` = `false`
+
+Defined in: [packages/sprotty/src/base/animations/animation.ts:30](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/animations/animation.ts#L30)
+
+#### Inherited from
+
+[`Animation`](../Class.Animation).[`stopped`](../Class.Animation.md#stopped)
+
+## Methods
+
+### start()
+
+> **start**(): `Promise`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+Defined in: [packages/sprotty/src/base/animations/animation.ts:32](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/animations/animation.ts#L32)
+
+#### Returns
+
+`Promise`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+#### Inherited from
+
+[`Animation`](../Class.Animation).[`start`](../Class.Animation.md#start)
+
+***
+
+### stop()
+
+> **stop**(): `void`
+
+Defined in: [packages/sprotty/src/base/animations/animation.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/animations/animation.ts#L74)
+
+Stop the animation at the current state.
+The promise returned by start() will be resolved with the current state after the next tweening step.
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`Animation`](../Class.Animation).[`stop`](../Class.Animation.md#stop)
+
+***
+
+### tween()
+
+> **tween**(`t`, `context`): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/features/fade/fade.ts:41](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/fade/fade.ts#L41)
+
+This method called by the animation at each rendering pass until
+the duration is reached. Implement it to interpolate the state.
+
+#### Parameters
+
+##### t
+
+`number`
+
+varies between 0 (start of animation) and 1 (end of animation)
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Overrides
+
+[`Animation`](../Class.Animation).[`tween`](../Class.Animation.md#tween)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.FitToScreenCommand.md b/hugo/content/docs/ref/sprotty-core/Class.FitToScreenCommand.md
new file mode 100644
index 0000000..78b0df2
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.FitToScreenCommand.md
@@ -0,0 +1,216 @@
+
+### oldViewport
+
+> **oldViewport**: `Viewport`
+
+Defined in: [packages/sprotty/src/features/viewport/center-fit.ts:37](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/center-fit.ts#L37)
+
+#### Inherited from
+
+[`BoundsAwareViewportCommand`](../Class.BoundsAwareViewportCommand).[`oldViewport`](../Class.BoundsAwareViewportCommand.md#oldviewport)
+
+***
+
+### viewerOptions
+
+> `protected` **viewerOptions**: [`ViewerOptions`](../Interface.ViewerOptions)
+
+Defined in: [packages/sprotty/src/features/viewport/center-fit.ts:36](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/center-fit.ts#L36)
+
+#### Inherited from
+
+[`BoundsAwareViewportCommand`](../Class.BoundsAwareViewportCommand).[`viewerOptions`](../Class.BoundsAwareViewportCommand.md#vieweroptions)
+
+***
+
+### KIND
+
+> `readonly` `static` **KIND**: `"fit"` = `FitToScreenAction.KIND`
+
+Defined in: [packages/sprotty/src/features/viewport/center-fit.ts:165](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/center-fit.ts#L165)
+
+## Methods
+
+### boundsInViewport()
+
+> `protected` **boundsInViewport**(`element`, `bounds`, `viewport`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/viewport/center-fit.ts:85](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/center-fit.ts#L85)
+
+#### Parameters
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### bounds
+
+`Bounds`
+
+##### viewport
+
+[`SModelRootImpl`](../Class.SModelRootImpl) & `Viewport`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`BoundsAwareViewportCommand`](../Class.BoundsAwareViewportCommand).[`boundsInViewport`](../Class.BoundsAwareViewportCommand.md#boundsinviewport)
+
+***
+
+### equal()
+
+> `protected` **equal**(`vp1`, `vp2`): `boolean`
+
+Defined in: [packages/sprotty/src/features/viewport/center-fit.ts:127](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/center-fit.ts#L127)
+
+#### Parameters
+
+##### vp1
+
+`Viewport`
+
+##### vp2
+
+`Viewport`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`BoundsAwareViewportCommand`](../Class.BoundsAwareViewportCommand).[`equal`](../Class.BoundsAwareViewportCommand.md#equal)
+
+***
+
+### execute()
+
+> **execute**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/viewport/center-fit.ts:96](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/center-fit.ts#L96)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Inherited from
+
+[`BoundsAwareViewportCommand`](../Class.BoundsAwareViewportCommand).[`execute`](../Class.BoundsAwareViewportCommand.md#execute)
+
+***
+
+### getElementIds()
+
+> **getElementIds**(): `string`[]
+
+Defined in: [packages/sprotty/src/features/viewport/center-fit.ts:171](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/center-fit.ts#L171)
+
+#### Returns
+
+`string`[]
+
+#### Overrides
+
+[`BoundsAwareViewportCommand`](../Class.BoundsAwareViewportCommand).[`getElementIds`](../Class.BoundsAwareViewportCommand.md#getelementids)
+
+***
+
+### getNewViewport()
+
+> **getNewViewport**(`bounds`, `model`): `undefined` \| `Viewport`
+
+Defined in: [packages/sprotty/src/features/viewport/center-fit.ts:175](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/center-fit.ts#L175)
+
+#### Parameters
+
+##### bounds
+
+`Bounds`
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Returns
+
+`undefined` \| `Viewport`
+
+#### Overrides
+
+[`BoundsAwareViewportCommand`](../Class.BoundsAwareViewportCommand).[`getNewViewport`](../Class.BoundsAwareViewportCommand.md#getnewviewport)
+
+***
+
+### initialize()
+
+> `protected` **initialize**(`model`): `void`
+
+Defined in: [packages/sprotty/src/features/viewport/center-fit.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/center-fit.ts#L44)
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`BoundsAwareViewportCommand`](../Class.BoundsAwareViewportCommand).[`initialize`](../Class.BoundsAwareViewportCommand.md#initialize)
+
+***
+
+### redo()
+
+> **redo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/viewport/center-fit.ts:114](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/center-fit.ts#L114)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Inherited from
+
+[`BoundsAwareViewportCommand`](../Class.BoundsAwareViewportCommand).[`redo`](../Class.BoundsAwareViewportCommand.md#redo)
+
+***
+
+### undo()
+
+> **undo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/viewport/center-fit.ts:101](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/center-fit.ts#L101)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Inherited from
+
+[`BoundsAwareViewportCommand`](../Class.BoundsAwareViewportCommand).[`undo`](../Class.BoundsAwareViewportCommand.md#undo)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.FocusFixPostprocessor.md b/hugo/content/docs/ref/sprotty-core/Class.FocusFixPostprocessor.md
new file mode 100644
index 0000000..08be580
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.FocusFixPostprocessor.md
@@ -0,0 +1,14 @@
+
+### postUpdate()
+
+> **postUpdate**(): `void`
+
+Defined in: [packages/sprotty/src/base/views/vnode-postprocessor.ts:42](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/vnode-postprocessor.ts#L42)
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`IVNodePostprocessor`](../Interface.IVNodePostprocessor).[`postUpdate`](../Interface.IVNodePostprocessor.md#postupdate)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ForeignObjectElementImpl.md b/hugo/content/docs/ref/sprotty-core/Class.ForeignObjectElementImpl.md
new file mode 100644
index 0000000..a775b29
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ForeignObjectElementImpl.md
@@ -0,0 +1,345 @@
+
+### cssClasses?
+
+> `optional` **cssClasses**: `string`[]
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L29)
+
+#### Inherited from
+
+[`ShapedPreRenderedElementImpl`](../Class.ShapedPreRenderedElementImpl).[`cssClasses`](../Class.ShapedPreRenderedElementImpl.md#cssclasses)
+
+***
+
+### features?
+
+> `optional` **features**: [`FeatureSet`](../Interface.FeatureSet)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L28)
+
+#### Inherited from
+
+[`ShapedPreRenderedElementImpl`](../Class.ShapedPreRenderedElementImpl).[`features`](../Class.ShapedPreRenderedElementImpl.md#features)
+
+***
+
+### id
+
+> **id**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L27)
+
+#### Inherited from
+
+[`ShapedPreRenderedElementImpl`](../Class.ShapedPreRenderedElementImpl).[`id`](../Class.ShapedPreRenderedElementImpl.md#id)
+
+***
+
+### namespace
+
+> **namespace**: `string`
+
+Defined in: [packages/sprotty/src/lib/model.ts:168](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/model.ts#L168)
+
+***
+
+### parent
+
+> `readonly` **parent**: [`SParentElementImpl`](../Class.SParentElementImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:159](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L159)
+
+#### Inherited from
+
+[`ShapedPreRenderedElementImpl`](../Class.ShapedPreRenderedElementImpl).[`parent`](../Class.ShapedPreRenderedElementImpl.md#parent)
+
+***
+
+### position
+
+> **position**: `Point` = `Point.ORIGIN`
+
+Defined in: [packages/sprotty/src/lib/model.ts:126](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/model.ts#L126)
+
+#### Inherited from
+
+[`ShapedPreRenderedElementImpl`](../Class.ShapedPreRenderedElementImpl).[`position`](../Class.ShapedPreRenderedElementImpl.md#position)
+
+***
+
+### selected
+
+> **selected**: `boolean` = `false`
+
+Defined in: [packages/sprotty/src/lib/model.ts:128](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/model.ts#L128)
+
+#### Inherited from
+
+[`ShapedPreRenderedElementImpl`](../Class.ShapedPreRenderedElementImpl).[`selected`](../Class.ShapedPreRenderedElementImpl.md#selected)
+
+***
+
+### size
+
+> **size**: `Dimension` = `Dimension.EMPTY`
+
+Defined in: [packages/sprotty/src/lib/model.ts:127](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/model.ts#L127)
+
+#### Inherited from
+
+[`ShapedPreRenderedElementImpl`](../Class.ShapedPreRenderedElementImpl).[`size`](../Class.ShapedPreRenderedElementImpl.md#size)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L26)
+
+#### Inherited from
+
+[`ShapedPreRenderedElementImpl`](../Class.ShapedPreRenderedElementImpl).[`type`](../Class.ShapedPreRenderedElementImpl.md#type)
+
+***
+
+### DEFAULT\_FEATURES
+
+> `readonly` `static` **DEFAULT\_FEATURES**: `symbol`[]
+
+Defined in: [packages/sprotty/src/lib/model.ts:124](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/model.ts#L124)
+
+#### Inherited from
+
+[`ShapedPreRenderedElementImpl`](../Class.ShapedPreRenderedElementImpl).[`DEFAULT_FEATURES`](../Class.ShapedPreRenderedElementImpl.md#default_features)
+
+## Accessors
+
+### bounds
+
+#### Get Signature
+
+> **get** **bounds**(): `Bounds`
+
+Defined in: [packages/sprotty/src/lib/model.ts:169](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/model.ts#L169)
+
+##### Returns
+
+`Bounds`
+
+#### Overrides
+
+[`ShapedPreRenderedElementImpl`](../Class.ShapedPreRenderedElementImpl).[`bounds`](../Class.ShapedPreRenderedElementImpl.md#bounds)
+
+***
+
+### index
+
+#### Get Signature
+
+> **get** **index**(): [`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L44)
+
+##### Returns
+
+[`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+#### Inherited from
+
+[`ShapedPreRenderedElementImpl`](../Class.ShapedPreRenderedElementImpl).[`index`](../Class.ShapedPreRenderedElementImpl.md#index)
+
+***
+
+### root
+
+#### Get Signature
+
+> **get** **root**(): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L31)
+
+##### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Inherited from
+
+[`ShapedPreRenderedElementImpl`](../Class.ShapedPreRenderedElementImpl).[`root`](../Class.ShapedPreRenderedElementImpl.md#root)
+
+## Methods
+
+### add()
+
+> **add**(`child`, `index?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L74)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### index?
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`ShapedPreRenderedElementImpl`](../Class.ShapedPreRenderedElementImpl).[`add`](../Class.ShapedPreRenderedElementImpl.md#add)
+
+***
+
+### hasFeature()
+
+> **hasFeature**(`feature`): `boolean`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L52)
+
+A feature is a symbol identifying some functionality that can be enabled or disabled for
+a model element. The set of supported features is determined by the `features` property.
+
+#### Parameters
+
+##### feature
+
+`symbol`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`ShapedPreRenderedElementImpl`](../Class.ShapedPreRenderedElementImpl).[`hasFeature`](../Class.ShapedPreRenderedElementImpl.md#hasfeature)
+
+***
+
+### localToParent()
+
+> **localToParent**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:136](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L136)
+
+Transform the given bounds from the local coordinate system of this element to the coordinate
+system of its parent. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`ShapedPreRenderedElementImpl`](../Class.ShapedPreRenderedElementImpl).[`localToParent`](../Class.ShapedPreRenderedElementImpl.md#localtoparent)
+
+***
+
+### move()
+
+> **move**(`child`, `newIndex`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:115](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L115)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### newIndex
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`ShapedPreRenderedElementImpl`](../Class.ShapedPreRenderedElementImpl).[`move`](../Class.ShapedPreRenderedElementImpl.md#move)
+
+***
+
+### parentToLocal()
+
+> **parentToLocal**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:147](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L147)
+
+Transform the given bounds from the coordinate system of this element's parent to its local
+coordinate system. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`ShapedPreRenderedElementImpl`](../Class.ShapedPreRenderedElementImpl).[`parentToLocal`](../Class.ShapedPreRenderedElementImpl.md#parenttolocal)
+
+***
+
+### remove()
+
+> **remove**(`child`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:88](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L88)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`ShapedPreRenderedElementImpl`](../Class.ShapedPreRenderedElementImpl).[`remove`](../Class.ShapedPreRenderedElementImpl.md#remove)
+
+***
+
+### removeAll()
+
+> **removeAll**(`filter?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:98](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L98)
+
+#### Parameters
+
+##### filter?
+
+(`e`) => `boolean`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`ShapedPreRenderedElementImpl`](../Class.ShapedPreRenderedElementImpl).[`removeAll`](../Class.ShapedPreRenderedElementImpl.md#removeall)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ForeignObjectView.md b/hugo/content/docs/ref/sprotty-core/Class.ForeignObjectView.md
new file mode 100644
index 0000000..129911e
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ForeignObjectView.md
@@ -0,0 +1,49 @@
+
+[sprotty](../globals) / ForeignObjectView
+
+# Class: ForeignObjectView
+
+Defined in: [packages/sprotty/src/lib/generic-views.tsx:50](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/generic-views.tsx#L50)
+
+An SVG `foreignObject` view with a namespace specified by the provided `ForeignObjectElement`.
+Note that `foreignObject` may not be supported by all browsers or SVG viewers.
+
+## Implements
+
+- [`IView`](../Interface.IView)
+
+## Constructors
+
+### Constructor
+
+> **new ForeignObjectView**(): `ForeignObjectView`
+
+#### Returns
+
+`ForeignObjectView`
+
+## Methods
+
+### render()
+
+> **render**(`model`, `context`): `undefined` \| `VNode`
+
+Defined in: [packages/sprotty/src/lib/generic-views.tsx:51](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/generic-views.tsx#L51)
+
+#### Parameters
+
+##### model
+
+[`ForeignObjectElementImpl`](../Class.ForeignObjectElementImpl)
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+#### Returns
+
+`undefined` \| `VNode`
+
+#### Implementation of
+
+[`IView`](../Interface.IView).[`render`](../Interface.IView.md#render)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ForwardingLogger.md b/hugo/content/docs/ref/sprotty-core/Class.ForwardingLogger.md
new file mode 100644
index 0000000..b027267
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ForwardingLogger.md
@@ -0,0 +1,88 @@
+
+### info()
+
+> **info**(`thisArg`, `message`, ...`params`): `void`
+
+Defined in: [packages/sprotty/src/model-source/logging.ts:42](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/logging.ts#L42)
+
+#### Parameters
+
+##### thisArg
+
+`any`
+
+##### message
+
+`string`
+
+##### params
+
+...`any`[]
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`ILogger`](../Interface.ILogger).[`info`](../Interface.ILogger.md#info)
+
+***
+
+### log()
+
+> **log**(`thisArg`, `message`, ...`params`): `void`
+
+Defined in: [packages/sprotty/src/model-source/logging.ts:47](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/logging.ts#L47)
+
+#### Parameters
+
+##### thisArg
+
+`any`
+
+##### message
+
+`string`
+
+##### params
+
+...`any`[]
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`ILogger`](../Interface.ILogger).[`log`](../Interface.ILogger.md#log)
+
+***
+
+### warn()
+
+> **warn**(`thisArg`, `message`, ...`params`): `void`
+
+Defined in: [packages/sprotty/src/model-source/logging.ts:37](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/logging.ts#L37)
+
+#### Parameters
+
+##### thisArg
+
+`any`
+
+##### message
+
+`string`
+
+##### params
+
+...`any`[]
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`ILogger`](../Interface.ILogger).[`warn`](../Interface.ILogger.md#warn)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.GetSelectionCommand.md b/hugo/content/docs/ref/sprotty-core/Class.GetSelectionCommand.md
new file mode 100644
index 0000000..07d1fd4
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.GetSelectionCommand.md
@@ -0,0 +1,94 @@
+
+### KIND
+
+> `readonly` `static` **KIND**: `"getSelection"` = `GetSelectionAction.KIND`
+
+Defined in: [packages/sprotty/src/features/select/select.ts:255](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/select/select.ts#L255)
+
+## Methods
+
+### execute()
+
+> **execute**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/base/commands/request-command.ts:32](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/request-command.ts#L32)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Inherited from
+
+`ModelRequestCommand.execute`
+
+***
+
+### redo()
+
+> **redo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/base/commands/request-command.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/request-command.ts#L44)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Inherited from
+
+`ModelRequestCommand.redo`
+
+***
+
+### retrieveResult()
+
+> `protected` **retrieveResult**(`context`): `ResponseAction`
+
+Defined in: [packages/sprotty/src/features/select/select.ts:263](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/select/select.ts#L263)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+`ResponseAction`
+
+#### Overrides
+
+`ModelRequestCommand.retrieveResult`
+
+***
+
+### undo()
+
+> **undo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/base/commands/request-command.ts:40](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/request-command.ts#L40)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Inherited from
+
+`ModelRequestCommand.undo`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.GetViewportCommand.md b/hugo/content/docs/ref/sprotty-core/Class.GetViewportCommand.md
new file mode 100644
index 0000000..9d53542
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.GetViewportCommand.md
@@ -0,0 +1,64 @@
+
+### redo()
+
+> **redo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/base/commands/request-command.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/request-command.ts#L44)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Inherited from
+
+`ModelRequestCommand.redo`
+
+***
+
+### retrieveResult()
+
+> `protected` **retrieveResult**(`context`): `ResponseAction`
+
+Defined in: [packages/sprotty/src/features/viewport/viewport.ts:95](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/viewport.ts#L95)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+`ResponseAction`
+
+#### Overrides
+
+`ModelRequestCommand.retrieveResult`
+
+***
+
+### undo()
+
+> **undo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/base/commands/request-command.ts:40](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/request-command.ts#L40)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Inherited from
+
+`ModelRequestCommand.undo`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.HBoxLayouter.md b/hugo/content/docs/ref/sprotty-core/Class.HBoxLayouter.md
new file mode 100644
index 0000000..3b48de1
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.HBoxLayouter.md
@@ -0,0 +1,288 @@
+
+### getDx()
+
+> `protected` **getDx**(`hAlign`, `bounds`, `maxWidth`): `number`
+
+Defined in: [packages/sprotty/src/features/bounds/abstract-layout.ts:118](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/abstract-layout.ts#L118)
+
+#### Parameters
+
+##### hAlign
+
+`HAlignment`
+
+##### bounds
+
+`Bounds`
+
+##### maxWidth
+
+`number`
+
+#### Returns
+
+`number`
+
+#### Inherited from
+
+`AbstractLayout.getDx`
+
+***
+
+### getDy()
+
+> `protected` **getDy**(`vAlign`, `bounds`, `maxHeight`): `number`
+
+Defined in: [packages/sprotty/src/features/bounds/abstract-layout.ts:129](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/abstract-layout.ts#L129)
+
+#### Parameters
+
+##### vAlign
+
+`VAlignment`
+
+##### bounds
+
+`Bounds`
+
+##### maxHeight
+
+`number`
+
+#### Returns
+
+`number`
+
+#### Inherited from
+
+`AbstractLayout.getDy`
+
+***
+
+### getFinalContainerBounds()
+
+> `protected` **getFinalContainerBounds**(`container`, `lastOffset`, `options`, `maxWidth`, `maxHeight`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/abstract-layout.ts:54](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/abstract-layout.ts#L54)
+
+#### Parameters
+
+##### container
+
+[`SParentElementImpl`](../Class.SParentElementImpl) & [`InternalLayoutContainer`](../Interface.InternalLayoutContainer)
+
+##### lastOffset
+
+`Point`
+
+##### options
+
+[`HBoxLayoutOptions`](../Interface.HBoxLayoutOptions)
+
+##### maxWidth
+
+`number`
+
+##### maxHeight
+
+`number`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+`AbstractLayout.getFinalContainerBounds`
+
+***
+
+### getFixedContainerBounds()
+
+> `protected` **getFixedContainerBounds**(`container`, `layoutOptions`, `layouter`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/abstract-layout.ts:67](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/abstract-layout.ts#L67)
+
+#### Parameters
+
+##### container
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### layoutOptions
+
+[`HBoxLayoutOptions`](../Interface.HBoxLayoutOptions)
+
+##### layouter
+
+[`StatefulLayouter`](../Class.StatefulLayouter)
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+`AbstractLayout.getFixedContainerBounds`
+
+***
+
+### getLayoutOptions()
+
+> `protected` **getLayoutOptions**(`element`): [`HBoxLayoutOptions`](../Interface.HBoxLayoutOptions)
+
+Defined in: [packages/sprotty/src/features/bounds/abstract-layout.ts:148](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/abstract-layout.ts#L148)
+
+#### Parameters
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+#### Returns
+
+[`HBoxLayoutOptions`](../Interface.HBoxLayoutOptions)
+
+#### Inherited from
+
+`AbstractLayout.getLayoutOptions`
+
+***
+
+### layout()
+
+> **layout**(`container`, `layouter`): `void`
+
+Defined in: [packages/sprotty/src/features/bounds/abstract-layout.ts:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/abstract-layout.ts#L29)
+
+#### Parameters
+
+##### container
+
+[`SParentElementImpl`](../Class.SParentElementImpl) & [`InternalLayoutContainer`](../Interface.InternalLayoutContainer)
+
+##### layouter
+
+[`StatefulLayouter`](../Class.StatefulLayouter)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+`AbstractLayout.layout`
+
+***
+
+### layoutChild()
+
+> `protected` **layoutChild**(`child`, `boundsData`, `bounds`, `childOptions`, `containerOptions`, `currentOffset`, `maxWidth`, `maxHeight`): `Point`
+
+Defined in: [packages/sprotty/src/features/bounds/hbox-layout.ts:67](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/hbox-layout.ts#L67)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### boundsData
+
+[`BoundsData`](../Class.BoundsData)
+
+##### bounds
+
+`Bounds`
+
+##### childOptions
+
+[`HBoxLayoutOptions`](../Interface.HBoxLayoutOptions)
+
+##### containerOptions
+
+[`HBoxLayoutOptions`](../Interface.HBoxLayoutOptions)
+
+##### currentOffset
+
+`Point`
+
+##### maxWidth
+
+`number`
+
+##### maxHeight
+
+`number`
+
+#### Returns
+
+`Point`
+
+#### Overrides
+
+`AbstractLayout.layoutChild`
+
+***
+
+### layoutChildren()
+
+> `protected` **layoutChildren**(`container`, `layouter`, `containerOptions`, `maxWidth`, `maxHeight`): `Point`
+
+Defined in: [packages/sprotty/src/features/bounds/abstract-layout.ts:93](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/abstract-layout.ts#L93)
+
+#### Parameters
+
+##### container
+
+[`SParentElementImpl`](../Class.SParentElementImpl) & [`InternalLayoutContainer`](../Interface.InternalLayoutContainer)
+
+##### layouter
+
+[`StatefulLayouter`](../Class.StatefulLayouter)
+
+##### containerOptions
+
+[`HBoxLayoutOptions`](../Interface.HBoxLayoutOptions)
+
+##### maxWidth
+
+`number`
+
+##### maxHeight
+
+`number`
+
+#### Returns
+
+`Point`
+
+#### Inherited from
+
+`AbstractLayout.layoutChildren`
+
+***
+
+### spread()
+
+> `protected` **spread**(`a`, `b`): [`HBoxLayoutOptions`](../Interface.HBoxLayoutOptions)
+
+Defined in: [packages/sprotty/src/features/bounds/hbox-layout.ts:104](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/hbox-layout.ts#L104)
+
+#### Parameters
+
+##### a
+
+[`HBoxLayoutOptions`](../Interface.HBoxLayoutOptions)
+
+##### b
+
+[`HBoxLayoutOptions`](../Interface.HBoxLayoutOptions)
+
+#### Returns
+
+[`HBoxLayoutOptions`](../Interface.HBoxLayoutOptions)
+
+#### Overrides
+
+`AbstractLayout.spread`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.HiddenBoundsUpdater.md b/hugo/content/docs/ref/sprotty-core/Class.HiddenBoundsUpdater.md
new file mode 100644
index 0000000..d938f7a
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.HiddenBoundsUpdater.md
@@ -0,0 +1,95 @@
+
+### root
+
+> **root**: `undefined` \| [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/features/bounds/hidden-bounds-updater.ts:58](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/hidden-bounds-updater.ts#L58)
+
+## Methods
+
+### decorate()
+
+> **decorate**(`vnode`, `element`): `VNode`
+
+Defined in: [packages/sprotty/src/features/bounds/hidden-bounds-updater.ts:60](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/hidden-bounds-updater.ts#L60)
+
+#### Parameters
+
+##### vnode
+
+`VNode`
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+#### Returns
+
+`VNode`
+
+#### Implementation of
+
+[`IVNodePostprocessor`](../Interface.IVNodePostprocessor).[`decorate`](../Interface.IVNodePostprocessor.md#decorate)
+
+***
+
+### getBounds()
+
+> `protected` **getBounds**(`elm`, `element`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/hidden-bounds-updater.ts:158](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/hidden-bounds-updater.ts#L158)
+
+Compute the bounds of the given DOM element. Override this method to customize how
+the bounding box of a rendered view is determined.
+
+In case your Sprotty model element contains children that are rendered outside of
+their parent, you can add the `ATTR_BBOX_ELEMENT` attribute to the SVG element
+that shall be used to compute the bounding box.
+
+#### Parameters
+
+##### elm
+
+`Node`
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl) & [`InternalBoundsAware`](../Interface.InternalBoundsAware)
+
+#### Returns
+
+`Bounds`
+
+***
+
+### getBoundsFromDOM()
+
+> `protected` **getBoundsFromDOM**(): `void`
+
+Defined in: [packages/sprotty/src/features/bounds/hidden-bounds-updater.ts:115](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/hidden-bounds-updater.ts#L115)
+
+#### Returns
+
+`void`
+
+***
+
+### postUpdate()
+
+> **postUpdate**(`cause?`): `void`
+
+Defined in: [packages/sprotty/src/features/bounds/hidden-bounds-updater.ts:75](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/hidden-bounds-updater.ts#L75)
+
+#### Parameters
+
+##### cause?
+
+`Action`
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`IVNodePostprocessor`](../Interface.IVNodePostprocessor).[`postUpdate`](../Interface.IVNodePostprocessor.md#postupdate)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.HiddenCommand.md b/hugo/content/docs/ref/sprotty-core/Class.HiddenCommand.md
new file mode 100644
index 0000000..3bebcc8
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.HiddenCommand.md
@@ -0,0 +1,20 @@
+
+### undo()
+
+> **undo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/base/commands/command.ts:152](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command.ts#L152)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`Command`](../Class.Command).[`undo`](../Class.Command.md#undo)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.HiddenModelViewer.md b/hugo/content/docs/ref/sprotty-core/Class.HiddenModelViewer.md
new file mode 100644
index 0000000..baf063d
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.HiddenModelViewer.md
@@ -0,0 +1,40 @@
+
+### options
+
+> `protected` **options**: [`ViewerOptions`](../Interface.ViewerOptions)
+
+Defined in: [packages/sprotty/src/base/views/viewer.tsx:230](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer.tsx#L230)
+
+***
+
+### patcher
+
+> `protected` `readonly` **patcher**: [`Patcher`](../TypeAlias.Patcher)
+
+Defined in: [packages/sprotty/src/base/views/viewer.tsx:241](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer.tsx#L241)
+
+## Methods
+
+### update()
+
+> **update**(`hiddenModel`, `cause?`): `void`
+
+Defined in: [packages/sprotty/src/base/views/viewer.tsx:245](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer.tsx#L245)
+
+#### Parameters
+
+##### hiddenModel
+
+`Readonly`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+##### cause?
+
+`Action`
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`IViewer`](../Interface.IViewer).[`update`](../Interface.IViewer.md#update)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.HoverFeedbackCommand.md b/hugo/content/docs/ref/sprotty-core/Class.HoverFeedbackCommand.md
new file mode 100644
index 0000000..fe2b6d2
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.HoverFeedbackCommand.md
@@ -0,0 +1,20 @@
+
+### undo()
+
+> **undo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:55](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L55)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`SystemCommand`](../Class.SystemCommand).[`undo`](../Class.SystemCommand.md#undo)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.HoverKeyListener.md b/hugo/content/docs/ref/sprotty-core/Class.HoverKeyListener.md
new file mode 100644
index 0000000..47261b4
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.HoverKeyListener.md
@@ -0,0 +1,24 @@
+
+### keyUp()
+
+> **keyUp**(`element`, `event`): `Action`[]
+
+Defined in: [packages/sprotty/src/base/views/key-tool.ts:82](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/key-tool.ts#L82)
+
+#### Parameters
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`KeyboardEvent`
+
+#### Returns
+
+`Action`[]
+
+#### Inherited from
+
+[`KeyListener`](../Class.KeyListener).[`keyUp`](../Class.KeyListener.md#keyup)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.HoverMouseListener.md b/hugo/content/docs/ref/sprotty-core/Class.HoverMouseListener.md
new file mode 100644
index 0000000..515a0f5
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.HoverMouseListener.md
@@ -0,0 +1,524 @@
+
+### state
+
+> `protected` **state**: [`HoverState`](../Interface.HoverState)
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:103](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L103)
+
+#### Inherited from
+
+[`AbstractHoverMouseListener`](../Class.AbstractHoverMouseListener).[`state`](../Class.AbstractHoverMouseListener.md#state)
+
+## Methods
+
+### allowSidePosition()
+
+> `protected` **allowSidePosition**(`target`, `side`, `distance`): `boolean`
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:177](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L177)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### side
+
+`"left"` | `"right"` | `"above"` | `"below"`
+
+##### distance
+
+`number`
+
+#### Returns
+
+`boolean`
+
+***
+
+### closeOnMouseMove()
+
+> `protected` **closeOnMouseMove**(`target`, `event`): `boolean`
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:276](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L276)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`boolean`
+
+***
+
+### computePopupBounds()
+
+> `protected` **computePopupBounds**(`target`, `mousePosition`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:148](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L148)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### mousePosition
+
+`Point`
+
+#### Returns
+
+`Bounds`
+
+***
+
+### contextMenu()
+
+> **contextMenu**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:206](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L206)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`AbstractHoverMouseListener`](../Class.AbstractHoverMouseListener).[`contextMenu`](../Class.AbstractHoverMouseListener.md#contextmenu)
+
+***
+
+### decorate()
+
+> **decorate**(`vnode`, `element`): `VNode`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:218](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L218)
+
+#### Parameters
+
+##### vnode
+
+`VNode`
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+#### Returns
+
+`VNode`
+
+#### Inherited from
+
+[`AbstractHoverMouseListener`](../Class.AbstractHoverMouseListener).[`decorate`](../Class.AbstractHoverMouseListener.md#decorate)
+
+***
+
+### doubleClick()
+
+> **doubleClick**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:202](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L202)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`AbstractHoverMouseListener`](../Class.AbstractHoverMouseListener).[`doubleClick`](../Class.AbstractHoverMouseListener.md#doubleclick)
+
+***
+
+### dragOver()
+
+> **dragOver**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:210](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L210)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`AbstractHoverMouseListener`](../Class.AbstractHoverMouseListener).[`dragOver`](../Class.AbstractHoverMouseListener.md#dragover)
+
+***
+
+### drop()
+
+> **drop**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:214](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L214)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`AbstractHoverMouseListener`](../Class.AbstractHoverMouseListener).[`drop`](../Class.AbstractHoverMouseListener.md#drop)
+
+***
+
+### getElementFromEventPosition()
+
+> `protected` **getElementFromEventPosition**(`event`): `null` \| `Element`
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:247](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L247)
+
+#### Parameters
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`null` \| `Element`
+
+***
+
+### isSprottyPopup()
+
+> `protected` **isSprottyPopup**(`element`): `boolean`
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:251](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L251)
+
+#### Parameters
+
+##### element
+
+`null` | `Element`
+
+#### Returns
+
+`boolean`
+
+***
+
+### mouseDown()
+
+> **mouseDown**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:105](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L105)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`AbstractHoverMouseListener`](../Class.AbstractHoverMouseListener).[`mouseDown`](../Class.AbstractHoverMouseListener.md#mousedown)
+
+***
+
+### mouseEnter()
+
+> **mouseEnter**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:178](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L178)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`AbstractHoverMouseListener`](../Class.AbstractHoverMouseListener).[`mouseEnter`](../Class.AbstractHoverMouseListener.md#mouseenter)
+
+***
+
+### mouseLeave()
+
+> **mouseLeave**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:182](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L182)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`AbstractHoverMouseListener`](../Class.AbstractHoverMouseListener).[`mouseLeave`](../Class.AbstractHoverMouseListener.md#mouseleave)
+
+***
+
+### mouseMove()
+
+> **mouseMove**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:258](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L258)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Overrides
+
+[`AbstractHoverMouseListener`](../Class.AbstractHoverMouseListener).[`mouseMove`](../Class.AbstractHoverMouseListener.md#mousemove)
+
+***
+
+### mouseOut()
+
+> **mouseOut**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:222](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L222)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Overrides
+
+[`AbstractHoverMouseListener`](../Class.AbstractHoverMouseListener).[`mouseOut`](../Class.AbstractHoverMouseListener.md#mouseout)
+
+***
+
+### mouseOver()
+
+> **mouseOver**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:194](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L194)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Overrides
+
+[`AbstractHoverMouseListener`](../Class.AbstractHoverMouseListener).[`mouseOver`](../Class.AbstractHoverMouseListener.md#mouseover)
+
+***
+
+### mouseUp()
+
+> **mouseUp**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:110](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L110)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`AbstractHoverMouseListener`](../Class.AbstractHoverMouseListener).[`mouseUp`](../Class.AbstractHoverMouseListener.md#mouseup)
+
+***
+
+### startMouseOutTimer()
+
+> `protected` **startMouseOutTimer**(): `Promise`\<`Action`\>
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:122](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L122)
+
+#### Returns
+
+`Promise`\<`Action`\>
+
+#### Inherited from
+
+[`AbstractHoverMouseListener`](../Class.AbstractHoverMouseListener).[`startMouseOutTimer`](../Class.AbstractHoverMouseListener.md#startmouseouttimer)
+
+***
+
+### startMouseOverTimer()
+
+> `protected` **startMouseOverTimer**(`target`, `event`): `Promise`\<`Action`\>
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:181](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L181)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`Promise`\<`Action`\>
+
+***
+
+### stopMouseOutTimer()
+
+> `protected` **stopMouseOutTimer**(): `void`
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:115](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L115)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`AbstractHoverMouseListener`](../Class.AbstractHoverMouseListener).[`stopMouseOutTimer`](../Class.AbstractHoverMouseListener.md#stopmouseouttimer)
+
+***
+
+### stopMouseOverTimer()
+
+> `protected` **stopMouseOverTimer**(): `void`
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:133](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L133)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`AbstractHoverMouseListener`](../Class.AbstractHoverMouseListener).[`stopMouseOverTimer`](../Class.AbstractHoverMouseListener.md#stopmouseovertimer)
+
+***
+
+### wheel()
+
+> **wheel**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:198](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L198)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`WheelEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`AbstractHoverMouseListener`](../Class.AbstractHoverMouseListener).[`wheel`](../Class.AbstractHoverMouseListener.md#wheel)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.HtmlRootImpl.md b/hugo/content/docs/ref/sprotty-core/Class.HtmlRootImpl.md
new file mode 100644
index 0000000..cee9a23
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.HtmlRootImpl.md
@@ -0,0 +1,271 @@
+
+### cssClasses?
+
+> `optional` **cssClasses**: `string`[]
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L29)
+
+#### Inherited from
+
+[`SModelRootImpl`](../Class.SModelRootImpl).[`cssClasses`](../Class.SModelRootImpl.md#cssclasses)
+
+***
+
+### features?
+
+> `optional` **features**: [`FeatureSet`](../Interface.FeatureSet)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L28)
+
+#### Inherited from
+
+[`SModelRootImpl`](../Class.SModelRootImpl).[`features`](../Class.SModelRootImpl.md#features)
+
+***
+
+### id
+
+> **id**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L27)
+
+#### Inherited from
+
+[`SModelRootImpl`](../Class.SModelRootImpl).[`id`](../Class.SModelRootImpl.md#id)
+
+***
+
+### revision?
+
+> `optional` **revision**: `number`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:167](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L167)
+
+#### Inherited from
+
+[`SModelRootImpl`](../Class.SModelRootImpl).[`revision`](../Class.SModelRootImpl.md#revision)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L26)
+
+#### Inherited from
+
+[`SModelRootImpl`](../Class.SModelRootImpl).[`type`](../Class.SModelRootImpl.md#type)
+
+## Accessors
+
+### index
+
+#### Get Signature
+
+> **get** **index**(): [`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L44)
+
+##### Returns
+
+[`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+#### Inherited from
+
+[`SModelRootImpl`](../Class.SModelRootImpl).[`index`](../Class.SModelRootImpl.md#index)
+
+***
+
+### root
+
+#### Get Signature
+
+> **get** **root**(): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L31)
+
+##### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Inherited from
+
+[`SModelRootImpl`](../Class.SModelRootImpl).[`root`](../Class.SModelRootImpl.md#root)
+
+## Methods
+
+### add()
+
+> **add**(`child`, `index?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L74)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### index?
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SModelRootImpl`](../Class.SModelRootImpl).[`add`](../Class.SModelRootImpl.md#add)
+
+***
+
+### hasFeature()
+
+> **hasFeature**(`feature`): `boolean`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L52)
+
+A feature is a symbol identifying some functionality that can be enabled or disabled for
+a model element. The set of supported features is determined by the `features` property.
+
+#### Parameters
+
+##### feature
+
+`symbol`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`SModelRootImpl`](../Class.SModelRootImpl).[`hasFeature`](../Class.SModelRootImpl.md#hasfeature)
+
+***
+
+### localToParent()
+
+> **localToParent**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:136](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L136)
+
+Transform the given bounds from the local coordinate system of this element to the coordinate
+system of its parent. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SModelRootImpl`](../Class.SModelRootImpl).[`localToParent`](../Class.SModelRootImpl.md#localtoparent)
+
+***
+
+### move()
+
+> **move**(`child`, `newIndex`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:115](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L115)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### newIndex
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SModelRootImpl`](../Class.SModelRootImpl).[`move`](../Class.SModelRootImpl.md#move)
+
+***
+
+### parentToLocal()
+
+> **parentToLocal**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:147](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L147)
+
+Transform the given bounds from the coordinate system of this element's parent to its local
+coordinate system. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SModelRootImpl`](../Class.SModelRootImpl).[`parentToLocal`](../Class.SModelRootImpl.md#parenttolocal)
+
+***
+
+### remove()
+
+> **remove**(`child`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:88](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L88)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SModelRootImpl`](../Class.SModelRootImpl).[`remove`](../Class.SModelRootImpl.md#remove)
+
+***
+
+### removeAll()
+
+> **removeAll**(`filter?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:98](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L98)
+
+#### Parameters
+
+##### filter?
+
+(`e`) => `boolean`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SModelRootImpl`](../Class.SModelRootImpl).[`removeAll`](../Class.SModelRootImpl.md#removeall)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.HtmlRootView.md b/hugo/content/docs/ref/sprotty-core/Class.HtmlRootView.md
new file mode 100644
index 0000000..2937882
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.HtmlRootView.md
@@ -0,0 +1,48 @@
+
+[sprotty](../globals) / HtmlRootView
+
+# Class: HtmlRootView
+
+Defined in: [packages/sprotty/src/lib/html-views.tsx:30](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/html-views.tsx#L30)
+
+View for `HtmlRoot` elements. Typically this is used in hover popup boxes.
+
+## Implements
+
+- [`IView`](../Interface.IView)
+
+## Constructors
+
+### Constructor
+
+> **new HtmlRootView**(): `HtmlRootView`
+
+#### Returns
+
+`HtmlRootView`
+
+## Methods
+
+### render()
+
+> **render**(`model`, `context`): `VNode`
+
+Defined in: [packages/sprotty/src/lib/html-views.tsx:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/html-views.tsx#L31)
+
+#### Parameters
+
+##### model
+
+[`HtmlRootImpl`](../Class.HtmlRootImpl)
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+#### Returns
+
+`VNode`
+
+#### Implementation of
+
+[`IView`](../Interface.IView).[`render`](../Interface.IView.md#render)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.InitializeCanvasBoundsCommand.md b/hugo/content/docs/ref/sprotty-core/Class.InitializeCanvasBoundsCommand.md
new file mode 100644
index 0000000..756c38c
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.InitializeCanvasBoundsCommand.md
@@ -0,0 +1,20 @@
+
+### undo()
+
+> **undo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/base/features/initialize-canvas.ts:107](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/features/initialize-canvas.ts#L107)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`SystemCommand`](../Class.SystemCommand).[`undo`](../Class.SystemCommand.md#undo)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.InstanceRegistry.md b/hugo/content/docs/ref/sprotty-core/Class.InstanceRegistry.md
new file mode 100644
index 0000000..a7cd2d5
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.InstanceRegistry.md
@@ -0,0 +1,60 @@
+
+### missing()
+
+> `protected` **missing**(`key`): `T`
+
+Defined in: [packages/sprotty/src/utils/registry.ts:145](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/registry.ts#L145)
+
+#### Parameters
+
+##### key
+
+`string`
+
+#### Returns
+
+`T`
+
+***
+
+### override()
+
+> **override**(`key`, `instance`): `void`
+
+Defined in: [packages/sprotty/src/utils/registry.ts:116](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/registry.ts#L116)
+
+#### Parameters
+
+##### key
+
+`string`
+
+##### instance
+
+`T`
+
+#### Returns
+
+`void`
+
+***
+
+### register()
+
+> **register**(`key`, `instance`): `void`
+
+Defined in: [packages/sprotty/src/utils/registry.ts:106](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/registry.ts#L106)
+
+#### Parameters
+
+##### key
+
+`string`
+
+##### instance
+
+`T`
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.IntersectionFinder.md b/hugo/content/docs/ref/sprotty-core/Class.IntersectionFinder.md
new file mode 100644
index 0000000..2a3ca17
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.IntersectionFinder.md
@@ -0,0 +1,21 @@
+
+### isSupportedRoute()
+
+> `protected` **isSupportedRoute**(`route`): `boolean`
+
+Defined in: [packages/sprotty/src/features/edge-intersection/intersection-finder.ts:106](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-intersection/intersection-finder.ts#L106)
+
+Specifies whether or not a specific route should be included in this intersection search or not.
+
+As this intersection finder only supports linear line segments, this method only returns `true`
+for routes that only contain routed points, which are either 'source', 'target' or 'linear'.
+
+#### Parameters
+
+##### route
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+#### Returns
+
+`boolean`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.IssueMarkerView.md b/hugo/content/docs/ref/sprotty-core/Class.IssueMarkerView.md
new file mode 100644
index 0000000..1ff54e9
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.IssueMarkerView.md
@@ -0,0 +1,24 @@
+
+### render()
+
+> **render**(`marker`, `context`): `VNode`
+
+Defined in: [packages/sprotty/src/features/decoration/views.tsx:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/decoration/views.tsx#L28)
+
+#### Parameters
+
+##### marker
+
+[`SIssueMarkerImpl`](../Class.SIssueMarkerImpl)
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+#### Returns
+
+`VNode`
+
+#### Implementation of
+
+[`IView`](../Interface.IView).[`render`](../Interface.IView.md#render)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.JumpingPolylineEdgeView.md b/hugo/content/docs/ref/sprotty-core/Class.JumpingPolylineEdgeView.md
new file mode 100644
index 0000000..b94a5d8
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.JumpingPolylineEdgeView.md
@@ -0,0 +1,419 @@
+
+### skipOffsetAfter
+
+> `protected` **skipOffsetAfter**: `number` = `2`
+
+Defined in: [packages/sprotty/src/graph/views.tsx:142](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L142)
+
+***
+
+### skipOffsetBefore
+
+> `protected` **skipOffsetBefore**: `number` = `3`
+
+Defined in: [packages/sprotty/src/graph/views.tsx:141](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L141)
+
+## Methods
+
+### createGapPath()
+
+> `protected` **createGapPath**(`intersectionPoint`, `lineSegment`): `string`
+
+Defined in: [packages/sprotty/src/graph/views.tsx:258](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L258)
+
+#### Parameters
+
+##### intersectionPoint
+
+`Point`
+
+##### lineSegment
+
+[`PointToPointLine`](../Class.PointToPointLine)
+
+#### Returns
+
+`string`
+
+***
+
+### createJumpPath()
+
+> `protected` **createJumpPath**(`intersectionPoint`, `lineSegment`): `string`
+
+Defined in: [packages/sprotty/src/graph/views.tsx:251](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L251)
+
+#### Parameters
+
+##### intersectionPoint
+
+`Point`
+
+##### lineSegment
+
+[`PointToPointLine`](../Class.PointToPointLine)
+
+#### Returns
+
+`string`
+
+***
+
+### getIntersectionsSortedBySegmentDirection()
+
+> `protected` **getIntersectionsSortedBySegmentDirection**(`lineSegment`, `intersectingPoint`): [`Intersection`](../Interface.Intersection)[]
+
+Defined in: [packages/sprotty/src/graph/views.tsx:200](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L200)
+
+Returns the intersections sorted by the direction of the `lineSegment`.
+
+The coordinate system goes from left to right and top to bottom.
+Thus, x increases to the right and y increases downwards.
+
+We need to draw the intersections in the order of the direction of the line segment.
+To draw a line pointing north, we need to order intersections by Y in a descending order.
+To draw a line pointing south, we need to order intersections by Y in an ascending order.
+
+#### Parameters
+
+##### lineSegment
+
+[`PointToPointLine`](../Class.PointToPointLine)
+
+##### intersectingPoint
+
+[`IntersectingRoutedPoint`](../Interface.IntersectingRoutedPoint)
+
+#### Returns
+
+[`Intersection`](../Interface.Intersection)[]
+
+***
+
+### getLineSegment()
+
+> `protected` **getLineSegment**(`edge`, `intersection`, `args?`, `segments?`): [`PointToPointLine`](../Class.PointToPointLine)
+
+Defined in: [packages/sprotty/src/graph/views.tsx:236](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L236)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### intersection
+
+[`Intersection`](../Interface.Intersection)
+
+##### args?
+
+[`IViewArgs`](../Interface.IViewArgs)
+
+##### segments?
+
+`Point`[]
+
+#### Returns
+
+[`PointToPointLine`](../Class.PointToPointLine)
+
+***
+
+### getOtherLineSegment()
+
+> `protected` **getOtherLineSegment**(`currentEdge`, `intersection`, `args?`): `undefined` \| [`PointToPointLine`](../Class.PointToPointLine)
+
+Defined in: [packages/sprotty/src/graph/views.tsx:242](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L242)
+
+#### Parameters
+
+##### currentEdge
+
+[`SEdgeImpl`](../Class.SEdgeImpl)
+
+##### intersection
+
+[`Intersection`](../Interface.Intersection)
+
+##### args?
+
+[`IViewArgs`](../Interface.IViewArgs)
+
+#### Returns
+
+`undefined` \| [`PointToPointLine`](../Class.PointToPointLine)
+
+***
+
+### intersectionPath()
+
+> `protected` **intersectionPath**(`edge`, `segments`, `intersectingPoint`, `args?`): `string`
+
+Defined in: [packages/sprotty/src/graph/views.tsx:164](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L164)
+
+Returns a path that takes the intersections into account by drawing a line jump or a gap for intersections on that path.
+
+#### Parameters
+
+##### edge
+
+[`SEdgeImpl`](../Class.SEdgeImpl)
+
+##### segments
+
+`Point`[]
+
+##### intersectingPoint
+
+[`IntersectingRoutedPoint`](../Interface.IntersectingRoutedPoint)
+
+##### args?
+
+[`IViewArgs`](../Interface.IViewArgs)
+
+#### Returns
+
+`string`
+
+***
+
+### isVisible()
+
+> **isVisible**(`model`, `route`, `context`): `boolean`
+
+Defined in: [packages/sprotty/src/features/routing/views.ts:30](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/views.ts#L30)
+
+Check whether the given model element is in the current viewport. Use this method
+in your `render` implementation to skip rendering in case the element is not visible.
+This can greatly enhance performance for large models.
+
+#### Parameters
+
+##### model
+
+`Readonly`\<[`SRoutableElementImpl`](../Class.SRoutableElementImpl)\>
+
+##### route
+
+`Point`[]
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`PolylineEdgeView`](../Class.PolylineEdgeView).[`isVisible`](../Class.PolylineEdgeView.md#isvisible)
+
+***
+
+### render()
+
+> **render**(`edge`, `context`, `args?`): `undefined` \| `VNode`
+
+Defined in: [packages/sprotty/src/graph/views.tsx:67](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L67)
+
+#### Parameters
+
+##### edge
+
+`Readonly`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+##### args?
+
+[`IViewArgs`](../Interface.IViewArgs)
+
+#### Returns
+
+`undefined` \| `VNode`
+
+#### Inherited from
+
+[`PolylineEdgeView`](../Class.PolylineEdgeView).[`render`](../Class.PolylineEdgeView.md#render)
+
+***
+
+### renderAdditionals()
+
+> `protected` **renderAdditionals**(`edge`, `segments`, `context`): `VNode`[]
+
+Defined in: [packages/sprotty/src/graph/views.tsx:114](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L114)
+
+#### Parameters
+
+##### edge
+
+[`SEdgeImpl`](../Class.SEdgeImpl)
+
+##### segments
+
+`Point`[]
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+#### Returns
+
+`VNode`[]
+
+#### Inherited from
+
+[`PolylineEdgeView`](../Class.PolylineEdgeView).[`renderAdditionals`](../Class.PolylineEdgeView.md#renderadditionals)
+
+***
+
+### renderDanglingEdge()
+
+> `protected` **renderDanglingEdge**(`message`, `edge`, `context`): `VNode`
+
+Defined in: [packages/sprotty/src/graph/views.tsx:119](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L119)
+
+#### Parameters
+
+##### message
+
+`string`
+
+##### edge
+
+[`SEdgeImpl`](../Class.SEdgeImpl)
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+#### Returns
+
+`VNode`
+
+#### Inherited from
+
+[`PolylineEdgeView`](../Class.PolylineEdgeView).[`renderDanglingEdge`](../Class.PolylineEdgeView.md#renderdanglingedge)
+
+***
+
+### renderJunctionPoints()
+
+> `protected` **renderJunctionPoints**(`edge`, `route`, `context`, `args`): `any`
+
+Defined in: [packages/sprotty/src/graph/views.tsx:89](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L89)
+
+#### Parameters
+
+##### edge
+
+`Readonly`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+##### route
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+##### args
+
+`undefined` | [`IViewArgs`](../Interface.IViewArgs)
+
+#### Returns
+
+`any`
+
+#### Inherited from
+
+[`PolylineEdgeView`](../Class.PolylineEdgeView).[`renderJunctionPoints`](../Class.PolylineEdgeView.md#renderjunctionpoints)
+
+***
+
+### renderLine()
+
+> `protected` **renderLine**(`edge`, `segments`, `context`, `args?`): `VNode`
+
+Defined in: [packages/sprotty/src/graph/views.tsx:144](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L144)
+
+#### Parameters
+
+##### edge
+
+[`SEdgeImpl`](../Class.SEdgeImpl)
+
+##### segments
+
+`Point`[]
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+##### args?
+
+[`IViewArgs`](../Interface.IViewArgs)
+
+#### Returns
+
+`VNode`
+
+#### Overrides
+
+[`PolylineEdgeView`](../Class.PolylineEdgeView).[`renderLine`](../Class.PolylineEdgeView.md#renderline)
+
+***
+
+### shouldDrawLineGapOnIntersection()
+
+> `protected` **shouldDrawLineGapOnIntersection**(`currentLineSegment`, `otherLineSegment`): `boolean`
+
+Defined in: [packages/sprotty/src/graph/views.tsx:232](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L232)
+
+Whether or not to draw a line gap on an intersection for the `currentLineSegment`.
+This should usually be inverse of `shouldDrawLineJumpOnIntersection()`.
+
+#### Parameters
+
+##### currentLineSegment
+
+[`PointToPointLine`](../Class.PointToPointLine)
+
+##### otherLineSegment
+
+[`PointToPointLine`](../Class.PointToPointLine)
+
+#### Returns
+
+`boolean`
+
+***
+
+### shouldDrawLineJumpOnIntersection()
+
+> `protected` **shouldDrawLineJumpOnIntersection**(`currentLineSegment`, `otherLineSegment`): `boolean`
+
+Defined in: [packages/sprotty/src/graph/views.tsx:224](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L224)
+
+Whether or not to draw a line jump on an intersection for the `currentLineSegment`.
+This should usually be inverse of `shouldDrawLineGapOnIntersection()`.
+
+#### Parameters
+
+##### currentLineSegment
+
+[`PointToPointLine`](../Class.PointToPointLine)
+
+##### otherLineSegment
+
+[`PointToPointLine`](../Class.PointToPointLine)
+
+#### Returns
+
+`boolean`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.JunctionFinder.md b/hugo/content/docs/ref/sprotty-core/Class.JunctionFinder.md
new file mode 100644
index 0000000..d852fb8
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.JunctionFinder.md
@@ -0,0 +1,186 @@
+
+### findJunctionPointsWithSameSource()
+
+> `protected` **findJunctionPointsWithSameSource**(`edge`, `route`, `routing`): `void`
+
+Defined in: [packages/sprotty/src/features/edge-junction/junction-finder.ts:81](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-junction/junction-finder.ts#L81)
+
+Finds the junction points of routes with the same source
+
+#### Parameters
+
+##### edge
+
+[`SEdgeImpl`](../Class.SEdgeImpl)
+
+##### route
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+##### routing
+
+[`EdgeRouting`](../Class.EdgeRouting)
+
+#### Returns
+
+`void`
+
+***
+
+### findJunctionPointsWithSameTarget()
+
+> `protected` **findJunctionPointsWithSameTarget**(`edge`, `route`, `routing`): `void`
+
+Defined in: [packages/sprotty/src/features/edge-junction/junction-finder.ts:109](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-junction/junction-finder.ts#L109)
+
+Finds the junction points of routes with the same target
+
+#### Parameters
+
+##### edge
+
+[`SEdgeImpl`](../Class.SEdgeImpl)
+
+##### route
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+##### routing
+
+[`EdgeRouting`](../Class.EdgeRouting)
+
+#### Returns
+
+`void`
+
+***
+
+### findJunctions()
+
+> `protected` **findJunctions**(`routing`, `parent`): `void`
+
+Defined in: [packages/sprotty/src/features/edge-junction/junction-finder.ts:41](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-junction/junction-finder.ts#L41)
+
+#### Parameters
+
+##### routing
+
+[`EdgeRouting`](../Class.EdgeRouting)
+
+##### parent
+
+[`SParentElementImpl`](../Class.SParentElementImpl)
+
+#### Returns
+
+`void`
+
+***
+
+### getJunctionIndex()
+
+> `protected` **getJunctionIndex**(`firstRoute`, `secondRoute`): `number`
+
+Defined in: [packages/sprotty/src/features/edge-junction/junction-finder.ts:230](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-junction/junction-finder.ts#L230)
+
+Finds the index where two routes diverge.
+Returns -1 if no divergence can be found.
+
+#### Parameters
+
+##### firstRoute
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+##### secondRoute
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+#### Returns
+
+`number`
+
+***
+
+### getSegmentDirection()
+
+> `protected` **getSegmentDirection**(`firstPoint`, `secondPoint`): `"left"` \| `"right"` \| `"down"` \| `"up"`
+
+Defined in: [packages/sprotty/src/features/edge-junction/junction-finder.ts:202](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-junction/junction-finder.ts#L202)
+
+Get the main direction of a segment.
+The main direction is the axis with the greatest difference between the two points.
+
+#### Parameters
+
+##### firstPoint
+
+[`RoutedPoint`](../Interface.RoutedPoint)
+
+##### secondPoint
+
+[`RoutedPoint`](../Interface.RoutedPoint)
+
+#### Returns
+
+`"left"` \| `"right"` \| `"down"` \| `"up"`
+
+***
+
+### setJunctionPoints()
+
+> `protected` **setJunctionPoints**(`route`, `otherRoute`, `junctionIndex`): `void`
+
+Defined in: [packages/sprotty/src/features/edge-junction/junction-finder.ts:146](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-junction/junction-finder.ts#L146)
+
+Set the junction points of two routes according to the segments direction.
+If the segments have different directions, the junction point is the previous common point.
+If the segments have the same direction, the junction point is the point with the greatest or lowest value axis value depending on the direction.
+
+#### Parameters
+
+##### route
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+##### otherRoute
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+##### junctionIndex
+
+`number`
+
+#### Returns
+
+`void`
+
+***
+
+### setPreviousPointAsJunction()
+
+> `protected` **setPreviousPointAsJunction**(`route`, `sameSourceRoute`, `junctionIndex`): `void`
+
+Defined in: [packages/sprotty/src/features/edge-junction/junction-finder.ts:193](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-junction/junction-finder.ts#L193)
+
+Set the previous point as a junction point.
+This is used when two segments have the same direction but the other axis is different.
+For example if the routes are going in opposite directions, or if the route don't split orthogonally.
+
+#### Parameters
+
+##### route
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+##### sameSourceRoute
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+##### junctionIndex
+
+`number`
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.JunctionPostProcessor.md b/hugo/content/docs/ref/sprotty-core/Class.JunctionPostProcessor.md
new file mode 100644
index 0000000..40a0585
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.JunctionPostProcessor.md
@@ -0,0 +1,20 @@
+
+### postUpdate()
+
+> **postUpdate**(`cause?`): `void`
+
+Defined in: [packages/sprotty/src/features/edge-junction/junction-postprocessor.ts:41](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-junction/junction-postprocessor.ts#L41)
+
+#### Parameters
+
+##### cause?
+
+`Action`
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`IVNodePostprocessor`](../Interface.IVNodePostprocessor).[`postUpdate`](../Interface.IVNodePostprocessor.md#postupdate)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.KeyListener.md b/hugo/content/docs/ref/sprotty-core/Class.KeyListener.md
new file mode 100644
index 0000000..ab6ed9f
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.KeyListener.md
@@ -0,0 +1,20 @@
+
+### keyUp()
+
+> **keyUp**(`element`, `event`): `Action`[]
+
+Defined in: [packages/sprotty/src/base/views/key-tool.ts:82](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/key-tool.ts#L82)
+
+#### Parameters
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`KeyboardEvent`
+
+#### Returns
+
+`Action`[]
diff --git a/hugo/content/docs/ref/sprotty-core/Class.KeyTool.md b/hugo/content/docs/ref/sprotty-core/Class.KeyTool.md
new file mode 100644
index 0000000..59bdda4
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.KeyTool.md
@@ -0,0 +1,120 @@
+
+### focus()
+
+> **focus**(): `void`
+
+Defined in: [packages/sprotty/src/base/views/key-tool.ts:61](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/key-tool.ts#L61)
+
+#### Returns
+
+`void`
+
+***
+
+### handleEvent()
+
+> `protected` **handleEvent**\<`K`\>(`methodName`, `model`, `event`): `void`
+
+Defined in: [packages/sprotty/src/base/views/key-tool.ts:43](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/key-tool.ts#L43)
+
+#### Type Parameters
+
+##### K
+
+`K` *extends* keyof [`KeyListener`](../Class.KeyListener)
+
+#### Parameters
+
+##### methodName
+
+`K`
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### event
+
+`KeyboardEvent`
+
+#### Returns
+
+`void`
+
+***
+
+### keyDown()
+
+> **keyDown**(`element`, `event`): `void`
+
+Defined in: [packages/sprotty/src/base/views/key-tool.ts:53](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/key-tool.ts#L53)
+
+#### Parameters
+
+##### element
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### event
+
+`KeyboardEvent`
+
+#### Returns
+
+`void`
+
+***
+
+### keyUp()
+
+> **keyUp**(`element`, `event`): `void`
+
+Defined in: [packages/sprotty/src/base/views/key-tool.ts:57](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/key-tool.ts#L57)
+
+#### Parameters
+
+##### element
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### event
+
+`KeyboardEvent`
+
+#### Returns
+
+`void`
+
+***
+
+### postUpdate()
+
+> **postUpdate**(): `void`
+
+Defined in: [packages/sprotty/src/base/views/key-tool.ts:72](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/key-tool.ts#L72)
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`IVNodePostprocessor`](../Interface.IVNodePostprocessor).[`postUpdate`](../Interface.IVNodePostprocessor.md#postupdate)
+
+***
+
+### register()
+
+> **register**(`keyListener`): `void`
+
+Defined in: [packages/sprotty/src/base/views/key-tool.ts:33](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/key-tool.ts#L33)
+
+#### Parameters
+
+##### keyListener
+
+[`KeyListener`](../Class.KeyListener)
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.LabeledAction.md b/hugo/content/docs/ref/sprotty-core/Class.LabeledAction.md
new file mode 100644
index 0000000..a3539a8
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.LabeledAction.md
@@ -0,0 +1,6 @@
+
+### label
+
+> `readonly` **label**: `string`
+
+Defined in: [packages/sprotty/src/base/actions/action.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/actions/action.ts#L25)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.LayoutRegistry.md b/hugo/content/docs/ref/sprotty-core/Class.LayoutRegistry.md
new file mode 100644
index 0000000..1574abd
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.LayoutRegistry.md
@@ -0,0 +1,94 @@
+
+### hasKey()
+
+> **hasKey**(`key`): `boolean`
+
+Defined in: [packages/sprotty/src/utils/registry.ts:132](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/registry.ts#L132)
+
+#### Parameters
+
+##### key
+
+`string`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`InstanceRegistry`](../Class.InstanceRegistry).[`hasKey`](../Class.InstanceRegistry.md#haskey)
+
+***
+
+### missing()
+
+> `protected` **missing**(`key`): [`ILayout`](../Interface.ILayout)
+
+Defined in: [packages/sprotty/src/utils/registry.ts:145](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/registry.ts#L145)
+
+#### Parameters
+
+##### key
+
+`string`
+
+#### Returns
+
+[`ILayout`](../Interface.ILayout)
+
+#### Inherited from
+
+[`InstanceRegistry`](../Class.InstanceRegistry).[`missing`](../Class.InstanceRegistry.md#missing)
+
+***
+
+### override()
+
+> **override**(`key`, `instance`): `void`
+
+Defined in: [packages/sprotty/src/utils/registry.ts:116](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/registry.ts#L116)
+
+#### Parameters
+
+##### key
+
+`string`
+
+##### instance
+
+[`ILayout`](../Interface.ILayout)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`InstanceRegistry`](../Class.InstanceRegistry).[`override`](../Class.InstanceRegistry.md#override)
+
+***
+
+### register()
+
+> **register**(`key`, `instance`): `void`
+
+Defined in: [packages/sprotty/src/utils/registry.ts:106](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/registry.ts#L106)
+
+#### Parameters
+
+##### key
+
+`string`
+
+##### instance
+
+[`ILayout`](../Interface.ILayout)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`InstanceRegistry`](../Class.InstanceRegistry).[`register`](../Class.InstanceRegistry.md#register)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.Layouter.md b/hugo/content/docs/ref/sprotty-core/Class.Layouter.md
new file mode 100644
index 0000000..a52e6e6
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.Layouter.md
@@ -0,0 +1,24 @@
+
+### logger
+
+> `protected` **logger**: [`ILogger`](../Interface.ILogger)
+
+Defined in: [packages/sprotty/src/features/bounds/layout.ts:53](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/layout.ts#L53)
+
+## Methods
+
+### layout()
+
+> **layout**(`element2boundsData`): `void`
+
+Defined in: [packages/sprotty/src/features/bounds/layout.ts:55](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/layout.ts#L55)
+
+#### Parameters
+
+##### element2boundsData
+
+`Map`\<[`SModelElementImpl`](../Class.SModelElementImpl), [`BoundsData`](../Class.BoundsData)\>
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.LocalModelSource.md b/hugo/content/docs/ref/sprotty-core/Class.LocalModelSource.md
new file mode 100644
index 0000000..418274f
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.LocalModelSource.md
@@ -0,0 +1,402 @@
+
+### lastSubmittedModelType
+
+> `protected` **lastSubmittedModelType**: `string`
+
+Defined in: [packages/sprotty/src/model-source/local-model-source.ts:58](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/local-model-source.ts#L58)
+
+The `type` property of the model root is used to determine whether a model update
+is a change of the previous model or a totally new one.
+
+***
+
+### layoutEngine?
+
+> `protected` `optional` **layoutEngine**: `IModelLayoutEngine`
+
+Defined in: [packages/sprotty/src/model-source/local-model-source.ts:50](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/local-model-source.ts#L50)
+
+***
+
+### logger
+
+> `protected` `readonly` **logger**: [`ILogger`](../Interface.ILogger)
+
+Defined in: [packages/sprotty/src/model-source/local-model-source.ts:47](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/local-model-source.ts#L47)
+
+***
+
+### popupModelProvider?
+
+> `protected` `optional` **popupModelProvider**: [`IPopupModelProvider`](../Interface.IPopupModelProvider)
+
+Defined in: [packages/sprotty/src/model-source/local-model-source.ts:49](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/local-model-source.ts#L49)
+
+***
+
+### viewerOptions
+
+> `protected` **viewerOptions**: [`ViewerOptions`](../Interface.ViewerOptions)
+
+Defined in: [packages/sprotty/src/model-source/model-source.ts:50](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/model-source.ts#L50)
+
+#### Inherited from
+
+[`ModelSource`](../Class.ModelSource).[`viewerOptions`](../Class.ModelSource.md#vieweroptions)
+
+## Accessors
+
+### model
+
+#### Get Signature
+
+> **get** **model**(): `SModelRoot`
+
+Defined in: [packages/sprotty/src/model-source/local-model-source.ts:60](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/local-model-source.ts#L60)
+
+##### Returns
+
+`SModelRoot`
+
+#### Set Signature
+
+> **set** **model**(`root`): `void`
+
+Defined in: [packages/sprotty/src/model-source/local-model-source.ts:64](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/local-model-source.ts#L64)
+
+##### Parameters
+
+###### root
+
+`SModelRoot`
+
+##### Returns
+
+`void`
+
+#### Overrides
+
+[`ModelSource`](../Class.ModelSource).[`model`](../Class.ModelSource.md#model)
+
+## Methods
+
+### addElements()
+
+> **addElements**(`elements`): `Promise`\<`void`\>
+
+Defined in: [packages/sprotty/src/model-source/local-model-source.ts:194](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/local-model-source.ts#L194)
+
+Modify the current model by adding new elements.
+
+#### Parameters
+
+##### elements
+
+(`SModelElement` \| \{ `element`: `SModelElement`; `parentId`: `string`; \})[]
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### applyMatches()
+
+> **applyMatches**(`matches`): `Promise`\<`void`\>
+
+Defined in: [packages/sprotty/src/model-source/local-model-source.ts:185](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/local-model-source.ts#L185)
+
+Modify the current model with an array of matches.
+
+#### Parameters
+
+##### matches
+
+[`Match`](../Interface.Match)[]
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### commitModel()
+
+> **commitModel**(`newRoot`): `SModelRoot` \| `Promise`\<`SModelRoot`\>
+
+Defined in: [packages/sprotty/src/model-source/local-model-source.ts:84](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/local-model-source.ts#L84)
+
+Commit changes from the internal SModel back to the currentModel.
+
+This method is meant to be called only by CommitModelCommand and other commands
+that need to feed the current internal model back to the model source. It does
+not have any side effects such as triggering layout or bounds computation, as the
+internal model is already current. See `CommitModelAction` for details.
+
+#### Parameters
+
+##### newRoot
+
+`SModelRoot`
+
+the new model.
+
+#### Returns
+
+`SModelRoot` \| `Promise`\<`SModelRoot`\>
+
+the previous model.
+
+#### Overrides
+
+[`ModelSource`](../Class.ModelSource).[`commitModel`](../Class.ModelSource.md#commitmodel)
+
+***
+
+### doSubmitModel()
+
+> `protected` **doSubmitModel**(`newRoot`, `update`, `cause?`, `index?`): `Promise`\<`void`\>
+
+Defined in: [packages/sprotty/src/model-source/local-model-source.ts:155](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/local-model-source.ts#L155)
+
+Submit the given model with an `UpdateModelAction` or a `SetModelAction` depending on the
+`update` argument. If available, the model layout engine is invoked first.
+
+#### Parameters
+
+##### newRoot
+
+`SModelRoot`
+
+##### update
+
+`boolean` | [`Match`](../Interface.Match)[]
+
+##### cause?
+
+`Action`
+
+##### index?
+
+`SModelIndex`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### getSelection()
+
+> **getSelection**(): `Promise`\<`FluentIterable`\<`SModelElement`\>\>
+
+Defined in: [packages/sprotty/src/model-source/local-model-source.ts:107](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/local-model-source.ts#L107)
+
+Get the current selection from the model.
+
+#### Returns
+
+`Promise`\<`FluentIterable`\<`SModelElement`\>\>
+
+***
+
+### getViewport()
+
+> **getViewport**(): `Promise`\<`Viewport` & `object`\>
+
+Defined in: [packages/sprotty/src/model-source/local-model-source.ts:128](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/local-model-source.ts#L128)
+
+Get the current viewport from the model.
+
+#### Returns
+
+`Promise`\<`Viewport` & `object`\>
+
+***
+
+### handle()
+
+> **handle**(`action`): `void`
+
+Defined in: [packages/sprotty/src/model-source/local-model-source.ts:246](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/local-model-source.ts#L246)
+
+#### Parameters
+
+##### action
+
+`Action`
+
+#### Returns
+
+`void`
+
+#### Overrides
+
+[`ModelSource`](../Class.ModelSource).[`handle`](../Class.ModelSource.md#handle)
+
+***
+
+### handleExportSvgAction()
+
+> `protected` **handleExportSvgAction**(`action`): `void`
+
+Defined in: [packages/sprotty/src/model-source/local-model-source.ts:278](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/local-model-source.ts#L278)
+
+#### Parameters
+
+##### action
+
+`ExportSvgAction`
+
+#### Returns
+
+`void`
+
+***
+
+### handleRequestModel()
+
+> `protected` **handleRequestModel**(`action`): `void`
+
+Defined in: [packages/sprotty/src/model-source/local-model-source.ts:263](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/local-model-source.ts#L263)
+
+#### Parameters
+
+##### action
+
+`RequestModelAction`
+
+#### Returns
+
+`void`
+
+***
+
+### handleRequestPopupModel()
+
+> `protected` **handleRequestPopupModel**(`action`): `void`
+
+Defined in: [packages/sprotty/src/model-source/local-model-source.ts:267](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/local-model-source.ts#L267)
+
+#### Parameters
+
+##### action
+
+`RequestPopupModelAction`
+
+#### Returns
+
+`void`
+
+***
+
+### initialize()
+
+> **initialize**(`registry`): `void`
+
+Defined in: [packages/sprotty/src/model-source/local-model-source.ts:68](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/local-model-source.ts#L68)
+
+#### Parameters
+
+##### registry
+
+[`ActionHandlerRegistry`](../Class.ActionHandlerRegistry)
+
+#### Returns
+
+`void`
+
+#### Overrides
+
+[`ModelSource`](../Class.ModelSource).[`initialize`](../Class.ModelSource.md#initialize)
+
+***
+
+### removeElements()
+
+> **removeElements**(`elements`): `Promise`\<`void`\>
+
+Defined in: [packages/sprotty/src/model-source/local-model-source.ts:216](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/local-model-source.ts#L216)
+
+Modify the current model by removing elements.
+
+#### Parameters
+
+##### elements
+
+(`string` \| \{ `elementId`: `string`; `parentId`: `string`; \})[]
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### setModel()
+
+> **setModel**(`newRoot`): `Promise`\<`void`\>
+
+Defined in: [packages/sprotty/src/model-source/local-model-source.ts:79](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/local-model-source.ts#L79)
+
+Set the model without incremental update.
+
+#### Parameters
+
+##### newRoot
+
+`SModelRoot`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### submitModel()
+
+> `protected` **submitModel**(`newRoot`, `update`, `cause?`): `Promise`\<`void`\>
+
+Defined in: [packages/sprotty/src/model-source/local-model-source.ts:141](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/local-model-source.ts#L141)
+
+If client layout is active, run a `RequestBoundsAction` and wait for the resulting
+`ComputedBoundsAction`, otherwise call `doSubmitModel(…)` directly.
+
+#### Parameters
+
+##### newRoot
+
+`SModelRoot`
+
+##### update
+
+`boolean` | [`Match`](../Interface.Match)[]
+
+##### cause?
+
+`Action`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### updateModel()
+
+> **updateModel**(`newRoot?`): `Promise`\<`void`\>
+
+Defined in: [packages/sprotty/src/model-source/local-model-source.ts:95](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/local-model-source.ts#L95)
+
+Apply an incremental update to the model with an animation showing the transition to
+the new state. If `newRoot` is undefined, the current root is submitted; in that case
+it is assumed that it has been modified before.
+
+#### Parameters
+
+##### newRoot?
+
+`SModelRoot`
+
+#### Returns
+
+`Promise`\<`void`\>
diff --git a/hugo/content/docs/ref/sprotty-core/Class.LocationPostprocessor.md b/hugo/content/docs/ref/sprotty-core/Class.LocationPostprocessor.md
new file mode 100644
index 0000000..f05c368
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.LocationPostprocessor.md
@@ -0,0 +1,14 @@
+
+### postUpdate()
+
+> **postUpdate**(): `void`
+
+Defined in: [packages/sprotty/src/features/move/move.ts:686](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L686)
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`IVNodePostprocessor`](../Interface.IVNodePostprocessor).[`postUpdate`](../Interface.IVNodePostprocessor.md#postupdate)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ManhattanDiamondAnchor.md b/hugo/content/docs/ref/sprotty-core/Class.ManhattanDiamondAnchor.md
new file mode 100644
index 0000000..ef5f973
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ManhattanDiamondAnchor.md
@@ -0,0 +1,88 @@
+
+[sprotty](../globals) / ManhattanDiamondAnchor
+
+# Class: ManhattanDiamondAnchor
+
+Defined in: [packages/sprotty/src/features/routing/manhattan-anchors.ts:61](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/manhattan-anchors.ts#L61)
+
+## Implements
+
+- [`IAnchorComputer`](../Interface.IAnchorComputer)
+
+## Constructors
+
+### Constructor
+
+> **new ManhattanDiamondAnchor**(): `ManhattanDiamondAnchor`
+
+#### Returns
+
+`ManhattanDiamondAnchor`
+
+## Properties
+
+### KIND
+
+> `static` **KIND**: `string`
+
+Defined in: [packages/sprotty/src/features/routing/manhattan-anchors.ts:63](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/manhattan-anchors.ts#L63)
+
+## Accessors
+
+### kind
+
+#### Get Signature
+
+> **get** **kind**(): `string`
+
+Defined in: [packages/sprotty/src/features/routing/manhattan-anchors.ts:65](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/manhattan-anchors.ts#L65)
+
+##### Returns
+
+`string`
+
+#### Implementation of
+
+[`IAnchorComputer`](../Interface.IAnchorComputer).[`kind`](../Interface.IAnchorComputer.md#kind)
+
+## Methods
+
+### getAnchor()
+
+> **getAnchor**(`connectable`, `refPoint`, `offset`): `Point`
+
+Defined in: [packages/sprotty/src/features/routing/manhattan-anchors.ts:69](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/manhattan-anchors.ts#L69)
+
+Compute an anchor position for routing an edge towards this element.
+
+The default implementation returns the element's center point. If edges should be connected
+differently, e.g. to some point on the boundary of the element's view, the according computation
+should be implemented in a subclass by overriding this method.
+
+#### Parameters
+
+##### connectable
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl)
+
+The node or port an edge should be connected to.
+
+##### refPoint
+
+`Point`
+
+##### offset
+
+`number` = `0`
+
+An optional offset value to be considered in the anchor computation;
+ positive values should shift the anchor away from this element, negative values
+ should shift the anchor more to the inside. Use this to adapt ot arrow heads.
+
+#### Returns
+
+`Point`
+
+#### Implementation of
+
+[`IAnchorComputer`](../Interface.IAnchorComputer).[`getAnchor`](../Interface.IAnchorComputer.md#getanchor)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ManhattanEdgeRouter.md b/hugo/content/docs/ref/sprotty-core/Class.ManhattanEdgeRouter.md
new file mode 100644
index 0000000..f5ceaf6
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ManhattanEdgeRouter.md
@@ -0,0 +1,891 @@
+
+### alignX()
+
+> `protected` **alignX**(`routingPoints`, `index`, `x`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/manhattan-edge-router.ts:158](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/manhattan-edge-router.ts#L158)
+
+#### Parameters
+
+##### routingPoints
+
+`Point`[]
+
+##### index
+
+`number`
+
+##### x
+
+`number`
+
+#### Returns
+
+`void`
+
+***
+
+### alignY()
+
+> `protected` **alignY**(`routingPoints`, `index`, `y`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/manhattan-edge-router.ts:175](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/manhattan-edge-router.ts#L175)
+
+#### Parameters
+
+##### routingPoints
+
+`Point`[]
+
+##### index
+
+`number`
+
+##### y
+
+`number`
+
+#### Returns
+
+`void`
+
+***
+
+### applyHandleMoves()
+
+> **applyHandleMoves**(`edge`, `moves`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:249](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L249)
+
+Updates the routing points and handles of the given edge with regard to the given moves.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### moves
+
+[`ResolvedHandleMove`](../Interface.ResolvedHandleMove)[]
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`applyHandleMoves`](../Class.AbstractEdgeRouter.md#applyhandlemoves)
+
+***
+
+### applyInnerHandleMoves()
+
+> `protected` **applyInnerHandleMoves**(`edge`, `moves`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/manhattan-edge-router.ts:109](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/manhattan-edge-router.ts#L109)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### moves
+
+[`ResolvedHandleMove`](../Interface.ResolvedHandleMove)[]
+
+#### Returns
+
+`void`
+
+#### Overrides
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`applyInnerHandleMoves`](../Class.AbstractEdgeRouter.md#applyinnerhandlemoves)
+
+***
+
+### applyReconnect()
+
+> **applyReconnect**(`edge`, `newSourceId?`, `newTargetId?`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:316](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L316)
+
+Updates the routing points and handles of the given edge with regard to the given moves.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### newSourceId?
+
+`string`
+
+##### newTargetId?
+
+`string`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`applyReconnect`](../Class.AbstractEdgeRouter.md#applyreconnect)
+
+***
+
+### applySnapshot()
+
+> **applySnapshot**(`edge`, `snapshot`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:375](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L375)
+
+Applies a snapshot to the current edge.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### snapshot
+
+[`EdgeSnapshot`](../Interface.EdgeSnapshot)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`applySnapshot`](../Class.AbstractEdgeRouter.md#applysnapshot)
+
+***
+
+### calculateDefaultCorners()
+
+> `protected` **calculateDefaultCorners**(`edge`, `sourceAnchors`, `targetAnchors`, `options`): `Point`[]
+
+Defined in: [packages/sprotty/src/features/routing/manhattan-edge-router.ts:304](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/manhattan-edge-router.ts#L304)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### sourceAnchors
+
+[`DefaultAnchors`](../Class.DefaultAnchors)
+
+##### targetAnchors
+
+[`DefaultAnchors`](../Class.DefaultAnchors)
+
+##### options
+
+[`ManhattanRouterOptions`](../Interface.ManhattanRouterOptions)
+
+#### Returns
+
+`Point`[]
+
+#### Overrides
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`calculateDefaultCorners`](../Class.AbstractEdgeRouter.md#calculatedefaultcorners)
+
+***
+
+### calculateSegment()
+
+> `protected` **calculateSegment**(`edge`, `t`): `undefined` \| \{ `lambda`: `number`; `segmentEnd`: `Point`; `segmentStart`: `Point`; \}
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:145](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L145)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### t
+
+`number`
+
+#### Returns
+
+`undefined` \| \{ `lambda`: `number`; `segmentEnd`: `Point`; `segmentStart`: `Point`; \}
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`calculateSegment`](../Class.AbstractEdgeRouter.md#calculatesegment)
+
+***
+
+### cleanupRoutingPoints()
+
+> **cleanupRoutingPoints**(`edge`, `routingPoints`, `updateHandles`, `addRoutingPoints`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/manhattan-edge-router.ts:183](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/manhattan-edge-router.ts#L183)
+
+Remove/add points in order to keep routing constraints consistent, or reset RPs on reconnect.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### routingPoints
+
+`Point`[]
+
+##### updateHandles
+
+`boolean`
+
+##### addRoutingPoints
+
+`boolean`
+
+#### Returns
+
+`void`
+
+#### Overrides
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`cleanupRoutingPoints`](../Class.AbstractEdgeRouter.md#cleanuproutingpoints)
+
+***
+
+### commitRoute()
+
+> `protected` **commitRoute**(`edge`, `routedPoints`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:432](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L432)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### routedPoints
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`commitRoute`](../Class.AbstractEdgeRouter.md#commitroute)
+
+***
+
+### correctX()
+
+> `protected` **correctX**(`routingPoints`, `index`, `x`, `minimalPointDistance`): `number`
+
+Defined in: [packages/sprotty/src/features/routing/manhattan-edge-router.ts:149](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/manhattan-edge-router.ts#L149)
+
+#### Parameters
+
+##### routingPoints
+
+`Point`[]
+
+##### index
+
+`number`
+
+##### x
+
+`number`
+
+##### minimalPointDistance
+
+`number`
+
+#### Returns
+
+`number`
+
+***
+
+### correctY()
+
+> `protected` **correctY**(`routingPoints`, `index`, `y`, `minimalPointDistance`): `number`
+
+Defined in: [packages/sprotty/src/features/routing/manhattan-edge-router.ts:166](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/manhattan-edge-router.ts#L166)
+
+#### Parameters
+
+##### routingPoints
+
+`Point`[]
+
+##### index
+
+`number`
+
+##### y
+
+`number`
+
+##### minimalPointDistance
+
+`number`
+
+#### Returns
+
+`number`
+
+***
+
+### createRoutedCorners()
+
+> `protected` **createRoutedCorners**(`edge`): [`RoutedPoint`](../Interface.RoutedPoint)[]
+
+Defined in: [packages/sprotty/src/features/routing/manhattan-edge-router.ts:63](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/manhattan-edge-router.ts#L63)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+#### Returns
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+***
+
+### createRoutingHandles()
+
+> **createRoutingHandles**(`edge`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/manhattan-edge-router.ts:81](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/manhattan-edge-router.ts#L81)
+
+Creates the routing handles for the given target.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+#### Returns
+
+`void`
+
+#### Overrides
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`createRoutingHandles`](../Class.AbstractEdgeRouter.md#createroutinghandles)
+
+***
+
+### derivativeAt()
+
+> **derivativeAt**(`edge`, `t`): `undefined` \| `Point`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:134](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L134)
+
+Calculates the derivative at a point on the edge.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### t
+
+`number`
+
+a value between 0 (sourceAnchor) and 1 (targetAnchor)
+
+#### Returns
+
+`undefined` \| `Point`
+
+the point or undefined if t is out of bounds or it cannot be computed
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`derivativeAt`](../Class.AbstractEdgeRouter.md#derivativeat)
+
+***
+
+### findOrthogonalIntersection()
+
+> **findOrthogonalIntersection**(`edge`, `point`): `object`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:91](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L91)
+
+Finds the orthogonal intersection point between an edge and a given point in 2D space.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+The edge to find the intersection point on.
+
+##### point
+
+`Point`
+
+The point to find the intersection with.
+
+#### Returns
+
+`object`
+
+The intersection point and its derivative on the respective edge segment.
+
+##### derivative
+
+> **derivative**: `Point`
+
+##### point
+
+> **point**: `Point`
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`findOrthogonalIntersection`](../Class.AbstractEdgeRouter.md#findorthogonalintersection)
+
+***
+
+### findRouteSegment()
+
+> `protected` **findRouteSegment**(`edge`, `route`, `handleIndex`): `object`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:217](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L217)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### route
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+##### handleIndex
+
+`number`
+
+#### Returns
+
+`object`
+
+##### end?
+
+> `optional` **end**: `Point`
+
+##### start?
+
+> `optional` **start**: `Point`
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`findRouteSegment`](../Class.AbstractEdgeRouter.md#findroutesegment)
+
+***
+
+### getAnchorComputer()
+
+> `protected` **getAnchorComputer**(`connectable`): [`IAnchorComputer`](../Interface.IAnchorComputer)
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:245](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L245)
+
+#### Parameters
+
+##### connectable
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl)
+
+#### Returns
+
+[`IAnchorComputer`](../Interface.IAnchorComputer)
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`getAnchorComputer`](../Class.AbstractEdgeRouter.md#getanchorcomputer)
+
+***
+
+### getBestConnectionAnchors()
+
+> `protected` **getBestConnectionAnchors**(`edge`, `sourceAnchors`, `targetAnchors`, `options`): `object`
+
+Defined in: [packages/sprotty/src/features/routing/manhattan-edge-router.ts:417](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/manhattan-edge-router.ts#L417)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### sourceAnchors
+
+[`DefaultAnchors`](../Class.DefaultAnchors)
+
+##### targetAnchors
+
+[`DefaultAnchors`](../Class.DefaultAnchors)
+
+##### options
+
+[`ManhattanRouterOptions`](../Interface.ManhattanRouterOptions)
+
+#### Returns
+
+`object`
+
+##### source
+
+> **source**: [`Side`](../Enumeration.Side)
+
+##### target
+
+> **target**: [`Side`](../Enumeration.Side)
+
+***
+
+### getFraction()
+
+> `protected` **getFraction**(`kind`): `undefined` \| `number`
+
+Defined in: [packages/sprotty/src/features/routing/manhattan-edge-router.ts:102](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/manhattan-edge-router.ts#L102)
+
+#### Parameters
+
+##### kind
+
+[`RoutingHandleKind`](../TypeAlias.RoutingHandleKind)
+
+#### Returns
+
+`undefined` \| `number`
+
+***
+
+### getHandlePosition()
+
+> **getHandlePosition**(`edge`, `route`, `handle`): `undefined` \| `Point`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:192](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L192)
+
+Retuns the position of the given handle based on the routing points of the edge.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### route
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+##### handle
+
+[`SRoutingHandleImpl`](../Class.SRoutingHandleImpl)
+
+#### Returns
+
+`undefined` \| `Point`
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`getHandlePosition`](../Class.AbstractEdgeRouter.md#gethandleposition)
+
+***
+
+### getInnerHandlePosition()
+
+> `protected` **getInnerHandlePosition**(`edge`, `route`, `handle`): `undefined` \| `Point`
+
+Defined in: [packages/sprotty/src/features/routing/manhattan-edge-router.ts:92](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/manhattan-edge-router.ts#L92)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### route
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+##### handle
+
+[`SRoutingHandleImpl`](../Class.SRoutingHandleImpl)
+
+#### Returns
+
+`undefined` \| `Point`
+
+#### Overrides
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`getInnerHandlePosition`](../Class.AbstractEdgeRouter.md#getinnerhandleposition)
+
+***
+
+### getOptions()
+
+> `protected` **getOptions**(`edge`): [`ManhattanRouterOptions`](../Interface.ManhattanRouterOptions)
+
+Defined in: [packages/sprotty/src/features/routing/manhattan-edge-router.ts:36](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/manhattan-edge-router.ts#L36)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+#### Returns
+
+[`ManhattanRouterOptions`](../Interface.ManhattanRouterOptions)
+
+#### Overrides
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`getOptions`](../Class.AbstractEdgeRouter.md#getoptions)
+
+***
+
+### getSelfEdgeIndex()
+
+> `protected` **getSelfEdgeIndex**(`edge`): `number`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:424](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L424)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+#### Returns
+
+`number`
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`getSelfEdgeIndex`](../Class.AbstractEdgeRouter.md#getselfedgeindex)
+
+***
+
+### getTranslatedAnchor()
+
+> **getTranslatedAnchor**(`connectable`, `refPoint`, `refContainer`, `edge`, `anchorCorrection`): `Point`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:237](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L237)
+
+#### Parameters
+
+##### connectable
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl)
+
+##### refPoint
+
+`Point`
+
+##### refContainer
+
+[`SParentElementImpl`](../Class.SParentElementImpl)
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### anchorCorrection
+
+`number` = `0`
+
+#### Returns
+
+`Point`
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`getTranslatedAnchor`](../Class.AbstractEdgeRouter.md#gettranslatedanchor)
+
+***
+
+### manhattanify()
+
+> `protected` **manhattanify**(`edge`, `routingPoints`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/manhattan-edge-router.ts:290](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/manhattan-edge-router.ts#L290)
+
+Add artificial routing points to keep all angles rectilinear.
+
+This makes edge morphing look a lot smoother, where RP positions are interpolated
+linearly probably resulting in non-rectilinear angles. We don't add handles for
+these additional RPs.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### routingPoints
+
+`Point`[]
+
+#### Returns
+
+`void`
+
+***
+
+### pointAt()
+
+> **pointAt**(`edge`, `t`): `undefined` \| `Point`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:126](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L126)
+
+Calculates a point on the edge
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### t
+
+`number`
+
+a value between 0 (sourceAnchor) and 1 (targetAnchor)
+
+#### Returns
+
+`undefined` \| `Point`
+
+the point or undefined if t is out of bounds or it cannot be computed
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`pointAt`](../Class.AbstractEdgeRouter.md#pointat)
+
+***
+
+### removeHandle()
+
+> `protected` **removeHandle**(`edge`, `pointIndex`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/manhattan-edge-router.ts:228](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/manhattan-edge-router.ts#L228)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### pointIndex
+
+`number`
+
+#### Returns
+
+`void`
+
+***
+
+### resetRoutingPointsOnReconnect()
+
+> `protected` **resetRoutingPointsOnReconnect**(`edge`, `routingPoints`, `updateHandles`, `sourceAnchors`, `targetAnchors`): `boolean`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:290](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L290)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### routingPoints
+
+`Point`[]
+
+##### updateHandles
+
+`boolean`
+
+##### sourceAnchors
+
+[`DefaultAnchors`](../Class.DefaultAnchors)
+
+##### targetAnchors
+
+[`DefaultAnchors`](../Class.DefaultAnchors)
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`resetRoutingPointsOnReconnect`](../Class.AbstractEdgeRouter.md#resetroutingpointsonreconnect)
+
+***
+
+### route()
+
+> **route**(`edge`): [`RoutedPoint`](../Interface.RoutedPoint)[]
+
+Defined in: [packages/sprotty/src/features/routing/manhattan-edge-router.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/manhattan-edge-router.ts#L44)
+
+Calculates the route of the given edge.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+#### Returns
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+#### Overrides
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`route`](../Class.AbstractEdgeRouter.md#route)
+
+***
+
+### takeSnapshot()
+
+> **takeSnapshot**(`edge`): [`EdgeSnapshot`](../Interface.EdgeSnapshot)
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:362](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L362)
+
+Creates a snapshot of the given edge, storing all the data needed to restore it to
+its current state.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+#### Returns
+
+[`EdgeSnapshot`](../Interface.EdgeSnapshot)
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`takeSnapshot`](../Class.AbstractEdgeRouter.md#takesnapshot)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ManhattanEllipticAnchor.md b/hugo/content/docs/ref/sprotty-core/Class.ManhattanEllipticAnchor.md
new file mode 100644
index 0000000..a936a94
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ManhattanEllipticAnchor.md
@@ -0,0 +1,88 @@
+
+[sprotty](../globals) / ManhattanEllipticAnchor
+
+# Class: ManhattanEllipticAnchor
+
+Defined in: [packages/sprotty/src/features/routing/manhattan-anchors.ts:121](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/manhattan-anchors.ts#L121)
+
+## Implements
+
+- [`IAnchorComputer`](../Interface.IAnchorComputer)
+
+## Constructors
+
+### Constructor
+
+> **new ManhattanEllipticAnchor**(): `ManhattanEllipticAnchor`
+
+#### Returns
+
+`ManhattanEllipticAnchor`
+
+## Properties
+
+### KIND
+
+> `static` **KIND**: `string`
+
+Defined in: [packages/sprotty/src/features/routing/manhattan-anchors.ts:123](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/manhattan-anchors.ts#L123)
+
+## Accessors
+
+### kind
+
+#### Get Signature
+
+> **get** **kind**(): `string`
+
+Defined in: [packages/sprotty/src/features/routing/manhattan-anchors.ts:125](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/manhattan-anchors.ts#L125)
+
+##### Returns
+
+`string`
+
+#### Implementation of
+
+[`IAnchorComputer`](../Interface.IAnchorComputer).[`kind`](../Interface.IAnchorComputer.md#kind)
+
+## Methods
+
+### getAnchor()
+
+> **getAnchor**(`connectable`, `refPoint`, `offset`): `Point`
+
+Defined in: [packages/sprotty/src/features/routing/manhattan-anchors.ts:129](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/manhattan-anchors.ts#L129)
+
+Compute an anchor position for routing an edge towards this element.
+
+The default implementation returns the element's center point. If edges should be connected
+differently, e.g. to some point on the boundary of the element's view, the according computation
+should be implemented in a subclass by overriding this method.
+
+#### Parameters
+
+##### connectable
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl)
+
+The node or port an edge should be connected to.
+
+##### refPoint
+
+`Point`
+
+##### offset
+
+`number` = `0`
+
+An optional offset value to be considered in the anchor computation;
+ positive values should shift the anchor away from this element, negative values
+ should shift the anchor more to the inside. Use this to adapt ot arrow heads.
+
+#### Returns
+
+`Point`
+
+#### Implementation of
+
+[`IAnchorComputer`](../Interface.IAnchorComputer).[`getAnchor`](../Interface.IAnchorComputer.md#getanchor)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ManhattanRectangularAnchor.md b/hugo/content/docs/ref/sprotty-core/Class.ManhattanRectangularAnchor.md
new file mode 100644
index 0000000..a2b076f
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ManhattanRectangularAnchor.md
@@ -0,0 +1,88 @@
+
+[sprotty](../globals) / ManhattanRectangularAnchor
+
+# Class: ManhattanRectangularAnchor
+
+Defined in: [packages/sprotty/src/features/routing/manhattan-anchors.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/manhattan-anchors.ts#L25)
+
+## Implements
+
+- [`IAnchorComputer`](../Interface.IAnchorComputer)
+
+## Constructors
+
+### Constructor
+
+> **new ManhattanRectangularAnchor**(): `ManhattanRectangularAnchor`
+
+#### Returns
+
+`ManhattanRectangularAnchor`
+
+## Properties
+
+### KIND
+
+> `static` **KIND**: `string`
+
+Defined in: [packages/sprotty/src/features/routing/manhattan-anchors.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/manhattan-anchors.ts#L27)
+
+## Accessors
+
+### kind
+
+#### Get Signature
+
+> **get** **kind**(): `string`
+
+Defined in: [packages/sprotty/src/features/routing/manhattan-anchors.ts:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/manhattan-anchors.ts#L29)
+
+##### Returns
+
+`string`
+
+#### Implementation of
+
+[`IAnchorComputer`](../Interface.IAnchorComputer).[`kind`](../Interface.IAnchorComputer.md#kind)
+
+## Methods
+
+### getAnchor()
+
+> **getAnchor**(`connectable`, `refPoint`, `offset`): `Point`
+
+Defined in: [packages/sprotty/src/features/routing/manhattan-anchors.ts:33](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/manhattan-anchors.ts#L33)
+
+Compute an anchor position for routing an edge towards this element.
+
+The default implementation returns the element's center point. If edges should be connected
+differently, e.g. to some point on the boundary of the element's view, the according computation
+should be implemented in a subclass by overriding this method.
+
+#### Parameters
+
+##### connectable
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl)
+
+The node or port an edge should be connected to.
+
+##### refPoint
+
+`Point`
+
+##### offset
+
+`number`
+
+An optional offset value to be considered in the anchor computation;
+ positive values should shift the anchor away from this element, negative values
+ should shift the anchor more to the inside. Use this to adapt ot arrow heads.
+
+#### Returns
+
+`Point`
+
+#### Implementation of
+
+[`IAnchorComputer`](../Interface.IAnchorComputer).[`getAnchor`](../Interface.IAnchorComputer.md#getanchor)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.MergeableCommand.md b/hugo/content/docs/ref/sprotty-core/Class.MergeableCommand.md
new file mode 100644
index 0000000..dc823ba
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.MergeableCommand.md
@@ -0,0 +1,20 @@
+
+### undo()
+
+> `abstract` **undo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/base/commands/command.ts:108](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command.ts#L108)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Inherited from
+
+[`Command`](../Class.Command).[`undo`](../Class.Command.md#undo)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.MissingView.md b/hugo/content/docs/ref/sprotty-core/Class.MissingView.md
new file mode 100644
index 0000000..c514a4f
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.MissingView.md
@@ -0,0 +1,24 @@
+
+### render()
+
+> **render**(`model`, `context`): `VNode`
+
+Defined in: [packages/sprotty/src/base/views/view.tsx:180](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/view.tsx#L180)
+
+#### Parameters
+
+##### model
+
+`Readonly`\<[`SModelElementImpl`](../Class.SModelElementImpl)\>
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+#### Returns
+
+`VNode`
+
+#### Implementation of
+
+[`IView`](../Interface.IView).[`render`](../Interface.IView.md#render)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ModelIndexImpl.md b/hugo/content/docs/ref/sprotty-core/Class.ModelIndexImpl.md
new file mode 100644
index 0000000..ae22efb
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ModelIndexImpl.md
@@ -0,0 +1,60 @@
+
+### getAttachedElements()
+
+> **getAttachedElements**(`element`): `FluentIterable`\<[`SModelElementImpl`](../Class.SModelElementImpl)\>
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:241](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L241)
+
+#### Parameters
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+#### Returns
+
+`FluentIterable`\<[`SModelElementImpl`](../Class.SModelElementImpl)\>
+
+***
+
+### getById()
+
+> **getById**(`id`): `undefined` \| [`SModelElementImpl`](../Class.SModelElementImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:237](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L237)
+
+#### Parameters
+
+##### id
+
+`string`
+
+#### Returns
+
+`undefined` \| [`SModelElementImpl`](../Class.SModelElementImpl)
+
+#### Implementation of
+
+[`IModelIndex`](../Interface.IModelIndex).[`getById`](../Interface.IModelIndex.md#getbyid)
+
+***
+
+### remove()
+
+> **remove**(`element`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:224](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L224)
+
+#### Parameters
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`IModelIndex`](../Interface.IModelIndex).[`remove`](../Interface.IModelIndex.md#remove)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ModelMatcher.md b/hugo/content/docs/ref/sprotty-core/Class.ModelMatcher.md
new file mode 100644
index 0000000..d1dee75
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ModelMatcher.md
@@ -0,0 +1,24 @@
+
+### matchRight()
+
+> `protected` **matchRight**(`element`, `result`, `parentId?`): `void`
+
+Defined in: [packages/sprotty/src/features/update/model-matching.ts:63](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/update/model-matching.ts#L63)
+
+#### Parameters
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl) | `SModelElement`
+
+##### result
+
+[`MatchResult`](../Interface.MatchResult)
+
+##### parentId?
+
+`string`
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ModelRenderer.md b/hugo/content/docs/ref/sprotty-core/Class.ModelRenderer.md
new file mode 100644
index 0000000..8315375
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ModelRenderer.md
@@ -0,0 +1,64 @@
+
+### postUpdate()
+
+> **postUpdate**(`cause?`): `void`
+
+Defined in: [packages/sprotty/src/base/views/viewer.tsx:86](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer.tsx#L86)
+
+#### Parameters
+
+##### cause?
+
+`Action`
+
+#### Returns
+
+`void`
+
+***
+
+### renderChildren()
+
+> **renderChildren**(`element`, `args?`): `VNode`[]
+
+Defined in: [packages/sprotty/src/base/views/viewer.tsx:73](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer.tsx#L73)
+
+#### Parameters
+
+##### element
+
+`Readonly`\<[`SParentElementImpl`](../Class.SParentElementImpl)\>
+
+##### args?
+
+[`IViewArgs`](../Interface.IViewArgs)
+
+#### Returns
+
+`VNode`[]
+
+#### Implementation of
+
+[`RenderingContext`](../Interface.RenderingContext).[`renderChildren`](../Interface.RenderingContext.md#renderchildren)
+
+***
+
+### renderElement()
+
+> **renderElement**(`element`): `undefined` \| `VNode`
+
+Defined in: [packages/sprotty/src/base/views/viewer.tsx:63](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer.tsx#L63)
+
+#### Parameters
+
+##### element
+
+`Readonly`\<[`SModelElementImpl`](../Class.SModelElementImpl)\>
+
+#### Returns
+
+`undefined` \| `VNode`
+
+#### Implementation of
+
+[`RenderingContext`](../Interface.RenderingContext).[`renderElement`](../Interface.RenderingContext.md#renderelement)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ModelSource.md b/hugo/content/docs/ref/sprotty-core/Class.ModelSource.md
new file mode 100644
index 0000000..a6dd4e6
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ModelSource.md
@@ -0,0 +1,20 @@
+
+### initialize()
+
+> **initialize**(`registry`): `void`
+
+Defined in: [packages/sprotty/src/model-source/model-source.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/model-source.ts#L52)
+
+#### Parameters
+
+##### registry
+
+[`ActionHandlerRegistry`](../Class.ActionHandlerRegistry)
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`IActionHandlerInitializer`](../Interface.IActionHandlerInitializer).[`initialize`](../Interface.IActionHandlerInitializer.md#initialize)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ModelViewer.md b/hugo/content/docs/ref/sprotty-core/Class.ModelViewer.md
new file mode 100644
index 0000000..18f69e9
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ModelViewer.md
@@ -0,0 +1,130 @@
+
+### options
+
+> `protected` **options**: [`ViewerOptions`](../Interface.ViewerOptions)
+
+Defined in: [packages/sprotty/src/base/views/viewer.tsx:127](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer.tsx#L127)
+
+***
+
+### patcher
+
+> `protected` `readonly` **patcher**: [`Patcher`](../TypeAlias.Patcher)
+
+Defined in: [packages/sprotty/src/base/views/viewer.tsx:139](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer.tsx#L139)
+
+***
+
+### renderer
+
+> `protected` `readonly` **renderer**: [`ModelRenderer`](../Class.ModelRenderer)
+
+Defined in: [packages/sprotty/src/base/views/viewer.tsx:138](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer.tsx#L138)
+
+## Methods
+
+### getBoundsInPage()
+
+> `protected` **getBoundsInPage**(`element`): `object`
+
+Defined in: [packages/sprotty/src/base/views/viewer.tsx:209](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer.tsx#L209)
+
+#### Parameters
+
+##### element
+
+`Element`
+
+#### Returns
+
+`object`
+
+##### height
+
+> **height**: `number` = `bounds.height`
+
+##### width
+
+> **width**: `number` = `bounds.width`
+
+##### x
+
+> **x**: `number`
+
+##### y
+
+> **y**: `number`
+
+***
+
+### hasFocus()
+
+> `protected` **hasFocus**(): `boolean`
+
+Defined in: [packages/sprotty/src/base/views/viewer.tsx:179](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer.tsx#L179)
+
+#### Returns
+
+`boolean`
+
+***
+
+### onWindowResize()
+
+> `protected` **onWindowResize**(`vdom`): `void`
+
+Defined in: [packages/sprotty/src/base/views/viewer.tsx:201](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer.tsx#L201)
+
+#### Parameters
+
+##### vdom
+
+`VNode`
+
+#### Returns
+
+`void`
+
+***
+
+### restoreFocus()
+
+> `protected` **restoreFocus**(`focus`): `void`
+
+Defined in: [packages/sprotty/src/base/views/viewer.tsx:190](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer.tsx#L190)
+
+#### Parameters
+
+##### focus
+
+`boolean`
+
+#### Returns
+
+`void`
+
+***
+
+### update()
+
+> **update**(`model`, `cause?`): `void`
+
+Defined in: [packages/sprotty/src/base/views/viewer.tsx:143](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer.tsx#L143)
+
+#### Parameters
+
+##### model
+
+`Readonly`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+##### cause?
+
+`Action`
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`IViewer`](../Interface.IViewer).[`update`](../Interface.IViewer.md#update)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.MorphEdgesAnimation.md b/hugo/content/docs/ref/sprotty-core/Class.MorphEdgesAnimation.md
new file mode 100644
index 0000000..2e57e47
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.MorphEdgesAnimation.md
@@ -0,0 +1,128 @@
+
+### model
+
+> `protected` **model**: [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/features/move/move.ts:334](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L334)
+
+***
+
+### reverse
+
+> `protected` **reverse**: `boolean` = `false`
+
+Defined in: [packages/sprotty/src/features/move/move.ts:337](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L337)
+
+***
+
+### stopped
+
+> `protected` **stopped**: `boolean` = `false`
+
+Defined in: [packages/sprotty/src/base/animations/animation.ts:30](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/animations/animation.ts#L30)
+
+#### Inherited from
+
+[`Animation`](../Class.Animation).[`stopped`](../Class.Animation.md#stopped)
+
+## Methods
+
+### growToSize()
+
+> `protected` **growToSize**(`route`, `targetSize`): `Point`[]
+
+Defined in: [packages/sprotty/src/features/move/move.ts:398](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L398)
+
+#### Parameters
+
+##### route
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+##### targetSize
+
+`number`
+
+#### Returns
+
+`Point`[]
+
+***
+
+### midPoint()
+
+> `protected` **midPoint**(`edgeMemento`): `Point`
+
+Defined in: [packages/sprotty/src/features/move/move.ts:353](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L353)
+
+#### Parameters
+
+##### edgeMemento
+
+[`EdgeMemento`](../Interface.EdgeMemento)
+
+#### Returns
+
+`Point`
+
+***
+
+### start()
+
+> **start**(): `Promise`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+Defined in: [packages/sprotty/src/features/move/move.ts:363](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L363)
+
+#### Returns
+
+`Promise`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+#### Overrides
+
+[`Animation`](../Class.Animation).[`start`](../Class.Animation.md#start)
+
+***
+
+### stop()
+
+> **stop**(): `void`
+
+Defined in: [packages/sprotty/src/base/animations/animation.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/animations/animation.ts#L74)
+
+Stop the animation at the current state.
+The promise returned by start() will be resolved with the current state after the next tweening step.
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`Animation`](../Class.Animation).[`stop`](../Class.Animation.md#stop)
+
+***
+
+### tween()
+
+> **tween**(`t`): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/features/move/move.ts:370](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L370)
+
+This method called by the animation at each rendering pass until
+the duration is reached. Implement it to interpolate the state.
+
+#### Parameters
+
+##### t
+
+`number`
+
+varies between 0 (start of animation) and 1 (end of animation)
+
+#### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Overrides
+
+[`Animation`](../Class.Animation).[`tween`](../Class.Animation.md#tween)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.MouseListener.md b/hugo/content/docs/ref/sprotty-core/Class.MouseListener.md
new file mode 100644
index 0000000..2622733
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.MouseListener.md
@@ -0,0 +1,218 @@
+
+### dragOver()
+
+> **dragOver**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:210](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L210)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+***
+
+### drop()
+
+> **drop**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:214](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L214)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+***
+
+### mouseDown()
+
+> **mouseDown**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:186](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L186)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+***
+
+### mouseEnter()
+
+> **mouseEnter**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:178](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L178)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+***
+
+### mouseLeave()
+
+> **mouseLeave**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:182](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L182)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+***
+
+### mouseMove()
+
+> **mouseMove**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:190](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L190)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+***
+
+### mouseOut()
+
+> **mouseOut**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:174](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L174)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+***
+
+### mouseOver()
+
+> **mouseOver**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:170](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L170)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+***
+
+### mouseUp()
+
+> **mouseUp**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:194](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L194)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+***
+
+### wheel()
+
+> **wheel**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:198](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L198)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`WheelEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
diff --git a/hugo/content/docs/ref/sprotty-core/Class.MousePositionTracker.md b/hugo/content/docs/ref/sprotty-core/Class.MousePositionTracker.md
new file mode 100644
index 0000000..6b598bc
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.MousePositionTracker.md
@@ -0,0 +1,258 @@
+
+### dragOver()
+
+> **dragOver**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:210](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L210)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`dragOver`](../Class.MouseListener.md#dragover)
+
+***
+
+### drop()
+
+> **drop**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:214](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L214)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`drop`](../Class.MouseListener.md#drop)
+
+***
+
+### mouseDown()
+
+> **mouseDown**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:186](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L186)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseDown`](../Class.MouseListener.md#mousedown)
+
+***
+
+### mouseEnter()
+
+> **mouseEnter**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:178](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L178)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseEnter`](../Class.MouseListener.md#mouseenter)
+
+***
+
+### mouseLeave()
+
+> **mouseLeave**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:182](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L182)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseLeave`](../Class.MouseListener.md#mouseleave)
+
+***
+
+### mouseMove()
+
+> **mouseMove**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:228](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L228)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Overrides
+
+[`MouseListener`](../Class.MouseListener).[`mouseMove`](../Class.MouseListener.md#mousemove)
+
+***
+
+### mouseOut()
+
+> **mouseOut**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:174](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L174)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseOut`](../Class.MouseListener.md#mouseout)
+
+***
+
+### mouseOver()
+
+> **mouseOver**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:170](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L170)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseOver`](../Class.MouseListener.md#mouseover)
+
+***
+
+### mouseUp()
+
+> **mouseUp**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:194](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L194)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseUp`](../Class.MouseListener.md#mouseup)
+
+***
+
+### wheel()
+
+> **wheel**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:198](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L198)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`WheelEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`wheel`](../Class.MouseListener.md#wheel)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.MouseTool.md b/hugo/content/docs/ref/sprotty-core/Class.MouseTool.md
new file mode 100644
index 0000000..77aa4dc
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.MouseTool.md
@@ -0,0 +1,350 @@
+
+### decorate()
+
+> **decorate**(`vnode`, `element`): `VNode`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:131](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L131)
+
+#### Parameters
+
+##### vnode
+
+`VNode`
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+#### Returns
+
+`VNode`
+
+#### Implementation of
+
+[`IVNodePostprocessor`](../Interface.IVNodePostprocessor).[`decorate`](../Interface.IVNodePostprocessor.md#decorate)
+
+***
+
+### deregister()
+
+> **deregister**(`mouseListener`): `void`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:40](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L40)
+
+#### Parameters
+
+##### mouseListener
+
+[`MouseListener`](../Class.MouseListener)
+
+#### Returns
+
+`void`
+
+***
+
+### doubleClick()
+
+> **doubleClick**(`model`, `event`): `void`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:127](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L127)
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`void`
+
+***
+
+### focusOnMouseEvent()
+
+> `protected` **focusOnMouseEvent**\<`K`\>(`methodName`, `model`): `void`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:82](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L82)
+
+#### Type Parameters
+
+##### K
+
+`K` *extends* keyof [`MouseListener`](../Class.MouseListener)
+
+#### Parameters
+
+##### methodName
+
+`K`
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Returns
+
+`void`
+
+***
+
+### getTargetElement()
+
+> `protected` **getTargetElement**(`model`, `event`): `undefined` \| [`SModelElementImpl`](../Class.SModelElementImpl)
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:46](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L46)
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`undefined` \| [`SModelElementImpl`](../Class.SModelElementImpl)
+
+***
+
+### handleEvent()
+
+> `protected` **handleEvent**(`methodName`, `model`, `event`): `void`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:60](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L60)
+
+#### Parameters
+
+##### methodName
+
+[`MouseEventKind`](../TypeAlias.MouseEventKind)
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`void`
+
+***
+
+### mouseDown()
+
+> **mouseDown**(`model`, `event`): `void`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:106](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L106)
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`void`
+
+***
+
+### mouseEnter()
+
+> **mouseEnter**(`model`, `event`): `void`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:98](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L98)
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`void`
+
+***
+
+### mouseLeave()
+
+> **mouseLeave**(`model`, `event`): `void`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:102](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L102)
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`void`
+
+***
+
+### mouseMove()
+
+> **mouseMove**(`model`, `event`): `void`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:110](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L110)
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`void`
+
+***
+
+### mouseOut()
+
+> **mouseOut**(`model`, `event`): `void`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:94](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L94)
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`void`
+
+***
+
+### mouseOver()
+
+> **mouseOver**(`model`, `event`): `void`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:90](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L90)
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`void`
+
+***
+
+### mouseUp()
+
+> **mouseUp**(`model`, `event`): `void`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:114](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L114)
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`void`
+
+***
+
+### postUpdate()
+
+> **postUpdate**(): `void`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:152](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L152)
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`IVNodePostprocessor`](../Interface.IVNodePostprocessor).[`postUpdate`](../Interface.IVNodePostprocessor.md#postupdate)
+
+***
+
+### register()
+
+> **register**(`mouseListener`): `void`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:36](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L36)
+
+#### Parameters
+
+##### mouseListener
+
+[`MouseListener`](../Class.MouseListener)
+
+#### Returns
+
+`void`
+
+***
+
+### wheel()
+
+> **wheel**(`model`, `event`): `void`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:118](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L118)
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### event
+
+`WheelEvent`
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.MoveAnimation.md b/hugo/content/docs/ref/sprotty-core/Class.MoveAnimation.md
new file mode 100644
index 0000000..83caa85
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.MoveAnimation.md
@@ -0,0 +1,88 @@
+
+### model
+
+> `protected` **model**: [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/features/move/move.ts:299](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L299)
+
+***
+
+### reverse
+
+> `protected` **reverse**: `boolean` = `false`
+
+Defined in: [packages/sprotty/src/features/move/move.ts:302](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L302)
+
+***
+
+### stopped
+
+> `protected` **stopped**: `boolean` = `false`
+
+Defined in: [packages/sprotty/src/base/animations/animation.ts:30](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/animations/animation.ts#L30)
+
+#### Inherited from
+
+[`Animation`](../Class.Animation).[`stopped`](../Class.Animation.md#stopped)
+
+## Methods
+
+### start()
+
+> **start**(): `Promise`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+Defined in: [packages/sprotty/src/base/animations/animation.ts:32](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/animations/animation.ts#L32)
+
+#### Returns
+
+`Promise`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+#### Inherited from
+
+[`Animation`](../Class.Animation).[`start`](../Class.Animation.md#start)
+
+***
+
+### stop()
+
+> **stop**(): `void`
+
+Defined in: [packages/sprotty/src/base/animations/animation.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/animations/animation.ts#L74)
+
+Stop the animation at the current state.
+The promise returned by start() will be resolved with the current state after the next tweening step.
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`Animation`](../Class.Animation).[`stop`](../Class.Animation.md#stop)
+
+***
+
+### tween()
+
+> **tween**(`t`): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/features/move/move.ts:306](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L306)
+
+This method called by the animation at each rendering pass until
+the duration is reached. Implement it to interpolate the state.
+
+#### Parameters
+
+##### t
+
+`number`
+
+varies between 0 (start of animation) and 1 (end of animation)
+
+#### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Overrides
+
+[`Animation`](../Class.Animation).[`tween`](../Class.Animation.md#tween)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.MoveCommand.md b/hugo/content/docs/ref/sprotty-core/Class.MoveCommand.md
new file mode 100644
index 0000000..a03c87f
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.MoveCommand.md
@@ -0,0 +1,274 @@
+
+### edgeRouterRegistry?
+
+> `optional` **edgeRouterRegistry**: [`EdgeRouterRegistry`](../Class.EdgeRouterRegistry)
+
+Defined in: [packages/sprotty/src/features/move/move.ts:67](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L67)
+
+***
+
+### resolvedMoves
+
+> `protected` **resolvedMoves**: `Map`\<`string`, [`ResolvedElementMove`](../Interface.ResolvedElementMove)\>
+
+Defined in: [packages/sprotty/src/features/move/move.ts:69](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L69)
+
+***
+
+### stoppableCommandKey
+
+> **stoppableCommandKey**: `string`
+
+Defined in: [packages/sprotty/src/features/move/move.ts:73](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L73)
+
+#### Implementation of
+
+[`IStoppableCommand`](../Interface.IStoppableCommand).[`stoppableCommandKey`](../Interface.IStoppableCommand.md#stoppablecommandkey)
+
+***
+
+### KIND
+
+> `readonly` `static` **KIND**: `"move"` = `MoveAction.KIND`
+
+Defined in: [packages/sprotty/src/features/move/move.ts:65](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L65)
+
+## Methods
+
+### doMove()
+
+> `protected` **doMove**(`edge2move`, `attachedEdgeShifts`): `void`
+
+Defined in: [packages/sprotty/src/features/move/move.ts:179](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L179)
+
+#### Parameters
+
+##### edge2move
+
+`Map`\<[`SRoutableElementImpl`](../Class.SRoutableElementImpl), [`ResolvedHandleMove`](../Interface.ResolvedHandleMove)[]\>
+
+##### attachedEdgeShifts
+
+`Map`\<[`SRoutableElementImpl`](../Class.SRoutableElementImpl), `Point`\>
+
+#### Returns
+
+`void`
+
+***
+
+### execute()
+
+> **execute**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/move/move.ts:89](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L89)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Implementation of
+
+[`IStoppableCommand`](../Interface.IStoppableCommand).[`execute`](../Interface.IStoppableCommand.md#execute)
+
+#### Overrides
+
+[`MergeableCommand`](../Class.MergeableCommand).[`execute`](../Class.MergeableCommand.md#execute)
+
+***
+
+### isAttachedEdge()
+
+> `protected` **isAttachedEdge**(`edge`): `boolean`
+
+Defined in: [packages/sprotty/src/features/move/move.ts:221](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L221)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+#### Returns
+
+`boolean`
+
+***
+
+### isChildOfMovedElements()
+
+> `protected` **isChildOfMovedElements**(`el`): `boolean`
+
+Defined in: [packages/sprotty/src/features/move/move.ts:209](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L209)
+
+#### Parameters
+
+##### el
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+#### Returns
+
+`boolean`
+
+***
+
+### merge()
+
+> **merge**(`other`, `context`): `boolean`
+
+Defined in: [packages/sprotty/src/features/move/move.ts:260](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L260)
+
+Tries to merge the given command with this.
+
+#### Parameters
+
+##### other
+
+[`ICommand`](../Interface.ICommand)
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+`boolean`
+
+#### Overrides
+
+[`MergeableCommand`](../Class.MergeableCommand).[`merge`](../Class.MergeableCommand.md#merge)
+
+***
+
+### redo()
+
+> **redo**(`context`): `Promise`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+Defined in: [packages/sprotty/src/features/move/move.ts:253](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L253)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+`Promise`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+#### Implementation of
+
+[`IStoppableCommand`](../Interface.IStoppableCommand).[`redo`](../Interface.IStoppableCommand.md#redo)
+
+#### Overrides
+
+[`MergeableCommand`](../Class.MergeableCommand).[`redo`](../Class.MergeableCommand.md#redo)
+
+***
+
+### resolveElementMove()
+
+> `protected` **resolveElementMove**(`element`, `move`): `undefined` \| [`ResolvedElementMove`](../Interface.ResolvedElementMove)
+
+Defined in: [packages/sprotty/src/features/move/move.ts:169](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L169)
+
+#### Parameters
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl) & `Locateable`
+
+##### move
+
+[`ElementMove`](../Interface.ElementMove)
+
+#### Returns
+
+`undefined` \| [`ResolvedElementMove`](../Interface.ResolvedElementMove)
+
+***
+
+### resolveHandleMove()
+
+> `protected` **resolveHandleMove**(`handle`, `edge`, `move`): `undefined` \| [`ResolvedHandleMove`](../Interface.ResolvedHandleMove)
+
+Defined in: [packages/sprotty/src/features/move/move.ts:154](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L154)
+
+#### Parameters
+
+##### handle
+
+[`SRoutingHandleImpl`](../Class.SRoutingHandleImpl)
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### move
+
+[`ElementMove`](../Interface.ElementMove)
+
+#### Returns
+
+`undefined` \| [`ResolvedHandleMove`](../Interface.ResolvedHandleMove)
+
+***
+
+### stopExecution()
+
+> **stopExecution**(): `void`
+
+Defined in: [packages/sprotty/src/features/move/move.ts:82](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L82)
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`IStoppableCommand`](../Interface.IStoppableCommand).[`stopExecution`](../Interface.IStoppableCommand.md#stopexecution)
+
+***
+
+### undo()
+
+> **undo**(`context`): `Promise`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+Defined in: [packages/sprotty/src/features/move/move.ts:246](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L246)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+`Promise`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+#### Implementation of
+
+[`IStoppableCommand`](../Interface.IStoppableCommand).[`undo`](../Interface.IStoppableCommand.md#undo)
+
+#### Overrides
+
+[`MergeableCommand`](../Class.MergeableCommand).[`undo`](../Class.MergeableCommand.md#undo)
+
+***
+
+### undoMove()
+
+> `protected` **undoMove**(): `void`
+
+Defined in: [packages/sprotty/src/features/move/move.ts:236](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L236)
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.MoveMouseListener.md b/hugo/content/docs/ref/sprotty-core/Class.MoveMouseListener.md
new file mode 100644
index 0000000..638b208
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.MoveMouseListener.md
@@ -0,0 +1,580 @@
+
+### snapper?
+
+> `optional` **snapper**: [`ISnapper`](../Interface.ISnapper)
+
+Defined in: [packages/sprotty/src/features/move/move.ts:427](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L427)
+
+***
+
+### startDragPosition
+
+> **startDragPosition**: `undefined` \| `Point`
+
+Defined in: [packages/sprotty/src/features/move/move.ts:430](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L430)
+
+## Methods
+
+### activateRoutingHandle()
+
+> `protected` **activateRoutingHandle**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/features/move/move.ts:463](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L463)
+
+#### Parameters
+
+##### target
+
+[`SRoutingHandleImpl`](../Class.SRoutingHandleImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+***
+
+### collectStartPositions()
+
+> `protected` **collectStartPositions**(`root`): `void`
+
+Defined in: [packages/sprotty/src/features/move/move.ts:483](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L483)
+
+#### Parameters
+
+##### root
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Returns
+
+`void`
+
+***
+
+### contextMenu()
+
+> **contextMenu**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:206](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L206)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`contextMenu`](../Class.MouseListener.md#contextmenu)
+
+***
+
+### createElementMove()
+
+> `protected` **createElementMove**(`element`, `startPosition`, `delta`, `event`): `undefined` \| [`ElementMove`](../Interface.ElementMove)
+
+Defined in: [packages/sprotty/src/features/move/move.ts:535](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L535)
+
+#### Parameters
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### startPosition
+
+`Point`
+
+##### delta
+
+`Point`
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`undefined` \| [`ElementMove`](../Interface.ElementMove)
+
+***
+
+### deactivateRoutingHandle()
+
+> `protected` **deactivateRoutingHandle**(`element`, `target`, `event`): `Action`[]
+
+Defined in: [packages/sprotty/src/features/move/move.ts:617](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L617)
+
+#### Parameters
+
+##### element
+
+[`SRoutingHandleImpl`](../Class.SRoutingHandleImpl)
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`Action`[]
+
+***
+
+### decorate()
+
+> **decorate**(`vnode`, `element`): `VNode`
+
+Defined in: [packages/sprotty/src/features/move/move.ts:651](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L651)
+
+#### Parameters
+
+##### vnode
+
+`VNode`
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+#### Returns
+
+`VNode`
+
+#### Overrides
+
+[`MouseListener`](../Class.MouseListener).[`decorate`](../Class.MouseListener.md#decorate)
+
+***
+
+### deleteEdgeInProgress()
+
+> `protected` **deleteEdgeInProgress**(`edgeInProgress`): `Action`
+
+Defined in: [packages/sprotty/src/features/move/move.ts:641](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L641)
+
+#### Parameters
+
+##### edgeInProgress
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+#### Returns
+
+`Action`
+
+***
+
+### doubleClick()
+
+> **doubleClick**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:202](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L202)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`doubleClick`](../Class.MouseListener.md#doubleclick)
+
+***
+
+### dragOver()
+
+> **dragOver**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:210](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L210)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`dragOver`](../Class.MouseListener.md#dragover)
+
+***
+
+### drop()
+
+> **drop**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:214](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L214)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`drop`](../Class.MouseListener.md#drop)
+
+***
+
+### getElementMoves()
+
+> `protected` **getElementMoves**(`target`, `event`, `isFinished`): `undefined` \| `MoveAction`
+
+Defined in: [packages/sprotty/src/features/move/move.ts:510](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L510)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+##### isFinished
+
+`boolean`
+
+#### Returns
+
+`undefined` \| `MoveAction`
+
+***
+
+### getHandlePosition()
+
+> `protected` **getHandlePosition**(`handle`): `undefined` \| `Point`
+
+Defined in: [packages/sprotty/src/features/move/move.ts:571](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L571)
+
+#### Parameters
+
+##### handle
+
+[`SRoutingHandleImpl`](../Class.SRoutingHandleImpl)
+
+#### Returns
+
+`undefined` \| `Point`
+
+***
+
+### isChildOfSelected()
+
+> `protected` **isChildOfSelected**(`selectedElements`, `element`): `boolean`
+
+Defined in: [packages/sprotty/src/features/move/move.ts:500](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L500)
+
+#### Parameters
+
+##### selectedElements
+
+`Set`\<[`SModelElementImpl`](../Class.SModelElementImpl)\>
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+#### Returns
+
+`boolean`
+
+***
+
+### mouseDown()
+
+> **mouseDown**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/features/move/move.ts:433](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L433)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Overrides
+
+[`MouseListener`](../Class.MouseListener).[`mouseDown`](../Class.MouseListener.md#mousedown)
+
+***
+
+### mouseEnter()
+
+> **mouseEnter**(`target`, `event`): `Action`[]
+
+Defined in: [packages/sprotty/src/features/move/move.ts:583](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L583)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`Action`[]
+
+#### Overrides
+
+[`MouseListener`](../Class.MouseListener).[`mouseEnter`](../Class.MouseListener.md#mouseenter)
+
+***
+
+### mouseLeave()
+
+> **mouseLeave**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:182](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L182)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseLeave`](../Class.MouseListener.md#mouseleave)
+
+***
+
+### mouseMove()
+
+> **mouseMove**(`target`, `event`): `Action`[]
+
+Defined in: [packages/sprotty/src/features/move/move.ts:467](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L467)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`Action`[]
+
+#### Overrides
+
+[`MouseListener`](../Class.MouseListener).[`mouseMove`](../Class.MouseListener.md#mousemove)
+
+***
+
+### mouseOut()
+
+> **mouseOut**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:174](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L174)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseOut`](../Class.MouseListener.md#mouseout)
+
+***
+
+### mouseOver()
+
+> **mouseOver**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:170](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L170)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseOver`](../Class.MouseListener.md#mouseover)
+
+***
+
+### mouseUp()
+
+> **mouseUp**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/features/move/move.ts:589](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L589)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Overrides
+
+[`MouseListener`](../Class.MouseListener).[`mouseUp`](../Class.MouseListener.md#mouseup)
+
+***
+
+### snap()
+
+> `protected` **snap**(`position`, `element`, `isSnap`): `Point`
+
+Defined in: [packages/sprotty/src/features/move/move.ts:564](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L564)
+
+#### Parameters
+
+##### position
+
+`Point`
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### isSnap
+
+`boolean`
+
+#### Returns
+
+`Point`
+
+***
+
+### startCreatingOnDrag()
+
+> `protected` **startCreatingOnDrag**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/features/move/move.ts:452](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L452)
+
+#### Parameters
+
+##### target
+
+[`CreatingOnDrag`](../Interface.CreatingOnDrag)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+***
+
+### wheel()
+
+> **wheel**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:198](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L198)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`WheelEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`wheel`](../Class.MouseListener.md#wheel)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.MultiInstanceRegistry.md b/hugo/content/docs/ref/sprotty-core/Class.MultiInstanceRegistry.md
new file mode 100644
index 0000000..b3732f8
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.MultiInstanceRegistry.md
@@ -0,0 +1,20 @@
+
+### register()
+
+> **register**(`key`, `instance`): `void`
+
+Defined in: [packages/sprotty/src/utils/registry.ts:154](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/registry.ts#L154)
+
+#### Parameters
+
+##### key
+
+`string`
+
+##### instance
+
+`T`
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.NullLogger.md b/hugo/content/docs/ref/sprotty-core/Class.NullLogger.md
new file mode 100644
index 0000000..3f922f4
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.NullLogger.md
@@ -0,0 +1,28 @@
+
+### warn()
+
+> **warn**(`thisArg`, `message`, ...`params`): `void`
+
+Defined in: [packages/sprotty/src/utils/logging.ts:37](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/logging.ts#L37)
+
+#### Parameters
+
+##### thisArg
+
+`any`
+
+##### message
+
+`string`
+
+##### params
+
+...`any`[]
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`ILogger`](../Interface.ILogger).[`warn`](../Interface.ILogger.md#warn)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.OpenMouseListener.md b/hugo/content/docs/ref/sprotty-core/Class.OpenMouseListener.md
new file mode 100644
index 0000000..38a1cf6
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.OpenMouseListener.md
@@ -0,0 +1,258 @@
+
+### dragOver()
+
+> **dragOver**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:210](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L210)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`dragOver`](../Class.MouseListener.md#dragover)
+
+***
+
+### drop()
+
+> **drop**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:214](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L214)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`drop`](../Class.MouseListener.md#drop)
+
+***
+
+### mouseDown()
+
+> **mouseDown**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:186](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L186)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseDown`](../Class.MouseListener.md#mousedown)
+
+***
+
+### mouseEnter()
+
+> **mouseEnter**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:178](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L178)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseEnter`](../Class.MouseListener.md#mouseenter)
+
+***
+
+### mouseLeave()
+
+> **mouseLeave**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:182](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L182)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseLeave`](../Class.MouseListener.md#mouseleave)
+
+***
+
+### mouseMove()
+
+> **mouseMove**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:190](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L190)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseMove`](../Class.MouseListener.md#mousemove)
+
+***
+
+### mouseOut()
+
+> **mouseOut**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:174](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L174)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseOut`](../Class.MouseListener.md#mouseout)
+
+***
+
+### mouseOver()
+
+> **mouseOver**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:170](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L170)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseOver`](../Class.MouseListener.md#mouseover)
+
+***
+
+### mouseUp()
+
+> **mouseUp**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:194](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L194)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseUp`](../Class.MouseListener.md#mouseup)
+
+***
+
+### wheel()
+
+> **wheel**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:198](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L198)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`WheelEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`wheel`](../Class.MouseListener.md#wheel)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.PatcherProvider.md b/hugo/content/docs/ref/sprotty-core/Class.PatcherProvider.md
new file mode 100644
index 0000000..4a317e0
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.PatcherProvider.md
@@ -0,0 +1,38 @@
+
+[sprotty](../globals) / PatcherProvider
+
+# Class: PatcherProvider
+
+Defined in: [packages/sprotty/src/base/views/viewer.tsx:100](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer.tsx#L100)
+
+## Constructors
+
+### Constructor
+
+> **new PatcherProvider**(): `PatcherProvider`
+
+Defined in: [packages/sprotty/src/base/views/viewer.tsx:104](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer.tsx#L104)
+
+#### Returns
+
+`PatcherProvider`
+
+## Properties
+
+### patcher
+
+> `readonly` **patcher**: [`Patcher`](../TypeAlias.Patcher)
+
+Defined in: [packages/sprotty/src/base/views/viewer.tsx:102](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer.tsx#L102)
+
+## Methods
+
+### createModules()
+
+> `protected` **createModules**(): `Partial`\<\{ `create`: `CreateHook`; `destroy`: `DestroyHook`; `post`: `PostHook`; `pre`: `PreHook`; `remove`: `RemoveHook`; `update`: `UpdateHook`; \}\>[]
+
+Defined in: [packages/sprotty/src/base/views/viewer.tsx:108](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer.tsx#L108)
+
+#### Returns
+
+`Partial`\<\{ `create`: `CreateHook`; `destroy`: `DestroyHook`; `post`: `PostHook`; `pre`: `PreHook`; `remove`: `RemoveHook`; `update`: `UpdateHook`; \}\>[]
diff --git a/hugo/content/docs/ref/sprotty-core/Class.PointToPointLine.md b/hugo/content/docs/ref/sprotty-core/Class.PointToPointLine.md
new file mode 100644
index 0000000..a08586e
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.PointToPointLine.md
@@ -0,0 +1,128 @@
+
+### b
+
+#### Get Signature
+
+> **get** **b**(): `number`
+
+Defined in: [packages/sprotty/src/utils/geometry.ts:132](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/geometry.ts#L132)
+
+##### Returns
+
+`number`
+
+#### Implementation of
+
+[`Line`](../Interface.Line).[`b`](../Interface.Line.md#b)
+
+***
+
+### c
+
+#### Get Signature
+
+> **get** **c**(): `number`
+
+Defined in: [packages/sprotty/src/utils/geometry.ts:136](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/geometry.ts#L136)
+
+##### Returns
+
+`number`
+
+#### Implementation of
+
+[`Line`](../Interface.Line).[`c`](../Interface.Line.md#c)
+
+***
+
+### direction
+
+#### Get Signature
+
+> **get** **direction**(): [`CardinalDirection`](../TypeAlias.CardinalDirection)
+
+Defined in: [packages/sprotty/src/utils/geometry.ts:169](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/geometry.ts#L169)
+
+The direction of this line, such as 'north', 'south', or 'south-west'.
+
+##### Returns
+
+[`CardinalDirection`](../TypeAlias.CardinalDirection)
+
+***
+
+### slope
+
+#### Get Signature
+
+> **get** **slope**(): `undefined` \| `number`
+
+Defined in: [packages/sprotty/src/utils/geometry.ts:151](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/geometry.ts#L151)
+
+The slope of the line.
+A vertical line returns `undefined`.
+
+##### Returns
+
+`undefined` \| `number`
+
+***
+
+### slopeOrMax
+
+#### Get Signature
+
+> **get** **slopeOrMax**(): `number`
+
+Defined in: [packages/sprotty/src/utils/geometry.ts:159](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/geometry.ts#L159)
+
+The slope of the line or `Number.MAX_SAFE_INTEGER` if vertical.
+
+##### Returns
+
+`number`
+
+## Methods
+
+### hasIndistinctPoints()
+
+> **hasIndistinctPoints**(`otherLine`): `boolean`
+
+Defined in: [packages/sprotty/src/utils/geometry.ts:237](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/geometry.ts#L237)
+
+#### Parameters
+
+##### otherLine
+
+`PointToPointLine`
+
+the other line
+
+#### Returns
+
+`boolean`
+
+whether the start and end point of this line is does not have distinct start
+or end points with the `otherLine`
+
+***
+
+### intersection()
+
+> **intersection**(`otherLine`): `undefined` \| `Point`
+
+Defined in: [packages/sprotty/src/utils/geometry.ts:197](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/geometry.ts#L197)
+
+#### Parameters
+
+##### otherLine
+
+`PointToPointLine`
+
+the other line
+
+#### Returns
+
+`undefined` \| `Point`
+
+the intersection point between `this` line and the `otherLine` if exists, or `undefined`.
diff --git a/hugo/content/docs/ref/sprotty-core/Class.PointerListener.md b/hugo/content/docs/ref/sprotty-core/Class.PointerListener.md
new file mode 100644
index 0000000..fb7aee6
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.PointerListener.md
@@ -0,0 +1,180 @@
+
+### pointerDown()
+
+> **pointerDown**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/pointer-tool.ts:150](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/pointer-tool.ts#L150)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`PointerEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Implementation of
+
+[`IPointerListener`](../Interface.IPointerListener).[`pointerDown`](../Interface.IPointerListener.md#pointerdown)
+
+***
+
+### pointerEnter()
+
+> **pointerEnter**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/pointer-tool.ts:146](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/pointer-tool.ts#L146)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`PointerEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Implementation of
+
+[`IPointerListener`](../Interface.IPointerListener).[`pointerEnter`](../Interface.IPointerListener.md#pointerenter)
+
+***
+
+### pointerLeave()
+
+> **pointerLeave**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/pointer-tool.ts:170](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/pointer-tool.ts#L170)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`PointerEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Implementation of
+
+[`IPointerListener`](../Interface.IPointerListener).[`pointerLeave`](../Interface.IPointerListener.md#pointerleave)
+
+***
+
+### pointerMove()
+
+> **pointerMove**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/pointer-tool.ts:154](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/pointer-tool.ts#L154)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`PointerEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Implementation of
+
+[`IPointerListener`](../Interface.IPointerListener).[`pointerMove`](../Interface.IPointerListener.md#pointermove)
+
+***
+
+### pointerOut()
+
+> **pointerOut**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/pointer-tool.ts:166](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/pointer-tool.ts#L166)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`PointerEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Implementation of
+
+[`IPointerListener`](../Interface.IPointerListener).[`pointerOut`](../Interface.IPointerListener.md#pointerout)
+
+***
+
+### pointerOver()
+
+> **pointerOver**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/pointer-tool.ts:142](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/pointer-tool.ts#L142)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`PointerEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Implementation of
+
+[`IPointerListener`](../Interface.IPointerListener).[`pointerOver`](../Interface.IPointerListener.md#pointerover)
+
+***
+
+### pointerUp()
+
+> **pointerUp**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/pointer-tool.ts:158](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/pointer-tool.ts#L158)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`PointerEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Implementation of
+
+[`IPointerListener`](../Interface.IPointerListener).[`pointerUp`](../Interface.IPointerListener.md#pointerup)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.PointerTool.md b/hugo/content/docs/ref/sprotty-core/Class.PointerTool.md
new file mode 100644
index 0000000..b9e5fa8
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.PointerTool.md
@@ -0,0 +1,98 @@
+
+### deregister()
+
+> **deregister**(`pointerListener`): `void`
+
+Defined in: [packages/sprotty/src/base/views/pointer-tool.ts:38](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/pointer-tool.ts#L38)
+
+#### Parameters
+
+##### pointerListener
+
+[`IPointerListener`](../Interface.IPointerListener)
+
+#### Returns
+
+`void`
+
+***
+
+### getTargetElement()
+
+> `protected` **getTargetElement**(`model`, `event`): `undefined` \| [`SModelElementImpl`](../Class.SModelElementImpl)
+
+Defined in: [packages/sprotty/src/base/views/pointer-tool.ts:43](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/pointer-tool.ts#L43)
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### event
+
+`PointerEvent`
+
+#### Returns
+
+`undefined` \| [`SModelElementImpl`](../Class.SModelElementImpl)
+
+***
+
+### handleEvent()
+
+> `protected` **handleEvent**(`methodName`, `model`, `event`): `void`
+
+Defined in: [packages/sprotty/src/base/views/pointer-tool.ts:56](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/pointer-tool.ts#L56)
+
+#### Parameters
+
+##### methodName
+
+[`PointerEventKind`](../TypeAlias.PointerEventKind)
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### event
+
+`PointerEvent`
+
+#### Returns
+
+`void`
+
+***
+
+### postUpdate()
+
+> **postUpdate**(): `void`
+
+Defined in: [packages/sprotty/src/base/views/pointer-tool.ts:100](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/pointer-tool.ts#L100)
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`IVNodePostprocessor`](../Interface.IVNodePostprocessor).[`postUpdate`](../Interface.IVNodePostprocessor.md#postupdate)
+
+***
+
+### register()
+
+> **register**(`pointerListener`): `void`
+
+Defined in: [packages/sprotty/src/base/views/pointer-tool.ts:34](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/pointer-tool.ts#L34)
+
+#### Parameters
+
+##### pointerListener
+
+[`IPointerListener`](../Interface.IPointerListener)
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.PolylineEdgeRouter.md b/hugo/content/docs/ref/sprotty-core/Class.PolylineEdgeRouter.md
new file mode 100644
index 0000000..0b05a02
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.PolylineEdgeRouter.md
@@ -0,0 +1,656 @@
+
+### applyInnerHandleMoves()
+
+> **applyInnerHandleMoves**(`edge`, `moves`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/polyline-edge-router.ts:146](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/polyline-edge-router.ts#L146)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### moves
+
+[`ResolvedHandleMove`](../Interface.ResolvedHandleMove)[]
+
+#### Returns
+
+`void`
+
+#### Overrides
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`applyInnerHandleMoves`](../Class.AbstractEdgeRouter.md#applyinnerhandlemoves)
+
+***
+
+### applyReconnect()
+
+> **applyReconnect**(`edge`, `newSourceId?`, `newTargetId?`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:316](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L316)
+
+Updates the routing points and handles of the given edge with regard to the given moves.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### newSourceId?
+
+`string`
+
+##### newTargetId?
+
+`string`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`applyReconnect`](../Class.AbstractEdgeRouter.md#applyreconnect)
+
+***
+
+### applySnapshot()
+
+> **applySnapshot**(`edge`, `snapshot`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:375](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L375)
+
+Applies a snapshot to the current edge.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### snapshot
+
+[`EdgeSnapshot`](../Interface.EdgeSnapshot)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`applySnapshot`](../Class.AbstractEdgeRouter.md#applysnapshot)
+
+***
+
+### calculateDefaultCorners()
+
+> `protected` **calculateDefaultCorners**(`edge`, `sourceAnchors`, `targetAnchors`, `options`): `Point`[]
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:389](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L389)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### sourceAnchors
+
+[`DefaultAnchors`](../Class.DefaultAnchors)
+
+##### targetAnchors
+
+[`DefaultAnchors`](../Class.DefaultAnchors)
+
+##### options
+
+[`LinearRouteOptions`](../Interface.LinearRouteOptions)
+
+#### Returns
+
+`Point`[]
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`calculateDefaultCorners`](../Class.AbstractEdgeRouter.md#calculatedefaultcorners)
+
+***
+
+### calculateSegment()
+
+> `protected` **calculateSegment**(`edge`, `t`): `undefined` \| \{ `lambda`: `number`; `segmentEnd`: `Point`; `segmentStart`: `Point`; \}
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:145](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L145)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### t
+
+`number`
+
+#### Returns
+
+`undefined` \| \{ `lambda`: `number`; `segmentEnd`: `Point`; `segmentStart`: `Point`; \}
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`calculateSegment`](../Class.AbstractEdgeRouter.md#calculatesegment)
+
+***
+
+### cleanupRoutingPoints()
+
+> **cleanupRoutingPoints**(`edge`, `routingPoints`, `updateHandles`, `addRoutingPoints`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:284](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L284)
+
+Remove/add points in order to keep routing constraints consistent, or reset RPs on reconnect.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### routingPoints
+
+`Point`[]
+
+##### updateHandles
+
+`boolean`
+
+##### addRoutingPoints
+
+`boolean`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`cleanupRoutingPoints`](../Class.AbstractEdgeRouter.md#cleanuproutingpoints)
+
+***
+
+### commitRoute()
+
+> `protected` **commitRoute**(`edge`, `routedPoints`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:432](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L432)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### routedPoints
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`commitRoute`](../Class.AbstractEdgeRouter.md#commitroute)
+
+***
+
+### createRoutingHandles()
+
+> **createRoutingHandles**(`edge`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/polyline-edge-router.ts:126](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/polyline-edge-router.ts#L126)
+
+Creates the routing handles for the given target.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+#### Returns
+
+`void`
+
+#### Overrides
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`createRoutingHandles`](../Class.AbstractEdgeRouter.md#createroutinghandles)
+
+***
+
+### derivativeAt()
+
+> **derivativeAt**(`edge`, `t`): `undefined` \| `Point`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:134](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L134)
+
+Calculates the derivative at a point on the edge.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### t
+
+`number`
+
+a value between 0 (sourceAnchor) and 1 (targetAnchor)
+
+#### Returns
+
+`undefined` \| `Point`
+
+the point or undefined if t is out of bounds or it cannot be computed
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`derivativeAt`](../Class.AbstractEdgeRouter.md#derivativeat)
+
+***
+
+### filterEditModeHandles()
+
+> `protected` **filterEditModeHandles**(`route`, `edge`, `options`): [`RoutedPoint`](../Interface.RoutedPoint)[]
+
+Defined in: [packages/sprotty/src/features/routing/polyline-edge-router.ts:100](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/polyline-edge-router.ts#L100)
+
+Remove routed points that are in edit mode and for which the angle between the preceding and
+following points falls below a threshold.
+
+#### Parameters
+
+##### route
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### options
+
+[`PolylineRouteOptions`](../Interface.PolylineRouteOptions)
+
+#### Returns
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+***
+
+### findOrthogonalIntersection()
+
+> **findOrthogonalIntersection**(`edge`, `point`): `object`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:91](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L91)
+
+Finds the orthogonal intersection point between an edge and a given point in 2D space.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+The edge to find the intersection point on.
+
+##### point
+
+`Point`
+
+The point to find the intersection with.
+
+#### Returns
+
+`object`
+
+The intersection point and its derivative on the respective edge segment.
+
+##### derivative
+
+> **derivative**: `Point`
+
+##### point
+
+> **point**: `Point`
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`findOrthogonalIntersection`](../Class.AbstractEdgeRouter.md#findorthogonalintersection)
+
+***
+
+### findRouteSegment()
+
+> `protected` **findRouteSegment**(`edge`, `route`, `handleIndex`): `object`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:217](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L217)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### route
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+##### handleIndex
+
+`number`
+
+#### Returns
+
+`object`
+
+##### end?
+
+> `optional` **end**: `Point`
+
+##### start?
+
+> `optional` **start**: `Point`
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`findRouteSegment`](../Class.AbstractEdgeRouter.md#findroutesegment)
+
+***
+
+### getAnchorComputer()
+
+> `protected` **getAnchorComputer**(`connectable`): [`IAnchorComputer`](../Interface.IAnchorComputer)
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:245](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L245)
+
+#### Parameters
+
+##### connectable
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl)
+
+#### Returns
+
+[`IAnchorComputer`](../Interface.IAnchorComputer)
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`getAnchorComputer`](../Class.AbstractEdgeRouter.md#getanchorcomputer)
+
+***
+
+### getHandlePosition()
+
+> **getHandlePosition**(`edge`, `route`, `handle`): `undefined` \| `Point`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:192](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L192)
+
+Retuns the position of the given handle based on the routing points of the edge.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### route
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+##### handle
+
+[`SRoutingHandleImpl`](../Class.SRoutingHandleImpl)
+
+#### Returns
+
+`undefined` \| `Point`
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`getHandlePosition`](../Class.AbstractEdgeRouter.md#gethandleposition)
+
+***
+
+### getInnerHandlePosition()
+
+> **getInnerHandlePosition**(`edge`, `route`, `handle`): `undefined` \| `Point`
+
+Defined in: [packages/sprotty/src/features/routing/polyline-edge-router.ts:137](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/polyline-edge-router.ts#L137)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### route
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+##### handle
+
+[`SRoutingHandleImpl`](../Class.SRoutingHandleImpl)
+
+#### Returns
+
+`undefined` \| `Point`
+
+#### Overrides
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`getInnerHandlePosition`](../Class.AbstractEdgeRouter.md#getinnerhandleposition)
+
+***
+
+### getOptions()
+
+> `protected` **getOptions**(`edge`): [`PolylineRouteOptions`](../Interface.PolylineRouteOptions)
+
+Defined in: [packages/sprotty/src/features/routing/polyline-edge-router.ts:42](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/polyline-edge-router.ts#L42)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+#### Returns
+
+[`PolylineRouteOptions`](../Interface.PolylineRouteOptions)
+
+#### Overrides
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`getOptions`](../Class.AbstractEdgeRouter.md#getoptions)
+
+***
+
+### getSelfEdgeIndex()
+
+> `protected` **getSelfEdgeIndex**(`edge`): `number`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:424](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L424)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+#### Returns
+
+`number`
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`getSelfEdgeIndex`](../Class.AbstractEdgeRouter.md#getselfedgeindex)
+
+***
+
+### getTranslatedAnchor()
+
+> **getTranslatedAnchor**(`connectable`, `refPoint`, `refContainer`, `edge`, `anchorCorrection`): `Point`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:237](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L237)
+
+#### Parameters
+
+##### connectable
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl)
+
+##### refPoint
+
+`Point`
+
+##### refContainer
+
+[`SParentElementImpl`](../Class.SParentElementImpl)
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### anchorCorrection
+
+`number` = `0`
+
+#### Returns
+
+`Point`
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`getTranslatedAnchor`](../Class.AbstractEdgeRouter.md#gettranslatedanchor)
+
+***
+
+### pointAt()
+
+> **pointAt**(`edge`, `t`): `undefined` \| `Point`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:126](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L126)
+
+Calculates a point on the edge
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### t
+
+`number`
+
+a value between 0 (sourceAnchor) and 1 (targetAnchor)
+
+#### Returns
+
+`undefined` \| `Point`
+
+the point or undefined if t is out of bounds or it cannot be computed
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`pointAt`](../Class.AbstractEdgeRouter.md#pointat)
+
+***
+
+### resetRoutingPointsOnReconnect()
+
+> `protected` **resetRoutingPointsOnReconnect**(`edge`, `routingPoints`, `updateHandles`, `sourceAnchors`, `targetAnchors`): `boolean`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:290](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L290)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### routingPoints
+
+`Point`[]
+
+##### updateHandles
+
+`boolean`
+
+##### sourceAnchors
+
+[`DefaultAnchors`](../Class.DefaultAnchors)
+
+##### targetAnchors
+
+[`DefaultAnchors`](../Class.DefaultAnchors)
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`resetRoutingPointsOnReconnect`](../Class.AbstractEdgeRouter.md#resetroutingpointsonreconnect)
+
+***
+
+### route()
+
+> **route**(`edge`): [`RoutedPoint`](../Interface.RoutedPoint)[]
+
+Defined in: [packages/sprotty/src/features/routing/polyline-edge-router.ts:51](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/polyline-edge-router.ts#L51)
+
+Calculates the route of the given edge.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+#### Returns
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+#### Overrides
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`route`](../Class.AbstractEdgeRouter.md#route)
+
+***
+
+### takeSnapshot()
+
+> **takeSnapshot**(`edge`): [`EdgeSnapshot`](../Interface.EdgeSnapshot)
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:362](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L362)
+
+Creates a snapshot of the given edge, storing all the data needed to restore it to
+its current state.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+#### Returns
+
+[`EdgeSnapshot`](../Interface.EdgeSnapshot)
+
+#### Inherited from
+
+[`AbstractEdgeRouter`](../Class.AbstractEdgeRouter).[`takeSnapshot`](../Class.AbstractEdgeRouter.md#takesnapshot)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.PolylineEdgeView.md b/hugo/content/docs/ref/sprotty-core/Class.PolylineEdgeView.md
new file mode 100644
index 0000000..122663d
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.PolylineEdgeView.md
@@ -0,0 +1,84 @@
+
+### renderDanglingEdge()
+
+> `protected` **renderDanglingEdge**(`message`, `edge`, `context`): `VNode`
+
+Defined in: [packages/sprotty/src/graph/views.tsx:119](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L119)
+
+#### Parameters
+
+##### message
+
+`string`
+
+##### edge
+
+[`SEdgeImpl`](../Class.SEdgeImpl)
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+#### Returns
+
+`VNode`
+
+***
+
+### renderJunctionPoints()
+
+> `protected` **renderJunctionPoints**(`edge`, `route`, `context`, `args`): `any`
+
+Defined in: [packages/sprotty/src/graph/views.tsx:89](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L89)
+
+#### Parameters
+
+##### edge
+
+`Readonly`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+##### route
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+##### args
+
+`undefined` | [`IViewArgs`](../Interface.IViewArgs)
+
+#### Returns
+
+`any`
+
+***
+
+### renderLine()
+
+> `protected` **renderLine**(`edge`, `segments`, `context`, `args?`): `VNode`
+
+Defined in: [packages/sprotty/src/graph/views.tsx:104](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L104)
+
+#### Parameters
+
+##### edge
+
+[`SEdgeImpl`](../Class.SEdgeImpl)
+
+##### segments
+
+`Point`[]
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+##### args?
+
+[`IViewArgs`](../Interface.IViewArgs)
+
+#### Returns
+
+`VNode`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.PolylineEdgeViewWithGapsOnIntersections.md b/hugo/content/docs/ref/sprotty-core/Class.PolylineEdgeViewWithGapsOnIntersections.md
new file mode 100644
index 0000000..4dd2202
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.PolylineEdgeViewWithGapsOnIntersections.md
@@ -0,0 +1,459 @@
+
+### skipOffsetAfter
+
+> `protected` **skipOffsetAfter**: `number` = `3`
+
+Defined in: [packages/sprotty/src/graph/views.tsx:291](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L291)
+
+#### Overrides
+
+[`JumpingPolylineEdgeView`](../Class.JumpingPolylineEdgeView).[`skipOffsetAfter`](../Class.JumpingPolylineEdgeView.md#skipoffsetafter)
+
+***
+
+### skipOffsetBefore
+
+> `protected` **skipOffsetBefore**: `number` = `3`
+
+Defined in: [packages/sprotty/src/graph/views.tsx:290](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L290)
+
+#### Overrides
+
+[`JumpingPolylineEdgeView`](../Class.JumpingPolylineEdgeView).[`skipOffsetBefore`](../Class.JumpingPolylineEdgeView.md#skipoffsetbefore)
+
+## Methods
+
+### createGapPath()
+
+> `protected` **createGapPath**(`intersectionPoint`, `lineSegment`): `string`
+
+Defined in: [packages/sprotty/src/graph/views.tsx:301](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L301)
+
+#### Parameters
+
+##### intersectionPoint
+
+`Point`
+
+##### lineSegment
+
+[`PointToPointLine`](../Class.PointToPointLine)
+
+#### Returns
+
+`string`
+
+#### Overrides
+
+[`JumpingPolylineEdgeView`](../Class.JumpingPolylineEdgeView).[`createGapPath`](../Class.JumpingPolylineEdgeView.md#creategappath)
+
+***
+
+### createJumpPath()
+
+> `protected` **createJumpPath**(`intersectionPoint`, `lineSegment`): `string`
+
+Defined in: [packages/sprotty/src/graph/views.tsx:251](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L251)
+
+#### Parameters
+
+##### intersectionPoint
+
+`Point`
+
+##### lineSegment
+
+[`PointToPointLine`](../Class.PointToPointLine)
+
+#### Returns
+
+`string`
+
+#### Inherited from
+
+[`JumpingPolylineEdgeView`](../Class.JumpingPolylineEdgeView).[`createJumpPath`](../Class.JumpingPolylineEdgeView.md#createjumppath)
+
+***
+
+### getIntersectionsSortedBySegmentDirection()
+
+> `protected` **getIntersectionsSortedBySegmentDirection**(`lineSegment`, `intersectingPoint`): [`Intersection`](../Interface.Intersection)[]
+
+Defined in: [packages/sprotty/src/graph/views.tsx:200](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L200)
+
+Returns the intersections sorted by the direction of the `lineSegment`.
+
+The coordinate system goes from left to right and top to bottom.
+Thus, x increases to the right and y increases downwards.
+
+We need to draw the intersections in the order of the direction of the line segment.
+To draw a line pointing north, we need to order intersections by Y in a descending order.
+To draw a line pointing south, we need to order intersections by Y in an ascending order.
+
+#### Parameters
+
+##### lineSegment
+
+[`PointToPointLine`](../Class.PointToPointLine)
+
+##### intersectingPoint
+
+[`IntersectingRoutedPoint`](../Interface.IntersectingRoutedPoint)
+
+#### Returns
+
+[`Intersection`](../Interface.Intersection)[]
+
+#### Inherited from
+
+[`JumpingPolylineEdgeView`](../Class.JumpingPolylineEdgeView).[`getIntersectionsSortedBySegmentDirection`](../Class.JumpingPolylineEdgeView.md#getintersectionssortedbysegmentdirection)
+
+***
+
+### getLineSegment()
+
+> `protected` **getLineSegment**(`edge`, `intersection`, `args?`, `segments?`): [`PointToPointLine`](../Class.PointToPointLine)
+
+Defined in: [packages/sprotty/src/graph/views.tsx:236](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L236)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### intersection
+
+[`Intersection`](../Interface.Intersection)
+
+##### args?
+
+[`IViewArgs`](../Interface.IViewArgs)
+
+##### segments?
+
+`Point`[]
+
+#### Returns
+
+[`PointToPointLine`](../Class.PointToPointLine)
+
+#### Inherited from
+
+[`JumpingPolylineEdgeView`](../Class.JumpingPolylineEdgeView).[`getLineSegment`](../Class.JumpingPolylineEdgeView.md#getlinesegment)
+
+***
+
+### getOtherLineSegment()
+
+> `protected` **getOtherLineSegment**(`currentEdge`, `intersection`, `args?`): `undefined` \| [`PointToPointLine`](../Class.PointToPointLine)
+
+Defined in: [packages/sprotty/src/graph/views.tsx:242](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L242)
+
+#### Parameters
+
+##### currentEdge
+
+[`SEdgeImpl`](../Class.SEdgeImpl)
+
+##### intersection
+
+[`Intersection`](../Interface.Intersection)
+
+##### args?
+
+[`IViewArgs`](../Interface.IViewArgs)
+
+#### Returns
+
+`undefined` \| [`PointToPointLine`](../Class.PointToPointLine)
+
+#### Inherited from
+
+[`JumpingPolylineEdgeView`](../Class.JumpingPolylineEdgeView).[`getOtherLineSegment`](../Class.JumpingPolylineEdgeView.md#getotherlinesegment)
+
+***
+
+### intersectionPath()
+
+> `protected` **intersectionPath**(`edge`, `segments`, `intersectingPoint`, `args?`): `string`
+
+Defined in: [packages/sprotty/src/graph/views.tsx:164](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L164)
+
+Returns a path that takes the intersections into account by drawing a line jump or a gap for intersections on that path.
+
+#### Parameters
+
+##### edge
+
+[`SEdgeImpl`](../Class.SEdgeImpl)
+
+##### segments
+
+`Point`[]
+
+##### intersectingPoint
+
+[`IntersectingRoutedPoint`](../Interface.IntersectingRoutedPoint)
+
+##### args?
+
+[`IViewArgs`](../Interface.IViewArgs)
+
+#### Returns
+
+`string`
+
+#### Inherited from
+
+[`JumpingPolylineEdgeView`](../Class.JumpingPolylineEdgeView).[`intersectionPath`](../Class.JumpingPolylineEdgeView.md#intersectionpath)
+
+***
+
+### isVisible()
+
+> **isVisible**(`model`, `route`, `context`): `boolean`
+
+Defined in: [packages/sprotty/src/features/routing/views.ts:30](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/views.ts#L30)
+
+Check whether the given model element is in the current viewport. Use this method
+in your `render` implementation to skip rendering in case the element is not visible.
+This can greatly enhance performance for large models.
+
+#### Parameters
+
+##### model
+
+`Readonly`\<[`SRoutableElementImpl`](../Class.SRoutableElementImpl)\>
+
+##### route
+
+`Point`[]
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`JumpingPolylineEdgeView`](../Class.JumpingPolylineEdgeView).[`isVisible`](../Class.JumpingPolylineEdgeView.md#isvisible)
+
+***
+
+### render()
+
+> **render**(`edge`, `context`, `args?`): `undefined` \| `VNode`
+
+Defined in: [packages/sprotty/src/graph/views.tsx:67](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L67)
+
+#### Parameters
+
+##### edge
+
+`Readonly`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+##### args?
+
+[`IViewArgs`](../Interface.IViewArgs)
+
+#### Returns
+
+`undefined` \| `VNode`
+
+#### Inherited from
+
+[`JumpingPolylineEdgeView`](../Class.JumpingPolylineEdgeView).[`render`](../Class.JumpingPolylineEdgeView.md#render)
+
+***
+
+### renderAdditionals()
+
+> `protected` **renderAdditionals**(`edge`, `segments`, `context`): `VNode`[]
+
+Defined in: [packages/sprotty/src/graph/views.tsx:114](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L114)
+
+#### Parameters
+
+##### edge
+
+[`SEdgeImpl`](../Class.SEdgeImpl)
+
+##### segments
+
+`Point`[]
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+#### Returns
+
+`VNode`[]
+
+#### Inherited from
+
+[`JumpingPolylineEdgeView`](../Class.JumpingPolylineEdgeView).[`renderAdditionals`](../Class.JumpingPolylineEdgeView.md#renderadditionals)
+
+***
+
+### renderDanglingEdge()
+
+> `protected` **renderDanglingEdge**(`message`, `edge`, `context`): `VNode`
+
+Defined in: [packages/sprotty/src/graph/views.tsx:119](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L119)
+
+#### Parameters
+
+##### message
+
+`string`
+
+##### edge
+
+[`SEdgeImpl`](../Class.SEdgeImpl)
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+#### Returns
+
+`VNode`
+
+#### Inherited from
+
+[`JumpingPolylineEdgeView`](../Class.JumpingPolylineEdgeView).[`renderDanglingEdge`](../Class.JumpingPolylineEdgeView.md#renderdanglingedge)
+
+***
+
+### renderJunctionPoints()
+
+> `protected` **renderJunctionPoints**(`edge`, `route`, `context`, `args`): `any`
+
+Defined in: [packages/sprotty/src/graph/views.tsx:89](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L89)
+
+#### Parameters
+
+##### edge
+
+`Readonly`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+##### route
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+##### args
+
+`undefined` | [`IViewArgs`](../Interface.IViewArgs)
+
+#### Returns
+
+`any`
+
+#### Inherited from
+
+[`JumpingPolylineEdgeView`](../Class.JumpingPolylineEdgeView).[`renderJunctionPoints`](../Class.JumpingPolylineEdgeView.md#renderjunctionpoints)
+
+***
+
+### renderLine()
+
+> `protected` **renderLine**(`edge`, `segments`, `context`, `args?`): `VNode`
+
+Defined in: [packages/sprotty/src/graph/views.tsx:144](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L144)
+
+#### Parameters
+
+##### edge
+
+[`SEdgeImpl`](../Class.SEdgeImpl)
+
+##### segments
+
+`Point`[]
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+##### args?
+
+[`IViewArgs`](../Interface.IViewArgs)
+
+#### Returns
+
+`VNode`
+
+#### Inherited from
+
+[`JumpingPolylineEdgeView`](../Class.JumpingPolylineEdgeView).[`renderLine`](../Class.JumpingPolylineEdgeView.md#renderline)
+
+***
+
+### shouldDrawLineGapOnIntersection()
+
+> `protected` **shouldDrawLineGapOnIntersection**(`currentLineSegment`, `otherLineSegment`): `boolean`
+
+Defined in: [packages/sprotty/src/graph/views.tsx:297](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L297)
+
+Whether or not to draw a line gap on an intersection for the `currentLineSegment`.
+This should usually be inverse of `shouldDrawLineJumpOnIntersection()`.
+
+#### Parameters
+
+##### currentLineSegment
+
+[`PointToPointLine`](../Class.PointToPointLine)
+
+##### otherLineSegment
+
+[`PointToPointLine`](../Class.PointToPointLine)
+
+#### Returns
+
+`boolean`
+
+#### Overrides
+
+[`JumpingPolylineEdgeView`](../Class.JumpingPolylineEdgeView).[`shouldDrawLineGapOnIntersection`](../Class.JumpingPolylineEdgeView.md#shoulddrawlinegaponintersection)
+
+***
+
+### shouldDrawLineJumpOnIntersection()
+
+> `protected` **shouldDrawLineJumpOnIntersection**(`currentLineSegment`, `otherLineSegment`): `boolean`
+
+Defined in: [packages/sprotty/src/graph/views.tsx:293](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L293)
+
+Whether or not to draw a line jump on an intersection for the `currentLineSegment`.
+This should usually be inverse of `shouldDrawLineGapOnIntersection()`.
+
+#### Parameters
+
+##### currentLineSegment
+
+[`PointToPointLine`](../Class.PointToPointLine)
+
+##### otherLineSegment
+
+[`PointToPointLine`](../Class.PointToPointLine)
+
+#### Returns
+
+`boolean`
+
+#### Overrides
+
+[`JumpingPolylineEdgeView`](../Class.JumpingPolylineEdgeView).[`shouldDrawLineJumpOnIntersection`](../Class.JumpingPolylineEdgeView.md#shoulddrawlinejumponintersection)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.PopupCommand.md b/hugo/content/docs/ref/sprotty-core/Class.PopupCommand.md
new file mode 100644
index 0000000..dc823ba
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.PopupCommand.md
@@ -0,0 +1,20 @@
+
+### undo()
+
+> `abstract` **undo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/base/commands/command.ts:108](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command.ts#L108)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Inherited from
+
+[`Command`](../Class.Command).[`undo`](../Class.Command.md#undo)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.PopupHoverMouseListener.md b/hugo/content/docs/ref/sprotty-core/Class.PopupHoverMouseListener.md
new file mode 100644
index 0000000..ba86662
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.PopupHoverMouseListener.md
@@ -0,0 +1,358 @@
+
+### decorate()
+
+> **decorate**(`vnode`, `element`): `VNode`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:218](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L218)
+
+#### Parameters
+
+##### vnode
+
+`VNode`
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+#### Returns
+
+`VNode`
+
+#### Inherited from
+
+[`AbstractHoverMouseListener`](../Class.AbstractHoverMouseListener).[`decorate`](../Class.AbstractHoverMouseListener.md#decorate)
+
+***
+
+### doubleClick()
+
+> **doubleClick**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:202](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L202)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`AbstractHoverMouseListener`](../Class.AbstractHoverMouseListener).[`doubleClick`](../Class.AbstractHoverMouseListener.md#doubleclick)
+
+***
+
+### dragOver()
+
+> **dragOver**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:210](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L210)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`AbstractHoverMouseListener`](../Class.AbstractHoverMouseListener).[`dragOver`](../Class.AbstractHoverMouseListener.md#dragover)
+
+***
+
+### drop()
+
+> **drop**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:214](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L214)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`AbstractHoverMouseListener`](../Class.AbstractHoverMouseListener).[`drop`](../Class.AbstractHoverMouseListener.md#drop)
+
+***
+
+### mouseDown()
+
+> **mouseDown**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:105](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L105)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`AbstractHoverMouseListener`](../Class.AbstractHoverMouseListener).[`mouseDown`](../Class.AbstractHoverMouseListener.md#mousedown)
+
+***
+
+### mouseEnter()
+
+> **mouseEnter**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:178](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L178)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`AbstractHoverMouseListener`](../Class.AbstractHoverMouseListener).[`mouseEnter`](../Class.AbstractHoverMouseListener.md#mouseenter)
+
+***
+
+### mouseLeave()
+
+> **mouseLeave**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:182](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L182)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`AbstractHoverMouseListener`](../Class.AbstractHoverMouseListener).[`mouseLeave`](../Class.AbstractHoverMouseListener.md#mouseleave)
+
+***
+
+### mouseMove()
+
+> **mouseMove**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:190](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L190)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`AbstractHoverMouseListener`](../Class.AbstractHoverMouseListener).[`mouseMove`](../Class.AbstractHoverMouseListener.md#mousemove)
+
+***
+
+### mouseOut()
+
+> **mouseOut**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:285](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L285)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Overrides
+
+[`AbstractHoverMouseListener`](../Class.AbstractHoverMouseListener).[`mouseOut`](../Class.AbstractHoverMouseListener.md#mouseout)
+
+***
+
+### mouseOver()
+
+> **mouseOver**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:289](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L289)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Overrides
+
+[`AbstractHoverMouseListener`](../Class.AbstractHoverMouseListener).[`mouseOver`](../Class.AbstractHoverMouseListener.md#mouseover)
+
+***
+
+### mouseUp()
+
+> **mouseUp**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:110](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L110)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`AbstractHoverMouseListener`](../Class.AbstractHoverMouseListener).[`mouseUp`](../Class.AbstractHoverMouseListener.md#mouseup)
+
+***
+
+### startMouseOutTimer()
+
+> `protected` **startMouseOutTimer**(): `Promise`\<`Action`\>
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:122](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L122)
+
+#### Returns
+
+`Promise`\<`Action`\>
+
+#### Inherited from
+
+[`AbstractHoverMouseListener`](../Class.AbstractHoverMouseListener).[`startMouseOutTimer`](../Class.AbstractHoverMouseListener.md#startmouseouttimer)
+
+***
+
+### stopMouseOutTimer()
+
+> `protected` **stopMouseOutTimer**(): `void`
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:115](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L115)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`AbstractHoverMouseListener`](../Class.AbstractHoverMouseListener).[`stopMouseOutTimer`](../Class.AbstractHoverMouseListener.md#stopmouseouttimer)
+
+***
+
+### stopMouseOverTimer()
+
+> `protected` **stopMouseOverTimer**(): `void`
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:133](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L133)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`AbstractHoverMouseListener`](../Class.AbstractHoverMouseListener).[`stopMouseOverTimer`](../Class.AbstractHoverMouseListener.md#stopmouseovertimer)
+
+***
+
+### wheel()
+
+> **wheel**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:198](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L198)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`WheelEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`AbstractHoverMouseListener`](../Class.AbstractHoverMouseListener).[`wheel`](../Class.AbstractHoverMouseListener.md#wheel)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.PopupModelViewer.md b/hugo/content/docs/ref/sprotty-core/Class.PopupModelViewer.md
new file mode 100644
index 0000000..8324f18
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.PopupModelViewer.md
@@ -0,0 +1,48 @@
+
+### options
+
+> `protected` **options**: [`ViewerOptions`](../Interface.ViewerOptions)
+
+Defined in: [packages/sprotty/src/base/views/viewer.tsx:284](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer.tsx#L284)
+
+***
+
+### patcher
+
+> `protected` `readonly` **patcher**: [`Patcher`](../TypeAlias.Patcher)
+
+Defined in: [packages/sprotty/src/base/views/viewer.tsx:295](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer.tsx#L295)
+
+***
+
+### popupRenderer
+
+> `protected` `readonly` **popupRenderer**: [`ModelRenderer`](../Class.ModelRenderer)
+
+Defined in: [packages/sprotty/src/base/views/viewer.tsx:294](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer.tsx#L294)
+
+## Methods
+
+### update()
+
+> **update**(`model`, `cause?`): `void`
+
+Defined in: [packages/sprotty/src/base/views/viewer.tsx:299](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer.tsx#L299)
+
+#### Parameters
+
+##### model
+
+`Readonly`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+##### cause?
+
+`Action`
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`IViewer`](../Interface.IViewer).[`update`](../Interface.IViewer.md#update)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.PopupMouseTool.md b/hugo/content/docs/ref/sprotty-core/Class.PopupMouseTool.md
new file mode 100644
index 0000000..c1f97c7
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.PopupMouseTool.md
@@ -0,0 +1,406 @@
+
+### decorate()
+
+> **decorate**(`vnode`, `element`): `VNode`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:131](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L131)
+
+#### Parameters
+
+##### vnode
+
+`VNode`
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+#### Returns
+
+`VNode`
+
+#### Inherited from
+
+[`MouseTool`](../Class.MouseTool).[`decorate`](../Class.MouseTool.md#decorate)
+
+***
+
+### deregister()
+
+> **deregister**(`mouseListener`): `void`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:40](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L40)
+
+#### Parameters
+
+##### mouseListener
+
+[`MouseListener`](../Class.MouseListener)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`MouseTool`](../Class.MouseTool).[`deregister`](../Class.MouseTool.md#deregister)
+
+***
+
+### doubleClick()
+
+> **doubleClick**(`model`, `event`): `void`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:127](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L127)
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`MouseTool`](../Class.MouseTool).[`doubleClick`](../Class.MouseTool.md#doubleclick)
+
+***
+
+### focusOnMouseEvent()
+
+> `protected` **focusOnMouseEvent**\<`K`\>(`methodName`, `model`): `void`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:82](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L82)
+
+#### Type Parameters
+
+##### K
+
+`K` *extends* keyof [`MouseListener`](../Class.MouseListener)
+
+#### Parameters
+
+##### methodName
+
+`K`
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`MouseTool`](../Class.MouseTool).[`focusOnMouseEvent`](../Class.MouseTool.md#focusonmouseevent)
+
+***
+
+### getTargetElement()
+
+> `protected` **getTargetElement**(`model`, `event`): `undefined` \| [`SModelElementImpl`](../Class.SModelElementImpl)
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:46](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L46)
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`undefined` \| [`SModelElementImpl`](../Class.SModelElementImpl)
+
+#### Inherited from
+
+[`MouseTool`](../Class.MouseTool).[`getTargetElement`](../Class.MouseTool.md#gettargetelement)
+
+***
+
+### handleEvent()
+
+> `protected` **handleEvent**(`methodName`, `model`, `event`): `void`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:60](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L60)
+
+#### Parameters
+
+##### methodName
+
+[`MouseEventKind`](../TypeAlias.MouseEventKind)
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`MouseTool`](../Class.MouseTool).[`handleEvent`](../Class.MouseTool.md#handleevent)
+
+***
+
+### mouseDown()
+
+> **mouseDown**(`model`, `event`): `void`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:106](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L106)
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`MouseTool`](../Class.MouseTool).[`mouseDown`](../Class.MouseTool.md#mousedown)
+
+***
+
+### mouseEnter()
+
+> **mouseEnter**(`model`, `event`): `void`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:98](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L98)
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`MouseTool`](../Class.MouseTool).[`mouseEnter`](../Class.MouseTool.md#mouseenter)
+
+***
+
+### mouseLeave()
+
+> **mouseLeave**(`model`, `event`): `void`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:102](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L102)
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`MouseTool`](../Class.MouseTool).[`mouseLeave`](../Class.MouseTool.md#mouseleave)
+
+***
+
+### mouseMove()
+
+> **mouseMove**(`model`, `event`): `void`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:110](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L110)
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`MouseTool`](../Class.MouseTool).[`mouseMove`](../Class.MouseTool.md#mousemove)
+
+***
+
+### mouseOut()
+
+> **mouseOut**(`model`, `event`): `void`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:94](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L94)
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`MouseTool`](../Class.MouseTool).[`mouseOut`](../Class.MouseTool.md#mouseout)
+
+***
+
+### mouseOver()
+
+> **mouseOver**(`model`, `event`): `void`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:90](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L90)
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`MouseTool`](../Class.MouseTool).[`mouseOver`](../Class.MouseTool.md#mouseover)
+
+***
+
+### mouseUp()
+
+> **mouseUp**(`model`, `event`): `void`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:114](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L114)
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`MouseTool`](../Class.MouseTool).[`mouseUp`](../Class.MouseTool.md#mouseup)
+
+***
+
+### postUpdate()
+
+> **postUpdate**(): `void`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:152](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L152)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`MouseTool`](../Class.MouseTool).[`postUpdate`](../Class.MouseTool.md#postupdate)
+
+***
+
+### register()
+
+> **register**(`mouseListener`): `void`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:36](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L36)
+
+#### Parameters
+
+##### mouseListener
+
+[`MouseListener`](../Class.MouseListener)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`MouseTool`](../Class.MouseTool).[`register`](../Class.MouseTool.md#register)
+
+***
+
+### wheel()
+
+> **wheel**(`model`, `event`): `void`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:118](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L118)
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### event
+
+`WheelEvent`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`MouseTool`](../Class.MouseTool).[`wheel`](../Class.MouseTool.md#wheel)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.PreRenderedElementImpl.md b/hugo/content/docs/ref/sprotty-core/Class.PreRenderedElementImpl.md
new file mode 100644
index 0000000..c7e9466
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.PreRenderedElementImpl.md
@@ -0,0 +1,259 @@
+
+### features?
+
+> `optional` **features**: [`FeatureSet`](../Interface.FeatureSet)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L28)
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`features`](../Class.SChildElementImpl.md#features)
+
+***
+
+### id
+
+> **id**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L27)
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`id`](../Class.SChildElementImpl.md#id)
+
+***
+
+### parent
+
+> `readonly` **parent**: [`SParentElementImpl`](../Class.SParentElementImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:159](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L159)
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`parent`](../Class.SChildElementImpl.md#parent)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L26)
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`type`](../Class.SChildElementImpl.md#type)
+
+## Accessors
+
+### index
+
+#### Get Signature
+
+> **get** **index**(): [`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L44)
+
+##### Returns
+
+[`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`index`](../Class.SChildElementImpl.md#index)
+
+***
+
+### root
+
+#### Get Signature
+
+> **get** **root**(): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L31)
+
+##### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`root`](../Class.SChildElementImpl.md#root)
+
+## Methods
+
+### add()
+
+> **add**(`child`, `index?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L74)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### index?
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`add`](../Class.SChildElementImpl.md#add)
+
+***
+
+### hasFeature()
+
+> **hasFeature**(`feature`): `boolean`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L52)
+
+A feature is a symbol identifying some functionality that can be enabled or disabled for
+a model element. The set of supported features is determined by the `features` property.
+
+#### Parameters
+
+##### feature
+
+`symbol`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`hasFeature`](../Class.SChildElementImpl.md#hasfeature)
+
+***
+
+### localToParent()
+
+> **localToParent**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:136](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L136)
+
+Transform the given bounds from the local coordinate system of this element to the coordinate
+system of its parent. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`localToParent`](../Class.SChildElementImpl.md#localtoparent)
+
+***
+
+### move()
+
+> **move**(`child`, `newIndex`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:115](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L115)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### newIndex
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`move`](../Class.SChildElementImpl.md#move)
+
+***
+
+### parentToLocal()
+
+> **parentToLocal**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:147](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L147)
+
+Transform the given bounds from the coordinate system of this element's parent to its local
+coordinate system. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`parentToLocal`](../Class.SChildElementImpl.md#parenttolocal)
+
+***
+
+### remove()
+
+> **remove**(`child`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:88](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L88)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`remove`](../Class.SChildElementImpl.md#remove)
+
+***
+
+### removeAll()
+
+> **removeAll**(`filter?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:98](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L98)
+
+#### Parameters
+
+##### filter?
+
+(`e`) => `boolean`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`removeAll`](../Class.SChildElementImpl.md#removeall)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.PreRenderedView.md b/hugo/content/docs/ref/sprotty-core/Class.PreRenderedView.md
new file mode 100644
index 0000000..744bb19
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.PreRenderedView.md
@@ -0,0 +1,24 @@
+
+### render()
+
+> **render**(`model`, `context`): `undefined` \| `VNode`
+
+Defined in: [packages/sprotty/src/lib/generic-views.tsx:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/generic-views.tsx#L29)
+
+#### Parameters
+
+##### model
+
+`Readonly`\<[`PreRenderedElementImpl`](../Class.PreRenderedElementImpl)\>
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+#### Returns
+
+`undefined` \| `VNode`
+
+#### Overrides
+
+[`ShapeView`](../Class.ShapeView).[`render`](../Class.ShapeView.md#render)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ProjectedViewportView.md b/hugo/content/docs/ref/sprotty-core/Class.ProjectedViewportView.md
new file mode 100644
index 0000000..f1daf91
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ProjectedViewportView.md
@@ -0,0 +1,72 @@
+
+### renderProjections()
+
+> `protected` **renderProjections**(`model`, `context`, `args?`): `VNode`[]
+
+Defined in: [packages/sprotty/src/features/projection/views.tsx:49](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/projection/views.tsx#L49)
+
+#### Parameters
+
+##### model
+
+`Readonly`\<[`ViewportRootElementImpl`](../Class.ViewportRootElementImpl)\>
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+##### args?
+
+[`IViewArgs`](../Interface.IViewArgs)
+
+#### Returns
+
+`VNode`[]
+
+***
+
+### renderSvg()
+
+> `protected` **renderSvg**(`model`, `context`, `args?`): `VNode`
+
+Defined in: [packages/sprotty/src/features/projection/views.tsx:43](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/projection/views.tsx#L43)
+
+#### Parameters
+
+##### model
+
+`Readonly`\<[`ViewportRootElementImpl`](../Class.ViewportRootElementImpl)\>
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+##### args?
+
+[`IViewArgs`](../Interface.IViewArgs)
+
+#### Returns
+
+`VNode`
+
+***
+
+### renderViewport()
+
+> `protected` **renderViewport**(`model`, `params`): `VNode`
+
+Defined in: [packages/sprotty/src/features/projection/views.tsx:78](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/projection/views.tsx#L78)
+
+#### Parameters
+
+##### model
+
+`Readonly`\<[`ViewportRootElementImpl`](../Class.ViewportRootElementImpl)\>
+
+##### params
+
+[`ProjectionParams`](../TypeAlias.ProjectionParams)
+
+#### Returns
+
+`VNode`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ProviderRegistry.md b/hugo/content/docs/ref/sprotty-core/Class.ProviderRegistry.md
new file mode 100644
index 0000000..a0fe517
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ProviderRegistry.md
@@ -0,0 +1,42 @@
+
+### missing()
+
+> `protected` **missing**(`key`, `arg`): `T`
+
+Defined in: [packages/sprotty/src/utils/registry.ts:49](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/registry.ts#L49)
+
+#### Parameters
+
+##### key
+
+`string`
+
+##### arg
+
+`U`
+
+#### Returns
+
+`T`
+
+***
+
+### register()
+
+> **register**(`key`, `cstr`): `void`
+
+Defined in: [packages/sprotty/src/utils/registry.ts:23](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/registry.ts#L23)
+
+#### Parameters
+
+##### key
+
+`string`
+
+##### cstr
+
+(`u`) => `T`
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ReconnectCommand.md b/hugo/content/docs/ref/sprotty-core/Class.ReconnectCommand.md
new file mode 100644
index 0000000..5f0011f
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ReconnectCommand.md
@@ -0,0 +1,72 @@
+
+### KIND
+
+> `readonly` `static` **KIND**: `"reconnect"` = `ReconnectAction.KIND`
+
+Defined in: [packages/sprotty/src/features/edit/reconnect.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/reconnect.ts#L26)
+
+## Methods
+
+### execute()
+
+> **execute**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/edit/reconnect.ts:36](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/reconnect.ts#L36)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`Command`](../Class.Command).[`execute`](../Class.Command.md#execute)
+
+***
+
+### redo()
+
+> **redo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/edit/reconnect.ts:65](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/reconnect.ts#L65)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`Command`](../Class.Command).[`redo`](../Class.Command.md#redo)
+
+***
+
+### undo()
+
+> **undo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/edit/reconnect.ts:57](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/reconnect.ts#L57)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`Command`](../Class.Command).[`undo`](../Class.Command.md#undo)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.RectangleAnchor.md b/hugo/content/docs/ref/sprotty-core/Class.RectangleAnchor.md
new file mode 100644
index 0000000..dad3877
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.RectangleAnchor.md
@@ -0,0 +1,24 @@
+
+### getYIntersection()
+
+> `protected` **getYIntersection**(`xIntersection`, `centerPoint`, `point`): `number`
+
+Defined in: [packages/sprotty/src/features/routing/polyline-anchors.ts:81](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/polyline-anchors.ts#L81)
+
+#### Parameters
+
+##### xIntersection
+
+`number`
+
+##### centerPoint
+
+`Point`
+
+##### point
+
+`Point`
+
+#### Returns
+
+`number`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.RectangularNode.md b/hugo/content/docs/ref/sprotty-core/Class.RectangularNode.md
new file mode 100644
index 0000000..84fe281
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.RectangularNode.md
@@ -0,0 +1,475 @@
+
+### hoverFeedback
+
+> **hoverFeedback**: `boolean` = `false`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:58](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L58)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`hoverFeedback`](../Class.SNodeImpl.md#hoverfeedback)
+
+***
+
+### id
+
+> **id**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L27)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`id`](../Class.SNodeImpl.md#id)
+
+***
+
+### layout?
+
+> `optional` **layout**: `string`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:56](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L56)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`layout`](../Class.SNodeImpl.md#layout)
+
+***
+
+### layoutOptions?
+
+> `optional` **layoutOptions**: [`ModelLayoutOptions`](../TypeAlias.ModelLayoutOptions)
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:181](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L181)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`layoutOptions`](../Class.SNodeImpl.md#layoutoptions)
+
+***
+
+### opacity
+
+> **opacity**: `number` = `1`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:59](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L59)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`opacity`](../Class.SNodeImpl.md#opacity)
+
+***
+
+### parent
+
+> `readonly` **parent**: [`SParentElementImpl`](../Class.SParentElementImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:159](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L159)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`parent`](../Class.SNodeImpl.md#parent)
+
+***
+
+### position
+
+> **position**: `Point` = `Point.ORIGIN`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:179](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L179)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`position`](../Class.SNodeImpl.md#position)
+
+***
+
+### selected
+
+> **selected**: `boolean` = `false`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:57](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L57)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`selected`](../Class.SNodeImpl.md#selected)
+
+***
+
+### size
+
+> **size**: `Dimension` = `Dimension.EMPTY`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:180](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L180)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`size`](../Class.SNodeImpl.md#size)
+
+***
+
+### strokeWidth
+
+> **strokeWidth**: `number` = `0`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:114](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L114)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`strokeWidth`](../Class.SNodeImpl.md#strokewidth)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L26)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`type`](../Class.SNodeImpl.md#type)
+
+***
+
+### DEFAULT\_FEATURES
+
+> `readonly` `static` **DEFAULT\_FEATURES**: `symbol`[]
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L52)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`DEFAULT_FEATURES`](../Class.SNodeImpl.md#default_features)
+
+## Accessors
+
+### anchorKind
+
+#### Get Signature
+
+> **get** **anchorKind**(): `string`
+
+Defined in: [packages/sprotty/src/lib/model.ts:39](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/model.ts#L39)
+
+##### Returns
+
+`string`
+
+#### Overrides
+
+[`SNodeImpl`](../Class.SNodeImpl).[`anchorKind`](../Class.SNodeImpl.md#anchorkind)
+
+***
+
+### bounds
+
+#### Get Signature
+
+> **get** **bounds**(): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:183](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L183)
+
+##### Returns
+
+`Bounds`
+
+#### Set Signature
+
+> **set** **bounds**(`newBounds`): `void`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:192](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L192)
+
+##### Parameters
+
+###### newBounds
+
+`Bounds`
+
+##### Returns
+
+`void`
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`bounds`](../Class.SNodeImpl.md#bounds)
+
+***
+
+### incomingEdges
+
+#### Get Signature
+
+> **get** **incomingEdges**(): `FluentIterable`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:65](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L65)
+
+The incoming edges of this connectable element. They are resolved by the index, which must
+be an `SGraphIndex` for efficient lookup.
+
+##### Returns
+
+`FluentIterable`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`incomingEdges`](../Class.SNodeImpl.md#incomingedges)
+
+***
+
+### index
+
+#### Get Signature
+
+> **get** **index**(): [`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L44)
+
+##### Returns
+
+[`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`index`](../Class.SNodeImpl.md#index)
+
+***
+
+### outgoingEdges
+
+#### Get Signature
+
+> **get** **outgoingEdges**(): `FluentIterable`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L74)
+
+The outgoing edges of this connectable element. They are resolved by the index, which must
+be an `SGraphIndex` for efficient lookup.
+
+##### Returns
+
+`FluentIterable`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`outgoingEdges`](../Class.SNodeImpl.md#outgoingedges)
+
+***
+
+### root
+
+#### Get Signature
+
+> **get** **root**(): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L31)
+
+##### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`root`](../Class.SNodeImpl.md#root)
+
+## Methods
+
+### add()
+
+> **add**(`child`, `index?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L74)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### index?
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`add`](../Class.SNodeImpl.md#add)
+
+***
+
+### canConnect()
+
+> **canConnect**(`routable`, `role`): `boolean`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:61](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L61)
+
+#### Parameters
+
+##### routable
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### role
+
+`string`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`canConnect`](../Class.SNodeImpl.md#canconnect)
+
+***
+
+### hasFeature()
+
+> **hasFeature**(`feature`): `boolean`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L52)
+
+A feature is a symbol identifying some functionality that can be enabled or disabled for
+a model element. The set of supported features is determined by the `features` property.
+
+#### Parameters
+
+##### feature
+
+`symbol`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`hasFeature`](../Class.SNodeImpl.md#hasfeature)
+
+***
+
+### localToParent()
+
+> **localToParent**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:203](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L203)
+
+Transform the given bounds from the local coordinate system of this element to the coordinate
+system of its parent. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`localToParent`](../Class.SNodeImpl.md#localtoparent)
+
+***
+
+### move()
+
+> **move**(`child`, `newIndex`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:115](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L115)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### newIndex
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`move`](../Class.SNodeImpl.md#move)
+
+***
+
+### parentToLocal()
+
+> **parentToLocal**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:217](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L217)
+
+Transform the given bounds from the coordinate system of this element's parent to its local
+coordinate system. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`parentToLocal`](../Class.SNodeImpl.md#parenttolocal)
+
+***
+
+### remove()
+
+> **remove**(`child`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:88](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L88)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`remove`](../Class.SNodeImpl.md#remove)
+
+***
+
+### removeAll()
+
+> **removeAll**(`filter?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:98](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L98)
+
+#### Parameters
+
+##### filter?
+
+(`e`) => `boolean`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SNodeImpl`](../Class.SNodeImpl).[`removeAll`](../Class.SNodeImpl.md#removeall)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.RectangularNodeView.md b/hugo/content/docs/ref/sprotty-core/Class.RectangularNodeView.md
new file mode 100644
index 0000000..36c006a
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.RectangularNodeView.md
@@ -0,0 +1,28 @@
+
+### render()
+
+> **render**(`node`, `context`, `args?`): `undefined` \| `VNode`
+
+Defined in: [packages/sprotty/src/lib/svg-views.tsx:67](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/svg-views.tsx#L67)
+
+#### Parameters
+
+##### node
+
+`Readonly`\<[`SShapeElementImpl`](../Class.SShapeElementImpl) & `Hoverable` & `Selectable`\>
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+##### args?
+
+[`IViewArgs`](../Interface.IViewArgs)
+
+#### Returns
+
+`undefined` \| `VNode`
+
+#### Overrides
+
+[`ShapeView`](../Class.ShapeView).[`render`](../Class.ShapeView.md#render)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.RectangularPort.md b/hugo/content/docs/ref/sprotty-core/Class.RectangularPort.md
new file mode 100644
index 0000000..13f9f24
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.RectangularPort.md
@@ -0,0 +1,463 @@
+
+### hoverFeedback
+
+> **hoverFeedback**: `boolean` = `false`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:93](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L93)
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`hoverFeedback`](../Class.SPortImpl.md#hoverfeedback)
+
+***
+
+### id
+
+> **id**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L27)
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`id`](../Class.SPortImpl.md#id)
+
+***
+
+### layoutOptions?
+
+> `optional` **layoutOptions**: [`ModelLayoutOptions`](../TypeAlias.ModelLayoutOptions)
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:181](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L181)
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`layoutOptions`](../Class.SPortImpl.md#layoutoptions)
+
+***
+
+### opacity
+
+> **opacity**: `number` = `1`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:94](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L94)
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`opacity`](../Class.SPortImpl.md#opacity)
+
+***
+
+### parent
+
+> `readonly` **parent**: [`SParentElementImpl`](../Class.SParentElementImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:159](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L159)
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`parent`](../Class.SPortImpl.md#parent)
+
+***
+
+### position
+
+> **position**: `Point` = `Point.ORIGIN`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:179](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L179)
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`position`](../Class.SPortImpl.md#position)
+
+***
+
+### selected
+
+> **selected**: `boolean` = `false`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:92](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L92)
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`selected`](../Class.SPortImpl.md#selected)
+
+***
+
+### size
+
+> **size**: `Dimension` = `Dimension.EMPTY`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:180](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L180)
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`size`](../Class.SPortImpl.md#size)
+
+***
+
+### strokeWidth
+
+> **strokeWidth**: `number` = `0`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:114](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L114)
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`strokeWidth`](../Class.SPortImpl.md#strokewidth)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L26)
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`type`](../Class.SPortImpl.md#type)
+
+***
+
+### DEFAULT\_FEATURES
+
+> `readonly` `static` **DEFAULT\_FEATURES**: `symbol`[]
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:89](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L89)
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`DEFAULT_FEATURES`](../Class.SPortImpl.md#default_features)
+
+## Accessors
+
+### anchorKind
+
+#### Get Signature
+
+> **get** **anchorKind**(): `string`
+
+Defined in: [packages/sprotty/src/lib/model.ts:66](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/model.ts#L66)
+
+##### Returns
+
+`string`
+
+#### Overrides
+
+[`SPortImpl`](../Class.SPortImpl).[`anchorKind`](../Class.SPortImpl.md#anchorkind)
+
+***
+
+### bounds
+
+#### Get Signature
+
+> **get** **bounds**(): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:183](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L183)
+
+##### Returns
+
+`Bounds`
+
+#### Set Signature
+
+> **set** **bounds**(`newBounds`): `void`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:192](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L192)
+
+##### Parameters
+
+###### newBounds
+
+`Bounds`
+
+##### Returns
+
+`void`
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`bounds`](../Class.SPortImpl.md#bounds)
+
+***
+
+### incomingEdges
+
+#### Get Signature
+
+> **get** **incomingEdges**(): `FluentIterable`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:96](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L96)
+
+The incoming edges of this connectable element. They are resolved by the index, which must
+be an `SGraphIndex` for efficient lookup.
+
+##### Returns
+
+`FluentIterable`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`incomingEdges`](../Class.SPortImpl.md#incomingedges)
+
+***
+
+### index
+
+#### Get Signature
+
+> **get** **index**(): [`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L44)
+
+##### Returns
+
+[`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`index`](../Class.SPortImpl.md#index)
+
+***
+
+### outgoingEdges
+
+#### Get Signature
+
+> **get** **outgoingEdges**(): `FluentIterable`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:104](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L104)
+
+The outgoing edges of this connectable element. They are resolved by the index, which must
+be an `SGraphIndex` for efficient lookup.
+
+##### Returns
+
+`FluentIterable`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`outgoingEdges`](../Class.SPortImpl.md#outgoingedges)
+
+***
+
+### root
+
+#### Get Signature
+
+> **get** **root**(): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L31)
+
+##### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`root`](../Class.SPortImpl.md#root)
+
+## Methods
+
+### add()
+
+> **add**(`child`, `index?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L74)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### index?
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`add`](../Class.SPortImpl.md#add)
+
+***
+
+### canConnect()
+
+> **canConnect**(`routable`, `role`): `boolean`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:134](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L134)
+
+#### Parameters
+
+##### routable
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### role
+
+`"source"` | `"target"`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`canConnect`](../Class.SPortImpl.md#canconnect)
+
+***
+
+### hasFeature()
+
+> **hasFeature**(`feature`): `boolean`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L52)
+
+A feature is a symbol identifying some functionality that can be enabled or disabled for
+a model element. The set of supported features is determined by the `features` property.
+
+#### Parameters
+
+##### feature
+
+`symbol`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`hasFeature`](../Class.SPortImpl.md#hasfeature)
+
+***
+
+### localToParent()
+
+> **localToParent**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:203](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L203)
+
+Transform the given bounds from the local coordinate system of this element to the coordinate
+system of its parent. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`localToParent`](../Class.SPortImpl.md#localtoparent)
+
+***
+
+### move()
+
+> **move**(`child`, `newIndex`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:115](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L115)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### newIndex
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`move`](../Class.SPortImpl.md#move)
+
+***
+
+### parentToLocal()
+
+> **parentToLocal**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:217](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L217)
+
+Transform the given bounds from the coordinate system of this element's parent to its local
+coordinate system. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`parentToLocal`](../Class.SPortImpl.md#parenttolocal)
+
+***
+
+### remove()
+
+> **remove**(`child`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:88](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L88)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`remove`](../Class.SPortImpl.md#remove)
+
+***
+
+### removeAll()
+
+> **removeAll**(`filter?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:98](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L98)
+
+#### Parameters
+
+##### filter?
+
+(`e`) => `boolean`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SPortImpl`](../Class.SPortImpl).[`removeAll`](../Class.SPortImpl.md#removeall)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.RequestBoundsCommand.md b/hugo/content/docs/ref/sprotty-core/Class.RequestBoundsCommand.md
new file mode 100644
index 0000000..7e166d0
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.RequestBoundsCommand.md
@@ -0,0 +1,20 @@
+
+### undo()
+
+> **undo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/base/commands/command.ts:152](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command.ts#L152)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Inherited from
+
+[`HiddenCommand`](../Class.HiddenCommand).[`undo`](../Class.HiddenCommand.md#undo)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ResetCommand.md b/hugo/content/docs/ref/sprotty-core/Class.ResetCommand.md
new file mode 100644
index 0000000..dc823ba
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ResetCommand.md
@@ -0,0 +1,20 @@
+
+### undo()
+
+> `abstract` **undo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/base/commands/command.ts:108](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command.ts#L108)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Inherited from
+
+[`Command`](../Class.Command).[`undo`](../Class.Command.md#undo)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ResolvedDelete.md b/hugo/content/docs/ref/sprotty-core/Class.ResolvedDelete.md
new file mode 100644
index 0000000..1ad3e2e
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ResolvedDelete.md
@@ -0,0 +1,6 @@
+
+### parent
+
+> **parent**: [`SParentElementImpl`](../Class.SParentElementImpl)
+
+Defined in: [packages/sprotty/src/features/edit/delete.ts:37](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/delete.ts#L37)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ResolvedLabelEdit.md b/hugo/content/docs/ref/sprotty-core/Class.ResolvedLabelEdit.md
new file mode 100644
index 0000000..3798d97
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ResolvedLabelEdit.md
@@ -0,0 +1,6 @@
+
+### oldLabel
+
+> **oldLabel**: `string`
+
+Defined in: [packages/sprotty/src/features/edit/edit-label.ts:54](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label.ts#L54)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.RevealNamedElementActionProvider.md b/hugo/content/docs/ref/sprotty-core/Class.RevealNamedElementActionProvider.md
new file mode 100644
index 0000000..b3f799c
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.RevealNamedElementActionProvider.md
@@ -0,0 +1,32 @@
+
+### getActions()
+
+> **getActions**(`root`, `text`, `lastMousePosition?`, `index?`): `Promise`\<[`LabeledAction`](../Class.LabeledAction)[]\>
+
+Defined in: [packages/sprotty/src/features/command-palette/action-providers.ts:48](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/action-providers.ts#L48)
+
+#### Parameters
+
+##### root
+
+`Readonly`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+##### text
+
+`string`
+
+##### lastMousePosition?
+
+`Point`
+
+##### index?
+
+`number`
+
+#### Returns
+
+`Promise`\<[`LabeledAction`](../Class.LabeledAction)[]\>
+
+#### Implementation of
+
+[`ICommandPaletteActionProvider`](../Interface.ICommandPaletteActionProvider).[`getActions`](../Interface.ICommandPaletteActionProvider.md#getactions)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.RoutableView.md b/hugo/content/docs/ref/sprotty-core/Class.RoutableView.md
new file mode 100644
index 0000000..8f4c2cf
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.RoutableView.md
@@ -0,0 +1,28 @@
+
+### render()
+
+> `abstract` **render**(`model`, `context`, `args?`): `undefined` \| `VNode`
+
+Defined in: [packages/sprotty/src/features/routing/views.ts:47](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/views.ts#L47)
+
+#### Parameters
+
+##### model
+
+`Readonly`\<[`SRoutableElementImpl`](../Class.SRoutableElementImpl)\>
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+##### args?
+
+[`IViewArgs`](../Interface.IViewArgs)
+
+#### Returns
+
+`undefined` \| `VNode`
+
+#### Implementation of
+
+[`IView`](../Interface.IView).[`render`](../Interface.IView.md#render)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SBezierControlHandleView.md b/hugo/content/docs/ref/sprotty-core/Class.SBezierControlHandleView.md
new file mode 100644
index 0000000..57de005
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SBezierControlHandleView.md
@@ -0,0 +1,30 @@
+
+### render()
+
+> **render**(`handle`, `context`, `args?`): `VNode`
+
+Defined in: [packages/sprotty/src/graph/views.tsx:482](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L482)
+
+#### Parameters
+
+##### handle
+
+`Readonly`\<[`SRoutingHandleImpl`](../Class.SRoutingHandleImpl)\>
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+##### args?
+
+###### route?
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+#### Returns
+
+`VNode`
+
+#### Overrides
+
+[`SRoutingHandleView`](../Class.SRoutingHandleView).[`render`](../Class.SRoutingHandleView.md#render)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SBezierCreateHandleView.md b/hugo/content/docs/ref/sprotty-core/Class.SBezierCreateHandleView.md
new file mode 100644
index 0000000..213f6bc
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SBezierCreateHandleView.md
@@ -0,0 +1,30 @@
+
+### render()
+
+> **render**(`handle`, `context`, `args?`): `VNode`
+
+Defined in: [packages/sprotty/src/graph/views.tsx:450](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L450)
+
+#### Parameters
+
+##### handle
+
+`Readonly`\<[`SRoutingHandleImpl`](../Class.SRoutingHandleImpl)\>
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+##### args?
+
+###### route?
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+#### Returns
+
+`VNode`
+
+#### Overrides
+
+[`SRoutingHandleView`](../Class.SRoutingHandleView).[`render`](../Class.SRoutingHandleView.md#render)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SButtonImpl.md b/hugo/content/docs/ref/sprotty-core/Class.SButtonImpl.md
new file mode 100644
index 0000000..b3ab4f0
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SButtonImpl.md
@@ -0,0 +1,337 @@
+
+### features?
+
+> `optional` **features**: [`FeatureSet`](../Interface.FeatureSet)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L28)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`features`](../Class.SShapeElementImpl.md#features)
+
+***
+
+### id
+
+> **id**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L27)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`id`](../Class.SShapeElementImpl.md#id)
+
+***
+
+### layoutOptions?
+
+> `optional` **layoutOptions**: [`ModelLayoutOptions`](../TypeAlias.ModelLayoutOptions)
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:181](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L181)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`layoutOptions`](../Class.SShapeElementImpl.md#layoutoptions)
+
+***
+
+### parent
+
+> `readonly` **parent**: [`SParentElementImpl`](../Class.SParentElementImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:159](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L159)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`parent`](../Class.SShapeElementImpl.md#parent)
+
+***
+
+### position
+
+> **position**: `Point` = `Point.ORIGIN`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:179](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L179)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`position`](../Class.SShapeElementImpl.md#position)
+
+***
+
+### size
+
+> **size**: `Dimension` = `Dimension.EMPTY`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:180](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L180)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`size`](../Class.SShapeElementImpl.md#size)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L26)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`type`](../Class.SShapeElementImpl.md#type)
+
+***
+
+### DEFAULT\_FEATURES
+
+> `readonly` `static` **DEFAULT\_FEATURES**: `symbol`[]
+
+Defined in: [packages/sprotty/src/features/button/model.ts:30](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/button/model.ts#L30)
+
+## Accessors
+
+### bounds
+
+#### Get Signature
+
+> **get** **bounds**(): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:183](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L183)
+
+##### Returns
+
+`Bounds`
+
+#### Set Signature
+
+> **set** **bounds**(`newBounds`): `void`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:192](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L192)
+
+##### Parameters
+
+###### newBounds
+
+`Bounds`
+
+##### Returns
+
+`void`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`bounds`](../Class.SShapeElementImpl.md#bounds)
+
+***
+
+### index
+
+#### Get Signature
+
+> **get** **index**(): [`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L44)
+
+##### Returns
+
+[`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`index`](../Class.SShapeElementImpl.md#index)
+
+***
+
+### root
+
+#### Get Signature
+
+> **get** **root**(): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L31)
+
+##### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`root`](../Class.SShapeElementImpl.md#root)
+
+## Methods
+
+### add()
+
+> **add**(`child`, `index?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L74)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### index?
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`add`](../Class.SShapeElementImpl.md#add)
+
+***
+
+### hasFeature()
+
+> **hasFeature**(`feature`): `boolean`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L52)
+
+A feature is a symbol identifying some functionality that can be enabled or disabled for
+a model element. The set of supported features is determined by the `features` property.
+
+#### Parameters
+
+##### feature
+
+`symbol`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`hasFeature`](../Class.SShapeElementImpl.md#hasfeature)
+
+***
+
+### localToParent()
+
+> **localToParent**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:203](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L203)
+
+Transform the given bounds from the local coordinate system of this element to the coordinate
+system of its parent. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`localToParent`](../Class.SShapeElementImpl.md#localtoparent)
+
+***
+
+### move()
+
+> **move**(`child`, `newIndex`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:115](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L115)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### newIndex
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`move`](../Class.SShapeElementImpl.md#move)
+
+***
+
+### parentToLocal()
+
+> **parentToLocal**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:217](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L217)
+
+Transform the given bounds from the coordinate system of this element's parent to its local
+coordinate system. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`parentToLocal`](../Class.SShapeElementImpl.md#parenttolocal)
+
+***
+
+### remove()
+
+> **remove**(`child`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:88](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L88)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`remove`](../Class.SShapeElementImpl.md#remove)
+
+***
+
+### removeAll()
+
+> **removeAll**(`filter?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:98](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L98)
+
+#### Parameters
+
+##### filter?
+
+(`e`) => `boolean`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`removeAll`](../Class.SShapeElementImpl.md#removeall)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SChildElementImpl.md b/hugo/content/docs/ref/sprotty-core/Class.SChildElementImpl.md
new file mode 100644
index 0000000..3277147
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SChildElementImpl.md
@@ -0,0 +1,243 @@
+
+### id
+
+> **id**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L27)
+
+#### Inherited from
+
+[`SParentElementImpl`](../Class.SParentElementImpl).[`id`](../Class.SParentElementImpl.md#id)
+
+***
+
+### parent
+
+> `readonly` **parent**: [`SParentElementImpl`](../Class.SParentElementImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:159](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L159)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L26)
+
+#### Inherited from
+
+[`SParentElementImpl`](../Class.SParentElementImpl).[`type`](../Class.SParentElementImpl.md#type)
+
+## Accessors
+
+### index
+
+#### Get Signature
+
+> **get** **index**(): [`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L44)
+
+##### Returns
+
+[`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+#### Inherited from
+
+[`SParentElementImpl`](../Class.SParentElementImpl).[`index`](../Class.SParentElementImpl.md#index)
+
+***
+
+### root
+
+#### Get Signature
+
+> **get** **root**(): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L31)
+
+##### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Inherited from
+
+[`SParentElementImpl`](../Class.SParentElementImpl).[`root`](../Class.SParentElementImpl.md#root)
+
+## Methods
+
+### add()
+
+> **add**(`child`, `index?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L74)
+
+#### Parameters
+
+##### child
+
+`SChildElementImpl`
+
+##### index?
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SParentElementImpl`](../Class.SParentElementImpl).[`add`](../Class.SParentElementImpl.md#add)
+
+***
+
+### hasFeature()
+
+> **hasFeature**(`feature`): `boolean`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L52)
+
+A feature is a symbol identifying some functionality that can be enabled or disabled for
+a model element. The set of supported features is determined by the `features` property.
+
+#### Parameters
+
+##### feature
+
+`symbol`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`SParentElementImpl`](../Class.SParentElementImpl).[`hasFeature`](../Class.SParentElementImpl.md#hasfeature)
+
+***
+
+### localToParent()
+
+> **localToParent**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:136](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L136)
+
+Transform the given bounds from the local coordinate system of this element to the coordinate
+system of its parent. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SParentElementImpl`](../Class.SParentElementImpl).[`localToParent`](../Class.SParentElementImpl.md#localtoparent)
+
+***
+
+### move()
+
+> **move**(`child`, `newIndex`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:115](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L115)
+
+#### Parameters
+
+##### child
+
+`SChildElementImpl`
+
+##### newIndex
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SParentElementImpl`](../Class.SParentElementImpl).[`move`](../Class.SParentElementImpl.md#move)
+
+***
+
+### parentToLocal()
+
+> **parentToLocal**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:147](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L147)
+
+Transform the given bounds from the coordinate system of this element's parent to its local
+coordinate system. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SParentElementImpl`](../Class.SParentElementImpl).[`parentToLocal`](../Class.SParentElementImpl.md#parenttolocal)
+
+***
+
+### remove()
+
+> **remove**(`child`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:88](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L88)
+
+#### Parameters
+
+##### child
+
+`SChildElementImpl`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SParentElementImpl`](../Class.SParentElementImpl).[`remove`](../Class.SParentElementImpl.md#remove)
+
+***
+
+### removeAll()
+
+> **removeAll**(`filter?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:98](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L98)
+
+#### Parameters
+
+##### filter?
+
+(`e`) => `boolean`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SParentElementImpl`](../Class.SParentElementImpl).[`removeAll`](../Class.SParentElementImpl.md#removeall)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SCompartmentImpl.md b/hugo/content/docs/ref/sprotty-core/Class.SCompartmentImpl.md
new file mode 100644
index 0000000..508dcfd
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SCompartmentImpl.md
@@ -0,0 +1,349 @@
+
+### id
+
+> **id**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L27)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`id`](../Class.SShapeElementImpl.md#id)
+
+***
+
+### layout?
+
+> `optional` **layout**: `string`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:155](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L155)
+
+***
+
+### layoutOptions?
+
+> `optional` **layoutOptions**: `object`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:156](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L156)
+
+#### Index Signature
+
+\[`key`: `string`\]: `string` \| `number` \| `boolean`
+
+#### Overrides
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`layoutOptions`](../Class.SShapeElementImpl.md#layoutoptions)
+
+***
+
+### opacity
+
+> **opacity**: `number` = `1`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:157](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L157)
+
+#### Implementation of
+
+`Fadeable.opacity`
+
+***
+
+### parent
+
+> `readonly` **parent**: [`SParentElementImpl`](../Class.SParentElementImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:159](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L159)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`parent`](../Class.SShapeElementImpl.md#parent)
+
+***
+
+### position
+
+> **position**: `Point` = `Point.ORIGIN`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:179](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L179)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`position`](../Class.SShapeElementImpl.md#position)
+
+***
+
+### size
+
+> **size**: `Dimension` = `Dimension.EMPTY`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:180](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L180)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`size`](../Class.SShapeElementImpl.md#size)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L26)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`type`](../Class.SShapeElementImpl.md#type)
+
+***
+
+### DEFAULT\_FEATURES
+
+> `readonly` `static` **DEFAULT\_FEATURES**: `symbol`[]
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:151](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L151)
+
+## Accessors
+
+### bounds
+
+#### Get Signature
+
+> **get** **bounds**(): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:183](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L183)
+
+##### Returns
+
+`Bounds`
+
+#### Set Signature
+
+> **set** **bounds**(`newBounds`): `void`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:192](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L192)
+
+##### Parameters
+
+###### newBounds
+
+`Bounds`
+
+##### Returns
+
+`void`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`bounds`](../Class.SShapeElementImpl.md#bounds)
+
+***
+
+### index
+
+#### Get Signature
+
+> **get** **index**(): [`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L44)
+
+##### Returns
+
+[`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`index`](../Class.SShapeElementImpl.md#index)
+
+***
+
+### root
+
+#### Get Signature
+
+> **get** **root**(): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L31)
+
+##### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`root`](../Class.SShapeElementImpl.md#root)
+
+## Methods
+
+### add()
+
+> **add**(`child`, `index?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L74)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### index?
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`add`](../Class.SShapeElementImpl.md#add)
+
+***
+
+### hasFeature()
+
+> **hasFeature**(`feature`): `boolean`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L52)
+
+A feature is a symbol identifying some functionality that can be enabled or disabled for
+a model element. The set of supported features is determined by the `features` property.
+
+#### Parameters
+
+##### feature
+
+`symbol`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`hasFeature`](../Class.SShapeElementImpl.md#hasfeature)
+
+***
+
+### localToParent()
+
+> **localToParent**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:203](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L203)
+
+Transform the given bounds from the local coordinate system of this element to the coordinate
+system of its parent. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`localToParent`](../Class.SShapeElementImpl.md#localtoparent)
+
+***
+
+### move()
+
+> **move**(`child`, `newIndex`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:115](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L115)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### newIndex
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`move`](../Class.SShapeElementImpl.md#move)
+
+***
+
+### parentToLocal()
+
+> **parentToLocal**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:217](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L217)
+
+Transform the given bounds from the coordinate system of this element's parent to its local
+coordinate system. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`parentToLocal`](../Class.SShapeElementImpl.md#parenttolocal)
+
+***
+
+### remove()
+
+> **remove**(`child`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:88](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L88)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`remove`](../Class.SShapeElementImpl.md#remove)
+
+***
+
+### removeAll()
+
+> **removeAll**(`filter?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:98](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L98)
+
+#### Parameters
+
+##### filter?
+
+(`e`) => `boolean`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`removeAll`](../Class.SShapeElementImpl.md#removeall)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SCompartmentView.md b/hugo/content/docs/ref/sprotty-core/Class.SCompartmentView.md
new file mode 100644
index 0000000..421f22a
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SCompartmentView.md
@@ -0,0 +1,52 @@
+
+[sprotty](../globals) / SCompartmentView
+
+# Class: SCompartmentView
+
+Defined in: [packages/sprotty/src/graph/views.tsx:434](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L434)
+
+Base interface for the components that turn GModelElements into virtual DOM elements.
+
+## Implements
+
+- [`IView`](../Interface.IView)
+
+## Constructors
+
+### Constructor
+
+> **new SCompartmentView**(): `SCompartmentView`
+
+#### Returns
+
+`SCompartmentView`
+
+## Methods
+
+### render()
+
+> **render**(`compartment`, `context`, `args?`): `undefined` \| `VNode`
+
+Defined in: [packages/sprotty/src/graph/views.tsx:435](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L435)
+
+#### Parameters
+
+##### compartment
+
+`Readonly`\<[`SCompartmentImpl`](../Class.SCompartmentImpl)\>
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+##### args?
+
+[`IViewArgs`](../Interface.IViewArgs)
+
+#### Returns
+
+`undefined` \| `VNode`
+
+#### Implementation of
+
+[`IView`](../Interface.IView).[`render`](../Interface.IView.md#render)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SConnectableElementImpl.md b/hugo/content/docs/ref/sprotty-core/Class.SConnectableElementImpl.md
new file mode 100644
index 0000000..97e9b5c
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SConnectableElementImpl.md
@@ -0,0 +1,399 @@
+
+### id
+
+> **id**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L27)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`id`](../Class.SShapeElementImpl.md#id)
+
+***
+
+### layoutOptions?
+
+> `optional` **layoutOptions**: [`ModelLayoutOptions`](../TypeAlias.ModelLayoutOptions)
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:181](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L181)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`layoutOptions`](../Class.SShapeElementImpl.md#layoutoptions)
+
+***
+
+### parent
+
+> `readonly` **parent**: [`SParentElementImpl`](../Class.SParentElementImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:159](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L159)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`parent`](../Class.SShapeElementImpl.md#parent)
+
+***
+
+### position
+
+> **position**: `Point` = `Point.ORIGIN`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:179](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L179)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`position`](../Class.SShapeElementImpl.md#position)
+
+***
+
+### size
+
+> **size**: `Dimension` = `Dimension.EMPTY`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:180](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L180)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`size`](../Class.SShapeElementImpl.md#size)
+
+***
+
+### strokeWidth
+
+> **strokeWidth**: `number` = `0`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:114](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L114)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L26)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`type`](../Class.SShapeElementImpl.md#type)
+
+## Accessors
+
+### anchorKind
+
+#### Get Signature
+
+> **get** **anchorKind**(): `undefined` \| `string`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:110](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L110)
+
+##### Returns
+
+`undefined` \| `string`
+
+***
+
+### bounds
+
+#### Get Signature
+
+> **get** **bounds**(): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:183](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L183)
+
+##### Returns
+
+`Bounds`
+
+#### Set Signature
+
+> **set** **bounds**(`newBounds`): `void`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:192](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L192)
+
+##### Parameters
+
+###### newBounds
+
+`Bounds`
+
+##### Returns
+
+`void`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`bounds`](../Class.SShapeElementImpl.md#bounds)
+
+***
+
+### incomingEdges
+
+#### Get Signature
+
+> **get** **incomingEdges**(): `FluentIterable`\<[`SRoutableElementImpl`](../Class.SRoutableElementImpl)\>
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:120](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L120)
+
+The incoming edges of this connectable element. They are resolved by the index, which must
+be an `SGraphIndex` for efficient lookup.
+
+##### Returns
+
+`FluentIterable`\<[`SRoutableElementImpl`](../Class.SRoutableElementImpl)\>
+
+***
+
+### index
+
+#### Get Signature
+
+> **get** **index**(): [`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L44)
+
+##### Returns
+
+[`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`index`](../Class.SShapeElementImpl.md#index)
+
+***
+
+### outgoingEdges
+
+#### Get Signature
+
+> **get** **outgoingEdges**(): `FluentIterable`\<[`SRoutableElementImpl`](../Class.SRoutableElementImpl)\>
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:129](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L129)
+
+The outgoing edges of this connectable element. They are resolved by the index, which must
+be an `SGraphIndex` for efficient lookup.
+
+##### Returns
+
+`FluentIterable`\<[`SRoutableElementImpl`](../Class.SRoutableElementImpl)\>
+
+***
+
+### root
+
+#### Get Signature
+
+> **get** **root**(): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L31)
+
+##### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`root`](../Class.SShapeElementImpl.md#root)
+
+## Methods
+
+### add()
+
+> **add**(`child`, `index?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L74)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### index?
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`add`](../Class.SShapeElementImpl.md#add)
+
+***
+
+### canConnect()
+
+> **canConnect**(`routable`, `role`): `boolean`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:134](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L134)
+
+#### Parameters
+
+##### routable
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### role
+
+`"source"` | `"target"`
+
+#### Returns
+
+`boolean`
+
+#### Implementation of
+
+[`Connectable`](../Interface.Connectable).[`canConnect`](../Interface.Connectable.md#canconnect)
+
+***
+
+### hasFeature()
+
+> **hasFeature**(`feature`): `boolean`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L52)
+
+A feature is a symbol identifying some functionality that can be enabled or disabled for
+a model element. The set of supported features is determined by the `features` property.
+
+#### Parameters
+
+##### feature
+
+`symbol`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`hasFeature`](../Class.SShapeElementImpl.md#hasfeature)
+
+***
+
+### localToParent()
+
+> **localToParent**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:203](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L203)
+
+Transform the given bounds from the local coordinate system of this element to the coordinate
+system of its parent. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`localToParent`](../Class.SShapeElementImpl.md#localtoparent)
+
+***
+
+### move()
+
+> **move**(`child`, `newIndex`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:115](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L115)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### newIndex
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`move`](../Class.SShapeElementImpl.md#move)
+
+***
+
+### parentToLocal()
+
+> **parentToLocal**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:217](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L217)
+
+Transform the given bounds from the coordinate system of this element's parent to its local
+coordinate system. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`parentToLocal`](../Class.SShapeElementImpl.md#parenttolocal)
+
+***
+
+### remove()
+
+> **remove**(`child`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:88](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L88)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`remove`](../Class.SShapeElementImpl.md#remove)
+
+***
+
+### removeAll()
+
+> **removeAll**(`filter?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:98](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L98)
+
+#### Parameters
+
+##### filter?
+
+(`e`) => `boolean`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`removeAll`](../Class.SShapeElementImpl.md#removeall)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SDanglingAnchorImpl.md b/hugo/content/docs/ref/sprotty-core/Class.SDanglingAnchorImpl.md
new file mode 100644
index 0000000..a8a5a42
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SDanglingAnchorImpl.md
@@ -0,0 +1,431 @@
+
+### id
+
+> **id**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L27)
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`id`](../Class.SConnectableElementImpl.md#id)
+
+***
+
+### layoutOptions?
+
+> `optional` **layoutOptions**: [`ModelLayoutOptions`](../TypeAlias.ModelLayoutOptions)
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:181](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L181)
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`layoutOptions`](../Class.SConnectableElementImpl.md#layoutoptions)
+
+***
+
+### original?
+
+> `optional` **original**: [`SModelElementImpl`](../Class.SModelElementImpl)
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:173](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L173)
+
+***
+
+### parent
+
+> `readonly` **parent**: [`SParentElementImpl`](../Class.SParentElementImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:159](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L159)
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`parent`](../Class.SConnectableElementImpl.md#parent)
+
+***
+
+### position
+
+> **position**: `Point` = `Point.ORIGIN`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:179](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L179)
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`position`](../Class.SConnectableElementImpl.md#position)
+
+***
+
+### size
+
+> **size**: `Dimension` = `Dimension.EMPTY`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:180](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L180)
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`size`](../Class.SConnectableElementImpl.md#size)
+
+***
+
+### strokeWidth
+
+> **strokeWidth**: `number` = `0`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:114](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L114)
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`strokeWidth`](../Class.SConnectableElementImpl.md#strokewidth)
+
+***
+
+### type
+
+> **type**: `string` = `'dangling-anchor'`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:174](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L174)
+
+#### Overrides
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`type`](../Class.SConnectableElementImpl.md#type)
+
+***
+
+### DEFAULT\_FEATURES
+
+> `readonly` `static` **DEFAULT\_FEATURES**: `symbol`[]
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:171](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L171)
+
+## Accessors
+
+### anchorKind
+
+#### Get Signature
+
+> **get** **anchorKind**(): `undefined` \| `string`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:110](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L110)
+
+##### Returns
+
+`undefined` \| `string`
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`anchorKind`](../Class.SConnectableElementImpl.md#anchorkind)
+
+***
+
+### bounds
+
+#### Get Signature
+
+> **get** **bounds**(): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:183](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L183)
+
+##### Returns
+
+`Bounds`
+
+#### Set Signature
+
+> **set** **bounds**(`newBounds`): `void`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:192](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L192)
+
+##### Parameters
+
+###### newBounds
+
+`Bounds`
+
+##### Returns
+
+`void`
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`bounds`](../Class.SConnectableElementImpl.md#bounds)
+
+***
+
+### incomingEdges
+
+#### Get Signature
+
+> **get** **incomingEdges**(): `FluentIterable`\<[`SRoutableElementImpl`](../Class.SRoutableElementImpl)\>
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:120](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L120)
+
+The incoming edges of this connectable element. They are resolved by the index, which must
+be an `SGraphIndex` for efficient lookup.
+
+##### Returns
+
+`FluentIterable`\<[`SRoutableElementImpl`](../Class.SRoutableElementImpl)\>
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`incomingEdges`](../Class.SConnectableElementImpl.md#incomingedges)
+
+***
+
+### index
+
+#### Get Signature
+
+> **get** **index**(): [`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L44)
+
+##### Returns
+
+[`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`index`](../Class.SConnectableElementImpl.md#index)
+
+***
+
+### outgoingEdges
+
+#### Get Signature
+
+> **get** **outgoingEdges**(): `FluentIterable`\<[`SRoutableElementImpl`](../Class.SRoutableElementImpl)\>
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:129](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L129)
+
+The outgoing edges of this connectable element. They are resolved by the index, which must
+be an `SGraphIndex` for efficient lookup.
+
+##### Returns
+
+`FluentIterable`\<[`SRoutableElementImpl`](../Class.SRoutableElementImpl)\>
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`outgoingEdges`](../Class.SConnectableElementImpl.md#outgoingedges)
+
+***
+
+### root
+
+#### Get Signature
+
+> **get** **root**(): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L31)
+
+##### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`root`](../Class.SConnectableElementImpl.md#root)
+
+## Methods
+
+### add()
+
+> **add**(`child`, `index?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L74)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### index?
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`add`](../Class.SConnectableElementImpl.md#add)
+
+***
+
+### canConnect()
+
+> **canConnect**(`routable`, `role`): `boolean`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:134](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L134)
+
+#### Parameters
+
+##### routable
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### role
+
+`"source"` | `"target"`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`canConnect`](../Class.SConnectableElementImpl.md#canconnect)
+
+***
+
+### hasFeature()
+
+> **hasFeature**(`feature`): `boolean`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L52)
+
+A feature is a symbol identifying some functionality that can be enabled or disabled for
+a model element. The set of supported features is determined by the `features` property.
+
+#### Parameters
+
+##### feature
+
+`symbol`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`hasFeature`](../Class.SConnectableElementImpl.md#hasfeature)
+
+***
+
+### localToParent()
+
+> **localToParent**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:203](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L203)
+
+Transform the given bounds from the local coordinate system of this element to the coordinate
+system of its parent. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`localToParent`](../Class.SConnectableElementImpl.md#localtoparent)
+
+***
+
+### move()
+
+> **move**(`child`, `newIndex`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:115](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L115)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### newIndex
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`move`](../Class.SConnectableElementImpl.md#move)
+
+***
+
+### parentToLocal()
+
+> **parentToLocal**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:217](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L217)
+
+Transform the given bounds from the coordinate system of this element's parent to its local
+coordinate system. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`parentToLocal`](../Class.SConnectableElementImpl.md#parenttolocal)
+
+***
+
+### remove()
+
+> **remove**(`child`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:88](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L88)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`remove`](../Class.SConnectableElementImpl.md#remove)
+
+***
+
+### removeAll()
+
+> **removeAll**(`filter?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:98](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L98)
+
+#### Parameters
+
+##### filter?
+
+(`e`) => `boolean`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`removeAll`](../Class.SConnectableElementImpl.md#removeall)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SDecoration.md b/hugo/content/docs/ref/sprotty-core/Class.SDecoration.md
new file mode 100644
index 0000000..133fac8
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SDecoration.md
@@ -0,0 +1,325 @@
+
+### id
+
+> **id**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L27)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`id`](../Class.SShapeElementImpl.md#id)
+
+***
+
+### layoutOptions?
+
+> `optional` **layoutOptions**: [`ModelLayoutOptions`](../TypeAlias.ModelLayoutOptions)
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:181](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L181)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`layoutOptions`](../Class.SShapeElementImpl.md#layoutoptions)
+
+***
+
+### parent
+
+> `readonly` **parent**: [`SParentElementImpl`](../Class.SParentElementImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:159](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L159)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`parent`](../Class.SShapeElementImpl.md#parent)
+
+***
+
+### position
+
+> **position**: `Point` = `Point.ORIGIN`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:179](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L179)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`position`](../Class.SShapeElementImpl.md#position)
+
+***
+
+### size
+
+> **size**: `Dimension` = `Dimension.EMPTY`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:180](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L180)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`size`](../Class.SShapeElementImpl.md#size)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L26)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`type`](../Class.SShapeElementImpl.md#type)
+
+***
+
+### DEFAULT\_FEATURES
+
+> `readonly` `static` **DEFAULT\_FEATURES**: `symbol`[]
+
+Defined in: [packages/sprotty/src/features/decoration/model.ts:35](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/decoration/model.ts#L35)
+
+## Accessors
+
+### bounds
+
+#### Get Signature
+
+> **get** **bounds**(): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:183](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L183)
+
+##### Returns
+
+`Bounds`
+
+#### Set Signature
+
+> **set** **bounds**(`newBounds`): `void`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:192](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L192)
+
+##### Parameters
+
+###### newBounds
+
+`Bounds`
+
+##### Returns
+
+`void`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`bounds`](../Class.SShapeElementImpl.md#bounds)
+
+***
+
+### index
+
+#### Get Signature
+
+> **get** **index**(): [`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L44)
+
+##### Returns
+
+[`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`index`](../Class.SShapeElementImpl.md#index)
+
+***
+
+### root
+
+#### Get Signature
+
+> **get** **root**(): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L31)
+
+##### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`root`](../Class.SShapeElementImpl.md#root)
+
+## Methods
+
+### add()
+
+> **add**(`child`, `index?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L74)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### index?
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`add`](../Class.SShapeElementImpl.md#add)
+
+***
+
+### hasFeature()
+
+> **hasFeature**(`feature`): `boolean`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L52)
+
+A feature is a symbol identifying some functionality that can be enabled or disabled for
+a model element. The set of supported features is determined by the `features` property.
+
+#### Parameters
+
+##### feature
+
+`symbol`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`hasFeature`](../Class.SShapeElementImpl.md#hasfeature)
+
+***
+
+### localToParent()
+
+> **localToParent**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:203](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L203)
+
+Transform the given bounds from the local coordinate system of this element to the coordinate
+system of its parent. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`localToParent`](../Class.SShapeElementImpl.md#localtoparent)
+
+***
+
+### move()
+
+> **move**(`child`, `newIndex`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:115](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L115)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### newIndex
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`move`](../Class.SShapeElementImpl.md#move)
+
+***
+
+### parentToLocal()
+
+> **parentToLocal**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:217](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L217)
+
+Transform the given bounds from the coordinate system of this element's parent to its local
+coordinate system. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`parentToLocal`](../Class.SShapeElementImpl.md#parenttolocal)
+
+***
+
+### remove()
+
+> **remove**(`child`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:88](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L88)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`remove`](../Class.SShapeElementImpl.md#remove)
+
+***
+
+### removeAll()
+
+> **removeAll**(`filter?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:98](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L98)
+
+#### Parameters
+
+##### filter?
+
+(`e`) => `boolean`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`removeAll`](../Class.SShapeElementImpl.md#removeall)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SEdgeImpl.md b/hugo/content/docs/ref/sprotty-core/Class.SEdgeImpl.md
new file mode 100644
index 0000000..2bebb6c
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SEdgeImpl.md
@@ -0,0 +1,421 @@
+
+### hoverFeedback
+
+> **hoverFeedback**: `boolean` = `false`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:126](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L126)
+
+#### Implementation of
+
+`Hoverable.hoverFeedback`
+
+***
+
+### id
+
+> **id**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L27)
+
+#### Inherited from
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl).[`id`](../Class.SRoutableElementImpl.md#id)
+
+***
+
+### opacity
+
+> **opacity**: `number` = `1`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:127](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L127)
+
+#### Implementation of
+
+`Fadeable.opacity`
+
+***
+
+### parent
+
+> `readonly` **parent**: [`SParentElementImpl`](../Class.SParentElementImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:159](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L159)
+
+#### Inherited from
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl).[`parent`](../Class.SRoutableElementImpl.md#parent)
+
+***
+
+### routerKind?
+
+> `optional` **routerKind**: `string`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L29)
+
+#### Inherited from
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl).[`routerKind`](../Class.SRoutableElementImpl.md#routerkind)
+
+***
+
+### routingPoints
+
+> **routingPoints**: `Point`[] = `[]`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:30](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L30)
+
+#### Inherited from
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl).[`routingPoints`](../Class.SRoutableElementImpl.md#routingpoints)
+
+***
+
+### selected
+
+> **selected**: `boolean` = `false`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:125](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L125)
+
+#### Implementation of
+
+`Selectable.selected`
+
+***
+
+### sourceAnchorCorrection?
+
+> `optional` **sourceAnchorCorrection**: `number`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:33](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L33)
+
+#### Inherited from
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl).[`sourceAnchorCorrection`](../Class.SRoutableElementImpl.md#sourceanchorcorrection)
+
+***
+
+### sourceId
+
+> **sourceId**: `string`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L31)
+
+#### Inherited from
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl).[`sourceId`](../Class.SRoutableElementImpl.md#sourceid)
+
+***
+
+### targetAnchorCorrection?
+
+> `optional` **targetAnchorCorrection**: `number`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:34](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L34)
+
+#### Inherited from
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl).[`targetAnchorCorrection`](../Class.SRoutableElementImpl.md#targetanchorcorrection)
+
+***
+
+### targetId
+
+> **targetId**: `string`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:32](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L32)
+
+#### Inherited from
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl).[`targetId`](../Class.SRoutableElementImpl.md#targetid)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L26)
+
+#### Inherited from
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl).[`type`](../Class.SRoutableElementImpl.md#type)
+
+***
+
+### DEFAULT\_FEATURES
+
+> `readonly` `static` **DEFAULT\_FEATURES**: `symbol`[]
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:122](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L122)
+
+## Accessors
+
+### bounds
+
+#### Get Signature
+
+> **get** **bounds**(): `Bounds`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L44)
+
+##### Returns
+
+`Bounds`
+
+#### Implementation of
+
+[`InternalBoundsAware`](../Interface.InternalBoundsAware).[`bounds`](../Interface.InternalBoundsAware.md#bounds)
+
+#### Inherited from
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl).[`bounds`](../Class.SRoutableElementImpl.md#bounds)
+
+***
+
+### index
+
+#### Get Signature
+
+> **get** **index**(): [`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L44)
+
+##### Returns
+
+[`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+#### Inherited from
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl).[`index`](../Class.SRoutableElementImpl.md#index)
+
+***
+
+### root
+
+#### Get Signature
+
+> **get** **root**(): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L31)
+
+##### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Inherited from
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl).[`root`](../Class.SRoutableElementImpl.md#root)
+
+***
+
+### source
+
+#### Get Signature
+
+> **get** **source**(): `undefined` \| [`SConnectableElementImpl`](../Class.SConnectableElementImpl)
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:36](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L36)
+
+##### Returns
+
+`undefined` \| [`SConnectableElementImpl`](../Class.SConnectableElementImpl)
+
+#### Inherited from
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl).[`source`](../Class.SRoutableElementImpl.md#source)
+
+***
+
+### target
+
+#### Get Signature
+
+> **get** **target**(): `undefined` \| [`SConnectableElementImpl`](../Class.SConnectableElementImpl)
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:40](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L40)
+
+##### Returns
+
+`undefined` \| [`SConnectableElementImpl`](../Class.SConnectableElementImpl)
+
+#### Inherited from
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl).[`target`](../Class.SRoutableElementImpl.md#target)
+
+## Methods
+
+### add()
+
+> **add**(`child`, `index?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L74)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### index?
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl).[`add`](../Class.SRoutableElementImpl.md#add)
+
+***
+
+### hasFeature()
+
+> **hasFeature**(`feature`): `boolean`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L52)
+
+A feature is a symbol identifying some functionality that can be enabled or disabled for
+a model element. The set of supported features is determined by the `features` property.
+
+#### Parameters
+
+##### feature
+
+`symbol`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl).[`hasFeature`](../Class.SRoutableElementImpl.md#hasfeature)
+
+***
+
+### localToParent()
+
+> **localToParent**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:136](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L136)
+
+Transform the given bounds from the local coordinate system of this element to the coordinate
+system of its parent. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl).[`localToParent`](../Class.SRoutableElementImpl.md#localtoparent)
+
+***
+
+### move()
+
+> **move**(`child`, `newIndex`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:115](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L115)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### newIndex
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl).[`move`](../Class.SRoutableElementImpl.md#move)
+
+***
+
+### parentToLocal()
+
+> **parentToLocal**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:147](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L147)
+
+Transform the given bounds from the coordinate system of this element's parent to its local
+coordinate system. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl).[`parentToLocal`](../Class.SRoutableElementImpl.md#parenttolocal)
+
+***
+
+### remove()
+
+> **remove**(`child`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:88](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L88)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl).[`remove`](../Class.SRoutableElementImpl.md#remove)
+
+***
+
+### removeAll()
+
+> **removeAll**(`filter?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:98](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L98)
+
+#### Parameters
+
+##### filter?
+
+(`e`) => `boolean`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl).[`removeAll`](../Class.SRoutableElementImpl.md#removeall)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SGraphImpl.md b/hugo/content/docs/ref/sprotty-core/Class.SGraphImpl.md
new file mode 100644
index 0000000..aa561dc
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SGraphImpl.md
@@ -0,0 +1,361 @@
+
+### features?
+
+> `optional` **features**: [`FeatureSet`](../Interface.FeatureSet)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L28)
+
+#### Inherited from
+
+[`ViewportRootElementImpl`](../Class.ViewportRootElementImpl).[`features`](../Class.ViewportRootElementImpl.md#features)
+
+***
+
+### id
+
+> **id**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L27)
+
+#### Inherited from
+
+[`ViewportRootElementImpl`](../Class.ViewportRootElementImpl).[`id`](../Class.ViewportRootElementImpl.md#id)
+
+***
+
+### layoutOptions?
+
+> `optional` **layoutOptions**: [`ModelLayoutOptions`](../TypeAlias.ModelLayoutOptions)
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:39](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L39)
+
+***
+
+### position
+
+> **position**: `Point` = `Point.ORIGIN`
+
+Defined in: [packages/sprotty/src/features/viewport/viewport-root.ts:33](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/viewport-root.ts#L33)
+
+#### Inherited from
+
+[`ViewportRootElementImpl`](../Class.ViewportRootElementImpl).[`position`](../Class.ViewportRootElementImpl.md#position)
+
+***
+
+### revision?
+
+> `optional` **revision**: `number`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:167](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L167)
+
+#### Inherited from
+
+[`ViewportRootElementImpl`](../Class.ViewportRootElementImpl).[`revision`](../Class.ViewportRootElementImpl.md#revision)
+
+***
+
+### scroll
+
+> **scroll**: `Point`
+
+Defined in: [packages/sprotty/src/features/viewport/viewport-root.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/viewport-root.ts#L31)
+
+#### Inherited from
+
+[`ViewportRootElementImpl`](../Class.ViewportRootElementImpl).[`scroll`](../Class.ViewportRootElementImpl.md#scroll)
+
+***
+
+### size
+
+> **size**: `Dimension` = `Dimension.EMPTY`
+
+Defined in: [packages/sprotty/src/features/viewport/viewport-root.ts:34](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/viewport-root.ts#L34)
+
+#### Inherited from
+
+[`ViewportRootElementImpl`](../Class.ViewportRootElementImpl).[`size`](../Class.ViewportRootElementImpl.md#size)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L26)
+
+#### Inherited from
+
+[`ViewportRootElementImpl`](../Class.ViewportRootElementImpl).[`type`](../Class.ViewportRootElementImpl.md#type)
+
+***
+
+### zoom
+
+> **zoom**: `number` = `1`
+
+Defined in: [packages/sprotty/src/features/viewport/viewport-root.ts:32](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/viewport-root.ts#L32)
+
+#### Inherited from
+
+[`ViewportRootElementImpl`](../Class.ViewportRootElementImpl).[`zoom`](../Class.ViewportRootElementImpl.md#zoom)
+
+***
+
+### DEFAULT\_FEATURES
+
+> `readonly` `static` **DEFAULT\_FEATURES**: `symbol`[]
+
+Defined in: [packages/sprotty/src/features/viewport/viewport-root.ts:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/viewport-root.ts#L29)
+
+#### Inherited from
+
+[`ViewportRootElementImpl`](../Class.ViewportRootElementImpl).[`DEFAULT_FEATURES`](../Class.ViewportRootElementImpl.md#default_features)
+
+## Accessors
+
+### bounds
+
+#### Get Signature
+
+> **get** **bounds**(): `Bounds`
+
+Defined in: [packages/sprotty/src/features/viewport/viewport-root.ts:40](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/viewport-root.ts#L40)
+
+##### Returns
+
+`Bounds`
+
+#### Set Signature
+
+> **set** **bounds**(`newBounds`): `void`
+
+Defined in: [packages/sprotty/src/features/viewport/viewport-root.ts:49](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/viewport-root.ts#L49)
+
+##### Parameters
+
+###### newBounds
+
+`Bounds`
+
+##### Returns
+
+`void`
+
+#### Inherited from
+
+[`ViewportRootElementImpl`](../Class.ViewportRootElementImpl).[`bounds`](../Class.ViewportRootElementImpl.md#bounds)
+
+***
+
+### index
+
+#### Get Signature
+
+> **get** **index**(): [`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L44)
+
+##### Returns
+
+[`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+#### Inherited from
+
+[`ViewportRootElementImpl`](../Class.ViewportRootElementImpl).[`index`](../Class.ViewportRootElementImpl.md#index)
+
+***
+
+### root
+
+#### Get Signature
+
+> **get** **root**(): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L31)
+
+##### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Inherited from
+
+[`ViewportRootElementImpl`](../Class.ViewportRootElementImpl).[`root`](../Class.ViewportRootElementImpl.md#root)
+
+## Methods
+
+### add()
+
+> **add**(`child`, `index?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L74)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### index?
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`ViewportRootElementImpl`](../Class.ViewportRootElementImpl).[`add`](../Class.ViewportRootElementImpl.md#add)
+
+***
+
+### hasFeature()
+
+> **hasFeature**(`feature`): `boolean`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L52)
+
+A feature is a symbol identifying some functionality that can be enabled or disabled for
+a model element. The set of supported features is determined by the `features` property.
+
+#### Parameters
+
+##### feature
+
+`symbol`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`ViewportRootElementImpl`](../Class.ViewportRootElementImpl).[`hasFeature`](../Class.ViewportRootElementImpl.md#hasfeature)
+
+***
+
+### localToParent()
+
+> **localToParent**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/viewport/viewport-root.ts:60](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/viewport-root.ts#L60)
+
+Transform the given bounds from the local coordinate system of this element to the coordinate
+system of its parent. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`ViewportRootElementImpl`](../Class.ViewportRootElementImpl).[`localToParent`](../Class.ViewportRootElementImpl.md#localtoparent)
+
+***
+
+### move()
+
+> **move**(`child`, `newIndex`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:115](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L115)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### newIndex
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`ViewportRootElementImpl`](../Class.ViewportRootElementImpl).[`move`](../Class.ViewportRootElementImpl.md#move)
+
+***
+
+### parentToLocal()
+
+> **parentToLocal**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/viewport/viewport-root.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/viewport-root.ts#L74)
+
+Transform the given bounds from the coordinate system of this element's parent to its local
+coordinate system. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`ViewportRootElementImpl`](../Class.ViewportRootElementImpl).[`parentToLocal`](../Class.ViewportRootElementImpl.md#parenttolocal)
+
+***
+
+### remove()
+
+> **remove**(`child`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:88](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L88)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`ViewportRootElementImpl`](../Class.ViewportRootElementImpl).[`remove`](../Class.ViewportRootElementImpl.md#remove)
+
+***
+
+### removeAll()
+
+> **removeAll**(`filter?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:98](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L98)
+
+#### Parameters
+
+##### filter?
+
+(`e`) => `boolean`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`ViewportRootElementImpl`](../Class.ViewportRootElementImpl).[`removeAll`](../Class.ViewportRootElementImpl.md#removeall)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SGraphIndex.md b/hugo/content/docs/ref/sprotty-core/Class.SGraphIndex.md
new file mode 100644
index 0000000..7d71701
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SGraphIndex.md
@@ -0,0 +1,100 @@
+
+### getAttachedElements()
+
+> **getAttachedElements**(`element`): `FluentIterable`\<[`SModelElementImpl`](../Class.SModelElementImpl)\>
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:221](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L221)
+
+#### Parameters
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+#### Returns
+
+`FluentIterable`\<[`SModelElementImpl`](../Class.SModelElementImpl)\>
+
+#### Overrides
+
+[`ModelIndexImpl`](../Class.ModelIndexImpl).[`getAttachedElements`](../Class.ModelIndexImpl.md#getattachedelements)
+
+***
+
+### getById()
+
+> **getById**(`id`): `undefined` \| [`SModelElementImpl`](../Class.SModelElementImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:237](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L237)
+
+#### Parameters
+
+##### id
+
+`string`
+
+#### Returns
+
+`undefined` \| [`SModelElementImpl`](../Class.SModelElementImpl)
+
+#### Inherited from
+
+[`ModelIndexImpl`](../Class.ModelIndexImpl).[`getById`](../Class.ModelIndexImpl.md#getbyid)
+
+***
+
+### getIncomingEdges()
+
+> **getIncomingEdges**(`element`): `FluentIterable`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:252](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L252)
+
+#### Parameters
+
+##### element
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl)
+
+#### Returns
+
+`FluentIterable`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+***
+
+### getOutgoingEdges()
+
+> **getOutgoingEdges**(`element`): `FluentIterable`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:256](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L256)
+
+#### Parameters
+
+##### element
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl)
+
+#### Returns
+
+`FluentIterable`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+***
+
+### remove()
+
+> **remove**(`element`): `void`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:193](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L193)
+
+#### Parameters
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+#### Returns
+
+`void`
+
+#### Overrides
+
+[`ModelIndexImpl`](../Class.ModelIndexImpl).[`remove`](../Class.ModelIndexImpl.md#remove)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SGraphView.md b/hugo/content/docs/ref/sprotty-core/Class.SGraphView.md
new file mode 100644
index 0000000..80e1dd2
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SGraphView.md
@@ -0,0 +1,56 @@
+
+[sprotty](../globals) / SGraphView
+
+# Class: SGraphView
+
+Defined in: [packages/sprotty/src/graph/views.tsx:46](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L46)
+
+IView component that turns an SGraph element and its children into a tree of virtual DOM elements.
+
+## Implements
+
+- [`IView`](../Interface.IView)
+
+## Constructors
+
+### Constructor
+
+> **new SGraphView**(): `SGraphView`
+
+#### Returns
+
+`SGraphView`
+
+## Properties
+
+### edgeRouterRegistry
+
+> **edgeRouterRegistry**: [`EdgeRouterRegistry`](../Class.EdgeRouterRegistry)
+
+Defined in: [packages/sprotty/src/graph/views.tsx:48](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L48)
+
+## Methods
+
+### render()
+
+> **render**(`model`, `context`): `VNode`
+
+Defined in: [packages/sprotty/src/graph/views.tsx:50](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L50)
+
+#### Parameters
+
+##### model
+
+`Readonly`\<[`SGraphImpl`](../Class.SGraphImpl)\>
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+#### Returns
+
+`VNode`
+
+#### Implementation of
+
+[`IView`](../Interface.IView).[`render`](../Interface.IView.md#render)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SIssue.md b/hugo/content/docs/ref/sprotty-core/Class.SIssue.md
new file mode 100644
index 0000000..f829a36
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SIssue.md
@@ -0,0 +1,6 @@
+
+### ~~severity~~
+
+> **severity**: [`SIssueSeverity`](../TypeAlias.SIssueSeverity)
+
+Defined in: [packages/sprotty/src/features/decoration/model.ts:55](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/decoration/model.ts#L55)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SIssueMarkerImpl.md b/hugo/content/docs/ref/sprotty-core/Class.SIssueMarkerImpl.md
new file mode 100644
index 0000000..1a18b7c
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SIssueMarkerImpl.md
@@ -0,0 +1,337 @@
+
+### id
+
+> **id**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L27)
+
+#### Inherited from
+
+[`SDecoration`](../Class.SDecoration).[`id`](../Class.SDecoration.md#id)
+
+***
+
+### issues
+
+> **issues**: `SIssue`[]
+
+Defined in: [packages/sprotty/src/features/decoration/model.ts:39](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/decoration/model.ts#L39)
+
+***
+
+### layoutOptions?
+
+> `optional` **layoutOptions**: [`ModelLayoutOptions`](../TypeAlias.ModelLayoutOptions)
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:181](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L181)
+
+#### Inherited from
+
+[`SDecoration`](../Class.SDecoration).[`layoutOptions`](../Class.SDecoration.md#layoutoptions)
+
+***
+
+### parent
+
+> `readonly` **parent**: [`SParentElementImpl`](../Class.SParentElementImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:159](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L159)
+
+#### Inherited from
+
+[`SDecoration`](../Class.SDecoration).[`parent`](../Class.SDecoration.md#parent)
+
+***
+
+### position
+
+> **position**: `Point` = `Point.ORIGIN`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:179](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L179)
+
+#### Inherited from
+
+[`SDecoration`](../Class.SDecoration).[`position`](../Class.SDecoration.md#position)
+
+***
+
+### size
+
+> **size**: `Dimension` = `Dimension.EMPTY`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:180](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L180)
+
+#### Inherited from
+
+[`SDecoration`](../Class.SDecoration).[`size`](../Class.SDecoration.md#size)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L26)
+
+#### Inherited from
+
+[`SDecoration`](../Class.SDecoration).[`type`](../Class.SDecoration.md#type)
+
+***
+
+### DEFAULT\_FEATURES
+
+> `readonly` `static` **DEFAULT\_FEATURES**: `symbol`[]
+
+Defined in: [packages/sprotty/src/features/decoration/model.ts:35](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/decoration/model.ts#L35)
+
+#### Inherited from
+
+[`SDecoration`](../Class.SDecoration).[`DEFAULT_FEATURES`](../Class.SDecoration.md#default_features)
+
+## Accessors
+
+### bounds
+
+#### Get Signature
+
+> **get** **bounds**(): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:183](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L183)
+
+##### Returns
+
+`Bounds`
+
+#### Set Signature
+
+> **set** **bounds**(`newBounds`): `void`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:192](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L192)
+
+##### Parameters
+
+###### newBounds
+
+`Bounds`
+
+##### Returns
+
+`void`
+
+#### Inherited from
+
+[`SDecoration`](../Class.SDecoration).[`bounds`](../Class.SDecoration.md#bounds)
+
+***
+
+### index
+
+#### Get Signature
+
+> **get** **index**(): [`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L44)
+
+##### Returns
+
+[`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+#### Inherited from
+
+[`SDecoration`](../Class.SDecoration).[`index`](../Class.SDecoration.md#index)
+
+***
+
+### root
+
+#### Get Signature
+
+> **get** **root**(): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L31)
+
+##### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Inherited from
+
+[`SDecoration`](../Class.SDecoration).[`root`](../Class.SDecoration.md#root)
+
+## Methods
+
+### add()
+
+> **add**(`child`, `index?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L74)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### index?
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SDecoration`](../Class.SDecoration).[`add`](../Class.SDecoration.md#add)
+
+***
+
+### hasFeature()
+
+> **hasFeature**(`feature`): `boolean`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L52)
+
+A feature is a symbol identifying some functionality that can be enabled or disabled for
+a model element. The set of supported features is determined by the `features` property.
+
+#### Parameters
+
+##### feature
+
+`symbol`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`SDecoration`](../Class.SDecoration).[`hasFeature`](../Class.SDecoration.md#hasfeature)
+
+***
+
+### localToParent()
+
+> **localToParent**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:203](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L203)
+
+Transform the given bounds from the local coordinate system of this element to the coordinate
+system of its parent. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SDecoration`](../Class.SDecoration).[`localToParent`](../Class.SDecoration.md#localtoparent)
+
+***
+
+### move()
+
+> **move**(`child`, `newIndex`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:115](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L115)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### newIndex
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SDecoration`](../Class.SDecoration).[`move`](../Class.SDecoration.md#move)
+
+***
+
+### parentToLocal()
+
+> **parentToLocal**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:217](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L217)
+
+Transform the given bounds from the coordinate system of this element's parent to its local
+coordinate system. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SDecoration`](../Class.SDecoration).[`parentToLocal`](../Class.SDecoration.md#parenttolocal)
+
+***
+
+### remove()
+
+> **remove**(`child`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:88](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L88)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SDecoration`](../Class.SDecoration).[`remove`](../Class.SDecoration.md#remove)
+
+***
+
+### removeAll()
+
+> **removeAll**(`filter?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:98](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L98)
+
+#### Parameters
+
+##### filter?
+
+(`e`) => `boolean`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SDecoration`](../Class.SDecoration).[`removeAll`](../Class.SDecoration.md#removeall)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SLabelImpl.md b/hugo/content/docs/ref/sprotty-core/Class.SLabelImpl.md
new file mode 100644
index 0000000..7accea3
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SLabelImpl.md
@@ -0,0 +1,377 @@
+
+### edgePlacement?
+
+> `optional` **edgePlacement**: `EdgePlacement`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:142](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L142)
+
+***
+
+### features?
+
+> `optional` **features**: [`FeatureSet`](../Interface.FeatureSet)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L28)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`features`](../Class.SShapeElementImpl.md#features)
+
+***
+
+### id
+
+> **id**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L27)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`id`](../Class.SShapeElementImpl.md#id)
+
+***
+
+### layoutOptions?
+
+> `optional` **layoutOptions**: [`ModelLayoutOptions`](../TypeAlias.ModelLayoutOptions)
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:181](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L181)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`layoutOptions`](../Class.SShapeElementImpl.md#layoutoptions)
+
+***
+
+### opacity
+
+> **opacity**: `number` = `1`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:141](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L141)
+
+#### Implementation of
+
+`Fadeable.opacity`
+
+***
+
+### parent
+
+> `readonly` **parent**: [`SParentElementImpl`](../Class.SParentElementImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:159](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L159)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`parent`](../Class.SShapeElementImpl.md#parent)
+
+***
+
+### position
+
+> **position**: `Point` = `Point.ORIGIN`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:179](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L179)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`position`](../Class.SShapeElementImpl.md#position)
+
+***
+
+### selected
+
+> **selected**: `boolean` = `false`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:139](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L139)
+
+#### Implementation of
+
+`Selectable.selected`
+
+***
+
+### size
+
+> **size**: `Dimension` = `Dimension.EMPTY`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:180](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L180)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`size`](../Class.SShapeElementImpl.md#size)
+
+***
+
+### text
+
+> **text**: `string`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:138](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L138)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L26)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`type`](../Class.SShapeElementImpl.md#type)
+
+***
+
+### DEFAULT\_FEATURES
+
+> `readonly` `static` **DEFAULT\_FEATURES**: `symbol`[]
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:135](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L135)
+
+## Accessors
+
+### bounds
+
+#### Get Signature
+
+> **get** **bounds**(): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:183](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L183)
+
+##### Returns
+
+`Bounds`
+
+#### Set Signature
+
+> **set** **bounds**(`newBounds`): `void`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:192](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L192)
+
+##### Parameters
+
+###### newBounds
+
+`Bounds`
+
+##### Returns
+
+`void`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`bounds`](../Class.SShapeElementImpl.md#bounds)
+
+***
+
+### index
+
+#### Get Signature
+
+> **get** **index**(): [`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L44)
+
+##### Returns
+
+[`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`index`](../Class.SShapeElementImpl.md#index)
+
+***
+
+### root
+
+#### Get Signature
+
+> **get** **root**(): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L31)
+
+##### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`root`](../Class.SShapeElementImpl.md#root)
+
+## Methods
+
+### add()
+
+> **add**(`child`, `index?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L74)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### index?
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`add`](../Class.SShapeElementImpl.md#add)
+
+***
+
+### hasFeature()
+
+> **hasFeature**(`feature`): `boolean`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L52)
+
+A feature is a symbol identifying some functionality that can be enabled or disabled for
+a model element. The set of supported features is determined by the `features` property.
+
+#### Parameters
+
+##### feature
+
+`symbol`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`hasFeature`](../Class.SShapeElementImpl.md#hasfeature)
+
+***
+
+### localToParent()
+
+> **localToParent**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:203](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L203)
+
+Transform the given bounds from the local coordinate system of this element to the coordinate
+system of its parent. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`localToParent`](../Class.SShapeElementImpl.md#localtoparent)
+
+***
+
+### move()
+
+> **move**(`child`, `newIndex`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:115](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L115)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### newIndex
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`move`](../Class.SShapeElementImpl.md#move)
+
+***
+
+### parentToLocal()
+
+> **parentToLocal**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:217](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L217)
+
+Transform the given bounds from the coordinate system of this element's parent to its local
+coordinate system. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`parentToLocal`](../Class.SShapeElementImpl.md#parenttolocal)
+
+***
+
+### remove()
+
+> **remove**(`child`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:88](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L88)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`remove`](../Class.SShapeElementImpl.md#remove)
+
+***
+
+### removeAll()
+
+> **removeAll**(`filter?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:98](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L98)
+
+#### Parameters
+
+##### filter?
+
+(`e`) => `boolean`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SShapeElementImpl`](../Class.SShapeElementImpl).[`removeAll`](../Class.SShapeElementImpl.md#removeall)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SLabelView.md b/hugo/content/docs/ref/sprotty-core/Class.SLabelView.md
new file mode 100644
index 0000000..42e8610
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SLabelView.md
@@ -0,0 +1,24 @@
+
+### render()
+
+> **render**(`label`, `context`): `undefined` \| `VNode`
+
+Defined in: [packages/sprotty/src/graph/views.tsx:420](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L420)
+
+#### Parameters
+
+##### label
+
+`Readonly`\<[`SLabelImpl`](../Class.SLabelImpl)\>
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+#### Returns
+
+`undefined` \| `VNode`
+
+#### Overrides
+
+[`ShapeView`](../Class.ShapeView).[`render`](../Class.ShapeView.md#render)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SModelElementImpl.md b/hugo/content/docs/ref/sprotty-core/Class.SModelElementImpl.md
new file mode 100644
index 0000000..86f5e4a
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SModelElementImpl.md
@@ -0,0 +1,55 @@
+
+### type
+
+> **type**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L26)
+
+## Accessors
+
+### index
+
+#### Get Signature
+
+> **get** **index**(): [`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L44)
+
+##### Returns
+
+[`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+***
+
+### root
+
+#### Get Signature
+
+> **get** **root**(): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L31)
+
+##### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+## Methods
+
+### hasFeature()
+
+> **hasFeature**(`feature`): `boolean`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L52)
+
+A feature is a symbol identifying some functionality that can be enabled or disabled for
+a model element. The set of supported features is determined by the `features` property.
+
+#### Parameters
+
+##### feature
+
+`symbol`
+
+#### Returns
+
+`boolean`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SModelFactory.md b/hugo/content/docs/ref/sprotty-core/Class.SModelFactory.md
new file mode 100644
index 0000000..8d1a525
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SModelFactory.md
@@ -0,0 +1,112 @@
+
+### initializeChild()
+
+> `protected` **initializeChild**(`child`, `schema`, `parent?`): [`SChildElementImpl`](../Class.SChildElementImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel-factory.ts:165](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel-factory.ts#L165)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### schema
+
+`SModelElement`
+
+##### parent?
+
+[`SParentElementImpl`](../Class.SParentElementImpl)
+
+#### Returns
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+***
+
+### initializeElement()
+
+> `protected` **initializeElement**(`element`, `schema`): [`SModelElementImpl`](../Class.SModelElementImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel-factory.ts:133](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel-factory.ts#L133)
+
+#### Parameters
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### schema
+
+[`SModelElementImpl`](../Class.SModelElementImpl) | `SModelElement`
+
+#### Returns
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+***
+
+### initializeParent()
+
+> `protected` **initializeParent**(`parent`, `schema`): [`SParentElementImpl`](../Class.SParentElementImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel-factory.ts:157](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel-factory.ts#L157)
+
+#### Parameters
+
+##### parent
+
+[`SParentElementImpl`](../Class.SParentElementImpl)
+
+##### schema
+
+[`SParentElementImpl`](../Class.SParentElementImpl) | `SModelElement`
+
+#### Returns
+
+[`SParentElementImpl`](../Class.SParentElementImpl)
+
+***
+
+### initializeRoot()
+
+> `protected` **initializeRoot**(`root`, `schema`): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel-factory.ts:173](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel-factory.ts#L173)
+
+#### Parameters
+
+##### root
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### schema
+
+[`SModelRootImpl`](../Class.SModelRootImpl) | `SModelRoot`
+
+#### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+***
+
+### isReserved()
+
+> `protected` **isReserved**(`element`, `propertyName`): `boolean`
+
+Defined in: [packages/sprotty/src/base/model/smodel-factory.ts:144](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel-factory.ts#L144)
+
+#### Parameters
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### propertyName
+
+`string`
+
+#### Returns
+
+`boolean`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SModelRegistry.md b/hugo/content/docs/ref/sprotty-core/Class.SModelRegistry.md
new file mode 100644
index 0000000..14c4717
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SModelRegistry.md
@@ -0,0 +1,98 @@
+
+### hasKey()
+
+> **hasKey**(`key`): `boolean`
+
+Defined in: [packages/sprotty/src/utils/registry.ts:84](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/registry.ts#L84)
+
+#### Parameters
+
+##### key
+
+`string`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`FactoryRegistry`](../Class.FactoryRegistry).[`hasKey`](../Class.FactoryRegistry.md#haskey)
+
+***
+
+### missing()
+
+> `protected` **missing**(`key`, `arg`): [`SModelElementImpl`](../Class.SModelElementImpl)
+
+Defined in: [packages/sprotty/src/utils/registry.ts:97](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/registry.ts#L97)
+
+#### Parameters
+
+##### key
+
+`string`
+
+##### arg
+
+`void`
+
+#### Returns
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+#### Inherited from
+
+[`FactoryRegistry`](../Class.FactoryRegistry).[`missing`](../Class.FactoryRegistry.md#missing)
+
+***
+
+### override()
+
+> **override**(`key`, `factory`): `void`
+
+Defined in: [packages/sprotty/src/utils/registry.ts:68](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/registry.ts#L68)
+
+#### Parameters
+
+##### key
+
+`string`
+
+##### factory
+
+(`u`) => [`SModelElementImpl`](../Class.SModelElementImpl)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`FactoryRegistry`](../Class.FactoryRegistry).[`override`](../Class.FactoryRegistry.md#override)
+
+***
+
+### register()
+
+> **register**(`key`, `factory`): `void`
+
+Defined in: [packages/sprotty/src/utils/registry.ts:58](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/registry.ts#L58)
+
+#### Parameters
+
+##### key
+
+`string`
+
+##### factory
+
+(`u`) => [`SModelElementImpl`](../Class.SModelElementImpl)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`FactoryRegistry`](../Class.FactoryRegistry).[`register`](../Class.FactoryRegistry.md#register)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SModelRootImpl.md b/hugo/content/docs/ref/sprotty-core/Class.SModelRootImpl.md
new file mode 100644
index 0000000..ded3118
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SModelRootImpl.md
@@ -0,0 +1,255 @@
+
+### features?
+
+> `optional` **features**: [`FeatureSet`](../Interface.FeatureSet)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L28)
+
+#### Inherited from
+
+[`SParentElementImpl`](../Class.SParentElementImpl).[`features`](../Class.SParentElementImpl.md#features)
+
+***
+
+### id
+
+> **id**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L27)
+
+#### Inherited from
+
+[`SParentElementImpl`](../Class.SParentElementImpl).[`id`](../Class.SParentElementImpl.md#id)
+
+***
+
+### revision?
+
+> `optional` **revision**: `number`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:167](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L167)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L26)
+
+#### Inherited from
+
+[`SParentElementImpl`](../Class.SParentElementImpl).[`type`](../Class.SParentElementImpl.md#type)
+
+## Accessors
+
+### index
+
+#### Get Signature
+
+> **get** **index**(): [`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L44)
+
+##### Returns
+
+[`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+#### Inherited from
+
+[`SParentElementImpl`](../Class.SParentElementImpl).[`index`](../Class.SParentElementImpl.md#index)
+
+***
+
+### root
+
+#### Get Signature
+
+> **get** **root**(): `SModelRootImpl`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L31)
+
+##### Returns
+
+`SModelRootImpl`
+
+#### Inherited from
+
+[`SParentElementImpl`](../Class.SParentElementImpl).[`root`](../Class.SParentElementImpl.md#root)
+
+## Methods
+
+### add()
+
+> **add**(`child`, `index?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L74)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### index?
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SParentElementImpl`](../Class.SParentElementImpl).[`add`](../Class.SParentElementImpl.md#add)
+
+***
+
+### hasFeature()
+
+> **hasFeature**(`feature`): `boolean`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L52)
+
+A feature is a symbol identifying some functionality that can be enabled or disabled for
+a model element. The set of supported features is determined by the `features` property.
+
+#### Parameters
+
+##### feature
+
+`symbol`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`SParentElementImpl`](../Class.SParentElementImpl).[`hasFeature`](../Class.SParentElementImpl.md#hasfeature)
+
+***
+
+### localToParent()
+
+> **localToParent**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:136](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L136)
+
+Transform the given bounds from the local coordinate system of this element to the coordinate
+system of its parent. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SParentElementImpl`](../Class.SParentElementImpl).[`localToParent`](../Class.SParentElementImpl.md#localtoparent)
+
+***
+
+### move()
+
+> **move**(`child`, `newIndex`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:115](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L115)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### newIndex
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SParentElementImpl`](../Class.SParentElementImpl).[`move`](../Class.SParentElementImpl.md#move)
+
+***
+
+### parentToLocal()
+
+> **parentToLocal**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:147](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L147)
+
+Transform the given bounds from the coordinate system of this element's parent to its local
+coordinate system. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SParentElementImpl`](../Class.SParentElementImpl).[`parentToLocal`](../Class.SParentElementImpl.md#parenttolocal)
+
+***
+
+### remove()
+
+> **remove**(`child`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:88](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L88)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SParentElementImpl`](../Class.SParentElementImpl).[`remove`](../Class.SParentElementImpl.md#remove)
+
+***
+
+### removeAll()
+
+> **removeAll**(`filter?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:98](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L98)
+
+#### Parameters
+
+##### filter?
+
+(`e`) => `boolean`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SParentElementImpl`](../Class.SParentElementImpl).[`removeAll`](../Class.SParentElementImpl.md#removeall)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SNodeImpl.md b/hugo/content/docs/ref/sprotty-core/Class.SNodeImpl.md
new file mode 100644
index 0000000..bae1020
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SNodeImpl.md
@@ -0,0 +1,467 @@
+
+### hoverFeedback
+
+> **hoverFeedback**: `boolean` = `false`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:58](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L58)
+
+#### Implementation of
+
+`Hoverable.hoverFeedback`
+
+***
+
+### id
+
+> **id**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L27)
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`id`](../Class.SConnectableElementImpl.md#id)
+
+***
+
+### layout?
+
+> `optional` **layout**: `string`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:56](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L56)
+
+***
+
+### layoutOptions?
+
+> `optional` **layoutOptions**: [`ModelLayoutOptions`](../TypeAlias.ModelLayoutOptions)
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:181](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L181)
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`layoutOptions`](../Class.SConnectableElementImpl.md#layoutoptions)
+
+***
+
+### opacity
+
+> **opacity**: `number` = `1`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:59](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L59)
+
+#### Implementation of
+
+`Fadeable.opacity`
+
+***
+
+### parent
+
+> `readonly` **parent**: [`SParentElementImpl`](../Class.SParentElementImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:159](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L159)
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`parent`](../Class.SConnectableElementImpl.md#parent)
+
+***
+
+### position
+
+> **position**: `Point` = `Point.ORIGIN`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:179](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L179)
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`position`](../Class.SConnectableElementImpl.md#position)
+
+***
+
+### selected
+
+> **selected**: `boolean` = `false`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:57](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L57)
+
+#### Implementation of
+
+`Selectable.selected`
+
+***
+
+### size
+
+> **size**: `Dimension` = `Dimension.EMPTY`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:180](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L180)
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`size`](../Class.SConnectableElementImpl.md#size)
+
+***
+
+### strokeWidth
+
+> **strokeWidth**: `number` = `0`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:114](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L114)
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`strokeWidth`](../Class.SConnectableElementImpl.md#strokewidth)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L26)
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`type`](../Class.SConnectableElementImpl.md#type)
+
+***
+
+### DEFAULT\_FEATURES
+
+> `readonly` `static` **DEFAULT\_FEATURES**: `symbol`[]
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L52)
+
+## Accessors
+
+### anchorKind
+
+#### Get Signature
+
+> **get** **anchorKind**(): `undefined` \| `string`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:110](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L110)
+
+##### Returns
+
+`undefined` \| `string`
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`anchorKind`](../Class.SConnectableElementImpl.md#anchorkind)
+
+***
+
+### bounds
+
+#### Get Signature
+
+> **get** **bounds**(): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:183](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L183)
+
+##### Returns
+
+`Bounds`
+
+#### Set Signature
+
+> **set** **bounds**(`newBounds`): `void`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:192](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L192)
+
+##### Parameters
+
+###### newBounds
+
+`Bounds`
+
+##### Returns
+
+`void`
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`bounds`](../Class.SConnectableElementImpl.md#bounds)
+
+***
+
+### incomingEdges
+
+#### Get Signature
+
+> **get** **incomingEdges**(): `FluentIterable`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:65](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L65)
+
+The incoming edges of this connectable element. They are resolved by the index, which must
+be an `SGraphIndex` for efficient lookup.
+
+##### Returns
+
+`FluentIterable`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+#### Overrides
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`incomingEdges`](../Class.SConnectableElementImpl.md#incomingedges)
+
+***
+
+### index
+
+#### Get Signature
+
+> **get** **index**(): [`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L44)
+
+##### Returns
+
+[`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`index`](../Class.SConnectableElementImpl.md#index)
+
+***
+
+### outgoingEdges
+
+#### Get Signature
+
+> **get** **outgoingEdges**(): `FluentIterable`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L74)
+
+The outgoing edges of this connectable element. They are resolved by the index, which must
+be an `SGraphIndex` for efficient lookup.
+
+##### Returns
+
+`FluentIterable`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+#### Overrides
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`outgoingEdges`](../Class.SConnectableElementImpl.md#outgoingedges)
+
+***
+
+### root
+
+#### Get Signature
+
+> **get** **root**(): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L31)
+
+##### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`root`](../Class.SConnectableElementImpl.md#root)
+
+## Methods
+
+### add()
+
+> **add**(`child`, `index?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L74)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### index?
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`add`](../Class.SConnectableElementImpl.md#add)
+
+***
+
+### canConnect()
+
+> **canConnect**(`routable`, `role`): `boolean`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:61](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L61)
+
+#### Parameters
+
+##### routable
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### role
+
+`string`
+
+#### Returns
+
+`boolean`
+
+#### Overrides
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`canConnect`](../Class.SConnectableElementImpl.md#canconnect)
+
+***
+
+### hasFeature()
+
+> **hasFeature**(`feature`): `boolean`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L52)
+
+A feature is a symbol identifying some functionality that can be enabled or disabled for
+a model element. The set of supported features is determined by the `features` property.
+
+#### Parameters
+
+##### feature
+
+`symbol`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`hasFeature`](../Class.SConnectableElementImpl.md#hasfeature)
+
+***
+
+### localToParent()
+
+> **localToParent**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:203](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L203)
+
+Transform the given bounds from the local coordinate system of this element to the coordinate
+system of its parent. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`localToParent`](../Class.SConnectableElementImpl.md#localtoparent)
+
+***
+
+### move()
+
+> **move**(`child`, `newIndex`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:115](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L115)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### newIndex
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`move`](../Class.SConnectableElementImpl.md#move)
+
+***
+
+### parentToLocal()
+
+> **parentToLocal**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:217](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L217)
+
+Transform the given bounds from the coordinate system of this element's parent to its local
+coordinate system. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`parentToLocal`](../Class.SConnectableElementImpl.md#parenttolocal)
+
+***
+
+### remove()
+
+> **remove**(`child`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:88](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L88)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`remove`](../Class.SConnectableElementImpl.md#remove)
+
+***
+
+### removeAll()
+
+> **removeAll**(`filter?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:98](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L98)
+
+#### Parameters
+
+##### filter?
+
+(`e`) => `boolean`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`removeAll`](../Class.SConnectableElementImpl.md#removeall)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SParentElementImpl.md b/hugo/content/docs/ref/sprotty-core/Class.SParentElementImpl.md
new file mode 100644
index 0000000..9e80685
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SParentElementImpl.md
@@ -0,0 +1,211 @@
+
+### id
+
+> **id**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L27)
+
+#### Inherited from
+
+[`SModelElementImpl`](../Class.SModelElementImpl).[`id`](../Class.SModelElementImpl.md#id)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L26)
+
+#### Inherited from
+
+[`SModelElementImpl`](../Class.SModelElementImpl).[`type`](../Class.SModelElementImpl.md#type)
+
+## Accessors
+
+### index
+
+#### Get Signature
+
+> **get** **index**(): [`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L44)
+
+##### Returns
+
+[`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+#### Inherited from
+
+[`SModelElementImpl`](../Class.SModelElementImpl).[`index`](../Class.SModelElementImpl.md#index)
+
+***
+
+### root
+
+#### Get Signature
+
+> **get** **root**(): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L31)
+
+##### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Inherited from
+
+[`SModelElementImpl`](../Class.SModelElementImpl).[`root`](../Class.SModelElementImpl.md#root)
+
+## Methods
+
+### add()
+
+> **add**(`child`, `index?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L74)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### index?
+
+`number`
+
+#### Returns
+
+`void`
+
+***
+
+### hasFeature()
+
+> **hasFeature**(`feature`): `boolean`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L52)
+
+A feature is a symbol identifying some functionality that can be enabled or disabled for
+a model element. The set of supported features is determined by the `features` property.
+
+#### Parameters
+
+##### feature
+
+`symbol`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`SModelElementImpl`](../Class.SModelElementImpl).[`hasFeature`](../Class.SModelElementImpl.md#hasfeature)
+
+***
+
+### localToParent()
+
+> **localToParent**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:136](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L136)
+
+Transform the given bounds from the local coordinate system of this element to the coordinate
+system of its parent. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+***
+
+### move()
+
+> **move**(`child`, `newIndex`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:115](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L115)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### newIndex
+
+`number`
+
+#### Returns
+
+`void`
+
+***
+
+### parentToLocal()
+
+> **parentToLocal**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:147](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L147)
+
+Transform the given bounds from the coordinate system of this element's parent to its local
+coordinate system. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+***
+
+### remove()
+
+> **remove**(`child`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:88](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L88)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+#### Returns
+
+`void`
+
+***
+
+### removeAll()
+
+> **removeAll**(`filter?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:98](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L98)
+
+#### Parameters
+
+##### filter?
+
+(`e`) => `boolean`
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SPortImpl.md b/hugo/content/docs/ref/sprotty-core/Class.SPortImpl.md
new file mode 100644
index 0000000..2942af5
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SPortImpl.md
@@ -0,0 +1,459 @@
+
+### hoverFeedback
+
+> **hoverFeedback**: `boolean` = `false`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:93](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L93)
+
+#### Implementation of
+
+`Hoverable.hoverFeedback`
+
+***
+
+### id
+
+> **id**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L27)
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`id`](../Class.SConnectableElementImpl.md#id)
+
+***
+
+### layoutOptions?
+
+> `optional` **layoutOptions**: [`ModelLayoutOptions`](../TypeAlias.ModelLayoutOptions)
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:181](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L181)
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`layoutOptions`](../Class.SConnectableElementImpl.md#layoutoptions)
+
+***
+
+### opacity
+
+> **opacity**: `number` = `1`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:94](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L94)
+
+#### Implementation of
+
+`Fadeable.opacity`
+
+***
+
+### parent
+
+> `readonly` **parent**: [`SParentElementImpl`](../Class.SParentElementImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:159](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L159)
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`parent`](../Class.SConnectableElementImpl.md#parent)
+
+***
+
+### position
+
+> **position**: `Point` = `Point.ORIGIN`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:179](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L179)
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`position`](../Class.SConnectableElementImpl.md#position)
+
+***
+
+### selected
+
+> **selected**: `boolean` = `false`
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:92](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L92)
+
+#### Implementation of
+
+`Selectable.selected`
+
+***
+
+### size
+
+> **size**: `Dimension` = `Dimension.EMPTY`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:180](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L180)
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`size`](../Class.SConnectableElementImpl.md#size)
+
+***
+
+### strokeWidth
+
+> **strokeWidth**: `number` = `0`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:114](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L114)
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`strokeWidth`](../Class.SConnectableElementImpl.md#strokewidth)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L26)
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`type`](../Class.SConnectableElementImpl.md#type)
+
+***
+
+### DEFAULT\_FEATURES
+
+> `readonly` `static` **DEFAULT\_FEATURES**: `symbol`[]
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:89](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L89)
+
+## Accessors
+
+### anchorKind
+
+#### Get Signature
+
+> **get** **anchorKind**(): `undefined` \| `string`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:110](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L110)
+
+##### Returns
+
+`undefined` \| `string`
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`anchorKind`](../Class.SConnectableElementImpl.md#anchorkind)
+
+***
+
+### bounds
+
+#### Get Signature
+
+> **get** **bounds**(): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:183](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L183)
+
+##### Returns
+
+`Bounds`
+
+#### Set Signature
+
+> **set** **bounds**(`newBounds`): `void`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:192](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L192)
+
+##### Parameters
+
+###### newBounds
+
+`Bounds`
+
+##### Returns
+
+`void`
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`bounds`](../Class.SConnectableElementImpl.md#bounds)
+
+***
+
+### incomingEdges
+
+#### Get Signature
+
+> **get** **incomingEdges**(): `FluentIterable`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:96](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L96)
+
+The incoming edges of this connectable element. They are resolved by the index, which must
+be an `SGraphIndex` for efficient lookup.
+
+##### Returns
+
+`FluentIterable`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+#### Overrides
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`incomingEdges`](../Class.SConnectableElementImpl.md#incomingedges)
+
+***
+
+### index
+
+#### Get Signature
+
+> **get** **index**(): [`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L44)
+
+##### Returns
+
+[`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`index`](../Class.SConnectableElementImpl.md#index)
+
+***
+
+### outgoingEdges
+
+#### Get Signature
+
+> **get** **outgoingEdges**(): `FluentIterable`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+Defined in: [packages/sprotty/src/graph/sgraph.ts:104](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/sgraph.ts#L104)
+
+The outgoing edges of this connectable element. They are resolved by the index, which must
+be an `SGraphIndex` for efficient lookup.
+
+##### Returns
+
+`FluentIterable`\<[`SEdgeImpl`](../Class.SEdgeImpl)\>
+
+#### Overrides
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`outgoingEdges`](../Class.SConnectableElementImpl.md#outgoingedges)
+
+***
+
+### root
+
+#### Get Signature
+
+> **get** **root**(): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L31)
+
+##### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`root`](../Class.SConnectableElementImpl.md#root)
+
+## Methods
+
+### add()
+
+> **add**(`child`, `index?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L74)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### index?
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`add`](../Class.SConnectableElementImpl.md#add)
+
+***
+
+### canConnect()
+
+> **canConnect**(`routable`, `role`): `boolean`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:134](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L134)
+
+#### Parameters
+
+##### routable
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### role
+
+`"source"` | `"target"`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`canConnect`](../Class.SConnectableElementImpl.md#canconnect)
+
+***
+
+### hasFeature()
+
+> **hasFeature**(`feature`): `boolean`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L52)
+
+A feature is a symbol identifying some functionality that can be enabled or disabled for
+a model element. The set of supported features is determined by the `features` property.
+
+#### Parameters
+
+##### feature
+
+`symbol`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`hasFeature`](../Class.SConnectableElementImpl.md#hasfeature)
+
+***
+
+### localToParent()
+
+> **localToParent**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:203](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L203)
+
+Transform the given bounds from the local coordinate system of this element to the coordinate
+system of its parent. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`localToParent`](../Class.SConnectableElementImpl.md#localtoparent)
+
+***
+
+### move()
+
+> **move**(`child`, `newIndex`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:115](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L115)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### newIndex
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`move`](../Class.SConnectableElementImpl.md#move)
+
+***
+
+### parentToLocal()
+
+> **parentToLocal**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:217](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L217)
+
+Transform the given bounds from the coordinate system of this element's parent to its local
+coordinate system. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`parentToLocal`](../Class.SConnectableElementImpl.md#parenttolocal)
+
+***
+
+### remove()
+
+> **remove**(`child`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:88](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L88)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`remove`](../Class.SConnectableElementImpl.md#remove)
+
+***
+
+### removeAll()
+
+> **removeAll**(`filter?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:98](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L98)
+
+#### Parameters
+
+##### filter?
+
+(`e`) => `boolean`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl).[`removeAll`](../Class.SConnectableElementImpl.md#removeall)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SRoutableElementImpl.md b/hugo/content/docs/ref/sprotty-core/Class.SRoutableElementImpl.md
new file mode 100644
index 0000000..e6e2711
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SRoutableElementImpl.md
@@ -0,0 +1,337 @@
+
+### id
+
+> **id**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L27)
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`id`](../Class.SChildElementImpl.md#id)
+
+***
+
+### parent
+
+> `readonly` **parent**: [`SParentElementImpl`](../Class.SParentElementImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:159](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L159)
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`parent`](../Class.SChildElementImpl.md#parent)
+
+***
+
+### routerKind?
+
+> `optional` **routerKind**: `string`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L29)
+
+***
+
+### routingPoints
+
+> **routingPoints**: `Point`[] = `[]`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:30](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L30)
+
+***
+
+### sourceAnchorCorrection?
+
+> `optional` **sourceAnchorCorrection**: `number`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:33](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L33)
+
+***
+
+### sourceId
+
+> **sourceId**: `string`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L31)
+
+***
+
+### targetAnchorCorrection?
+
+> `optional` **targetAnchorCorrection**: `number`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:34](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L34)
+
+***
+
+### targetId
+
+> **targetId**: `string`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:32](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L32)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L26)
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`type`](../Class.SChildElementImpl.md#type)
+
+## Accessors
+
+### bounds
+
+#### Get Signature
+
+> **get** **bounds**(): `Bounds`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L44)
+
+##### Returns
+
+`Bounds`
+
+***
+
+### index
+
+#### Get Signature
+
+> **get** **index**(): [`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L44)
+
+##### Returns
+
+[`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`index`](../Class.SChildElementImpl.md#index)
+
+***
+
+### root
+
+#### Get Signature
+
+> **get** **root**(): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L31)
+
+##### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`root`](../Class.SChildElementImpl.md#root)
+
+***
+
+### source
+
+#### Get Signature
+
+> **get** **source**(): `undefined` \| [`SConnectableElementImpl`](../Class.SConnectableElementImpl)
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:36](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L36)
+
+##### Returns
+
+`undefined` \| [`SConnectableElementImpl`](../Class.SConnectableElementImpl)
+
+***
+
+### target
+
+#### Get Signature
+
+> **get** **target**(): `undefined` \| [`SConnectableElementImpl`](../Class.SConnectableElementImpl)
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:40](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L40)
+
+##### Returns
+
+`undefined` \| [`SConnectableElementImpl`](../Class.SConnectableElementImpl)
+
+## Methods
+
+### add()
+
+> **add**(`child`, `index?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L74)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### index?
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`add`](../Class.SChildElementImpl.md#add)
+
+***
+
+### hasFeature()
+
+> **hasFeature**(`feature`): `boolean`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L52)
+
+A feature is a symbol identifying some functionality that can be enabled or disabled for
+a model element. The set of supported features is determined by the `features` property.
+
+#### Parameters
+
+##### feature
+
+`symbol`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`hasFeature`](../Class.SChildElementImpl.md#hasfeature)
+
+***
+
+### localToParent()
+
+> **localToParent**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:136](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L136)
+
+Transform the given bounds from the local coordinate system of this element to the coordinate
+system of its parent. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`localToParent`](../Class.SChildElementImpl.md#localtoparent)
+
+***
+
+### move()
+
+> **move**(`child`, `newIndex`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:115](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L115)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### newIndex
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`move`](../Class.SChildElementImpl.md#move)
+
+***
+
+### parentToLocal()
+
+> **parentToLocal**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:147](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L147)
+
+Transform the given bounds from the coordinate system of this element's parent to its local
+coordinate system. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`parentToLocal`](../Class.SChildElementImpl.md#parenttolocal)
+
+***
+
+### remove()
+
+> **remove**(`child`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:88](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L88)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`remove`](../Class.SChildElementImpl.md#remove)
+
+***
+
+### removeAll()
+
+> **removeAll**(`filter?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:98](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L98)
+
+#### Parameters
+
+##### filter?
+
+(`e`) => `boolean`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`removeAll`](../Class.SChildElementImpl.md#removeall)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SRoutingHandleImpl.md b/hugo/content/docs/ref/sprotty-core/Class.SRoutingHandleImpl.md
new file mode 100644
index 0000000..7d0658b
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SRoutingHandleImpl.md
@@ -0,0 +1,323 @@
+
+### editMode
+
+> **editMode**: `boolean` = `false`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:155](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L155)
+
+Whether the routing point is being dragged.
+
+***
+
+### features?
+
+> `optional` **features**: [`FeatureSet`](../Interface.FeatureSet)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L28)
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`features`](../Class.SChildElementImpl.md#features)
+
+***
+
+### hoverFeedback
+
+> **hoverFeedback**: `boolean` = `false`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:157](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L157)
+
+#### Implementation of
+
+`Hoverable.hoverFeedback`
+
+***
+
+### id
+
+> **id**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L27)
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`id`](../Class.SChildElementImpl.md#id)
+
+***
+
+### kind
+
+> **kind**: [`RoutingHandleKind`](../TypeAlias.RoutingHandleKind)
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:151](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L151)
+
+'junction' is a point where two line segments meet,
+'line' is a volatile handle placed on a line segment,
+'source' and 'target' are the respective anchors.
+
+***
+
+### parent
+
+> `readonly` **parent**: [`SParentElementImpl`](../Class.SParentElementImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:159](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L159)
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`parent`](../Class.SChildElementImpl.md#parent)
+
+***
+
+### pointIndex
+
+> **pointIndex**: `number`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:153](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L153)
+
+The actual routing point index (junction) or the previous point index (line).
+
+***
+
+### selected
+
+> **selected**: `boolean` = `false`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:158](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L158)
+
+#### Implementation of
+
+`Selectable.selected`
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L26)
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`type`](../Class.SChildElementImpl.md#type)
+
+***
+
+### DEFAULT\_FEATURES
+
+> `readonly` `static` **DEFAULT\_FEATURES**: `symbol`[]
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:144](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L144)
+
+## Accessors
+
+### index
+
+#### Get Signature
+
+> **get** **index**(): [`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L44)
+
+##### Returns
+
+[`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`index`](../Class.SChildElementImpl.md#index)
+
+***
+
+### root
+
+#### Get Signature
+
+> **get** **root**(): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L31)
+
+##### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`root`](../Class.SChildElementImpl.md#root)
+
+## Methods
+
+### add()
+
+> **add**(`child`, `index?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L74)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### index?
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`add`](../Class.SChildElementImpl.md#add)
+
+***
+
+### hasFeature()
+
+> **hasFeature**(`feature`): `boolean`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:165](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L165)
+
+SRoutingHandles are created using the constructor, so we hard-wire the
+default features
+
+#### Parameters
+
+##### feature
+
+`symbol`
+
+#### Returns
+
+`boolean`
+
+#### Overrides
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`hasFeature`](../Class.SChildElementImpl.md#hasfeature)
+
+***
+
+### localToParent()
+
+> **localToParent**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:136](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L136)
+
+Transform the given bounds from the local coordinate system of this element to the coordinate
+system of its parent. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`localToParent`](../Class.SChildElementImpl.md#localtoparent)
+
+***
+
+### move()
+
+> **move**(`child`, `newIndex`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:115](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L115)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### newIndex
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`move`](../Class.SChildElementImpl.md#move)
+
+***
+
+### parentToLocal()
+
+> **parentToLocal**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:147](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L147)
+
+Transform the given bounds from the coordinate system of this element's parent to its local
+coordinate system. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`parentToLocal`](../Class.SChildElementImpl.md#parenttolocal)
+
+***
+
+### remove()
+
+> **remove**(`child`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:88](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L88)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`remove`](../Class.SChildElementImpl.md#remove)
+
+***
+
+### removeAll()
+
+> **removeAll**(`filter?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:98](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L98)
+
+#### Parameters
+
+##### filter?
+
+(`e`) => `boolean`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`removeAll`](../Class.SChildElementImpl.md#removeall)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SRoutingHandleView.md b/hugo/content/docs/ref/sprotty-core/Class.SRoutingHandleView.md
new file mode 100644
index 0000000..ed75984
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SRoutingHandleView.md
@@ -0,0 +1,30 @@
+
+### render()
+
+> **render**(`handle`, `context`, `args?`): `VNode`
+
+Defined in: [packages/sprotty/src/graph/views.tsx:394](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/graph/views.tsx#L394)
+
+#### Parameters
+
+##### handle
+
+`Readonly`\<[`SRoutingHandleImpl`](../Class.SRoutingHandleImpl)\>
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+##### args?
+
+###### route?
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+#### Returns
+
+`VNode`
+
+#### Implementation of
+
+[`IView`](../Interface.IView).[`render`](../Interface.IView.md#render)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SShapeElementImpl.md b/hugo/content/docs/ref/sprotty-core/Class.SShapeElementImpl.md
new file mode 100644
index 0000000..befe7a6
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SShapeElementImpl.md
@@ -0,0 +1,313 @@
+
+### id
+
+> **id**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L27)
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`id`](../Class.SChildElementImpl.md#id)
+
+***
+
+### layoutOptions?
+
+> `optional` **layoutOptions**: [`ModelLayoutOptions`](../TypeAlias.ModelLayoutOptions)
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:181](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L181)
+
+#### Implementation of
+
+[`InternalLayoutableChild`](../Interface.InternalLayoutableChild).[`layoutOptions`](../Interface.InternalLayoutableChild.md#layoutoptions)
+
+***
+
+### parent
+
+> `readonly` **parent**: [`SParentElementImpl`](../Class.SParentElementImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:159](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L159)
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`parent`](../Class.SChildElementImpl.md#parent)
+
+***
+
+### position
+
+> **position**: `Point` = `Point.ORIGIN`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:179](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L179)
+
+#### Implementation of
+
+`Locateable.position`
+
+***
+
+### size
+
+> **size**: `Dimension` = `Dimension.EMPTY`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:180](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L180)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L26)
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`type`](../Class.SChildElementImpl.md#type)
+
+## Accessors
+
+### bounds
+
+#### Get Signature
+
+> **get** **bounds**(): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:183](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L183)
+
+##### Returns
+
+`Bounds`
+
+#### Set Signature
+
+> **set** **bounds**(`newBounds`): `void`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:192](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L192)
+
+##### Parameters
+
+###### newBounds
+
+`Bounds`
+
+##### Returns
+
+`void`
+
+#### Implementation of
+
+[`InternalLayoutableChild`](../Interface.InternalLayoutableChild).[`bounds`](../Interface.InternalLayoutableChild.md#bounds)
+
+***
+
+### index
+
+#### Get Signature
+
+> **get** **index**(): [`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L44)
+
+##### Returns
+
+[`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`index`](../Class.SChildElementImpl.md#index)
+
+***
+
+### root
+
+#### Get Signature
+
+> **get** **root**(): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L31)
+
+##### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`root`](../Class.SChildElementImpl.md#root)
+
+## Methods
+
+### add()
+
+> **add**(`child`, `index?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L74)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### index?
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`add`](../Class.SChildElementImpl.md#add)
+
+***
+
+### hasFeature()
+
+> **hasFeature**(`feature`): `boolean`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L52)
+
+A feature is a symbol identifying some functionality that can be enabled or disabled for
+a model element. The set of supported features is determined by the `features` property.
+
+#### Parameters
+
+##### feature
+
+`symbol`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`hasFeature`](../Class.SChildElementImpl.md#hasfeature)
+
+***
+
+### localToParent()
+
+> **localToParent**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:203](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L203)
+
+Transform the given bounds from the local coordinate system of this element to the coordinate
+system of its parent. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Overrides
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`localToParent`](../Class.SChildElementImpl.md#localtoparent)
+
+***
+
+### move()
+
+> **move**(`child`, `newIndex`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:115](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L115)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### newIndex
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`move`](../Class.SChildElementImpl.md#move)
+
+***
+
+### parentToLocal()
+
+> **parentToLocal**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:217](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L217)
+
+Transform the given bounds from the coordinate system of this element's parent to its local
+coordinate system. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Overrides
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`parentToLocal`](../Class.SChildElementImpl.md#parenttolocal)
+
+***
+
+### remove()
+
+> **remove**(`child`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:88](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L88)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`remove`](../Class.SChildElementImpl.md#remove)
+
+***
+
+### removeAll()
+
+> **removeAll**(`filter?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:98](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L98)
+
+#### Parameters
+
+##### filter?
+
+(`e`) => `boolean`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SChildElementImpl`](../Class.SChildElementImpl).[`removeAll`](../Class.SChildElementImpl.md#removeall)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ScrollMouseListener.md b/hugo/content/docs/ref/sprotty-core/Class.ScrollMouseListener.md
new file mode 100644
index 0000000..cef3fde
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ScrollMouseListener.md
@@ -0,0 +1,666 @@
+
+### scrollbar
+
+> `protected` **scrollbar**: `undefined` \| `HTMLElement`
+
+Defined in: [packages/sprotty/src/features/viewport/scroll.ts:41](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/scroll.ts#L41)
+
+***
+
+### scrollbarMouseDownDelay
+
+> `protected` **scrollbarMouseDownDelay**: `number` = `200`
+
+Defined in: [packages/sprotty/src/features/viewport/scroll.ts:43](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/scroll.ts#L43)
+
+***
+
+### scrollbarMouseDownTimeout
+
+> `protected` **scrollbarMouseDownTimeout**: `undefined` \| `number`
+
+Defined in: [packages/sprotty/src/features/viewport/scroll.ts:42](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/scroll.ts#L42)
+
+***
+
+### viewerOptions
+
+> `protected` **viewerOptions**: [`ViewerOptions`](../Interface.ViewerOptions)
+
+Defined in: [packages/sprotty/src/features/viewport/scroll.ts:36](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/scroll.ts#L36)
+
+## Methods
+
+### calculateDistance()
+
+> `protected` **calculateDistance**(`touches`): `number`
+
+Defined in: [packages/sprotty/src/features/viewport/scroll.ts:305](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/scroll.ts#L305)
+
+#### Parameters
+
+##### touches
+
+`TouchList`
+
+#### Returns
+
+`number`
+
+***
+
+### calculateMidpoint()
+
+> `protected` **calculateMidpoint**(`touches`, `canvasBounds`): `Point`
+
+Defined in: [packages/sprotty/src/features/viewport/scroll.ts:311](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/scroll.ts#L311)
+
+#### Parameters
+
+##### touches
+
+`TouchList`
+
+##### canvasBounds
+
+`Bounds`
+
+#### Returns
+
+`Point`
+
+***
+
+### contextMenu()
+
+> **contextMenu**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:206](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L206)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`contextMenu`](../Class.MouseListener.md#contextmenu)
+
+***
+
+### decorate()
+
+> **decorate**(`vnode`, `element`): `VNode`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:218](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L218)
+
+#### Parameters
+
+##### vnode
+
+`VNode`
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+#### Returns
+
+`VNode`
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`decorate`](../Class.MouseListener.md#decorate)
+
+***
+
+### doubleClick()
+
+> **doubleClick**(`target`, `event`): `Action`[]
+
+Defined in: [packages/sprotty/src/features/viewport/scroll.ts:79](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/scroll.ts#L79)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`Action`[]
+
+#### Overrides
+
+[`MouseListener`](../Class.MouseListener).[`doubleClick`](../Class.MouseListener.md#doubleclick)
+
+***
+
+### dragCanvas()
+
+> `protected` **dragCanvas**(`model`, `event`, `lastScrollPosition`): `Action`[]
+
+Defined in: [packages/sprotty/src/features/viewport/scroll.ts:201](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/scroll.ts#L201)
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl) & `Viewport`
+
+##### event
+
+`MouseEvent` | `Touch`
+
+##### lastScrollPosition
+
+`Point`
+
+#### Returns
+
+`Action`[]
+
+***
+
+### dragOver()
+
+> **dragOver**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:210](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L210)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`dragOver`](../Class.MouseListener.md#dragover)
+
+***
+
+### drop()
+
+> **drop**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:214](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L214)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`drop`](../Class.MouseListener.md#drop)
+
+***
+
+### findClickTarget()
+
+> `protected` **findClickTarget**(`scrollbar`, `event`): `undefined` \| `HTMLElement`
+
+Defined in: [packages/sprotty/src/features/viewport/scroll.ts:295](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/scroll.ts#L295)
+
+#### Parameters
+
+##### scrollbar
+
+`HTMLElement`
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`undefined` \| `HTMLElement`
+
+***
+
+### getScrollbar()
+
+> `protected` **getScrollbar**(`event`): `undefined` \| `HTMLElement`
+
+Defined in: [packages/sprotty/src/features/viewport/scroll.ts:283](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/scroll.ts#L283)
+
+#### Parameters
+
+##### event
+
+`MouseEvent` | `Touch`
+
+#### Returns
+
+`undefined` \| `HTMLElement`
+
+***
+
+### getScrollbarOrientation()
+
+> `protected` **getScrollbarOrientation**(`scrollbar`): `"horizontal"` \| `"vertical"`
+
+Defined in: [packages/sprotty/src/features/viewport/scroll.ts:287](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/scroll.ts#L287)
+
+#### Parameters
+
+##### scrollbar
+
+`HTMLElement`
+
+#### Returns
+
+`"horizontal"` \| `"vertical"`
+
+***
+
+### mouseDown()
+
+> **mouseDown**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/features/viewport/scroll.ts:45](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/scroll.ts#L45)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Overrides
+
+[`MouseListener`](../Class.MouseListener).[`mouseDown`](../Class.MouseListener.md#mousedown)
+
+***
+
+### mouseDownOrSingleTouchStart()
+
+> `protected` **mouseDownOrSingleTouchStart**(`event`, `viewport`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/features/viewport/scroll.ts:128](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/scroll.ts#L128)
+
+#### Parameters
+
+##### event
+
+`MouseEvent` | `Touch`
+
+##### viewport
+
+[`SModelRootImpl`](../Class.SModelRootImpl) & `Viewport`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+***
+
+### mouseEnter()
+
+> **mouseEnter**(`target`, `event`): `Action`[]
+
+Defined in: [packages/sprotty/src/features/viewport/scroll.ts:66](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/scroll.ts#L66)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`Action`[]
+
+#### Overrides
+
+[`MouseListener`](../Class.MouseListener).[`mouseEnter`](../Class.MouseListener.md#mouseenter)
+
+***
+
+### mouseLeave()
+
+> **mouseLeave**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:182](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L182)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseLeave`](../Class.MouseListener.md#mouseleave)
+
+***
+
+### mouseMove()
+
+> **mouseMove**(`target`, `event`): `Action`[]
+
+Defined in: [packages/sprotty/src/features/viewport/scroll.ts:59](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/scroll.ts#L59)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`Action`[]
+
+#### Overrides
+
+[`MouseListener`](../Class.MouseListener).[`mouseMove`](../Class.MouseListener.md#mousemove)
+
+***
+
+### mouseOrSingleTouchMove()
+
+> `protected` **mouseOrSingleTouchMove**(`target`, `event`): `Action`[]
+
+Defined in: [packages/sprotty/src/features/viewport/scroll.ts:141](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/scroll.ts#L141)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent` | `Touch`
+
+#### Returns
+
+`Action`[]
+
+***
+
+### mouseOut()
+
+> **mouseOut**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:174](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L174)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseOut`](../Class.MouseListener.md#mouseout)
+
+***
+
+### mouseOver()
+
+> **mouseOver**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:170](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L170)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseOver`](../Class.MouseListener.md#mouseover)
+
+***
+
+### mouseUp()
+
+> **mouseUp**(`target`, `event`): `Action`[]
+
+Defined in: [packages/sprotty/src/features/viewport/scroll.ts:73](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/scroll.ts#L73)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`Action`[]
+
+#### Overrides
+
+[`MouseListener`](../Class.MouseListener).[`mouseUp`](../Class.MouseListener.md#mouseup)
+
+***
+
+### moveScrollBar()
+
+> `protected` **moveScrollBar**(`model`, `event`, `scrollbar`, `animate`): `Action`[]
+
+Defined in: [packages/sprotty/src/features/viewport/scroll.ts:226](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/scroll.ts#L226)
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl) & `Viewport`
+
+##### event
+
+`MouseEvent` | `Touch`
+
+##### scrollbar
+
+`HTMLElement`
+
+##### animate
+
+`boolean` = `false`
+
+#### Returns
+
+`Action`[]
+
+***
+
+### touchEnd()
+
+> **touchEnd**(`target`, `event`): `Action`[]
+
+Defined in: [packages/sprotty/src/features/viewport/scroll.ts:185](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/scroll.ts#L185)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`TouchEvent`
+
+#### Returns
+
+`Action`[]
+
+#### Implementation of
+
+[`ITouchListener`](../Interface.ITouchListener).[`touchEnd`](../Interface.ITouchListener.md#touchend)
+
+***
+
+### touchMove()
+
+> **touchMove**(`target`, `event`): `Action`[]
+
+Defined in: [packages/sprotty/src/features/viewport/scroll.ts:117](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/scroll.ts#L117)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`TouchEvent`
+
+#### Returns
+
+`Action`[]
+
+#### Implementation of
+
+[`ITouchListener`](../Interface.ITouchListener).[`touchMove`](../Interface.ITouchListener.md#touchmove)
+
+***
+
+### touchStart()
+
+> **touchStart**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/features/viewport/scroll.ts:100](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/scroll.ts#L100)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`TouchEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Implementation of
+
+[`ITouchListener`](../Interface.ITouchListener).[`touchStart`](../Interface.ITouchListener.md#touchstart)
+
+***
+
+### twoTouchMove()
+
+> `protected` **twoTouchMove**(`target`, `touches`): `Action`[]
+
+Defined in: [packages/sprotty/src/features/viewport/scroll.ts:158](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/scroll.ts#L158)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### touches
+
+`TouchList`
+
+#### Returns
+
+`Action`[]
+
+***
+
+### wheel()
+
+> **wheel**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:198](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L198)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`WheelEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`wheel`](../Class.MouseListener.md#wheel)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.Segment.md b/hugo/content/docs/ref/sprotty-core/Class.Segment.md
new file mode 100644
index 0000000..3996104
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.Segment.md
@@ -0,0 +1,6 @@
+
+### rightSweepEvent
+
+> `readonly` **rightSweepEvent**: [`SweepEvent`](../Class.SweepEvent)
+
+Defined in: [packages/sprotty/src/features/edge-intersection/sweepline.ts:102](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-intersection/sweepline.ts#L102)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SelectAllCommand.md b/hugo/content/docs/ref/sprotty-core/Class.SelectAllCommand.md
new file mode 100644
index 0000000..8bf21b3
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SelectAllCommand.md
@@ -0,0 +1,64 @@
+
+### redo()
+
+> **redo**(`context`): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/features/select/select.ts:126](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/select/select.ts#L126)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Overrides
+
+[`Command`](../Class.Command).[`redo`](../Class.Command.md#redo)
+
+***
+
+### selectAll()
+
+> `protected` **selectAll**(`element`, `newState`): `void`
+
+Defined in: [packages/sprotty/src/features/select/select.ts:106](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/select/select.ts#L106)
+
+#### Parameters
+
+##### element
+
+[`SParentElementImpl`](../Class.SParentElementImpl)
+
+##### newState
+
+`boolean`
+
+#### Returns
+
+`void`
+
+***
+
+### undo()
+
+> **undo**(`context`): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/features/select/select.ts:116](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/select/select.ts#L116)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Overrides
+
+[`Command`](../Class.Command).[`undo`](../Class.Command.md#undo)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SelectCommand.md b/hugo/content/docs/ref/sprotty-core/Class.SelectCommand.md
new file mode 100644
index 0000000..b3ad1ec
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SelectCommand.md
@@ -0,0 +1,72 @@
+
+### KIND
+
+> `readonly` `static` **KIND**: `"elementSelected"` = `SelectAction.KIND`
+
+Defined in: [packages/sprotty/src/features/select/select.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/select/select.ts#L44)
+
+## Methods
+
+### execute()
+
+> **execute**(`context`): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/features/select/select.ts:53](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/select/select.ts#L53)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Overrides
+
+[`Command`](../Class.Command).[`execute`](../Class.Command.md#execute)
+
+***
+
+### redo()
+
+> **redo**(`context`): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/features/select/select.ts:80](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/select/select.ts#L80)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Overrides
+
+[`Command`](../Class.Command).[`redo`](../Class.Command.md#redo)
+
+***
+
+### undo()
+
+> **undo**(`context`): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/features/select/select.ts:70](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/select/select.ts#L70)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Overrides
+
+[`Command`](../Class.Command).[`undo`](../Class.Command.md#undo)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SelectKeyboardListener.md b/hugo/content/docs/ref/sprotty-core/Class.SelectKeyboardListener.md
new file mode 100644
index 0000000..47261b4
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SelectKeyboardListener.md
@@ -0,0 +1,24 @@
+
+### keyUp()
+
+> **keyUp**(`element`, `event`): `Action`[]
+
+Defined in: [packages/sprotty/src/base/views/key-tool.ts:82](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/key-tool.ts#L82)
+
+#### Parameters
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`KeyboardEvent`
+
+#### Returns
+
+`Action`[]
+
+#### Inherited from
+
+[`KeyListener`](../Class.KeyListener).[`keyUp`](../Class.KeyListener.md#keyup)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SelectMouseListener.md b/hugo/content/docs/ref/sprotty-core/Class.SelectMouseListener.md
new file mode 100644
index 0000000..5671db2
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SelectMouseListener.md
@@ -0,0 +1,458 @@
+
+### wasSelected
+
+> **wasSelected**: `boolean` = `false`
+
+Defined in: [packages/sprotty/src/features/select/select.ts:136](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/select/select.ts#L136)
+
+## Methods
+
+### collectElementsToDeselect()
+
+> `protected` **collectElementsToDeselect**(`target`, `selectableTarget`): [`SModelElementImpl`](../Class.SModelElementImpl)[]
+
+Defined in: [packages/sprotty/src/features/select/select.ts:172](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/select/select.ts#L172)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### selectableTarget
+
+`undefined` | [`SModelElementImpl`](../Class.SModelElementImpl) & `Selectable`
+
+#### Returns
+
+[`SModelElementImpl`](../Class.SModelElementImpl)[]
+
+***
+
+### contextMenu()
+
+> **contextMenu**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:206](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L206)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`contextMenu`](../Class.MouseListener.md#contextmenu)
+
+***
+
+### decorate()
+
+> **decorate**(`vnode`, `element`): `VNode`
+
+Defined in: [packages/sprotty/src/features/select/select.ts:244](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/select/select.ts#L244)
+
+#### Parameters
+
+##### vnode
+
+`VNode`
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+#### Returns
+
+`VNode`
+
+#### Overrides
+
+[`MouseListener`](../Class.MouseListener).[`decorate`](../Class.MouseListener.md#decorate)
+
+***
+
+### doubleClick()
+
+> **doubleClick**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:202](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L202)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`doubleClick`](../Class.MouseListener.md#doubleclick)
+
+***
+
+### dragOver()
+
+> **dragOver**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:210](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L210)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`dragOver`](../Class.MouseListener.md#dragover)
+
+***
+
+### drop()
+
+> **drop**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:214](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L214)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`drop`](../Class.MouseListener.md#drop)
+
+***
+
+### handleButton()
+
+> `protected` **handleButton**(`target`, `event`): `undefined` \| (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/features/select/select.ts:178](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/select/select.ts#L178)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`undefined` \| (`Action` \| `Promise`\<`Action`\>)[]
+
+***
+
+### handleDeselectAll()
+
+> `protected` **handleDeselectAll**(`deselectedElements`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/features/select/select.ts:210](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/select/select.ts#L210)
+
+#### Parameters
+
+##### deselectedElements
+
+[`SModelElementImpl`](../Class.SModelElementImpl)[]
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+***
+
+### handleDeselectTarget()
+
+> `protected` **handleDeselectTarget**(`selectableTarget`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/features/select/select.ts:201](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/select/select.ts#L201)
+
+#### Parameters
+
+##### selectableTarget
+
+[`SModelElementImpl`](../Class.SModelElementImpl) & `Selectable`
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+***
+
+### handleSelectTarget()
+
+> `protected` **handleSelectTarget**(`selectableTarget`, `deselectedElements`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/features/select/select.ts:188](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/select/select.ts#L188)
+
+#### Parameters
+
+##### selectableTarget
+
+[`SModelElementImpl`](../Class.SModelElementImpl) & `Selectable`
+
+##### deselectedElements
+
+[`SModelElementImpl`](../Class.SModelElementImpl)[]
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+***
+
+### mouseDown()
+
+> **mouseDown**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/features/select/select.ts:140](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/select/select.ts#L140)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Overrides
+
+[`MouseListener`](../Class.MouseListener).[`mouseDown`](../Class.MouseListener.md#mousedown)
+
+***
+
+### mouseEnter()
+
+> **mouseEnter**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:178](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L178)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseEnter`](../Class.MouseListener.md#mouseenter)
+
+***
+
+### mouseLeave()
+
+> **mouseLeave**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:182](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L182)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseLeave`](../Class.MouseListener.md#mouseleave)
+
+***
+
+### mouseMove()
+
+> **mouseMove**(`target`, `event`): `Action`[]
+
+Defined in: [packages/sprotty/src/features/select/select.ts:220](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/select/select.ts#L220)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+`Action`[]
+
+#### Overrides
+
+[`MouseListener`](../Class.MouseListener).[`mouseMove`](../Class.MouseListener.md#mousemove)
+
+***
+
+### mouseOut()
+
+> **mouseOut**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:174](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L174)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseOut`](../Class.MouseListener.md#mouseout)
+
+***
+
+### mouseOver()
+
+> **mouseOver**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:170](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L170)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseOver`](../Class.MouseListener.md#mouseover)
+
+***
+
+### mouseUp()
+
+> **mouseUp**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/features/select/select.ts:225](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/select/select.ts#L225)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Overrides
+
+[`MouseListener`](../Class.MouseListener).[`mouseUp`](../Class.MouseListener.md#mouseup)
+
+***
+
+### wheel()
+
+> **wheel**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:198](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L198)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`WheelEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`wheel`](../Class.MouseListener.md#wheel)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ServerStatusAction.md b/hugo/content/docs/ref/sprotty-core/Class.ServerStatusAction.md
new file mode 100644
index 0000000..f8f0377
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ServerStatusAction.md
@@ -0,0 +1,6 @@
+
+### KIND
+
+> `static` **KIND**: `string` = `'serverStatus'`
+
+Defined in: [packages/sprotty/src/model-source/diagram-server.ts:38](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/diagram-server.ts#L38)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SetBoundsCommand.md b/hugo/content/docs/ref/sprotty-core/Class.SetBoundsCommand.md
new file mode 100644
index 0000000..11974ca
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SetBoundsCommand.md
@@ -0,0 +1,42 @@
+
+### redo()
+
+> **redo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/bounds/bounds-manipulation.ts:73](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/bounds-manipulation.ts#L73)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`SystemCommand`](../Class.SystemCommand).[`redo`](../Class.SystemCommand.md#redo)
+
+***
+
+### undo()
+
+> **undo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/bounds/bounds-manipulation.ts:66](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/bounds-manipulation.ts#L66)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`SystemCommand`](../Class.SystemCommand).[`undo`](../Class.SystemCommand.md#undo)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SetModelCommand.md b/hugo/content/docs/ref/sprotty-core/Class.SetModelCommand.md
new file mode 100644
index 0000000..8ac3cd2
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SetModelCommand.md
@@ -0,0 +1,96 @@
+
+### KIND
+
+> `readonly` `static` **KIND**: `"setModel"` = `SetModelAction.KIND`
+
+Defined in: [packages/sprotty/src/base/features/set-model.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/features/set-model.ts#L26)
+
+## Accessors
+
+### blockUntil
+
+#### Get Signature
+
+> **get** **blockUntil**(): (`action`) => `boolean`
+
+Defined in: [packages/sprotty/src/base/features/set-model.ts:49](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/features/set-model.ts#L49)
+
+##### Returns
+
+> (`action`): `boolean`
+
+###### Parameters
+
+###### action
+
+`Action`
+
+###### Returns
+
+`boolean`
+
+## Methods
+
+### execute()
+
+> **execute**(`context`): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/features/set-model.ts:35](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/features/set-model.ts#L35)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Overrides
+
+[`ResetCommand`](../Class.ResetCommand).[`execute`](../Class.ResetCommand.md#execute)
+
+***
+
+### redo()
+
+> **redo**(`context`): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/features/set-model.ts:45](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/features/set-model.ts#L45)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Overrides
+
+[`ResetCommand`](../Class.ResetCommand).[`redo`](../Class.ResetCommand.md#redo)
+
+***
+
+### undo()
+
+> **undo**(`context`): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/features/set-model.ts:41](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/features/set-model.ts#L41)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Overrides
+
+[`ResetCommand`](../Class.ResetCommand).[`undo`](../Class.ResetCommand.md#undo)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SetPopupModelCommand.md b/hugo/content/docs/ref/sprotty-core/Class.SetPopupModelCommand.md
new file mode 100644
index 0000000..df87f71
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SetPopupModelCommand.md
@@ -0,0 +1,72 @@
+
+### KIND
+
+> `readonly` `static` **KIND**: `"setPopupModel"` = `SetPopupModelAction.KIND`
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:66](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L66)
+
+## Methods
+
+### execute()
+
+> **execute**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:75](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L75)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`PopupCommand`](../Class.PopupCommand).[`execute`](../Class.PopupCommand.md#execute)
+
+***
+
+### redo()
+
+> **redo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:86](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L86)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`PopupCommand`](../Class.PopupCommand).[`redo`](../Class.PopupCommand.md#redo)
+
+***
+
+### undo()
+
+> **undo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:82](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L82)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`PopupCommand`](../Class.PopupCommand).[`undo`](../Class.PopupCommand.md#undo)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SetUIExtensionVisibilityCommand.md b/hugo/content/docs/ref/sprotty-core/Class.SetUIExtensionVisibilityCommand.md
new file mode 100644
index 0000000..b6a80b3
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SetUIExtensionVisibilityCommand.md
@@ -0,0 +1,42 @@
+
+### redo()
+
+> **redo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/base/ui-extensions/ui-extension-registry.ts:77](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/ui-extensions/ui-extension-registry.ts#L77)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`SystemCommand`](../Class.SystemCommand).[`redo`](../Class.SystemCommand.md#redo)
+
+***
+
+### undo()
+
+> **undo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/base/ui-extensions/ui-extension-registry.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/ui-extensions/ui-extension-registry.ts#L74)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`SystemCommand`](../Class.SystemCommand).[`undo`](../Class.SystemCommand.md#undo)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SetViewportCommand.md b/hugo/content/docs/ref/sprotty-core/Class.SetViewportCommand.md
new file mode 100644
index 0000000..875385d
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SetViewportCommand.md
@@ -0,0 +1,146 @@
+
+### oldViewport
+
+> `protected` **oldViewport**: `Viewport`
+
+Defined in: [packages/sprotty/src/features/viewport/viewport.ts:35](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/viewport.ts#L35)
+
+***
+
+### viewerOptions
+
+> `protected` **viewerOptions**: [`ViewerOptions`](../Interface.ViewerOptions)
+
+Defined in: [packages/sprotty/src/features/viewport/viewport.ts:33](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/viewport.ts#L33)
+
+***
+
+### KIND
+
+> `readonly` `static` **KIND**: `"viewport"` = `SetViewportAction.KIND`
+
+Defined in: [packages/sprotty/src/features/viewport/viewport.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/viewport.ts#L31)
+
+## Methods
+
+### execute()
+
+> **execute**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/viewport/viewport.ts:43](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/viewport.ts#L43)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`MergeableCommand`](../Class.MergeableCommand).[`execute`](../Class.MergeableCommand.md#execute)
+
+***
+
+### merge()
+
+> **merge**(`command`, `context`): `boolean`
+
+Defined in: [packages/sprotty/src/features/viewport/viewport.ts:79](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/viewport.ts#L79)
+
+Tries to merge the given command with this.
+
+#### Parameters
+
+##### command
+
+[`ICommand`](../Interface.ICommand)
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+`boolean`
+
+#### Overrides
+
+[`MergeableCommand`](../Class.MergeableCommand).[`merge`](../Class.MergeableCommand.md#merge)
+
+***
+
+### redo()
+
+> **redo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/viewport/viewport.ts:75](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/viewport.ts#L75)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`MergeableCommand`](../Class.MergeableCommand).[`redo`](../Class.MergeableCommand.md#redo)
+
+***
+
+### setViewport()
+
+> `protected` **setViewport**(`element`, `oldViewport`, `newViewport`, `context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/viewport/viewport.ts:59](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/viewport.ts#L59)
+
+#### Parameters
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### oldViewport
+
+`Viewport`
+
+##### newViewport
+
+`Viewport`
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+***
+
+### undo()
+
+> **undo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/viewport/viewport.ts:71](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/viewport.ts#L71)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`MergeableCommand`](../Class.MergeableCommand).[`undo`](../Class.MergeableCommand.md#undo)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ShapeView.md b/hugo/content/docs/ref/sprotty-core/Class.ShapeView.md
new file mode 100644
index 0000000..1a8944e
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ShapeView.md
@@ -0,0 +1,28 @@
+
+### render()
+
+> `abstract` **render**(`model`, `context`, `args?`): `undefined` \| `VNode`
+
+Defined in: [packages/sprotty/src/features/bounds/views.ts:49](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/views.ts#L49)
+
+#### Parameters
+
+##### model
+
+`Readonly`\<[`SChildElementImpl`](../Class.SChildElementImpl)\>
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+##### args?
+
+[`IViewArgs`](../Interface.IViewArgs)
+
+#### Returns
+
+`undefined` \| `VNode`
+
+#### Implementation of
+
+[`IView`](../Interface.IView).[`render`](../Interface.IView.md#render)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ShapedPreRenderedElementImpl.md b/hugo/content/docs/ref/sprotty-core/Class.ShapedPreRenderedElementImpl.md
new file mode 100644
index 0000000..ea8a06c
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ShapedPreRenderedElementImpl.md
@@ -0,0 +1,345 @@
+
+### cssClasses?
+
+> `optional` **cssClasses**: `string`[]
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L29)
+
+#### Inherited from
+
+[`PreRenderedElementImpl`](../Class.PreRenderedElementImpl).[`cssClasses`](../Class.PreRenderedElementImpl.md#cssclasses)
+
+***
+
+### features?
+
+> `optional` **features**: [`FeatureSet`](../Interface.FeatureSet)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L28)
+
+#### Inherited from
+
+[`PreRenderedElementImpl`](../Class.PreRenderedElementImpl).[`features`](../Class.PreRenderedElementImpl.md#features)
+
+***
+
+### id
+
+> **id**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L27)
+
+#### Inherited from
+
+[`PreRenderedElementImpl`](../Class.PreRenderedElementImpl).[`id`](../Class.PreRenderedElementImpl.md#id)
+
+***
+
+### parent
+
+> `readonly` **parent**: [`SParentElementImpl`](../Class.SParentElementImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:159](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L159)
+
+#### Inherited from
+
+[`PreRenderedElementImpl`](../Class.PreRenderedElementImpl).[`parent`](../Class.PreRenderedElementImpl.md#parent)
+
+***
+
+### position
+
+> **position**: `Point` = `Point.ORIGIN`
+
+Defined in: [packages/sprotty/src/lib/model.ts:126](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/model.ts#L126)
+
+#### Implementation of
+
+`Locateable.position`
+
+***
+
+### selected
+
+> **selected**: `boolean` = `false`
+
+Defined in: [packages/sprotty/src/lib/model.ts:128](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/model.ts#L128)
+
+#### Implementation of
+
+`Selectable.selected`
+
+***
+
+### size
+
+> **size**: `Dimension` = `Dimension.EMPTY`
+
+Defined in: [packages/sprotty/src/lib/model.ts:127](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/model.ts#L127)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L26)
+
+#### Inherited from
+
+[`PreRenderedElementImpl`](../Class.PreRenderedElementImpl).[`type`](../Class.PreRenderedElementImpl.md#type)
+
+***
+
+### DEFAULT\_FEATURES
+
+> `readonly` `static` **DEFAULT\_FEATURES**: `symbol`[]
+
+Defined in: [packages/sprotty/src/lib/model.ts:124](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/model.ts#L124)
+
+## Accessors
+
+### bounds
+
+#### Get Signature
+
+> **get** **bounds**(): `Bounds`
+
+Defined in: [packages/sprotty/src/lib/model.ts:131](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/model.ts#L131)
+
+##### Returns
+
+`Bounds`
+
+#### Set Signature
+
+> **set** **bounds**(`newBounds`): `void`
+
+Defined in: [packages/sprotty/src/lib/model.ts:140](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/model.ts#L140)
+
+##### Parameters
+
+###### newBounds
+
+`Bounds`
+
+##### Returns
+
+`void`
+
+#### Implementation of
+
+[`InternalBoundsAware`](../Interface.InternalBoundsAware).[`bounds`](../Interface.InternalBoundsAware.md#bounds)
+
+***
+
+### index
+
+#### Get Signature
+
+> **get** **index**(): [`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L44)
+
+##### Returns
+
+[`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+#### Inherited from
+
+[`PreRenderedElementImpl`](../Class.PreRenderedElementImpl).[`index`](../Class.PreRenderedElementImpl.md#index)
+
+***
+
+### root
+
+#### Get Signature
+
+> **get** **root**(): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L31)
+
+##### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Inherited from
+
+[`PreRenderedElementImpl`](../Class.PreRenderedElementImpl).[`root`](../Class.PreRenderedElementImpl.md#root)
+
+## Methods
+
+### add()
+
+> **add**(`child`, `index?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L74)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### index?
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`PreRenderedElementImpl`](../Class.PreRenderedElementImpl).[`add`](../Class.PreRenderedElementImpl.md#add)
+
+***
+
+### hasFeature()
+
+> **hasFeature**(`feature`): `boolean`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L52)
+
+A feature is a symbol identifying some functionality that can be enabled or disabled for
+a model element. The set of supported features is determined by the `features` property.
+
+#### Parameters
+
+##### feature
+
+`symbol`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`PreRenderedElementImpl`](../Class.PreRenderedElementImpl).[`hasFeature`](../Class.PreRenderedElementImpl.md#hasfeature)
+
+***
+
+### localToParent()
+
+> **localToParent**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:136](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L136)
+
+Transform the given bounds from the local coordinate system of this element to the coordinate
+system of its parent. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`PreRenderedElementImpl`](../Class.PreRenderedElementImpl).[`localToParent`](../Class.PreRenderedElementImpl.md#localtoparent)
+
+***
+
+### move()
+
+> **move**(`child`, `newIndex`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:115](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L115)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### newIndex
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`PreRenderedElementImpl`](../Class.PreRenderedElementImpl).[`move`](../Class.PreRenderedElementImpl.md#move)
+
+***
+
+### parentToLocal()
+
+> **parentToLocal**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:147](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L147)
+
+Transform the given bounds from the coordinate system of this element's parent to its local
+coordinate system. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+[`PreRenderedElementImpl`](../Class.PreRenderedElementImpl).[`parentToLocal`](../Class.PreRenderedElementImpl.md#parenttolocal)
+
+***
+
+### remove()
+
+> **remove**(`child`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:88](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L88)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`PreRenderedElementImpl`](../Class.PreRenderedElementImpl).[`remove`](../Class.PreRenderedElementImpl.md#remove)
+
+***
+
+### removeAll()
+
+> **removeAll**(`filter?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:98](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L98)
+
+#### Parameters
+
+##### filter?
+
+(`e`) => `boolean`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`PreRenderedElementImpl`](../Class.PreRenderedElementImpl).[`removeAll`](../Class.PreRenderedElementImpl.md#removeall)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.StackLayouter.md b/hugo/content/docs/ref/sprotty-core/Class.StackLayouter.md
new file mode 100644
index 0000000..8506c74
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.StackLayouter.md
@@ -0,0 +1,288 @@
+
+### getDx()
+
+> `protected` **getDx**(`hAlign`, `bounds`, `maxWidth`): `number`
+
+Defined in: [packages/sprotty/src/features/bounds/abstract-layout.ts:118](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/abstract-layout.ts#L118)
+
+#### Parameters
+
+##### hAlign
+
+`HAlignment`
+
+##### bounds
+
+`Bounds`
+
+##### maxWidth
+
+`number`
+
+#### Returns
+
+`number`
+
+#### Inherited from
+
+`AbstractLayout.getDx`
+
+***
+
+### getDy()
+
+> `protected` **getDy**(`vAlign`, `bounds`, `maxHeight`): `number`
+
+Defined in: [packages/sprotty/src/features/bounds/abstract-layout.ts:129](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/abstract-layout.ts#L129)
+
+#### Parameters
+
+##### vAlign
+
+`VAlignment`
+
+##### bounds
+
+`Bounds`
+
+##### maxHeight
+
+`number`
+
+#### Returns
+
+`number`
+
+#### Inherited from
+
+`AbstractLayout.getDy`
+
+***
+
+### getFinalContainerBounds()
+
+> `protected` **getFinalContainerBounds**(`container`, `lastOffset`, `options`, `maxWidth`, `maxHeight`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/abstract-layout.ts:54](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/abstract-layout.ts#L54)
+
+#### Parameters
+
+##### container
+
+[`SParentElementImpl`](../Class.SParentElementImpl) & [`InternalLayoutContainer`](../Interface.InternalLayoutContainer)
+
+##### lastOffset
+
+`Point`
+
+##### options
+
+[`StackLayoutOptions`](../Interface.StackLayoutOptions)
+
+##### maxWidth
+
+`number`
+
+##### maxHeight
+
+`number`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+`AbstractLayout.getFinalContainerBounds`
+
+***
+
+### getFixedContainerBounds()
+
+> `protected` **getFixedContainerBounds**(`container`, `layoutOptions`, `layouter`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/abstract-layout.ts:67](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/abstract-layout.ts#L67)
+
+#### Parameters
+
+##### container
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### layoutOptions
+
+[`StackLayoutOptions`](../Interface.StackLayoutOptions)
+
+##### layouter
+
+[`StatefulLayouter`](../Class.StatefulLayouter)
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+`AbstractLayout.getFixedContainerBounds`
+
+***
+
+### getLayoutOptions()
+
+> `protected` **getLayoutOptions**(`element`): [`StackLayoutOptions`](../Interface.StackLayoutOptions)
+
+Defined in: [packages/sprotty/src/features/bounds/abstract-layout.ts:148](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/abstract-layout.ts#L148)
+
+#### Parameters
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+#### Returns
+
+[`StackLayoutOptions`](../Interface.StackLayoutOptions)
+
+#### Inherited from
+
+`AbstractLayout.getLayoutOptions`
+
+***
+
+### layout()
+
+> **layout**(`container`, `layouter`): `void`
+
+Defined in: [packages/sprotty/src/features/bounds/abstract-layout.ts:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/abstract-layout.ts#L29)
+
+#### Parameters
+
+##### container
+
+[`SParentElementImpl`](../Class.SParentElementImpl) & [`InternalLayoutContainer`](../Interface.InternalLayoutContainer)
+
+##### layouter
+
+[`StatefulLayouter`](../Class.StatefulLayouter)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+`AbstractLayout.layout`
+
+***
+
+### layoutChild()
+
+> `protected` **layoutChild**(`child`, `boundsData`, `bounds`, `childOptions`, `containerOptions`, `currentOffset`, `maxWidth`, `maxHeight`): `Point`
+
+Defined in: [packages/sprotty/src/features/bounds/stack-layout.ts:60](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/stack-layout.ts#L60)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### boundsData
+
+[`BoundsData`](../Class.BoundsData)
+
+##### bounds
+
+`Bounds`
+
+##### childOptions
+
+[`StackLayoutOptions`](../Interface.StackLayoutOptions)
+
+##### containerOptions
+
+[`StackLayoutOptions`](../Interface.StackLayoutOptions)
+
+##### currentOffset
+
+`Point`
+
+##### maxWidth
+
+`number`
+
+##### maxHeight
+
+`number`
+
+#### Returns
+
+`Point`
+
+#### Overrides
+
+`AbstractLayout.layoutChild`
+
+***
+
+### layoutChildren()
+
+> `protected` **layoutChildren**(`container`, `layouter`, `containerOptions`, `maxWidth`, `maxHeight`): `Point`
+
+Defined in: [packages/sprotty/src/features/bounds/abstract-layout.ts:93](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/abstract-layout.ts#L93)
+
+#### Parameters
+
+##### container
+
+[`SParentElementImpl`](../Class.SParentElementImpl) & [`InternalLayoutContainer`](../Interface.InternalLayoutContainer)
+
+##### layouter
+
+[`StatefulLayouter`](../Class.StatefulLayouter)
+
+##### containerOptions
+
+[`StackLayoutOptions`](../Interface.StackLayoutOptions)
+
+##### maxWidth
+
+`number`
+
+##### maxHeight
+
+`number`
+
+#### Returns
+
+`Point`
+
+#### Inherited from
+
+`AbstractLayout.layoutChildren`
+
+***
+
+### spread()
+
+> `protected` **spread**(`a`, `b`): [`StackLayoutOptions`](../Interface.StackLayoutOptions)
+
+Defined in: [packages/sprotty/src/features/bounds/stack-layout.ts:94](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/stack-layout.ts#L94)
+
+#### Parameters
+
+##### a
+
+[`StackLayoutOptions`](../Interface.StackLayoutOptions)
+
+##### b
+
+[`StackLayoutOptions`](../Interface.StackLayoutOptions)
+
+#### Returns
+
+[`StackLayoutOptions`](../Interface.StackLayoutOptions)
+
+#### Overrides
+
+`AbstractLayout.spread`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.StatefulLayouter.md b/hugo/content/docs/ref/sprotty-core/Class.StatefulLayouter.md
new file mode 100644
index 0000000..3994d84
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.StatefulLayouter.md
@@ -0,0 +1,10 @@
+
+### layout()
+
+> **layout**(): `void`
+
+Defined in: [packages/sprotty/src/features/bounds/layout.ts:92](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/layout.ts#L92)
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SvgExporter.md b/hugo/content/docs/ref/sprotty-core/Class.SvgExporter.md
new file mode 100644
index 0000000..10ccb6e
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SvgExporter.md
@@ -0,0 +1,106 @@
+
+### postprocessors
+
+> `protected` **postprocessors**: [`ISvgExportPostProcessor`](../Interface.ISvgExportPostProcessor)[] = `[]`
+
+Defined in: [packages/sprotty/src/features/export/svg-exporter.ts:56](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/export/svg-exporter.ts#L56)
+
+## Methods
+
+### copyStyles()
+
+> `protected` **copyStyles**(`source`, `target`, `skippedProperties`): `void`
+
+Defined in: [packages/sprotty/src/features/export/svg-exporter.ts:111](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/export/svg-exporter.ts#L111)
+
+#### Parameters
+
+##### source
+
+`Element`
+
+##### target
+
+`Element`
+
+##### skippedProperties
+
+`string`[]
+
+#### Returns
+
+`void`
+
+***
+
+### createSvg()
+
+> `protected` **createSvg**(`svgElementOrig`, `root`, `options?`, `cause?`): `string`
+
+Defined in: [packages/sprotty/src/features/export/svg-exporter.ts:77](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/export/svg-exporter.ts#L77)
+
+#### Parameters
+
+##### svgElementOrig
+
+`SVGSVGElement`
+
+##### root
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### options?
+
+`ExportSvgOptions`
+
+##### cause?
+
+`Action`
+
+#### Returns
+
+`string`
+
+***
+
+### export()
+
+> **export**(`root`, `request?`): `void`
+
+Defined in: [packages/sprotty/src/features/export/svg-exporter.ts:58](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/export/svg-exporter.ts#L58)
+
+#### Parameters
+
+##### root
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### request?
+
+`RequestExportSvgAction`
+
+#### Returns
+
+`void`
+
+***
+
+### getBounds()
+
+> `protected` **getBounds**(`root`, `document`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/export/svg-exporter.ts:135](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/export/svg-exporter.ts#L135)
+
+#### Parameters
+
+##### root
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### document
+
+`Document`
+
+#### Returns
+
+`Bounds`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SvgViewportView.md b/hugo/content/docs/ref/sprotty-core/Class.SvgViewportView.md
new file mode 100644
index 0000000..eca06b4
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SvgViewportView.md
@@ -0,0 +1,52 @@
+
+[sprotty](../globals) / SvgViewportView
+
+# Class: SvgViewportView
+
+Defined in: [packages/sprotty/src/lib/svg-views.tsx:33](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/svg-views.tsx#L33)
+
+Base interface for the components that turn GModelElements into virtual DOM elements.
+
+## Implements
+
+- [`IView`](../Interface.IView)
+
+## Constructors
+
+### Constructor
+
+> **new SvgViewportView**(): `SvgViewportView`
+
+#### Returns
+
+`SvgViewportView`
+
+## Methods
+
+### render()
+
+> **render**(`model`, `context`, `args?`): `VNode`
+
+Defined in: [packages/sprotty/src/lib/svg-views.tsx:34](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/svg-views.tsx#L34)
+
+#### Parameters
+
+##### model
+
+`Readonly`\<[`ViewportRootElementImpl`](../Class.ViewportRootElementImpl)\>
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+##### args?
+
+[`IViewArgs`](../Interface.IViewArgs)
+
+#### Returns
+
+`VNode`
+
+#### Implementation of
+
+[`IView`](../Interface.IView).[`render`](../Interface.IView.md#render)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SweepEvent.md b/hugo/content/docs/ref/sprotty-core/Class.SweepEvent.md
new file mode 100644
index 0000000..14dd6c4
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SweepEvent.md
@@ -0,0 +1,14 @@
+
+### point
+
+> `readonly` **point**: `Point`
+
+Defined in: [packages/sprotty/src/features/edge-intersection/sweepline.ts:94](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-intersection/sweepline.ts#L94)
+
+***
+
+### segmentIndex
+
+> `readonly` **segmentIndex**: `number`
+
+Defined in: [packages/sprotty/src/features/edge-intersection/sweepline.ts:94](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-intersection/sweepline.ts#L94)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SwitchEditModeCommand.md b/hugo/content/docs/ref/sprotty-core/Class.SwitchEditModeCommand.md
new file mode 100644
index 0000000..a02a535
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SwitchEditModeCommand.md
@@ -0,0 +1,140 @@
+
+### elementsToDeactivate
+
+> `protected` **elementsToDeactivate**: [`SModelElementImpl`](../Class.SModelElementImpl)[] = `[]`
+
+Defined in: [packages/sprotty/src/features/edit/edit-routing.ts:51](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-routing.ts#L51)
+
+***
+
+### handlesToRemove
+
+> `protected` **handlesToRemove**: `object`[] = `[]`
+
+Defined in: [packages/sprotty/src/features/edit/edit-routing.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-routing.ts#L52)
+
+#### handle
+
+> **handle**: [`SRoutingHandleImpl`](../Class.SRoutingHandleImpl)
+
+#### parent
+
+> **parent**: [`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+#### point?
+
+> `optional` **point**: `Point`
+
+***
+
+### KIND
+
+> `readonly` `static` **KIND**: `string` = `SwitchEditModeAction.KIND`
+
+Defined in: [packages/sprotty/src/features/edit/edit-routing.ts:46](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-routing.ts#L46)
+
+## Methods
+
+### doExecute()
+
+> `protected` **doExecute**(`context`): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/features/edit/edit-routing.ts:81](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-routing.ts#L81)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+***
+
+### execute()
+
+> **execute**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/edit/edit-routing.ts:58](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-routing.ts#L58)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`Command`](../Class.Command).[`execute`](../Class.Command.md#execute)
+
+***
+
+### redo()
+
+> **redo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/edit/edit-routing.ts:141](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-routing.ts#L141)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`Command`](../Class.Command).[`redo`](../Class.Command.md#redo)
+
+***
+
+### shouldRemoveHandle()
+
+> `protected` **shouldRemoveHandle**(`handle`, `parent`): `boolean`
+
+Defined in: [packages/sprotty/src/features/edit/edit-routing.ts:112](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-routing.ts#L112)
+
+#### Parameters
+
+##### handle
+
+[`SRoutingHandleImpl`](../Class.SRoutingHandleImpl)
+
+##### parent
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+#### Returns
+
+`boolean`
+
+***
+
+### undo()
+
+> **undo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/edit/edit-routing.ts:120](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-routing.ts#L120)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`Command`](../Class.Command).[`undo`](../Class.Command.md#undo)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.SystemCommand.md b/hugo/content/docs/ref/sprotty-core/Class.SystemCommand.md
new file mode 100644
index 0000000..dc823ba
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.SystemCommand.md
@@ -0,0 +1,20 @@
+
+### undo()
+
+> `abstract` **undo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/base/commands/command.ts:108](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command.ts#L108)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Inherited from
+
+[`Command`](../Class.Command).[`undo`](../Class.Command.md#undo)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ThunkView.md b/hugo/content/docs/ref/sprotty-core/Class.ThunkView.md
new file mode 100644
index 0000000..b8803e0
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ThunkView.md
@@ -0,0 +1,127 @@
+
+### init()
+
+> `protected` **init**(`thunk`): `void`
+
+Defined in: [packages/sprotty/src/base/views/thunk-view.ts:73](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/thunk-view.ts#L73)
+
+#### Parameters
+
+##### thunk
+
+`VNode`
+
+#### Returns
+
+`void`
+
+***
+
+### prepatch()
+
+> `protected` **prepatch**(`oldVnode`, `thunk`): `void`
+
+Defined in: [packages/sprotty/src/base/views/thunk-view.ts:79](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/thunk-view.ts#L79)
+
+#### Parameters
+
+##### oldVnode
+
+`VNode`
+
+##### thunk
+
+`VNode`
+
+#### Returns
+
+`void`
+
+***
+
+### render()
+
+> **render**(`model`, `context`): `VNode`
+
+Defined in: [packages/sprotty/src/base/views/thunk-view.ts:45](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/thunk-view.ts#L45)
+
+#### Parameters
+
+##### model
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+#### Returns
+
+`VNode`
+
+#### Implementation of
+
+[`IView`](../Interface.IView).[`render`](../Interface.IView.md#render)
+
+***
+
+### renderAndDecorate()
+
+> `protected` **renderAndDecorate**(`model`, `context`): `VNode`
+
+Defined in: [packages/sprotty/src/base/views/thunk-view.ts:57](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/thunk-view.ts#L57)
+
+#### Parameters
+
+##### model
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+#### Returns
+
+`VNode`
+
+***
+
+### selector()
+
+> `abstract` **selector**(`model`): `string`
+
+Defined in: [packages/sprotty/src/base/views/thunk-view.ts:38](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/thunk-view.ts#L38)
+
+Returns the selector of the VNode root, i.e. it's element type.
+
+#### Parameters
+
+##### model
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+#### Returns
+
+`string`
+
+***
+
+### watchedArgs()
+
+> `abstract` **watchedArgs**(`model`): `any`[]
+
+Defined in: [packages/sprotty/src/base/views/thunk-view.ts:33](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/thunk-view.ts#L33)
+
+Returns the array of values that are watched for changes.
+If they haven't change since the last rendering, the VNode is neither recalculated nor patched.
+
+#### Parameters
+
+##### model
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+#### Returns
+
+`any`[]
diff --git a/hugo/content/docs/ref/sprotty-core/Class.TouchListener.md b/hugo/content/docs/ref/sprotty-core/Class.TouchListener.md
new file mode 100644
index 0000000..7bede8d
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.TouchListener.md
@@ -0,0 +1,24 @@
+
+### touchStart()
+
+> **touchStart**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/touch-tool.ts:119](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/touch-tool.ts#L119)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`TouchEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Implementation of
+
+`TouchListener.touchStart`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.TouchTool.md b/hugo/content/docs/ref/sprotty-core/Class.TouchTool.md
new file mode 100644
index 0000000..fbc7671
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.TouchTool.md
@@ -0,0 +1,164 @@
+
+### deregister()
+
+> **deregister**(`touchListener`): `void`
+
+Defined in: [packages/sprotty/src/base/views/touch-tool.ts:38](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/touch-tool.ts#L38)
+
+#### Parameters
+
+##### touchListener
+
+[`ITouchListener`](../Interface.ITouchListener)
+
+#### Returns
+
+`void`
+
+***
+
+### getTargetElement()
+
+> `protected` **getTargetElement**(`model`, `event`): `undefined` \| [`SModelElementImpl`](../Class.SModelElementImpl)
+
+Defined in: [packages/sprotty/src/base/views/touch-tool.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/touch-tool.ts#L44)
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### event
+
+`TouchEvent`
+
+#### Returns
+
+`undefined` \| [`SModelElementImpl`](../Class.SModelElementImpl)
+
+***
+
+### handleEvent()
+
+> `protected` **handleEvent**(`methodName`, `model`, `event`): `void`
+
+Defined in: [packages/sprotty/src/base/views/touch-tool.ts:58](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/touch-tool.ts#L58)
+
+#### Parameters
+
+##### methodName
+
+[`TouchEventKind`](../TypeAlias.TouchEventKind)
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### event
+
+`TouchEvent`
+
+#### Returns
+
+`void`
+
+***
+
+### postUpdate()
+
+> **postUpdate**(): `void`
+
+Defined in: [packages/sprotty/src/base/views/touch-tool.ts:100](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/touch-tool.ts#L100)
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`IVNodePostprocessor`](../Interface.IVNodePostprocessor).[`postUpdate`](../Interface.IVNodePostprocessor.md#postupdate)
+
+***
+
+### register()
+
+> **register**(`touchListener`): `void`
+
+Defined in: [packages/sprotty/src/base/views/touch-tool.ts:34](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/touch-tool.ts#L34)
+
+#### Parameters
+
+##### touchListener
+
+[`ITouchListener`](../Interface.ITouchListener)
+
+#### Returns
+
+`void`
+
+***
+
+### touchEnd()
+
+> **touchEnd**(`model`, `event`): `void`
+
+Defined in: [packages/sprotty/src/base/views/touch-tool.ts:87](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/touch-tool.ts#L87)
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### event
+
+`TouchEvent`
+
+#### Returns
+
+`void`
+
+***
+
+### touchMove()
+
+> **touchMove**(`model`, `event`): `void`
+
+Defined in: [packages/sprotty/src/base/views/touch-tool.ts:83](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/touch-tool.ts#L83)
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### event
+
+`TouchEvent`
+
+#### Returns
+
+`void`
+
+***
+
+### touchStart()
+
+> **touchStart**(`model`, `event`): `void`
+
+Defined in: [packages/sprotty/src/base/views/touch-tool.ts:79](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/touch-tool.ts#L79)
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### event
+
+`TouchEvent`
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.UIExtensionRegistry.md b/hugo/content/docs/ref/sprotty-core/Class.UIExtensionRegistry.md
new file mode 100644
index 0000000..2323cb1
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.UIExtensionRegistry.md
@@ -0,0 +1,72 @@
+
+### missing()
+
+> `protected` **missing**(`key`): [`IUIExtension`](../Interface.IUIExtension)
+
+Defined in: [packages/sprotty/src/utils/registry.ts:145](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/registry.ts#L145)
+
+#### Parameters
+
+##### key
+
+`string`
+
+#### Returns
+
+[`IUIExtension`](../Interface.IUIExtension)
+
+#### Inherited from
+
+[`InstanceRegistry`](../Class.InstanceRegistry).[`missing`](../Class.InstanceRegistry.md#missing)
+
+***
+
+### override()
+
+> **override**(`key`, `instance`): `void`
+
+Defined in: [packages/sprotty/src/utils/registry.ts:116](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/registry.ts#L116)
+
+#### Parameters
+
+##### key
+
+`string`
+
+##### instance
+
+[`IUIExtension`](../Interface.IUIExtension)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`InstanceRegistry`](../Class.InstanceRegistry).[`override`](../Class.InstanceRegistry.md#override)
+
+***
+
+### register()
+
+> **register**(`key`, `instance`): `void`
+
+Defined in: [packages/sprotty/src/utils/registry.ts:106](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/registry.ts#L106)
+
+#### Parameters
+
+##### key
+
+`string`
+
+##### instance
+
+[`IUIExtension`](../Interface.IUIExtension)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`InstanceRegistry`](../Class.InstanceRegistry).[`register`](../Class.InstanceRegistry.md#register)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.UndoRedoKeyListener.md b/hugo/content/docs/ref/sprotty-core/Class.UndoRedoKeyListener.md
new file mode 100644
index 0000000..47261b4
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.UndoRedoKeyListener.md
@@ -0,0 +1,24 @@
+
+### keyUp()
+
+> **keyUp**(`element`, `event`): `Action`[]
+
+Defined in: [packages/sprotty/src/base/views/key-tool.ts:82](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/key-tool.ts#L82)
+
+#### Parameters
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`KeyboardEvent`
+
+#### Returns
+
+`Action`[]
+
+#### Inherited from
+
+[`KeyListener`](../Class.KeyListener).[`keyUp`](../Class.KeyListener.md#keyup)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.UpdateModelCommand.md b/hugo/content/docs/ref/sprotty-core/Class.UpdateModelCommand.md
new file mode 100644
index 0000000..24f94f8
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.UpdateModelCommand.md
@@ -0,0 +1,254 @@
+
+### oldRoot
+
+> **oldRoot**: [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/features/update/update-model.ts:51](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/update/update-model.ts#L51)
+
+***
+
+### KIND
+
+> `readonly` `static` **KIND**: `"updateModel"` = `UpdateModelAction.KIND`
+
+Defined in: [packages/sprotty/src/features/update/update-model.ts:49](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/update/update-model.ts#L49)
+
+## Methods
+
+### applyMatches()
+
+> `protected` **applyMatches**(`root`, `matches`, `context`): `void`
+
+Defined in: [packages/sprotty/src/features/update/update-model.ts:99](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/update/update-model.ts#L99)
+
+#### Parameters
+
+##### root
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### matches
+
+[`Match`](../Interface.Match)[]
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+`void`
+
+***
+
+### computeAnimation()
+
+> `protected` **computeAnimation**(`newRoot`, `matchResult`, `context`): [`Animation`](../Class.Animation) \| [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/features/update/update-model.ts:143](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/update/update-model.ts#L143)
+
+#### Parameters
+
+##### newRoot
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### matchResult
+
+[`MatchResult`](../Interface.MatchResult)
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`Animation`](../Class.Animation) \| [`SModelRootImpl`](../Class.SModelRootImpl)
+
+***
+
+### convertToMatchResult()
+
+> `protected` **convertToMatchResult**(`matches`, `leftRoot`, `rightRoot`): [`MatchResult`](../Interface.MatchResult)
+
+Defined in: [packages/sprotty/src/features/update/update-model.ts:122](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/update/update-model.ts#L122)
+
+#### Parameters
+
+##### matches
+
+[`Match`](../Interface.Match)[]
+
+##### leftRoot
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### rightRoot
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Returns
+
+[`MatchResult`](../Interface.MatchResult)
+
+***
+
+### createAnimations()
+
+> `protected` **createAnimations**(`data`, `root`, `context`): [`Animation`](../Class.Animation)[]
+
+Defined in: [packages/sprotty/src/features/update/update-model.ts:256](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/update/update-model.ts#L256)
+
+#### Parameters
+
+##### data
+
+[`UpdateAnimationData`](../Interface.UpdateAnimationData)
+
+##### root
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`Animation`](../Class.Animation)[]
+
+***
+
+### execute()
+
+> **execute**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/update/update-model.ts:60](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/update/update-model.ts#L60)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`Command`](../Class.Command).[`execute`](../Class.Command.md#execute)
+
+***
+
+### performUpdate()
+
+> `protected` **performUpdate**(`oldRoot`, `newRoot`, `context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/update/update-model.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/update/update-model.ts#L74)
+
+#### Parameters
+
+##### oldRoot
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### newRoot
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+***
+
+### redo()
+
+> **redo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/update/update-model.ts:285](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/update/update-model.ts#L285)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`Command`](../Class.Command).[`redo`](../Class.Command.md#redo)
+
+***
+
+### takeSnapshot()
+
+> `protected` **takeSnapshot**(`edge`): [`EdgeSnapshot`](../Interface.EdgeSnapshot)
+
+Defined in: [packages/sprotty/src/features/update/update-model.ts:251](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/update/update-model.ts#L251)
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+#### Returns
+
+[`EdgeSnapshot`](../Interface.EdgeSnapshot)
+
+***
+
+### undo()
+
+> **undo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/features/update/update-model.ts:281](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/update/update-model.ts#L281)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Overrides
+
+[`Command`](../Class.Command).[`undo`](../Class.Command.md#undo)
+
+***
+
+### updateElement()
+
+> `protected` **updateElement**(`left`, `right`, `animationData`): `void`
+
+Defined in: [packages/sprotty/src/features/update/update-model.ts:190](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/update/update-model.ts#L190)
+
+#### Parameters
+
+##### left
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### right
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### animationData
+
+[`UpdateAnimationData`](../Interface.UpdateAnimationData)
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.VBoxLayouter.md b/hugo/content/docs/ref/sprotty-core/Class.VBoxLayouter.md
new file mode 100644
index 0000000..d96f921
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.VBoxLayouter.md
@@ -0,0 +1,296 @@
+
+### getDx()
+
+> `protected` **getDx**(`hAlign`, `bounds`, `maxWidth`): `number`
+
+Defined in: [packages/sprotty/src/features/bounds/abstract-layout.ts:118](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/abstract-layout.ts#L118)
+
+#### Parameters
+
+##### hAlign
+
+`HAlignment`
+
+##### bounds
+
+`Bounds`
+
+##### maxWidth
+
+`number`
+
+#### Returns
+
+`number`
+
+#### Inherited from
+
+`AbstractLayout.getDx`
+
+***
+
+### getDy()
+
+> `protected` **getDy**(`vAlign`, `bounds`, `maxHeight`): `number`
+
+Defined in: [packages/sprotty/src/features/bounds/abstract-layout.ts:129](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/abstract-layout.ts#L129)
+
+#### Parameters
+
+##### vAlign
+
+`VAlignment`
+
+##### bounds
+
+`Bounds`
+
+##### maxHeight
+
+`number`
+
+#### Returns
+
+`number`
+
+#### Inherited from
+
+`AbstractLayout.getDy`
+
+***
+
+### getFinalContainerBounds()
+
+> `protected` **getFinalContainerBounds**(`container`, `lastOffset`, `options`, `maxWidth`, `maxHeight`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/abstract-layout.ts:54](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/abstract-layout.ts#L54)
+
+#### Parameters
+
+##### container
+
+[`SParentElementImpl`](../Class.SParentElementImpl) & [`InternalLayoutContainer`](../Interface.InternalLayoutContainer)
+
+##### lastOffset
+
+`Point`
+
+##### options
+
+[`VBoxLayoutOptions`](../Interface.VBoxLayoutOptions)
+
+##### maxWidth
+
+`number`
+
+##### maxHeight
+
+`number`
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+`AbstractLayout.getFinalContainerBounds`
+
+***
+
+### getFixedContainerBounds()
+
+> `protected` **getFixedContainerBounds**(`container`, `layoutOptions`, `layouter`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/abstract-layout.ts:67](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/abstract-layout.ts#L67)
+
+#### Parameters
+
+##### container
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### layoutOptions
+
+[`VBoxLayoutOptions`](../Interface.VBoxLayoutOptions)
+
+##### layouter
+
+[`StatefulLayouter`](../Class.StatefulLayouter)
+
+#### Returns
+
+`Bounds`
+
+#### Inherited from
+
+`AbstractLayout.getFixedContainerBounds`
+
+***
+
+### getLayoutOptions()
+
+> `protected` **getLayoutOptions**(`element`): [`VBoxLayoutOptions`](../Interface.VBoxLayoutOptions)
+
+Defined in: [packages/sprotty/src/features/bounds/abstract-layout.ts:148](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/abstract-layout.ts#L148)
+
+#### Parameters
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+#### Returns
+
+[`VBoxLayoutOptions`](../Interface.VBoxLayoutOptions)
+
+#### Inherited from
+
+`AbstractLayout.getLayoutOptions`
+
+***
+
+### layout()
+
+> **layout**(`container`, `layouter`): `void`
+
+Defined in: [packages/sprotty/src/features/bounds/abstract-layout.ts:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/abstract-layout.ts#L29)
+
+#### Parameters
+
+##### container
+
+[`SParentElementImpl`](../Class.SParentElementImpl) & [`InternalLayoutContainer`](../Interface.InternalLayoutContainer)
+
+##### layouter
+
+[`StatefulLayouter`](../Class.StatefulLayouter)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+`AbstractLayout.layout`
+
+***
+
+### layoutChild()
+
+> `protected` **layoutChild**(`child`, `boundsData`, `bounds`, `childOptions`, `containerOptions`, `currentOffset`, `maxWidth`, `maxHeight`): `object`
+
+Defined in: [packages/sprotty/src/features/bounds/vbox-layout.ts:67](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/vbox-layout.ts#L67)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### boundsData
+
+[`BoundsData`](../Class.BoundsData)
+
+##### bounds
+
+`Bounds`
+
+##### childOptions
+
+[`VBoxLayoutOptions`](../Interface.VBoxLayoutOptions)
+
+##### containerOptions
+
+[`VBoxLayoutOptions`](../Interface.VBoxLayoutOptions)
+
+##### currentOffset
+
+`Point`
+
+##### maxWidth
+
+`number`
+
+##### maxHeight
+
+`number`
+
+#### Returns
+
+`object`
+
+##### x
+
+> **x**: `number` = `currentOffset.x`
+
+##### y
+
+> **y**: `number`
+
+#### Overrides
+
+`AbstractLayout.layoutChild`
+
+***
+
+### layoutChildren()
+
+> `protected` **layoutChildren**(`container`, `layouter`, `containerOptions`, `maxWidth`, `maxHeight`): `Point`
+
+Defined in: [packages/sprotty/src/features/bounds/abstract-layout.ts:93](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/abstract-layout.ts#L93)
+
+#### Parameters
+
+##### container
+
+[`SParentElementImpl`](../Class.SParentElementImpl) & [`InternalLayoutContainer`](../Interface.InternalLayoutContainer)
+
+##### layouter
+
+[`StatefulLayouter`](../Class.StatefulLayouter)
+
+##### containerOptions
+
+[`VBoxLayoutOptions`](../Interface.VBoxLayoutOptions)
+
+##### maxWidth
+
+`number`
+
+##### maxHeight
+
+`number`
+
+#### Returns
+
+`Point`
+
+#### Inherited from
+
+`AbstractLayout.layoutChildren`
+
+***
+
+### spread()
+
+> `protected` **spread**(`a`, `b`): [`VBoxLayoutOptions`](../Interface.VBoxLayoutOptions)
+
+Defined in: [packages/sprotty/src/features/bounds/vbox-layout.ts:104](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/vbox-layout.ts#L104)
+
+#### Parameters
+
+##### a
+
+[`VBoxLayoutOptions`](../Interface.VBoxLayoutOptions)
+
+##### b
+
+[`VBoxLayoutOptions`](../Interface.VBoxLayoutOptions)
+
+#### Returns
+
+[`VBoxLayoutOptions`](../Interface.VBoxLayoutOptions)
+
+#### Overrides
+
+`AbstractLayout.spread`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ViewRegistry.md b/hugo/content/docs/ref/sprotty-core/Class.ViewRegistry.md
new file mode 100644
index 0000000..12f078c
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ViewRegistry.md
@@ -0,0 +1,106 @@
+
+### hasKey()
+
+> **hasKey**(`key`): `boolean`
+
+Defined in: [packages/sprotty/src/utils/registry.ts:132](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/registry.ts#L132)
+
+#### Parameters
+
+##### key
+
+`string`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`InstanceRegistry`](../Class.InstanceRegistry).[`hasKey`](../Class.InstanceRegistry.md#haskey)
+
+***
+
+### missing()
+
+> **missing**(`key`): [`IView`](../Interface.IView)
+
+Defined in: [packages/sprotty/src/base/views/view.tsx:119](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/view.tsx#L119)
+
+#### Parameters
+
+##### key
+
+`string`
+
+#### Returns
+
+[`IView`](../Interface.IView)
+
+#### Overrides
+
+[`InstanceRegistry`](../Class.InstanceRegistry).[`missing`](../Class.InstanceRegistry.md#missing)
+
+***
+
+### override()
+
+> **override**(`key`, `instance`): `void`
+
+Defined in: [packages/sprotty/src/utils/registry.ts:116](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/registry.ts#L116)
+
+#### Parameters
+
+##### key
+
+`string`
+
+##### instance
+
+[`IView`](../Interface.IView)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`InstanceRegistry`](../Class.InstanceRegistry).[`override`](../Class.InstanceRegistry.md#override)
+
+***
+
+### register()
+
+> **register**(`key`, `instance`): `void`
+
+Defined in: [packages/sprotty/src/utils/registry.ts:106](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/registry.ts#L106)
+
+#### Parameters
+
+##### key
+
+`string`
+
+##### instance
+
+[`IView`](../Interface.IView)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`InstanceRegistry`](../Class.InstanceRegistry).[`register`](../Class.InstanceRegistry.md#register)
+
+***
+
+### registerDefaults()
+
+> `protected` **registerDefaults**(): `void`
+
+Defined in: [packages/sprotty/src/base/views/view.tsx:115](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/view.tsx#L115)
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ViewerCache.md b/hugo/content/docs/ref/sprotty-core/Class.ViewerCache.md
new file mode 100644
index 0000000..21fc47a
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ViewerCache.md
@@ -0,0 +1,24 @@
+
+### update()
+
+> **update**(`model`, `cause?`): `void`
+
+Defined in: [packages/sprotty/src/base/views/viewer-cache.ts:38](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer-cache.ts#L38)
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### cause?
+
+`Action`
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`IViewer`](../Interface.IViewer).[`update`](../Interface.IViewer.md#update)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ViewportAnimation.md b/hugo/content/docs/ref/sprotty-core/Class.ViewportAnimation.md
new file mode 100644
index 0000000..a9ad5e4
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ViewportAnimation.md
@@ -0,0 +1,100 @@
+
+### newViewport
+
+> `protected` **newViewport**: `Viewport`
+
+Defined in: [packages/sprotty/src/features/viewport/viewport.ts:113](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/viewport.ts#L113)
+
+***
+
+### oldViewport
+
+> `protected` **oldViewport**: `Viewport`
+
+Defined in: [packages/sprotty/src/features/viewport/viewport.ts:112](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/viewport.ts#L112)
+
+***
+
+### stopped
+
+> `protected` **stopped**: `boolean` = `false`
+
+Defined in: [packages/sprotty/src/base/animations/animation.ts:30](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/animations/animation.ts#L30)
+
+#### Inherited from
+
+[`Animation`](../Class.Animation).[`stopped`](../Class.Animation.md#stopped)
+
+***
+
+### zoomFactor
+
+> `protected` **zoomFactor**: `number`
+
+Defined in: [packages/sprotty/src/features/viewport/viewport.ts:109](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/viewport.ts#L109)
+
+## Methods
+
+### start()
+
+> **start**(): `Promise`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+Defined in: [packages/sprotty/src/base/animations/animation.ts:32](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/animations/animation.ts#L32)
+
+#### Returns
+
+`Promise`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+#### Inherited from
+
+[`Animation`](../Class.Animation).[`start`](../Class.Animation.md#start)
+
+***
+
+### stop()
+
+> **stop**(): `void`
+
+Defined in: [packages/sprotty/src/base/animations/animation.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/animations/animation.ts#L74)
+
+Stop the animation at the current state.
+The promise returned by start() will be resolved with the current state after the next tweening step.
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`Animation`](../Class.Animation).[`stop`](../Class.Animation.md#stop)
+
+***
+
+### tween()
+
+> **tween**(`t`, `context`): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/features/viewport/viewport.ts:119](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/viewport.ts#L119)
+
+This method called by the animation at each rendering pass until
+the duration is reached. Implement it to interpolate the state.
+
+#### Parameters
+
+##### t
+
+`number`
+
+varies between 0 (start of animation) and 1 (end of animation)
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Overrides
+
+[`Animation`](../Class.Animation).[`tween`](../Class.Animation.md#tween)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ViewportRootElementImpl.md b/hugo/content/docs/ref/sprotty-core/Class.ViewportRootElementImpl.md
new file mode 100644
index 0000000..33a659b
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ViewportRootElementImpl.md
@@ -0,0 +1,341 @@
+
+### features?
+
+> `optional` **features**: [`FeatureSet`](../Interface.FeatureSet)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L28)
+
+#### Inherited from
+
+[`SModelRootImpl`](../Class.SModelRootImpl).[`features`](../Class.SModelRootImpl.md#features)
+
+***
+
+### id
+
+> **id**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L27)
+
+#### Inherited from
+
+[`SModelRootImpl`](../Class.SModelRootImpl).[`id`](../Class.SModelRootImpl.md#id)
+
+***
+
+### position
+
+> **position**: `Point` = `Point.ORIGIN`
+
+Defined in: [packages/sprotty/src/features/viewport/viewport-root.ts:33](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/viewport-root.ts#L33)
+
+***
+
+### revision?
+
+> `optional` **revision**: `number`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:167](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L167)
+
+#### Inherited from
+
+[`SModelRootImpl`](../Class.SModelRootImpl).[`revision`](../Class.SModelRootImpl.md#revision)
+
+***
+
+### scroll
+
+> **scroll**: `Point`
+
+Defined in: [packages/sprotty/src/features/viewport/viewport-root.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/viewport-root.ts#L31)
+
+#### Implementation of
+
+`Viewport.scroll`
+
+***
+
+### size
+
+> **size**: `Dimension` = `Dimension.EMPTY`
+
+Defined in: [packages/sprotty/src/features/viewport/viewport-root.ts:34](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/viewport-root.ts#L34)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L26)
+
+#### Inherited from
+
+[`SModelRootImpl`](../Class.SModelRootImpl).[`type`](../Class.SModelRootImpl.md#type)
+
+***
+
+### zoom
+
+> **zoom**: `number` = `1`
+
+Defined in: [packages/sprotty/src/features/viewport/viewport-root.ts:32](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/viewport-root.ts#L32)
+
+#### Implementation of
+
+`Viewport.zoom`
+
+***
+
+### DEFAULT\_FEATURES
+
+> `readonly` `static` **DEFAULT\_FEATURES**: `symbol`[]
+
+Defined in: [packages/sprotty/src/features/viewport/viewport-root.ts:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/viewport-root.ts#L29)
+
+## Accessors
+
+### bounds
+
+#### Get Signature
+
+> **get** **bounds**(): `Bounds`
+
+Defined in: [packages/sprotty/src/features/viewport/viewport-root.ts:40](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/viewport-root.ts#L40)
+
+##### Returns
+
+`Bounds`
+
+#### Set Signature
+
+> **set** **bounds**(`newBounds`): `void`
+
+Defined in: [packages/sprotty/src/features/viewport/viewport-root.ts:49](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/viewport-root.ts#L49)
+
+##### Parameters
+
+###### newBounds
+
+`Bounds`
+
+##### Returns
+
+`void`
+
+#### Implementation of
+
+[`InternalBoundsAware`](../Interface.InternalBoundsAware).[`bounds`](../Interface.InternalBoundsAware.md#bounds)
+
+***
+
+### index
+
+#### Get Signature
+
+> **get** **index**(): [`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L44)
+
+##### Returns
+
+[`ModelIndexImpl`](../Class.ModelIndexImpl)
+
+#### Inherited from
+
+[`SModelRootImpl`](../Class.SModelRootImpl).[`index`](../Class.SModelRootImpl.md#index)
+
+***
+
+### root
+
+#### Get Signature
+
+> **get** **root**(): [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L31)
+
+##### Returns
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+#### Inherited from
+
+[`SModelRootImpl`](../Class.SModelRootImpl).[`root`](../Class.SModelRootImpl.md#root)
+
+## Methods
+
+### add()
+
+> **add**(`child`, `index?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L74)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### index?
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SModelRootImpl`](../Class.SModelRootImpl).[`add`](../Class.SModelRootImpl.md#add)
+
+***
+
+### hasFeature()
+
+> **hasFeature**(`feature`): `boolean`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L52)
+
+A feature is a symbol identifying some functionality that can be enabled or disabled for
+a model element. The set of supported features is determined by the `features` property.
+
+#### Parameters
+
+##### feature
+
+`symbol`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`SModelRootImpl`](../Class.SModelRootImpl).[`hasFeature`](../Class.SModelRootImpl.md#hasfeature)
+
+***
+
+### localToParent()
+
+> **localToParent**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/viewport/viewport-root.ts:60](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/viewport-root.ts#L60)
+
+Transform the given bounds from the local coordinate system of this element to the coordinate
+system of its parent. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Overrides
+
+[`SModelRootImpl`](../Class.SModelRootImpl).[`localToParent`](../Class.SModelRootImpl.md#localtoparent)
+
+***
+
+### move()
+
+> **move**(`child`, `newIndex`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:115](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L115)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+##### newIndex
+
+`number`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SModelRootImpl`](../Class.SModelRootImpl).[`move`](../Class.SModelRootImpl.md#move)
+
+***
+
+### parentToLocal()
+
+> **parentToLocal**(`point`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/viewport/viewport-root.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/viewport-root.ts#L74)
+
+Transform the given bounds from the coordinate system of this element's parent to its local
+coordinate system. This function should consider any transformation that is applied to the
+view of this element and its contents.
+The base implementation assumes that this element does not define a local coordinate system,
+so it leaves the bounds unchanged.
+
+#### Parameters
+
+##### point
+
+`Point` | `Bounds`
+
+#### Returns
+
+`Bounds`
+
+#### Overrides
+
+[`SModelRootImpl`](../Class.SModelRootImpl).[`parentToLocal`](../Class.SModelRootImpl.md#parenttolocal)
+
+***
+
+### remove()
+
+> **remove**(`child`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:88](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L88)
+
+#### Parameters
+
+##### child
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SModelRootImpl`](../Class.SModelRootImpl).[`remove`](../Class.SModelRootImpl.md#remove)
+
+***
+
+### removeAll()
+
+> **removeAll**(`filter?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:98](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L98)
+
+#### Parameters
+
+##### filter?
+
+(`e`) => `boolean`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`SModelRootImpl`](../Class.SModelRootImpl).[`removeAll`](../Class.SModelRootImpl.md#removeall)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.WebSocketDiagramServerProxy.md b/hugo/content/docs/ref/sprotty-core/Class.WebSocketDiagramServerProxy.md
new file mode 100644
index 0000000..e6887fb
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.WebSocketDiagramServerProxy.md
@@ -0,0 +1,389 @@
+
+### currentRoot
+
+> `protected` **currentRoot**: `SModelRoot`
+
+Defined in: [packages/sprotty/src/model-source/diagram-server.ts:61](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/diagram-server.ts#L61)
+
+#### Inherited from
+
+[`DiagramServerProxy`](../Class.DiagramServerProxy).[`currentRoot`](../Class.DiagramServerProxy.md#currentroot)
+
+***
+
+### lastSubmittedModelType
+
+> `protected` **lastSubmittedModelType**: `string`
+
+Defined in: [packages/sprotty/src/model-source/diagram-server.ts:66](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/diagram-server.ts#L66)
+
+#### Inherited from
+
+[`DiagramServerProxy`](../Class.DiagramServerProxy).[`lastSubmittedModelType`](../Class.DiagramServerProxy.md#lastsubmittedmodeltype)
+
+***
+
+### logger
+
+> `protected` **logger**: [`ILogger`](../Interface.ILogger)
+
+Defined in: [packages/sprotty/src/model-source/diagram-server.ts:56](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/diagram-server.ts#L56)
+
+#### Inherited from
+
+[`DiagramServerProxy`](../Class.DiagramServerProxy).[`logger`](../Class.DiagramServerProxy.md#logger)
+
+***
+
+### viewerOptions
+
+> `protected` **viewerOptions**: [`ViewerOptions`](../Interface.ViewerOptions)
+
+Defined in: [packages/sprotty/src/model-source/model-source.ts:50](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/model-source.ts#L50)
+
+#### Inherited from
+
+[`DiagramServerProxy`](../Class.DiagramServerProxy).[`viewerOptions`](../Class.DiagramServerProxy.md#vieweroptions)
+
+***
+
+### webSocket?
+
+> `protected` `optional` **webSocket**: `WebSocket`
+
+Defined in: [packages/sprotty/src/model-source/websocket.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/websocket.ts#L27)
+
+## Accessors
+
+### model
+
+#### Get Signature
+
+> **get** **model**(): `SModelRoot`
+
+Defined in: [packages/sprotty/src/model-source/diagram-server.ts:68](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/diagram-server.ts#L68)
+
+##### Returns
+
+`SModelRoot`
+
+#### Inherited from
+
+[`DiagramServerProxy`](../Class.DiagramServerProxy).[`model`](../Class.DiagramServerProxy.md#model)
+
+## Methods
+
+### commitModel()
+
+> **commitModel**(`newRoot`): `SModelRoot` \| `Promise`\<`SModelRoot`\>
+
+Defined in: [packages/sprotty/src/model-source/diagram-server.ts:210](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/diagram-server.ts#L210)
+
+Commit changes from the internal SModel back to the currentModel.
+
+This method is meant to be called only by CommitModelCommand and other commands
+that need to feed the current internal model back to the model source. It does
+not have any side effects such as triggering layout or bounds computation, as the
+internal model is already current. See `CommitModelAction` for details.
+
+#### Parameters
+
+##### newRoot
+
+`SModelRoot`
+
+the new model.
+
+#### Returns
+
+`SModelRoot` \| `Promise`\<`SModelRoot`\>
+
+the previous model.
+
+#### Inherited from
+
+[`DiagramServerProxy`](../Class.DiagramServerProxy).[`commitModel`](../Class.DiagramServerProxy.md#commitmodel)
+
+***
+
+### disconnect()
+
+> **disconnect**(): `void`
+
+Defined in: [packages/sprotty/src/model-source/websocket.ts:39](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/websocket.ts#L39)
+
+#### Returns
+
+`void`
+
+***
+
+### forwardToServer()
+
+> `protected` **forwardToServer**(`action`): `void`
+
+Defined in: [packages/sprotty/src/model-source/diagram-server.ts:96](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/diagram-server.ts#L96)
+
+#### Parameters
+
+##### action
+
+`Action`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`DiagramServerProxy`](../Class.DiagramServerProxy).[`forwardToServer`](../Class.DiagramServerProxy.md#forwardtoserver)
+
+***
+
+### handle()
+
+> **handle**(`action`): `void` \| `Action` \| [`ICommand`](../Interface.ICommand)
+
+Defined in: [packages/sprotty/src/model-source/diagram-server.ts:89](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/diagram-server.ts#L89)
+
+#### Parameters
+
+##### action
+
+`Action`
+
+#### Returns
+
+`void` \| `Action` \| [`ICommand`](../Interface.ICommand)
+
+#### Inherited from
+
+[`DiagramServerProxy`](../Class.DiagramServerProxy).[`handle`](../Class.DiagramServerProxy.md#handle)
+
+***
+
+### handleComputedBounds()
+
+> `protected` **handleComputedBounds**(`action`): `boolean`
+
+Defined in: [packages/sprotty/src/model-source/diagram-server.ts:184](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/diagram-server.ts#L184)
+
+If the server requires to compute a layout, the computed bounds are forwarded. Otherwise they
+are applied to the current model locally and a model update is triggered.
+
+#### Parameters
+
+##### action
+
+`ComputedBoundsAction`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`DiagramServerProxy`](../Class.DiagramServerProxy).[`handleComputedBounds`](../Class.DiagramServerProxy.md#handlecomputedbounds)
+
+***
+
+### handleExportSvgAction()
+
+> `protected` **handleExportSvgAction**(`action`): `boolean`
+
+Defined in: [packages/sprotty/src/model-source/diagram-server.ts:200](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/diagram-server.ts#L200)
+
+#### Parameters
+
+##### action
+
+`ExportSvgAction`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`DiagramServerProxy`](../Class.DiagramServerProxy).[`handleExportSvgAction`](../Class.DiagramServerProxy.md#handleexportsvgaction)
+
+***
+
+### handleLocally()
+
+> `protected` **handleLocally**(`action`): `boolean`
+
+Defined in: [packages/sprotty/src/model-source/diagram-server.ts:132](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/diagram-server.ts#L132)
+
+Check whether the given action should be handled locally. Returns true if the action should
+still be sent to the server, and false if it's only handled locally.
+
+#### Parameters
+
+##### action
+
+`Action`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`DiagramServerProxy`](../Class.DiagramServerProxy).[`handleLocally`](../Class.DiagramServerProxy.md#handlelocally)
+
+***
+
+### handleRequestModel()
+
+> `protected` **handleRequestModel**(`action`): `boolean`
+
+Defined in: [packages/sprotty/src/model-source/diagram-server.ts:166](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/diagram-server.ts#L166)
+
+#### Parameters
+
+##### action
+
+`RequestModelAction`
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`DiagramServerProxy`](../Class.DiagramServerProxy).[`handleRequestModel`](../Class.DiagramServerProxy.md#handlerequestmodel)
+
+***
+
+### handleServerStateAction()
+
+> `protected` **handleServerStateAction**(`action`): `boolean`
+
+Defined in: [packages/sprotty/src/model-source/diagram-server.ts:206](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/diagram-server.ts#L206)
+
+#### Parameters
+
+##### action
+
+[`ServerStatusAction`](../Class.ServerStatusAction)
+
+#### Returns
+
+`boolean`
+
+#### Inherited from
+
+[`DiagramServerProxy`](../Class.DiagramServerProxy).[`handleServerStateAction`](../Class.DiagramServerProxy.md#handleserverstateaction)
+
+***
+
+### initialize()
+
+> **initialize**(`registry`): `void`
+
+Defined in: [packages/sprotty/src/model-source/diagram-server.ts:72](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/diagram-server.ts#L72)
+
+#### Parameters
+
+##### registry
+
+[`ActionHandlerRegistry`](../Class.ActionHandlerRegistry)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`DiagramServerProxy`](../Class.DiagramServerProxy).[`initialize`](../Class.DiagramServerProxy.md#initialize)
+
+***
+
+### listen()
+
+> **listen**(`webSocket`): `void`
+
+Defined in: [packages/sprotty/src/model-source/websocket.ts:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/websocket.ts#L29)
+
+#### Parameters
+
+##### webSocket
+
+`WebSocket`
+
+#### Returns
+
+`void`
+
+***
+
+### messageReceived()
+
+> `protected` **messageReceived**(`data`): `void`
+
+Defined in: [packages/sprotty/src/model-source/diagram-server.ts:113](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/diagram-server.ts#L113)
+
+Called when a message is received from the remote diagram server.
+
+#### Parameters
+
+##### data
+
+`any`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`DiagramServerProxy`](../Class.DiagramServerProxy).[`messageReceived`](../Class.DiagramServerProxy.md#messagereceived)
+
+***
+
+### sendMessage()
+
+> `protected` **sendMessage**(`message`): `void`
+
+Defined in: [packages/sprotty/src/model-source/websocket.ts:46](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/websocket.ts#L46)
+
+Send a message to the remote diagram server.
+
+#### Parameters
+
+##### message
+
+`ActionMessage`
+
+#### Returns
+
+`void`
+
+#### Overrides
+
+[`DiagramServerProxy`](../Class.DiagramServerProxy).[`sendMessage`](../Class.DiagramServerProxy.md#sendmessage)
+
+***
+
+### storeNewModel()
+
+> `protected` **storeNewModel**(`action`): `void`
+
+Defined in: [packages/sprotty/src/model-source/diagram-server.ts:152](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/diagram-server.ts#L152)
+
+Put the new model contained in the given action into the model storage, if there is any.
+
+#### Parameters
+
+##### action
+
+`Action`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`DiagramServerProxy`](../Class.DiagramServerProxy).[`storeNewModel`](../Class.DiagramServerProxy.md#storenewmodel)
diff --git a/hugo/content/docs/ref/sprotty-core/Class.ZoomMouseListener.md b/hugo/content/docs/ref/sprotty-core/Class.ZoomMouseListener.md
new file mode 100644
index 0000000..29a4d8f
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Class.ZoomMouseListener.md
@@ -0,0 +1,364 @@
+
+### dragOver()
+
+> **dragOver**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:210](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L210)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`dragOver`](../Class.MouseListener.md#dragover)
+
+***
+
+### drop()
+
+> **drop**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:214](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L214)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`drop`](../Class.MouseListener.md#drop)
+
+***
+
+### getViewportOffset()
+
+> `protected` **getViewportOffset**(`root`, `event`): `Point`
+
+Defined in: [packages/sprotty/src/features/viewport/zoom.ts:90](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/zoom.ts#L90)
+
+#### Parameters
+
+##### root
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### event
+
+`WheelEvent`
+
+#### Returns
+
+`Point`
+
+***
+
+### getZoomFactor()
+
+> `protected` **getZoomFactor**(`event`): `number`
+
+Defined in: [packages/sprotty/src/features/viewport/zoom.ts:99](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/zoom.ts#L99)
+
+#### Parameters
+
+##### event
+
+`WheelEvent`
+
+#### Returns
+
+`number`
+
+***
+
+### isScrollMode()
+
+> `protected` **isScrollMode**(`event`): `boolean`
+
+Defined in: [packages/sprotty/src/features/viewport/zoom.ts:55](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/zoom.ts#L55)
+
+#### Parameters
+
+##### event
+
+`WheelEvent`
+
+#### Returns
+
+`boolean`
+
+***
+
+### mouseDown()
+
+> **mouseDown**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:186](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L186)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseDown`](../Class.MouseListener.md#mousedown)
+
+***
+
+### mouseEnter()
+
+> **mouseEnter**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:178](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L178)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseEnter`](../Class.MouseListener.md#mouseenter)
+
+***
+
+### mouseLeave()
+
+> **mouseLeave**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:182](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L182)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseLeave`](../Class.MouseListener.md#mouseleave)
+
+***
+
+### mouseMove()
+
+> **mouseMove**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:190](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L190)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseMove`](../Class.MouseListener.md#mousemove)
+
+***
+
+### mouseOut()
+
+> **mouseOut**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:174](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L174)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseOut`](../Class.MouseListener.md#mouseout)
+
+***
+
+### mouseOver()
+
+> **mouseOver**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:170](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L170)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseOver`](../Class.MouseListener.md#mouseover)
+
+***
+
+### mouseUp()
+
+> **mouseUp**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:194](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L194)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`MouseEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+#### Inherited from
+
+[`MouseListener`](../Class.MouseListener).[`mouseUp`](../Class.MouseListener.md#mouseup)
+
+***
+
+### processScroll()
+
+> `protected` **processScroll**(`viewport`, `event`): `Viewport`
+
+Defined in: [packages/sprotty/src/features/viewport/zoom.ts:59](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/zoom.ts#L59)
+
+#### Parameters
+
+##### viewport
+
+`Viewport`
+
+##### event
+
+`WheelEvent`
+
+#### Returns
+
+`Viewport`
+
+***
+
+### processZoom()
+
+> `protected` **processZoom**(`viewport`, `target`, `event`): `undefined` \| `Viewport`
+
+Defined in: [packages/sprotty/src/features/viewport/zoom.ts:69](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/zoom.ts#L69)
+
+#### Parameters
+
+##### viewport
+
+`Viewport`
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`WheelEvent`
+
+#### Returns
+
+`undefined` \| `Viewport`
+
+***
+
+### wheel()
+
+> **wheel**(`target`, `event`): `Action`[]
+
+Defined in: [packages/sprotty/src/features/viewport/zoom.ts:43](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/zoom.ts#L43)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`WheelEvent`
+
+#### Returns
+
+`Action`[]
+
+#### Overrides
+
+[`MouseListener`](../Class.MouseListener).[`wheel`](../Class.MouseListener.md#wheel)
diff --git a/hugo/content/docs/ref/sprotty-core/CommitModelAction.Function.create.md b/hugo/content/docs/ref/sprotty-core/CommitModelAction.Function.create.md
new file mode 100644
index 0000000..f15035f
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/CommitModelAction.Function.create.md
@@ -0,0 +1,12 @@
+
+[sprotty](../globals) / [CommitModelAction](../Namespace.CommitModelAction) / create
+
+# Function: create()
+
+> **create**(): [`CommitModelAction`](../Interface.CommitModelAction)
+
+Defined in: [packages/sprotty/src/model-source/commit-model.ts:39](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/commit-model.ts#L39)
+
+## Returns
+
+[`CommitModelAction`](../Interface.CommitModelAction)
diff --git a/hugo/content/docs/ref/sprotty-core/CommitModelAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-core/CommitModelAction.Variable.KIND.md
new file mode 100644
index 0000000..dbe40a6
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/CommitModelAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / [CommitModelAction](../Namespace.CommitModelAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"commitModel"` = `'commitModel'`
+
+Defined in: [packages/sprotty/src/model-source/commit-model.ts:37](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/commit-model.ts#L37)
diff --git a/hugo/content/docs/ref/sprotty-core/EditLabelAction.Function.create.md b/hugo/content/docs/ref/sprotty-core/EditLabelAction.Function.create.md
new file mode 100644
index 0000000..b7eb43c
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/EditLabelAction.Function.create.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / [EditLabelAction](../Namespace.EditLabelAction) / create
+
+# Function: create()
+
+> **create**(`labelId`): [`EditLabelAction`](../Interface.EditLabelAction)
+
+Defined in: [packages/sprotty/src/features/edit/edit-label.ts:36](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label.ts#L36)
+
+## Parameters
+
+### labelId
+
+`string`
+
+## Returns
+
+[`EditLabelAction`](../Interface.EditLabelAction)
diff --git a/hugo/content/docs/ref/sprotty-core/EditLabelAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-core/EditLabelAction.Variable.KIND.md
new file mode 100644
index 0000000..d8d3faf
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/EditLabelAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / [EditLabelAction](../Namespace.EditLabelAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"EditLabel"` = `'EditLabel'`
+
+Defined in: [packages/sprotty/src/features/edit/edit-label.ts:34](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label.ts#L34)
diff --git a/hugo/content/docs/ref/sprotty-core/Enumeration.LogLevel.md b/hugo/content/docs/ref/sprotty-core/Enumeration.LogLevel.md
new file mode 100644
index 0000000..c9445d5
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Enumeration.LogLevel.md
@@ -0,0 +1,14 @@
+
+### none
+
+> **none**: `0`
+
+Defined in: [packages/sprotty/src/utils/logging.ts:30](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/logging.ts#L30)
+
+***
+
+### warn
+
+> **warn**: `2`
+
+Defined in: [packages/sprotty/src/utils/logging.ts:30](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/logging.ts#L30)
diff --git a/hugo/content/docs/ref/sprotty-core/Enumeration.Side.md b/hugo/content/docs/ref/sprotty-core/Enumeration.Side.md
new file mode 100644
index 0000000..8dde734
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Enumeration.Side.md
@@ -0,0 +1,6 @@
+
+### TOP
+
+> **TOP**: `2`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:33](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L33)
diff --git a/hugo/content/docs/ref/sprotty-core/ExportSvgAction.Function.create.md b/hugo/content/docs/ref/sprotty-core/ExportSvgAction.Function.create.md
new file mode 100644
index 0000000..8ce7702
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/ExportSvgAction.Function.create.md
@@ -0,0 +1,26 @@
+
+[sprotty](../globals) / [ExportSvgAction](../Namespace.ExportSvgAction) / create
+
+# Function: create()
+
+> **create**(`svg`, `requestId`, `options?`): [`ExportSvgAction`](../Interface.ExportSvgAction)
+
+Defined in: [packages/sprotty/src/features/export/svg-exporter.ts:40](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/export/svg-exporter.ts#L40)
+
+## Parameters
+
+### svg
+
+`string`
+
+### requestId
+
+`string`
+
+### options?
+
+`ExportSvgOptions`
+
+## Returns
+
+[`ExportSvgAction`](../Interface.ExportSvgAction)
diff --git a/hugo/content/docs/ref/sprotty-core/ExportSvgAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-core/ExportSvgAction.Variable.KIND.md
new file mode 100644
index 0000000..a9842e2
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/ExportSvgAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / [ExportSvgAction](../Namespace.ExportSvgAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"exportSvg"` = `'exportSvg'`
+
+Defined in: [packages/sprotty/src/features/export/svg-exporter.ts:38](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/export/svg-exporter.ts#L38)
diff --git a/hugo/content/docs/ref/sprotty-core/Function.BY_DESCENDING_X_THEN_DESCENDING_Y.md b/hugo/content/docs/ref/sprotty-core/Function.BY_DESCENDING_X_THEN_DESCENDING_Y.md
new file mode 100644
index 0000000..0113182
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.BY_DESCENDING_X_THEN_DESCENDING_Y.md
@@ -0,0 +1,22 @@
+
+[sprotty](../globals) / BY\_DESCENDING\_X\_THEN\_DESCENDING\_Y
+
+# Function: BY\_DESCENDING\_X\_THEN\_DESCENDING\_Y()
+
+> **BY\_DESCENDING\_X\_THEN\_DESCENDING\_Y**(`a`, `b`): `number`
+
+Defined in: [packages/sprotty/src/features/edge-intersection/intersection-finder.ts:60](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-intersection/intersection-finder.ts#L60)
+
+## Parameters
+
+### a
+
+[`Intersection`](../Interface.Intersection)
+
+### b
+
+[`Intersection`](../Interface.Intersection)
+
+## Returns
+
+`number`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.BY_DESCENDING_X_THEN_Y.md b/hugo/content/docs/ref/sprotty-core/Function.BY_DESCENDING_X_THEN_Y.md
new file mode 100644
index 0000000..37d0263
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.BY_DESCENDING_X_THEN_Y.md
@@ -0,0 +1,22 @@
+
+[sprotty](../globals) / BY\_DESCENDING\_X\_THEN\_Y
+
+# Function: BY\_DESCENDING\_X\_THEN\_Y()
+
+> **BY\_DESCENDING\_X\_THEN\_Y**(`a`, `b`): `number`
+
+Defined in: [packages/sprotty/src/features/edge-intersection/intersection-finder.ts:46](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-intersection/intersection-finder.ts#L46)
+
+## Parameters
+
+### a
+
+[`Intersection`](../Interface.Intersection)
+
+### b
+
+[`Intersection`](../Interface.Intersection)
+
+## Returns
+
+`number`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.BY_X_THEN_DESCENDING_Y.md b/hugo/content/docs/ref/sprotty-core/Function.BY_X_THEN_DESCENDING_Y.md
new file mode 100644
index 0000000..6c76d77
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.BY_X_THEN_DESCENDING_Y.md
@@ -0,0 +1,22 @@
+
+[sprotty](../globals) / BY\_X\_THEN\_DESCENDING\_Y
+
+# Function: BY\_X\_THEN\_DESCENDING\_Y()
+
+> **BY\_X\_THEN\_DESCENDING\_Y**(`a`, `b`): `number`
+
+Defined in: [packages/sprotty/src/features/edge-intersection/intersection-finder.ts:53](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-intersection/intersection-finder.ts#L53)
+
+## Parameters
+
+### a
+
+[`Intersection`](../Interface.Intersection)
+
+### b
+
+[`Intersection`](../Interface.Intersection)
+
+## Returns
+
+`number`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.BY_X_THEN_Y.md b/hugo/content/docs/ref/sprotty-core/Function.BY_X_THEN_Y.md
new file mode 100644
index 0000000..055b6cd
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.BY_X_THEN_Y.md
@@ -0,0 +1,22 @@
+
+[sprotty](../globals) / BY\_X\_THEN\_Y
+
+# Function: BY\_X\_THEN\_Y()
+
+> **BY\_X\_THEN\_Y**(`a`, `b`): `number`
+
+Defined in: [packages/sprotty/src/features/edge-intersection/intersection-finder.ts:39](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-intersection/intersection-finder.ts#L39)
+
+## Parameters
+
+### a
+
+[`Intersection`](../Interface.Intersection)
+
+### b
+
+[`Intersection`](../Interface.Intersection)
+
+## Returns
+
+`number`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.JSX.md b/hugo/content/docs/ref/sprotty-core/Function.JSX.md
new file mode 100644
index 0000000..827eb7f
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.JSX.md
@@ -0,0 +1,40 @@
+
+[sprotty](../globals) / JSX
+
+# Function: JSX()
+
+> **JSX**(`namespace?`, `defNS?`): (`tag`, `attrs`, ...`children`) => `VNode`
+
+Defined in: [packages/sprotty/src/lib/jsx.ts:70](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/jsx.ts#L70)
+
+## Parameters
+
+### namespace?
+
+`string`
+
+### defNS?
+
+`string` = `'props'`
+
+## Returns
+
+> (`tag`, `attrs`, ...`children`): `VNode`
+
+### Parameters
+
+#### tag
+
+`string` | `FunctionComponent`
+
+#### attrs
+
+`null` | `VNodeData`
+
+#### children
+
+...`JsxVNodeChild`[]
+
+### Returns
+
+`VNode`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.addRoute.md b/hugo/content/docs/ref/sprotty-core/Function.addRoute.md
new file mode 100644
index 0000000..75c7ba0
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.addRoute.md
@@ -0,0 +1,34 @@
+
+[sprotty](../globals) / addRoute
+
+# Function: addRoute()
+
+> **addRoute**(`routeId`, `route`, `queue`): `void`
+
+Defined in: [packages/sprotty/src/features/edge-intersection/sweepline.ts:45](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-intersection/sweepline.ts#L45)
+
+Add the specified `route` to the event `queue` from left to right.
+
+## Parameters
+
+### routeId
+
+`string`
+
+id of the route.
+
+### route
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+the route as array of points.
+
+### queue
+
+`TinyQueue`\<[`SweepEvent`](../Class.SweepEvent)\>
+
+the queue to add the route to.
+
+## Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.applyMatches.md b/hugo/content/docs/ref/sprotty-core/Function.applyMatches.md
new file mode 100644
index 0000000..2762d30
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.applyMatches.md
@@ -0,0 +1,26 @@
+
+[sprotty](../globals) / applyMatches
+
+# Function: applyMatches()
+
+> **applyMatches**(`root`, `matches`, `index?`): `void`
+
+Defined in: [packages/sprotty/src/features/update/model-matching.ts:83](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/update/model-matching.ts#L83)
+
+## Parameters
+
+### root
+
+`SModelRoot`
+
+### matches
+
+[`Match`](../Interface.Match)[]
+
+### index?
+
+[`IModelIndex`](../Interface.IModelIndex)
+
+## Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.canEditRouting.md b/hugo/content/docs/ref/sprotty-core/Function.canEditRouting.md
new file mode 100644
index 0000000..ed58fc6
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.canEditRouting.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / canEditRouting
+
+# Function: canEditRouting()
+
+> **canEditRouting**(`element`): `element is SRoutableElementImpl`
+
+Defined in: [packages/sprotty/src/features/edit/model.ts:23](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/model.ts#L23)
+
+## Parameters
+
+### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+## Returns
+
+`element is SRoutableElementImpl`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.checkEdgePlacement.md b/hugo/content/docs/ref/sprotty-core/Function.checkEdgePlacement.md
new file mode 100644
index 0000000..ca253fa
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.checkEdgePlacement.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / checkEdgePlacement
+
+# Function: checkEdgePlacement()
+
+> **checkEdgePlacement**(`element`): `element is SChildElementImpl & EdgeLayoutable`
+
+Defined in: [packages/sprotty/src/features/edge-layout/model.ts:39](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-layout/model.ts#L39)
+
+## Parameters
+
+### element
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+## Returns
+
+`element is SChildElementImpl & EdgeLayoutable`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.checkWhichEventIsLeft.md b/hugo/content/docs/ref/sprotty-core/Function.checkWhichEventIsLeft.md
new file mode 100644
index 0000000..7140bd2
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.checkWhichEventIsLeft.md
@@ -0,0 +1,26 @@
+
+[sprotty](../globals) / checkWhichEventIsLeft
+
+# Function: checkWhichEventIsLeft()
+
+> **checkWhichEventIsLeft**(`e1`, `e2`): `-1` \| `1`
+
+Defined in: [packages/sprotty/src/features/edge-intersection/sweepline.ts:77](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-intersection/sweepline.ts#L77)
+
+Returns which of the two events is left.
+This is used to classify the endpoints of a segment when generating the
+event queue.
+
+## Parameters
+
+### e1
+
+[`SweepEvent`](../Class.SweepEvent)
+
+### e2
+
+[`SweepEvent`](../Class.SweepEvent)
+
+## Returns
+
+`-1` \| `1`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.checkWhichSegmentHasRightEndpointFirst.md b/hugo/content/docs/ref/sprotty-core/Function.checkWhichSegmentHasRightEndpointFirst.md
new file mode 100644
index 0000000..304ea79
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.checkWhichSegmentHasRightEndpointFirst.md
@@ -0,0 +1,25 @@
+
+[sprotty](../globals) / checkWhichSegmentHasRightEndpointFirst
+
+# Function: checkWhichSegmentHasRightEndpointFirst()
+
+> **checkWhichSegmentHasRightEndpointFirst**(`seg1`, `seg2`): `-1` \| `1`
+
+Defined in: [packages/sprotty/src/features/edge-intersection/sweepline.ts:159](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-intersection/sweepline.ts#L159)
+
+Specifies which of the two specified segments has a right endpoint first.
+Used as a comparator to sort the event queue.
+
+## Parameters
+
+### seg1
+
+[`Segment`](../Class.Segment)
+
+### seg2
+
+[`Segment`](../Class.Segment)
+
+## Returns
+
+`-1` \| `1`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.codiconCSSClasses.md b/hugo/content/docs/ref/sprotty-core/Function.codiconCSSClasses.md
new file mode 100644
index 0000000..9a2dd0e
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.codiconCSSClasses.md
@@ -0,0 +1,30 @@
+
+[sprotty](../globals) / codiconCSSClasses
+
+# Function: codiconCSSClasses()
+
+> **codiconCSSClasses**(`codiconId`, `actionItem`, `animationSpin`, `additionalCSS`): `string`[]
+
+Defined in: [packages/sprotty/src/utils/codicon.ts:24](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/codicon.ts#L24)
+
+## Parameters
+
+### codiconId
+
+`string`
+
+### actionItem
+
+`boolean` = `false`
+
+### animationSpin
+
+`boolean` = `false`
+
+### additionalCSS
+
+`string`[] = `[]`
+
+## Returns
+
+`string`[]
diff --git a/hugo/content/docs/ref/sprotty-core/Function.codiconCSSString.md b/hugo/content/docs/ref/sprotty-core/Function.codiconCSSString.md
new file mode 100644
index 0000000..331f449
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.codiconCSSString.md
@@ -0,0 +1,30 @@
+
+[sprotty](../globals) / codiconCSSString
+
+# Function: codiconCSSString()
+
+> **codiconCSSString**(`codiconId`, `actionItem`, `animationSpin`, `additionalCSS`): `string`
+
+Defined in: [packages/sprotty/src/utils/codicon.ts:20](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/codicon.ts#L20)
+
+## Parameters
+
+### codiconId
+
+`string`
+
+### actionItem
+
+`boolean` = `false`
+
+### animationSpin
+
+`boolean` = `false`
+
+### additionalCSS
+
+`string`[] = `[]`
+
+## Returns
+
+`string`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.configureActionHandler.md b/hugo/content/docs/ref/sprotty-core/Function.configureActionHandler.md
new file mode 100644
index 0000000..25e9803
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.configureActionHandler.md
@@ -0,0 +1,34 @@
+
+[sprotty](../globals) / configureActionHandler
+
+# Function: configureActionHandler()
+
+> **configureActionHandler**(`context`, `kind`, `constr`): `void`
+
+Defined in: [packages/sprotty/src/base/actions/action-handler.ts:73](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/actions/action-handler.ts#L73)
+
+Utility function to register an action handler for an action kind.
+
+## Parameters
+
+### context
+
+#### bind
+
+`Bind`
+
+#### isBound
+
+`IsBound`
+
+### kind
+
+`string`
+
+### constr
+
+`ServiceIdentifier`\<[`IActionHandler`](../Interface.IActionHandler)\>
+
+## Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.configureButtonHandler.md b/hugo/content/docs/ref/sprotty-core/Function.configureButtonHandler.md
new file mode 100644
index 0000000..4afa4bc
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.configureButtonHandler.md
@@ -0,0 +1,34 @@
+
+[sprotty](../globals) / configureButtonHandler
+
+# Function: configureButtonHandler()
+
+> **configureButtonHandler**(`context`, `type`, `constr`): `void`
+
+Defined in: [packages/sprotty/src/features/button/button-handler.ts:46](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/button/button-handler.ts#L46)
+
+Utility function to register a button handler for an button type.
+
+## Parameters
+
+### context
+
+#### bind
+
+`Bind`
+
+#### isBound
+
+`IsBound`
+
+### type
+
+`string`
+
+### constr
+
+`ServiceIdentifier`\<[`IButtonHandler`](../Interface.IButtonHandler)\>
+
+## Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.configureCommand.md b/hugo/content/docs/ref/sprotty-core/Function.configureCommand.md
new file mode 100644
index 0000000..064e834
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.configureCommand.md
@@ -0,0 +1,36 @@
+
+[sprotty](../globals) / configureCommand
+
+# Function: configureCommand()
+
+> **configureCommand**\<`T`\>(`context`, `constr`): `void`
+
+Defined in: [packages/sprotty/src/base/commands/command-registration.ts:59](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-registration.ts#L59)
+
+Use this method in your DI configuration to register a new command to the diagram.
+
+## Type Parameters
+
+### T
+
+`T` *extends* `Action`
+
+## Parameters
+
+### context
+
+#### bind
+
+`Bind`
+
+#### isBound
+
+`IsBound`
+
+### constr
+
+[`ICommandConstructor`](../Interface.ICommandConstructor)\<`T`\>
+
+## Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.configureCommandStackOptions.md b/hugo/content/docs/ref/sprotty-core/Function.configureCommandStackOptions.md
new file mode 100644
index 0000000..69f503d
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.configureCommandStackOptions.md
@@ -0,0 +1,35 @@
+
+[sprotty](../globals) / configureCommandStackOptions
+
+# Function: configureCommandStackOptions()
+
+> **configureCommandStackOptions**(`context`, `options`): `void`
+
+Defined in: [packages/sprotty/src/base/commands/command-stack-options.ts:49](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack-options.ts#L49)
+
+Utility function to partially set command stack options. Default values (from `defaultViewerOptions`) are used for
+options that are not specified.
+
+## Parameters
+
+### context
+
+#### bind
+
+`Bind`
+
+#### isBound
+
+`IsBound`
+
+#### rebind
+
+`Rebind`
+
+### options
+
+`Partial`\<[`CommandStackOptions`](../Interface.CommandStackOptions)\>
+
+## Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.configureLayout.md b/hugo/content/docs/ref/sprotty-core/Function.configureLayout.md
new file mode 100644
index 0000000..0e85ce7
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.configureLayout.md
@@ -0,0 +1,32 @@
+
+[sprotty](../globals) / configureLayout
+
+# Function: configureLayout()
+
+> **configureLayout**(`context`, `kind`, `constr`): `void`
+
+Defined in: [packages/sprotty/src/features/bounds/layout.ts:122](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/layout.ts#L122)
+
+## Parameters
+
+### context
+
+#### bind
+
+`Bind`
+
+#### isBound
+
+`IsBound`
+
+### kind
+
+`string`
+
+### constr
+
+`ServiceIdentifier`\<[`ILayout`](../Interface.ILayout)\>
+
+## Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.configureModelElement.md b/hugo/content/docs/ref/sprotty-core/Function.configureModelElement.md
new file mode 100644
index 0000000..40899ee
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.configureModelElement.md
@@ -0,0 +1,42 @@
+
+[sprotty](../globals) / configureModelElement
+
+# Function: configureModelElement()
+
+> **configureModelElement**(`context`, `type`, `modelConstr`, `viewConstr`, `features?`): `void`
+
+Defined in: [packages/sprotty/src/base/views/view.tsx:128](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/view.tsx#L128)
+
+Combines `registerModelElement` and `configureView`.
+
+## Parameters
+
+### context
+
+#### bind
+
+`Bind`
+
+#### isBound
+
+`IsBound`
+
+### type
+
+`string`
+
+### modelConstr
+
+() => [`SModelElementImpl`](../Class.SModelElementImpl)
+
+### viewConstr
+
+`ServiceIdentifier`\<[`IView`](../Interface.IView)\<\{ \}\>\>
+
+### features?
+
+[`CustomFeatures`](../Interface.CustomFeatures)
+
+## Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.configureView.md b/hugo/content/docs/ref/sprotty-core/Function.configureView.md
new file mode 100644
index 0000000..eaf490e
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.configureView.md
@@ -0,0 +1,38 @@
+
+[sprotty](../globals) / configureView
+
+# Function: configureView()
+
+> **configureView**(`context`, `type`, `constr`, `isOverride?`): `void`
+
+Defined in: [packages/sprotty/src/base/views/view.tsx:146](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/view.tsx#L146)
+
+Utility function to register a view for a model element type.
+
+## Parameters
+
+### context
+
+#### bind
+
+`Bind`
+
+#### isBound
+
+`IsBound`
+
+### type
+
+`string`
+
+### constr
+
+`ServiceIdentifier`\<[`IView`](../Interface.IView)\<\{ \}\>\>
+
+### isOverride?
+
+`boolean`
+
+## Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.configureViewerOptions.md b/hugo/content/docs/ref/sprotty-core/Function.configureViewerOptions.md
new file mode 100644
index 0000000..b1dc9b1
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.configureViewerOptions.md
@@ -0,0 +1,35 @@
+
+[sprotty](../globals) / configureViewerOptions
+
+# Function: configureViewerOptions()
+
+> **configureViewerOptions**(`context`, `options`): `void`
+
+Defined in: [packages/sprotty/src/base/views/viewer-options.ts:76](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer-options.ts#L76)
+
+Utility function to partially set viewer options. Default values (from `defaultViewerOptions`) are used for
+options that are not specified.
+
+## Parameters
+
+### context
+
+#### bind
+
+`Bind`
+
+#### isBound
+
+`IsBound`
+
+#### rebind
+
+`Rebind`
+
+### options
+
+`Partial`\<[`ViewerOptions`](../Interface.ViewerOptions)\>
+
+## Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.containsSome.md b/hugo/content/docs/ref/sprotty-core/Function.containsSome.md
new file mode 100644
index 0000000..26376ac
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.containsSome.md
@@ -0,0 +1,24 @@
+
+[sprotty](../globals) / containsSome
+
+# Function: containsSome()
+
+> **containsSome**(`root`, `element`): `boolean`
+
+Defined in: [packages/sprotty/src/base/model/smodel-utils.ts:111](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel-utils.ts#L111)
+
+Tests if the given model contains an id of then given element or one of its descendants.
+
+## Parameters
+
+### root
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+### element
+
+[`SChildElementImpl`](../Class.SChildElementImpl)
+
+## Returns
+
+`boolean`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.copyClassesFromElement.md b/hugo/content/docs/ref/sprotty-core/Function.copyClassesFromElement.md
new file mode 100644
index 0000000..7d881b5
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.copyClassesFromElement.md
@@ -0,0 +1,22 @@
+
+[sprotty](../globals) / copyClassesFromElement
+
+# Function: copyClassesFromElement()
+
+> **copyClassesFromElement**(`element`, `target`): `void`
+
+Defined in: [packages/sprotty/src/base/views/vnode-utils.ts:46](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/vnode-utils.ts#L46)
+
+## Parameters
+
+### element
+
+`HTMLElement`
+
+### target
+
+`VNode`
+
+## Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.copyClassesFromVNode.md b/hugo/content/docs/ref/sprotty-core/Function.copyClassesFromVNode.md
new file mode 100644
index 0000000..8159941
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.copyClassesFromVNode.md
@@ -0,0 +1,22 @@
+
+[sprotty](../globals) / copyClassesFromVNode
+
+# Function: copyClassesFromVNode()
+
+> **copyClassesFromVNode**(`source`, `target`): `void`
+
+Defined in: [packages/sprotty/src/base/views/vnode-utils.ts:41](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/vnode-utils.ts#L41)
+
+## Parameters
+
+### source
+
+`VNode`
+
+### target
+
+`VNode`
+
+## Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.createFeatureSet.md b/hugo/content/docs/ref/sprotty-core/Function.createFeatureSet.md
new file mode 100644
index 0000000..520c061
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.createFeatureSet.md
@@ -0,0 +1,22 @@
+
+[sprotty](../globals) / createFeatureSet
+
+# Function: createFeatureSet()
+
+> **createFeatureSet**(`defaults`, `custom?`): [`FeatureSet`](../Interface.FeatureSet)
+
+Defined in: [packages/sprotty/src/base/model/smodel-factory.ts:205](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel-factory.ts#L205)
+
+## Parameters
+
+### defaults
+
+readonly `symbol`[]
+
+### custom?
+
+[`CustomFeatures`](../Interface.CustomFeatures)
+
+## Returns
+
+[`FeatureSet`](../Interface.FeatureSet)
diff --git a/hugo/content/docs/ref/sprotty-core/Function.createRandomId.md b/hugo/content/docs/ref/sprotty-core/Function.createRandomId.md
new file mode 100644
index 0000000..045ad38
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.createRandomId.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / createRandomId
+
+# Function: createRandomId()
+
+> **createRandomId**(`length`): `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:182](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L182)
+
+## Parameters
+
+### length
+
+`number` = `8`
+
+## Returns
+
+`string`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.easeInOut.md b/hugo/content/docs/ref/sprotty-core/Function.easeInOut.md
new file mode 100644
index 0000000..465817d
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.easeInOut.md
@@ -0,0 +1,25 @@
+
+[sprotty](../globals) / easeInOut
+
+# Function: easeInOut()
+
+> **easeInOut**(`x`): `number`
+
+Defined in: [packages/sprotty/src/base/animations/easing.ts:24](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/animations/easing.ts#L24)
+
+Slows down animations towards the begin and the end.
+
+## Parameters
+
+### x
+
+`number`
+
+the value between 0 (start of animation) and 1 (end of
+ animation) linearly interpolated in time.
+
+## Returns
+
+`number`
+
+the eased value between 0 and 1
diff --git a/hugo/content/docs/ref/sprotty-core/Function.findArgValue.md b/hugo/content/docs/ref/sprotty-core/Function.findArgValue.md
new file mode 100644
index 0000000..eb9ab5f
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.findArgValue.md
@@ -0,0 +1,37 @@
+
+[sprotty](../globals) / findArgValue
+
+# Function: findArgValue()
+
+> **findArgValue**\<`T`\>(`arg`, `key`): `undefined` \| `T`
+
+Defined in: [packages/sprotty/src/base/views/view.tsx:47](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/view.tsx#L47)
+
+Searches for the property specified in `key` in the specified `args`,
+including its direct or indirect `IRenderingArgs#parentArgs`.
+
+## Type Parameters
+
+### T
+
+`T`
+
+## Parameters
+
+### arg
+
+the rendering arguments.
+
+`undefined` | [`IViewArgs`](../Interface.IViewArgs)
+
+### key
+
+`string`
+
+the key to search for.
+
+## Returns
+
+`undefined` \| `T`
+
+the found value or `undefined.
diff --git a/hugo/content/docs/ref/sprotty-core/Function.findChildrenAtPosition.md b/hugo/content/docs/ref/sprotty-core/Function.findChildrenAtPosition.md
new file mode 100644
index 0000000..423d3d3
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.findChildrenAtPosition.md
@@ -0,0 +1,22 @@
+
+[sprotty](../globals) / findChildrenAtPosition
+
+# Function: findChildrenAtPosition()
+
+> **findChildrenAtPosition**(`parent`, `point`): [`SModelElementImpl`](../Class.SModelElementImpl)[]
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:157](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L157)
+
+## Parameters
+
+### parent
+
+[`SParentElementImpl`](../Class.SParentElementImpl)
+
+### point
+
+`Point`
+
+## Returns
+
+[`SModelElementImpl`](../Class.SModelElementImpl)[]
diff --git a/hugo/content/docs/ref/sprotty-core/Function.findParent.md b/hugo/content/docs/ref/sprotty-core/Function.findParent.md
new file mode 100644
index 0000000..441d209
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.findParent.md
@@ -0,0 +1,24 @@
+
+[sprotty](../globals) / findParent
+
+# Function: findParent()
+
+> **findParent**(`element`, `predicate`): `undefined` \| [`SModelElementImpl`](../Class.SModelElementImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel-utils.ts:36](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel-utils.ts#L36)
+
+Find a parent element that satisfies the given predicate.
+
+## Parameters
+
+### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+### predicate
+
+(`e`) => `boolean`
+
+## Returns
+
+`undefined` \| [`SModelElementImpl`](../Class.SModelElementImpl)
diff --git a/hugo/content/docs/ref/sprotty-core/Function.findParentByFeature.md b/hugo/content/docs/ref/sprotty-core/Function.findParentByFeature.md
new file mode 100644
index 0000000..c7e1582
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.findParentByFeature.md
@@ -0,0 +1,30 @@
+
+[sprotty](../globals) / findParentByFeature
+
+# Function: findParentByFeature()
+
+> **findParentByFeature**\<`T`\>(`element`, `predicate`): `undefined` \| [`SModelElementImpl`](../Class.SModelElementImpl) & `T`
+
+Defined in: [packages/sprotty/src/base/model/smodel-utils.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel-utils.ts#L52)
+
+Find a parent element that implements the feature identified with the given predicate.
+
+## Type Parameters
+
+### T
+
+`T`
+
+## Parameters
+
+### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+### predicate
+
+(`t`) => `t is SModelElementImpl & T`
+
+## Returns
+
+`undefined` \| [`SModelElementImpl`](../Class.SModelElementImpl) & `T`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.findViewportScrollbar.md b/hugo/content/docs/ref/sprotty-core/Function.findViewportScrollbar.md
new file mode 100644
index 0000000..c56b0fd
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.findViewportScrollbar.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / findViewportScrollbar
+
+# Function: findViewportScrollbar()
+
+> **findViewportScrollbar**(`event`): `undefined` \| `HTMLElement`
+
+Defined in: [packages/sprotty/src/features/viewport/scroll.ts:321](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/scroll.ts#L321)
+
+## Parameters
+
+### event
+
+`MouseEvent` | `Touch`
+
+## Returns
+
+`undefined` \| `HTMLElement`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.forEachMatch.md b/hugo/content/docs/ref/sprotty-core/Function.forEachMatch.md
new file mode 100644
index 0000000..a941ae8
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.forEachMatch.md
@@ -0,0 +1,22 @@
+
+[sprotty](../globals) / forEachMatch
+
+# Function: forEachMatch()
+
+> **forEachMatch**(`matchResult`, `callback`): `void`
+
+Defined in: [packages/sprotty/src/features/update/model-matching.ts:32](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/update/model-matching.ts#L32)
+
+## Parameters
+
+### matchResult
+
+[`MatchResult`](../Interface.MatchResult)
+
+### callback
+
+(`id`, `match`) => `void`
+
+## Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.getAbsoluteBounds.md b/hugo/content/docs/ref/sprotty-core/Function.getAbsoluteBounds.md
new file mode 100644
index 0000000..9199396
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.getAbsoluteBounds.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / getAbsoluteBounds
+
+# Function: getAbsoluteBounds()
+
+> **getAbsoluteBounds**(`element`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:100](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L100)
+
+## Parameters
+
+### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+## Returns
+
+`Bounds`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.getAbsoluteClientBounds.md b/hugo/content/docs/ref/sprotty-core/Function.getAbsoluteClientBounds.md
new file mode 100644
index 0000000..af51a46
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.getAbsoluteClientBounds.md
@@ -0,0 +1,36 @@
+
+[sprotty](../globals) / getAbsoluteClientBounds
+
+# Function: getAbsoluteClientBounds()
+
+> **getAbsoluteClientBounds**(`element`, `domHelper`, `viewerOptions`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:128](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L128)
+
+Returns the "client-absolute" bounds of the specified `element`.
+
+The client-absolute bounds are relative to the entire browser page.
+
+## Parameters
+
+### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+The element to get the bounds for.
+
+### domHelper
+
+`DOMHelper`
+
+The dom helper to obtain the SVG element's id.
+
+### viewerOptions
+
+[`ViewerOptions`](../Interface.ViewerOptions)
+
+The viewer options to obtain sprotty's container div id.
+
+## Returns
+
+`Bounds`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.getAbsoluteRouteBounds.md b/hugo/content/docs/ref/sprotty-core/Function.getAbsoluteRouteBounds.md
new file mode 100644
index 0000000..ffce931
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.getAbsoluteRouteBounds.md
@@ -0,0 +1,22 @@
+
+[sprotty](../globals) / getAbsoluteRouteBounds
+
+# Function: getAbsoluteRouteBounds()
+
+> **getAbsoluteRouteBounds**(`model`, `route`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:68](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L68)
+
+## Parameters
+
+### model
+
+`Readonly`\<[`SRoutableElementImpl`](../Class.SRoutableElementImpl)\>
+
+### route
+
+`Point`[] = `model.routingPoints`
+
+## Returns
+
+`Bounds`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.getAttrs.md b/hugo/content/docs/ref/sprotty-core/Function.getAttrs.md
new file mode 100644
index 0000000..fe19e71
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.getAttrs.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / getAttrs
+
+# Function: getAttrs()
+
+> **getAttrs**(`vnode`): `Attrs`
+
+Defined in: [packages/sprotty/src/base/views/vnode-utils.ts:67](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/vnode-utils.ts#L67)
+
+## Parameters
+
+### vnode
+
+`VNode`
+
+## Returns
+
+`Attrs`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.getEditableLabel.md b/hugo/content/docs/ref/sprotty-core/Function.getEditableLabel.md
new file mode 100644
index 0000000..ce248b6
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.getEditableLabel.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / getEditableLabel
+
+# Function: getEditableLabel()
+
+> **getEditableLabel**(`element`): `undefined` \| [`EditableLabel`](../Interface.EditableLabel) & [`SModelElementImpl`](../Class.SModelElementImpl)
+
+Defined in: [packages/sprotty/src/features/edit/edit-label.ts:128](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label.ts#L128)
+
+## Parameters
+
+### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+## Returns
+
+`undefined` \| [`EditableLabel`](../Interface.EditableLabel) & [`SModelElementImpl`](../Class.SModelElementImpl)
diff --git a/hugo/content/docs/ref/sprotty-core/Function.getModelBounds.md b/hugo/content/docs/ref/sprotty-core/Function.getModelBounds.md
new file mode 100644
index 0000000..64430ab
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.getModelBounds.md
@@ -0,0 +1,21 @@
+
+[sprotty](../globals) / getModelBounds
+
+# Function: getModelBounds()
+
+> **getModelBounds**(`model`): `undefined` \| `Bounds`
+
+Defined in: [packages/sprotty/src/features/projection/model.ts:108](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/projection/model.ts#L108)
+
+Determine the total bounds of a model; this takes the viewport into consideration
+so it can be shown in the projections.
+
+## Parameters
+
+### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl) & `Viewport`
+
+## Returns
+
+`undefined` \| `Bounds`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.getProjectedBounds.md b/hugo/content/docs/ref/sprotty-core/Function.getProjectedBounds.md
new file mode 100644
index 0000000..41d7df0
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.getProjectedBounds.md
@@ -0,0 +1,20 @@
+
+[sprotty](../globals) / getProjectedBounds
+
+# Function: getProjectedBounds()
+
+> **getProjectedBounds**(`model`): `undefined` \| `Bounds`
+
+Defined in: [packages/sprotty/src/features/projection/model.ts:86](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/projection/model.ts#L86)
+
+Compute the projected bounds of the given model element, that is the absolute position in the diagram.
+
+## Parameters
+
+### model
+
+`Readonly`\<[`SChildElementImpl`](../Class.SChildElementImpl) & `ProjectableSchema`\>
+
+## Returns
+
+`undefined` \| `Bounds`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.getProjections.md b/hugo/content/docs/ref/sprotty-core/Function.getProjections.md
new file mode 100644
index 0000000..68aea2a
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.getProjections.md
@@ -0,0 +1,20 @@
+
+[sprotty](../globals) / getProjections
+
+# Function: getProjections()
+
+> **getProjections**(`parent`): `undefined` \| [`ViewProjection`](../Interface.ViewProjection)[]
+
+Defined in: [packages/sprotty/src/features/projection/model.ts:51](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/projection/model.ts#L51)
+
+Gather all projections of elements contained in the given parent element.
+
+## Parameters
+
+### parent
+
+`Readonly`\<[`SParentElementImpl`](../Class.SParentElementImpl)\>
+
+## Returns
+
+`undefined` \| [`ViewProjection`](../Interface.ViewProjection)[]
diff --git a/hugo/content/docs/ref/sprotty-core/Function.getRouteBounds.md b/hugo/content/docs/ref/sprotty-core/Function.getRouteBounds.md
new file mode 100644
index 0000000..348a919
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.getRouteBounds.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / getRouteBounds
+
+# Function: getRouteBounds()
+
+> **getRouteBounds**(`route`): `Bounds`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:79](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L79)
+
+## Parameters
+
+### route
+
+`Point`[]
+
+## Returns
+
+`Bounds`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.getSegmentIndex.md b/hugo/content/docs/ref/sprotty-core/Function.getSegmentIndex.md
new file mode 100644
index 0000000..99a971d
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.getSegmentIndex.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / getSegmentIndex
+
+# Function: getSegmentIndex()
+
+> **getSegmentIndex**(`segment`): `number`
+
+Defined in: [packages/sprotty/src/features/edge-intersection/sweepline.ts:166](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-intersection/sweepline.ts#L166)
+
+## Parameters
+
+### segment
+
+[`Segment`](../Class.Segment)
+
+## Returns
+
+`number`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.getWindowScroll.md b/hugo/content/docs/ref/sprotty-core/Function.getWindowScroll.md
new file mode 100644
index 0000000..744cd2d
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.getWindowScroll.md
@@ -0,0 +1,14 @@
+
+[sprotty](../globals) / getWindowScroll
+
+# Function: getWindowScroll()
+
+> **getWindowScroll**(): `Point`
+
+Defined in: [packages/sprotty/src/utils/browser.ts:49](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/browser.ts#L49)
+
+Returns the amount of scroll of the browser window as a point.
+
+## Returns
+
+`Point`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.getZoom.md b/hugo/content/docs/ref/sprotty-core/Function.getZoom.md
new file mode 100644
index 0000000..f7adae8
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.getZoom.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / getZoom
+
+# Function: getZoom()
+
+> **getZoom**(`label`): `number`
+
+Defined in: [packages/sprotty/src/features/viewport/zoom.ts:30](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/zoom.ts#L30)
+
+## Parameters
+
+### label
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+## Returns
+
+`number`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.hasPopupFeature.md b/hugo/content/docs/ref/sprotty-core/Function.hasPopupFeature.md
new file mode 100644
index 0000000..d3b7194
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.hasPopupFeature.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / hasPopupFeature
+
+# Function: hasPopupFeature()
+
+> **hasPopupFeature**(`element`): `boolean`
+
+Defined in: [packages/sprotty/src/features/hover/model.ts:35](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/model.ts#L35)
+
+## Parameters
+
+### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+## Returns
+
+`boolean`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.hitsMouseEvent.md b/hugo/content/docs/ref/sprotty-core/Function.hitsMouseEvent.md
new file mode 100644
index 0000000..6f23944
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.hitsMouseEvent.md
@@ -0,0 +1,24 @@
+
+[sprotty](../globals) / hitsMouseEvent
+
+# Function: hitsMouseEvent()
+
+> **hitsMouseEvent**(`child`, `event`): `boolean`
+
+Defined in: [packages/sprotty/src/utils/browser.ts:62](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/browser.ts#L62)
+
+Checks whether the given mouse event hits the given DOM element.
+
+## Parameters
+
+### child
+
+`Element`
+
+### event
+
+`MouseEvent`
+
+## Returns
+
+`boolean`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.intersection.md b/hugo/content/docs/ref/sprotty-core/Function.intersection.md
new file mode 100644
index 0000000..2b6602e
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.intersection.md
@@ -0,0 +1,30 @@
+
+[sprotty](../globals) / intersection
+
+# Function: intersection()
+
+> **intersection**(`l1`, `l2`): `Point`
+
+Defined in: [packages/sprotty/src/utils/geometry.ts:251](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/geometry.ts#L251)
+
+Returns the intersection of two lines `l1` and `l2`
+
+## Parameters
+
+### l1
+
+[`Line`](../Interface.Line)
+
+A line
+
+### l2
+
+[`Line`](../Interface.Line)
+
+Another line
+
+## Returns
+
+`Point`
+
+The intersection point of `l1` and `l2`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.intersectionOfSegments.md b/hugo/content/docs/ref/sprotty-core/Function.intersectionOfSegments.md
new file mode 100644
index 0000000..3a8d407
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.intersectionOfSegments.md
@@ -0,0 +1,24 @@
+
+[sprotty](../globals) / intersectionOfSegments
+
+# Function: intersectionOfSegments()
+
+> **intersectionOfSegments**(`seg1`, `seg2`): `undefined` \| `Point`
+
+Defined in: [packages/sprotty/src/features/edge-intersection/sweepline.ts:173](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-intersection/sweepline.ts#L173)
+
+Tests whether two segments intersect and returns the intersection point if existing.
+
+## Parameters
+
+### seg1
+
+[`Segment`](../Class.Segment)
+
+### seg2
+
+[`Segment`](../Class.Segment)
+
+## Returns
+
+`undefined` \| `Point`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isAlignable.md b/hugo/content/docs/ref/sprotty-core/Function.isAlignable.md
new file mode 100644
index 0000000..08fc7bf
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isAlignable.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / isAlignable
+
+# Function: isAlignable()
+
+> **isAlignable**(`element`): `element is SModelElementImpl & Alignable`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:95](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L95)
+
+## Parameters
+
+### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+## Returns
+
+`element is SModelElementImpl & Alignable`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isApplyLabelEditAction.md b/hugo/content/docs/ref/sprotty-core/Function.isApplyLabelEditAction.md
new file mode 100644
index 0000000..db45e4d
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isApplyLabelEditAction.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / isApplyLabelEditAction
+
+# Function: isApplyLabelEditAction()
+
+> **isApplyLabelEditAction**(`element?`): `element is ApplyLabelEditAction`
+
+Defined in: [packages/sprotty/src/features/edit/edit-label.ts:48](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label.ts#L48)
+
+## Parameters
+
+### element?
+
+`any`
+
+## Returns
+
+`element is ApplyLabelEditAction`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isBoundsAware.md b/hugo/content/docs/ref/sprotty-core/Function.isBoundsAware.md
new file mode 100644
index 0000000..2cbf9ab
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isBoundsAware.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / isBoundsAware
+
+# Function: isBoundsAware()
+
+> **isBoundsAware**(`element`): `element is SModelElementImpl & InternalBoundsAware`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:76](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L76)
+
+## Parameters
+
+### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+## Returns
+
+`element is SModelElementImpl & InternalBoundsAware`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isConnectable.md b/hugo/content/docs/ref/sprotty-core/Function.isConnectable.md
new file mode 100644
index 0000000..ee86e4b
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isConnectable.md
@@ -0,0 +1,24 @@
+
+[sprotty](../globals) / isConnectable
+
+# Function: isConnectable()
+
+> **isConnectable**\<`T`\>(`element`): `element is Connectable & T`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:64](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L64)
+
+## Type Parameters
+
+### T
+
+`T` *extends* [`SModelElementImpl`](../Class.SModelElementImpl)
+
+## Parameters
+
+### element
+
+`T`
+
+## Returns
+
+`element is Connectable & T`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isCreatingOnDrag.md b/hugo/content/docs/ref/sprotty-core/Function.isCreatingOnDrag.md
new file mode 100644
index 0000000..6139510
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isCreatingOnDrag.md
@@ -0,0 +1,24 @@
+
+[sprotty](../globals) / isCreatingOnDrag
+
+# Function: isCreatingOnDrag()
+
+> **isCreatingOnDrag**\<`T`\>(`element`): `element is T & CreatingOnDrag`
+
+Defined in: [packages/sprotty/src/features/edit/create-on-drag.ts:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/create-on-drag.ts#L29)
+
+## Type Parameters
+
+### T
+
+`T` *extends* [`SModelElementImpl`](../Class.SModelElementImpl)
+
+## Parameters
+
+### element
+
+`T`
+
+## Returns
+
+`element is T & CreatingOnDrag`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isCrossSite.md b/hugo/content/docs/ref/sprotty-core/Function.isCrossSite.md
new file mode 100644
index 0000000..7494910
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isCrossSite.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / isCrossSite
+
+# Function: isCrossSite()
+
+> **isCrossSite**(`url`): `boolean`
+
+Defined in: [packages/sprotty/src/utils/browser.ts:34](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/browser.ts#L34)
+
+## Parameters
+
+### url
+
+`string`
+
+## Returns
+
+`boolean`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isCtrlOrCmd.md b/hugo/content/docs/ref/sprotty-core/Function.isCtrlOrCmd.md
new file mode 100644
index 0000000..8203276
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isCtrlOrCmd.md
@@ -0,0 +1,21 @@
+
+[sprotty](../globals) / isCtrlOrCmd
+
+# Function: isCtrlOrCmd()
+
+> **isCtrlOrCmd**(`event`): `boolean`
+
+Defined in: [packages/sprotty/src/utils/browser.ts:23](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/browser.ts#L23)
+
+Returns whether the mouse or keyboard event includes the CMD key
+on Mac or CTRL key on Linux / others.
+
+## Parameters
+
+### event
+
+`KeyboardEvent` | `MouseEvent`
+
+## Returns
+
+`boolean`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isDecoration.md b/hugo/content/docs/ref/sprotty-core/Function.isDecoration.md
new file mode 100644
index 0000000..69d7772
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isDecoration.md
@@ -0,0 +1,24 @@
+
+[sprotty](../globals) / isDecoration
+
+# Function: isDecoration()
+
+> **isDecoration**\<`T`\>(`e`): `e is T & Decoration`
+
+Defined in: [packages/sprotty/src/features/decoration/model.ts:30](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/decoration/model.ts#L30)
+
+## Type Parameters
+
+### T
+
+`T` *extends* [`SModelElementImpl`](../Class.SModelElementImpl)
+
+## Parameters
+
+### e
+
+`T`
+
+## Returns
+
+`e is T & Decoration`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isDeletable.md b/hugo/content/docs/ref/sprotty-core/Function.isDeletable.md
new file mode 100644
index 0000000..fa52cf4
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isDeletable.md
@@ -0,0 +1,24 @@
+
+[sprotty](../globals) / isDeletable
+
+# Function: isDeletable()
+
+> **isDeletable**\<`T`\>(`element`): `element is T & Deletable & SChildElementImpl`
+
+Defined in: [packages/sprotty/src/features/edit/delete.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/delete.ts#L31)
+
+## Type Parameters
+
+### T
+
+`T` *extends* [`SModelElementImpl`](../Class.SModelElementImpl)
+
+## Parameters
+
+### element
+
+`T`
+
+## Returns
+
+`element is T & Deletable & SChildElementImpl`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isEdgeLayoutable.md b/hugo/content/docs/ref/sprotty-core/Function.isEdgeLayoutable.md
new file mode 100644
index 0000000..09d6510
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isEdgeLayoutable.md
@@ -0,0 +1,24 @@
+
+[sprotty](../globals) / isEdgeLayoutable
+
+# Function: isEdgeLayoutable()
+
+> **isEdgeLayoutable**\<`T`\>(`element`): `element is T & SChildElementImpl & InternalBoundsAware & EdgeLayoutable`
+
+Defined in: [packages/sprotty/src/features/edge-layout/model.ts:32](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-layout/model.ts#L32)
+
+## Type Parameters
+
+### T
+
+`T` *extends* [`SModelElementImpl`](../Class.SModelElementImpl)
+
+## Parameters
+
+### element
+
+`T`
+
+## Returns
+
+`element is T & SChildElementImpl & InternalBoundsAware & EdgeLayoutable`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isEditLabelAction.md b/hugo/content/docs/ref/sprotty-core/Function.isEditLabelAction.md
new file mode 100644
index 0000000..0db5d9e
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isEditLabelAction.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / isEditLabelAction
+
+# Function: isEditLabelAction()
+
+> **isEditLabelAction**(`element?`): `element is EditLabelAction`
+
+Defined in: [packages/sprotty/src/features/edit/edit-label.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label.ts#L44)
+
+## Parameters
+
+### element?
+
+`any`
+
+## Returns
+
+`element is EditLabelAction`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isEditableLabel.md b/hugo/content/docs/ref/sprotty-core/Function.isEditableLabel.md
new file mode 100644
index 0000000..23dd46c
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isEditableLabel.md
@@ -0,0 +1,24 @@
+
+[sprotty](../globals) / isEditableLabel
+
+# Function: isEditableLabel()
+
+> **isEditableLabel**\<`T`\>(`element`): `element is T & EditableLabel`
+
+Defined in: [packages/sprotty/src/features/edit/model.ts:40](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/model.ts#L40)
+
+## Type Parameters
+
+### T
+
+`T` *extends* [`SModelElementImpl`](../Class.SModelElementImpl)
+
+## Parameters
+
+### element
+
+`T`
+
+## Returns
+
+`element is T & EditableLabel`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isExpandable.md b/hugo/content/docs/ref/sprotty-core/Function.isExpandable.md
new file mode 100644
index 0000000..9f4ae98
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isExpandable.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / isExpandable
+
+# Function: isExpandable()
+
+> **isExpandable**(`element`): `element is SModelElementImpl & Expandable`
+
+Defined in: [packages/sprotty/src/features/expand/model.ts:30](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/expand/model.ts#L30)
+
+## Parameters
+
+### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+## Returns
+
+`element is SModelElementImpl & Expandable`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isExportable.md b/hugo/content/docs/ref/sprotty-core/Function.isExportable.md
new file mode 100644
index 0000000..5635502
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isExportable.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / isExportable
+
+# Function: isExportable()
+
+> **isExportable**(`element`): `boolean`
+
+Defined in: [packages/sprotty/src/features/export/model.ts:21](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/export/model.ts#L21)
+
+## Parameters
+
+### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+## Returns
+
+`boolean`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isFadeable.md b/hugo/content/docs/ref/sprotty-core/Function.isFadeable.md
new file mode 100644
index 0000000..3f24e32
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isFadeable.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / isFadeable
+
+# Function: isFadeable()
+
+> **isFadeable**(`element`): `element is SModelElementImpl & Fadeable`
+
+Defined in: [packages/sprotty/src/features/fade/model.ts:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/fade/model.ts#L29)
+
+## Parameters
+
+### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+## Returns
+
+`element is SModelElementImpl & Fadeable`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isHoverable.md b/hugo/content/docs/ref/sprotty-core/Function.isHoverable.md
new file mode 100644
index 0000000..2a6b196
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isHoverable.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / isHoverable
+
+# Function: isHoverable()
+
+> **isHoverable**(`element`): `element is SModelElementImpl & Hoverable`
+
+Defined in: [packages/sprotty/src/features/hover/model.ts:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/model.ts#L29)
+
+## Parameters
+
+### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+## Returns
+
+`element is SModelElementImpl & Hoverable`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isInjectable.md b/hugo/content/docs/ref/sprotty-core/Function.isInjectable.md
new file mode 100644
index 0000000..18a0ee2
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isInjectable.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / isInjectable
+
+# Function: isInjectable()
+
+> **isInjectable**(`constr`): `boolean`
+
+Defined in: [packages/sprotty/src/utils/inversify.ts:18](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/inversify.ts#L18)
+
+## Parameters
+
+### constr
+
+`Function` | `Newable`\<`unknown`\>
+
+## Returns
+
+`boolean`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isIntersectingRoutedPoint.md b/hugo/content/docs/ref/sprotty-core/Function.isIntersectingRoutedPoint.md
new file mode 100644
index 0000000..74d64d3
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isIntersectingRoutedPoint.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / isIntersectingRoutedPoint
+
+# Function: isIntersectingRoutedPoint()
+
+> **isIntersectingRoutedPoint**(`routedPoint`): `routedPoint is IntersectingRoutedPoint`
+
+Defined in: [packages/sprotty/src/features/edge-intersection/intersection-finder.ts:35](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-intersection/intersection-finder.ts#L35)
+
+## Parameters
+
+### routedPoint
+
+`Point`
+
+## Returns
+
+`routedPoint is IntersectingRoutedPoint`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isLabeledAction.md b/hugo/content/docs/ref/sprotty-core/Function.isLabeledAction.md
new file mode 100644
index 0000000..4c94668
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isLabeledAction.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / isLabeledAction
+
+# Function: isLabeledAction()
+
+> **isLabeledAction**(`element`): `element is LabeledAction`
+
+Defined in: [packages/sprotty/src/base/actions/action.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/actions/action.ts#L28)
+
+## Parameters
+
+### element
+
+`unknown`
+
+## Returns
+
+`element is LabeledAction`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isLayoutContainer.md b/hugo/content/docs/ref/sprotty-core/Function.isLayoutContainer.md
new file mode 100644
index 0000000..7471a51
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isLayoutContainer.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / isLayoutContainer
+
+# Function: isLayoutContainer()
+
+> **isLayoutContainer**(`element`): `element is SParentElementImpl & InternalLayoutContainer`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:80](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L80)
+
+## Parameters
+
+### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+## Returns
+
+`element is SParentElementImpl & InternalLayoutContainer`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isLayoutableChild.md b/hugo/content/docs/ref/sprotty-core/Function.isLayoutableChild.md
new file mode 100644
index 0000000..16ab29b
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isLayoutableChild.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / isLayoutableChild
+
+# Function: isLayoutableChild()
+
+> **isLayoutableChild**(`element`): `element is SChildElementImpl & InternalLayoutableChild`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:86](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L86)
+
+## Parameters
+
+### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+## Returns
+
+`element is SChildElementImpl & InternalLayoutableChild`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isLocateable.md b/hugo/content/docs/ref/sprotty-core/Function.isLocateable.md
new file mode 100644
index 0000000..cb8f6e7
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isLocateable.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / isLocateable
+
+# Function: isLocateable()
+
+> **isLocateable**(`element`): `element is SModelElementImpl & Locateable`
+
+Defined in: [packages/sprotty/src/features/move/model.ts:32](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/model.ts#L32)
+
+## Parameters
+
+### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+## Returns
+
+`element is SModelElementImpl & Locateable`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isMac.md b/hugo/content/docs/ref/sprotty-core/Function.isMac.md
new file mode 100644
index 0000000..a68c48b
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isMac.md
@@ -0,0 +1,12 @@
+
+[sprotty](../globals) / isMac
+
+# Function: isMac()
+
+> **isMac**(): `boolean`
+
+Defined in: [packages/sprotty/src/utils/browser.ts:30](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/browser.ts#L30)
+
+## Returns
+
+`boolean`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isMoveable.md b/hugo/content/docs/ref/sprotty-core/Function.isMoveable.md
new file mode 100644
index 0000000..87d5a08
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isMoveable.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / isMoveable
+
+# Function: isMoveable()
+
+> **isMoveable**(`element`): `element is SModelElementImpl & Locateable`
+
+Defined in: [packages/sprotty/src/features/move/model.ts:36](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/model.ts#L36)
+
+## Parameters
+
+### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+## Returns
+
+`element is SModelElementImpl & Locateable`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isNameable.md b/hugo/content/docs/ref/sprotty-core/Function.isNameable.md
new file mode 100644
index 0000000..f171a38
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isNameable.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / isNameable
+
+# Function: isNameable()
+
+> **isNameable**(`element`): `element is SModelElementImpl & Nameable`
+
+Defined in: [packages/sprotty/src/features/nameable/model.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/nameable/model.ts#L28)
+
+## Parameters
+
+### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+## Returns
+
+`element is SModelElementImpl & Nameable`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isOpenable.md b/hugo/content/docs/ref/sprotty-core/Function.isOpenable.md
new file mode 100644
index 0000000..bcd68d5
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isOpenable.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / isOpenable
+
+# Function: isOpenable()
+
+> **isOpenable**(`element`): `element is SModelElementImpl`
+
+Defined in: [packages/sprotty/src/features/open/model.ts:21](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/open/model.ts#L21)
+
+## Parameters
+
+### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+## Returns
+
+`element is SModelElementImpl`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isParent.md b/hugo/content/docs/ref/sprotty-core/Function.isParent.md
new file mode 100644
index 0000000..d348e5e
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isParent.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / isParent
+
+# Function: isParent()
+
+> **isParent**(`element`): `element is SModelElement & { children: SModelElement[] }`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:62](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L62)
+
+## Parameters
+
+### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl) | `SModelElement`
+
+## Returns
+
+`element is SModelElement & { children: SModelElement[] }`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isProjectable.md b/hugo/content/docs/ref/sprotty-core/Function.isProjectable.md
new file mode 100644
index 0000000..dcecbb2
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isProjectable.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / isProjectable
+
+# Function: isProjectable()
+
+> **isProjectable**(`arg`): `arg is Projectable`
+
+Defined in: [packages/sprotty/src/features/projection/model.ts:35](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/projection/model.ts#L35)
+
+## Parameters
+
+### arg
+
+`unknown`
+
+## Returns
+
+`arg is Projectable`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isSVGGraphicsElement.md b/hugo/content/docs/ref/sprotty-core/Function.isSVGGraphicsElement.md
new file mode 100644
index 0000000..127588a
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isSVGGraphicsElement.md
@@ -0,0 +1,20 @@
+
+[sprotty](../globals) / isSVGGraphicsElement
+
+# Function: isSVGGraphicsElement()
+
+> **isSVGGraphicsElement**(`node`): `node is SVGGraphicsElement`
+
+Defined in: [packages/sprotty/src/utils/browser.ts:71](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/browser.ts#L71)
+
+Checks whether the given DOM node is an SVG element.
+
+## Parameters
+
+### node
+
+`Node`
+
+## Returns
+
+`node is SVGGraphicsElement`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isSelectable.md b/hugo/content/docs/ref/sprotty-core/Function.isSelectable.md
new file mode 100644
index 0000000..6197fe7
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isSelectable.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / isSelectable
+
+# Function: isSelectable()
+
+> **isSelectable**(`element`): `element is SModelElementImpl & Selectable`
+
+Defined in: [packages/sprotty/src/features/select/model.ts:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/select/model.ts#L29)
+
+## Parameters
+
+### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+## Returns
+
+`element is SModelElementImpl & Selectable`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isSelected.md b/hugo/content/docs/ref/sprotty-core/Function.isSelected.md
new file mode 100644
index 0000000..f82241c
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isSelected.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / isSelected
+
+# Function: isSelected()
+
+> **isSelected**(`element`): `element is SModelElementImpl & Selectable`
+
+Defined in: [packages/sprotty/src/features/select/model.ts:33](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/select/model.ts#L33)
+
+## Parameters
+
+### element
+
+`undefined` | [`SModelElementImpl`](../Class.SModelElementImpl)
+
+## Returns
+
+`element is SModelElementImpl & Selectable`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isSizeable.md b/hugo/content/docs/ref/sprotty-core/Function.isSizeable.md
new file mode 100644
index 0000000..1d221b4
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isSizeable.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / isSizeable
+
+# Function: isSizeable()
+
+> **isSizeable**(`element`): `element is SModelElementImpl & InternalBoundsAware`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:91](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L91)
+
+## Parameters
+
+### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+## Returns
+
+`element is SModelElementImpl & InternalBoundsAware`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isStoppableCommand.md b/hugo/content/docs/ref/sprotty-core/Function.isStoppableCommand.md
new file mode 100644
index 0000000..3edc3e4
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isStoppableCommand.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / isStoppableCommand
+
+# Function: isStoppableCommand()
+
+> **isStoppableCommand**(`command`): `command is IStoppableCommand`
+
+Defined in: [packages/sprotty/src/base/commands/command.ts:64](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command.ts#L64)
+
+## Parameters
+
+### command
+
+`any`
+
+## Returns
+
+`command is IStoppableCommand`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isThunk.md b/hugo/content/docs/ref/sprotty-core/Function.isThunk.md
new file mode 100644
index 0000000..e0752b4
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isThunk.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / isThunk
+
+# Function: isThunk()
+
+> **isThunk**(`vnode`): `vnode is ThunkVNode`
+
+Defined in: [packages/sprotty/src/base/views/thunk-view.ts:113](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/thunk-view.ts#L113)
+
+## Parameters
+
+### vnode
+
+`VNode`
+
+## Returns
+
+`vnode is ThunkVNode`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isUIExtension.md b/hugo/content/docs/ref/sprotty-core/Function.isUIExtension.md
new file mode 100644
index 0000000..24d164a
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isUIExtension.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / isUIExtension
+
+# Function: isUIExtension()
+
+> **isUIExtension**(`object`): `object is IUIExtension`
+
+Defined in: [packages/sprotty/src/base/ui-extensions/ui-extension.ts:33](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/ui-extensions/ui-extension.ts#L33)
+
+## Parameters
+
+### object
+
+`unknown`
+
+## Returns
+
+`object is IUIExtension`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isViewport.md b/hugo/content/docs/ref/sprotty-core/Function.isViewport.md
new file mode 100644
index 0000000..91e2ac6
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isViewport.md
@@ -0,0 +1,20 @@
+
+[sprotty](../globals) / isViewport
+
+# Function: isViewport()
+
+> **isViewport**(`element`): `element is SModelRootImpl & Viewport`
+
+Defined in: [packages/sprotty/src/features/viewport/model.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/model.ts#L27)
+
+Determine whether the given model element has a viewport.
+
+## Parameters
+
+### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+## Returns
+
+`element is SModelRootImpl & Viewport`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.isWithEditableLabel.md b/hugo/content/docs/ref/sprotty-core/Function.isWithEditableLabel.md
new file mode 100644
index 0000000..2694686
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.isWithEditableLabel.md
@@ -0,0 +1,24 @@
+
+[sprotty](../globals) / isWithEditableLabel
+
+# Function: isWithEditableLabel()
+
+> **isWithEditableLabel**\<`T`\>(`element`): `element is T & WithEditableLabel`
+
+Defined in: [packages/sprotty/src/features/edit/model.ts:53](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/model.ts#L53)
+
+## Type Parameters
+
+### T
+
+`T` *extends* [`SModelElementImpl`](../Class.SModelElementImpl)
+
+## Parameters
+
+### element
+
+`T`
+
+## Returns
+
+`element is T & WithEditableLabel`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.limit.md b/hugo/content/docs/ref/sprotty-core/Function.limit.md
new file mode 100644
index 0000000..505924c
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.limit.md
@@ -0,0 +1,28 @@
+
+[sprotty](../globals) / limit
+
+# Function: limit()
+
+> **limit**(`value`, `limits`): `number`
+
+Defined in: [packages/sprotty/src/utils/geometry.ts:271](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/geometry.ts#L271)
+
+Limits a value to the specified `limits`.
+
+## Parameters
+
+### value
+
+`number`
+
+The value to limit
+
+### limits
+
+[`Limits`](../Interface.Limits)
+
+The minimum and maximum limits
+
+## Returns
+
+`number`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.limitViewport.md b/hugo/content/docs/ref/sprotty-core/Function.limitViewport.md
new file mode 100644
index 0000000..77811cd
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.limitViewport.md
@@ -0,0 +1,36 @@
+
+[sprotty](../globals) / limitViewport
+
+# Function: limitViewport()
+
+> **limitViewport**(`viewport`, `canvasBounds`, `horizontalScrollLimits`, `verticalScrollLimits`, `zoomLimits`): `Viewport`
+
+Defined in: [packages/sprotty/src/features/viewport/model.ts:37](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/model.ts#L37)
+
+Apply limits to the given viewport.
+
+## Parameters
+
+### viewport
+
+`Viewport`
+
+### canvasBounds
+
+`undefined` | `Bounds`
+
+### horizontalScrollLimits
+
+`undefined` | [`Limits`](../Interface.Limits)
+
+### verticalScrollLimits
+
+`undefined` | [`Limits`](../Interface.Limits)
+
+### zoomLimits
+
+`undefined` | [`Limits`](../Interface.Limits)
+
+## Returns
+
+`Viewport`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.loadDefaultModules.md b/hugo/content/docs/ref/sprotty-core/Function.loadDefaultModules.md
new file mode 100644
index 0000000..b878ebb
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.loadDefaultModules.md
@@ -0,0 +1,24 @@
+
+[sprotty](../globals) / loadDefaultModules
+
+# Function: loadDefaultModules()
+
+> **loadDefaultModules**(`container`, `options?`): `void`
+
+Defined in: [packages/sprotty/src/lib/modules.ts:47](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/modules.ts#L47)
+
+Load the default set of container modules provided by Sprotty.
+
+## Parameters
+
+### container
+
+`Container`
+
+### options?
+
+[`LoadModuleOptions`](../Interface.LoadModuleOptions)
+
+## Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.mergeStyle.md b/hugo/content/docs/ref/sprotty-core/Function.mergeStyle.md
new file mode 100644
index 0000000..8e945a5
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.mergeStyle.md
@@ -0,0 +1,22 @@
+
+[sprotty](../globals) / mergeStyle
+
+# Function: mergeStyle()
+
+> **mergeStyle**(`vnode`, `style`): `void`
+
+Defined in: [packages/sprotty/src/base/views/vnode-utils.ts:55](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/vnode-utils.ts#L55)
+
+## Parameters
+
+### vnode
+
+`VNode`
+
+### style
+
+`any`
+
+## Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.name.md b/hugo/content/docs/ref/sprotty-core/Function.name.md
new file mode 100644
index 0000000..97d0527
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.name.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / name
+
+# Function: name()
+
+> **name**(`element`): `undefined` \| `string`
+
+Defined in: [packages/sprotty/src/features/nameable/model.ts:32](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/nameable/model.ts#L32)
+
+## Parameters
+
+### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+## Returns
+
+`undefined` \| `string`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.on.md b/hugo/content/docs/ref/sprotty-core/Function.on.md
new file mode 100644
index 0000000..203cb9a
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.on.md
@@ -0,0 +1,26 @@
+
+[sprotty](../globals) / on
+
+# Function: on()
+
+> **on**(`vnode`, `event`, `listener`): `void`
+
+Defined in: [packages/sprotty/src/base/views/vnode-utils.ts:59](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/vnode-utils.ts#L59)
+
+## Parameters
+
+### vnode
+
+`VNode`
+
+### event
+
+`string`
+
+### listener
+
+(`event`) => `void`
+
+## Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.onAction.md b/hugo/content/docs/ref/sprotty-core/Function.onAction.md
new file mode 100644
index 0000000..b32c1a2
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.onAction.md
@@ -0,0 +1,34 @@
+
+[sprotty](../globals) / onAction
+
+# Function: onAction()
+
+> **onAction**(`context`, `kind`, `handle`): `void`
+
+Defined in: [packages/sprotty/src/base/actions/action-handler.ts:92](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/actions/action-handler.ts#L92)
+
+Utility function to register an action handler for an action kind.
+
+## Parameters
+
+### context
+
+#### bind
+
+`Bind`
+
+#### isBound
+
+`IsBound`
+
+### kind
+
+`string`
+
+### handle
+
+(`action`) => `void` \| `Action` \| [`ICommand`](../Interface.ICommand)
+
+## Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.overrideCommandStackOptions.md b/hugo/content/docs/ref/sprotty-core/Function.overrideCommandStackOptions.md
new file mode 100644
index 0000000..1a28531
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.overrideCommandStackOptions.md
@@ -0,0 +1,24 @@
+
+[sprotty](../globals) / overrideCommandStackOptions
+
+# Function: overrideCommandStackOptions()
+
+> **overrideCommandStackOptions**(`container`, `options`): [`CommandStackOptions`](../Interface.CommandStackOptions)
+
+Defined in: [packages/sprotty/src/base/commands/command-stack-options.ts:65](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack-options.ts#L65)
+
+Utility function to partially override the currently configured command stack options in a DI container.
+
+## Parameters
+
+### container
+
+`Container`
+
+### options
+
+`Partial`\<[`CommandStackOptions`](../Interface.CommandStackOptions)\>
+
+## Returns
+
+[`CommandStackOptions`](../Interface.CommandStackOptions)
diff --git a/hugo/content/docs/ref/sprotty-core/Function.overrideModelElement.md b/hugo/content/docs/ref/sprotty-core/Function.overrideModelElement.md
new file mode 100644
index 0000000..a4298eb
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.overrideModelElement.md
@@ -0,0 +1,40 @@
+
+[sprotty](../globals) / overrideModelElement
+
+# Function: overrideModelElement()
+
+> **overrideModelElement**(`context`, `type`, `modelConstr`, `viewConstr`, `features?`): `void`
+
+Defined in: [packages/sprotty/src/base/views/view.tsx:134](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/view.tsx#L134)
+
+## Parameters
+
+### context
+
+#### bind
+
+`Bind`
+
+#### isBound
+
+`IsBound`
+
+### type
+
+`string`
+
+### modelConstr
+
+() => [`SModelElementImpl`](../Class.SModelElementImpl)
+
+### viewConstr
+
+`ServiceIdentifier`\<[`IView`](../Interface.IView)\<\{ \}\>\>
+
+### features?
+
+[`CustomFeatures`](../Interface.CustomFeatures)
+
+## Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.overrideViewerOptions.md b/hugo/content/docs/ref/sprotty-core/Function.overrideViewerOptions.md
new file mode 100644
index 0000000..8777a72
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.overrideViewerOptions.md
@@ -0,0 +1,24 @@
+
+[sprotty](../globals) / overrideViewerOptions
+
+# Function: overrideViewerOptions()
+
+> **overrideViewerOptions**(`container`, `options`): [`ViewerOptions`](../Interface.ViewerOptions)
+
+Defined in: [packages/sprotty/src/base/views/viewer-options.ts:92](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer-options.ts#L92)
+
+Utility function to partially override the currently configured viewer options in a DI container.
+
+## Parameters
+
+### container
+
+`Container`
+
+### options
+
+`Partial`\<[`ViewerOptions`](../Interface.ViewerOptions)\>
+
+## Returns
+
+[`ViewerOptions`](../Interface.ViewerOptions)
diff --git a/hugo/content/docs/ref/sprotty-core/Function.registerModelElement.md b/hugo/content/docs/ref/sprotty-core/Function.registerModelElement.md
new file mode 100644
index 0000000..164a269
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.registerModelElement.md
@@ -0,0 +1,42 @@
+
+[sprotty](../globals) / registerModelElement
+
+# Function: registerModelElement()
+
+> **registerModelElement**(`context`, `type`, `constr`, `features?`, `isOverride?`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel-utils.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel-utils.ts#L26)
+
+Register a model element constructor for an element type.
+
+## Parameters
+
+### context
+
+#### bind
+
+`Bind`
+
+#### isBound
+
+`IsBound`
+
+### type
+
+`string`
+
+### constr
+
+() => [`SModelElementImpl`](../Class.SModelElementImpl)
+
+### features?
+
+[`CustomFeatures`](../Interface.CustomFeatures)
+
+### isOverride?
+
+`boolean`
+
+## Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.rgb.md b/hugo/content/docs/ref/sprotty-core/Function.rgb.md
new file mode 100644
index 0000000..9d15397
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.rgb.md
@@ -0,0 +1,26 @@
+
+[sprotty](../globals) / rgb
+
+# Function: rgb()
+
+> **rgb**(`red`, `green`, `blue`): [`RGBColor`](../Interface.RGBColor)
+
+Defined in: [packages/sprotty/src/utils/color.ts:23](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/color.ts#L23)
+
+## Parameters
+
+### red
+
+`number`
+
+### green
+
+`number`
+
+### blue
+
+`number`
+
+## Returns
+
+[`RGBColor`](../Interface.RGBColor)
diff --git a/hugo/content/docs/ref/sprotty-core/Function.runSweep.md b/hugo/content/docs/ref/sprotty-core/Function.runSweep.md
new file mode 100644
index 0000000..8f2aa74
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.runSweep.md
@@ -0,0 +1,34 @@
+
+[sprotty](../globals) / runSweep
+
+# Function: runSweep()
+
+> **runSweep**(`eventQueue`): [`Intersection`](../Interface.Intersection)[]
+
+Defined in: [packages/sprotty/src/features/edge-intersection/sweepline.ts:125](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-intersection/sweepline.ts#L125)
+
+Performs the main sweep algorithm on the specified event queue.
+
+An empty priority queue is created to store segments encountered.
+An item is removed from the priority queue if the vertex is the left endpoint
+of a segment, we test it against every other segment in the segment queue for
+intersections with any intersection recorded. We then add the vertex (and it's
+associated right endpoint) to the segment queue.
+If we encounter a right endpoint we remove the first item from the segment queue.
+
+Each pair of segments are only tested once. And only segments that overlap on the
+x plane are tested against each other.
+
+## Parameters
+
+### eventQueue
+
+`TinyQueue`\<[`SweepEvent`](../Class.SweepEvent)\>
+
+the event queue.
+
+## Returns
+
+[`Intersection`](../Interface.Intersection)[]
+
+the identified intersections.
diff --git a/hugo/content/docs/ref/sprotty-core/Function.setAttr.md b/hugo/content/docs/ref/sprotty-core/Function.setAttr.md
new file mode 100644
index 0000000..9d43cc6
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.setAttr.md
@@ -0,0 +1,26 @@
+
+[sprotty](../globals) / setAttr
+
+# Function: setAttr()
+
+> **setAttr**(`vnode`, `name`, `value`): `void`
+
+Defined in: [packages/sprotty/src/base/views/vnode-utils.ts:19](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/vnode-utils.ts#L19)
+
+## Parameters
+
+### vnode
+
+`VNode`
+
+### name
+
+`string`
+
+### value
+
+`any`
+
+## Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.setClass.md b/hugo/content/docs/ref/sprotty-core/Function.setClass.md
new file mode 100644
index 0000000..9307ae3
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.setClass.md
@@ -0,0 +1,26 @@
+
+[sprotty](../globals) / setClass
+
+# Function: setClass()
+
+> **setClass**(`vnode`, `name`, `value`): `void`
+
+Defined in: [packages/sprotty/src/base/views/vnode-utils.ts:23](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/vnode-utils.ts#L23)
+
+## Parameters
+
+### vnode
+
+`VNode`
+
+### name
+
+`string`
+
+### value
+
+`boolean`
+
+## Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.setNamespace.md b/hugo/content/docs/ref/sprotty-core/Function.setNamespace.md
new file mode 100644
index 0000000..b3c6b7e
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.setNamespace.md
@@ -0,0 +1,22 @@
+
+[sprotty](../globals) / setNamespace
+
+# Function: setNamespace()
+
+> **setNamespace**(`node`, `ns`): `void`
+
+Defined in: [packages/sprotty/src/base/views/vnode-utils.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/vnode-utils.ts#L27)
+
+## Parameters
+
+### node
+
+`VNode`
+
+### ns
+
+`string`
+
+## Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.toAnchor.md b/hugo/content/docs/ref/sprotty-core/Function.toAnchor.md
new file mode 100644
index 0000000..53fb491
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.toAnchor.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / toAnchor
+
+# Function: toAnchor()
+
+> **toAnchor**(`anchor`): [`Anchor`](../TypeAlias.Anchor)
+
+Defined in: [packages/sprotty/src/features/context-menu/context-menu-service.ts:43](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/context-menu/context-menu-service.ts#L43)
+
+## Parameters
+
+### anchor
+
+`HTMLElement` | \{ `x`: `number`; `y`: `number`; \}
+
+## Returns
+
+[`Anchor`](../TypeAlias.Anchor)
diff --git a/hugo/content/docs/ref/sprotty-core/Function.toSVG.md b/hugo/content/docs/ref/sprotty-core/Function.toSVG.md
new file mode 100644
index 0000000..898f117
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.toSVG.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / toSVG
+
+# Function: toSVG()
+
+> **toSVG**(`c`): `string`
+
+Defined in: [packages/sprotty/src/utils/color.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/color.ts#L31)
+
+## Parameters
+
+### c
+
+[`RGBColor`](../Interface.RGBColor)
+
+## Returns
+
+`string`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.transformToRootBounds.md b/hugo/content/docs/ref/sprotty-core/Function.transformToRootBounds.md
new file mode 100644
index 0000000..b28e3c8
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.transformToRootBounds.md
@@ -0,0 +1,24 @@
+
+[sprotty](../globals) / transformToRootBounds
+
+# Function: transformToRootBounds()
+
+> **transformToRootBounds**(`parent`, `bounds`): `Bounds`
+
+Defined in: [packages/sprotty/src/base/model/smodel-utils.ts:120](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel-utils.ts#L120)
+
+Transforms the local bounds all the way up to the root.
+
+## Parameters
+
+### parent
+
+[`SParentElementImpl`](../Class.SParentElementImpl)
+
+### bounds
+
+`Bounds`
+
+## Returns
+
+`Bounds`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.translateBounds.md b/hugo/content/docs/ref/sprotty-core/Function.translateBounds.md
new file mode 100644
index 0000000..1c5aeac
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.translateBounds.md
@@ -0,0 +1,29 @@
+
+[sprotty](../globals) / translateBounds
+
+# Function: translateBounds()
+
+> **translateBounds**(`bounds`, `source`, `target`): `Bounds`
+
+Defined in: [packages/sprotty/src/base/model/smodel-utils.ts:97](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel-utils.ts#L97)
+
+Translate some bounds from the coordinate system of the source element to the coordinate system
+of the target element.
+
+## Parameters
+
+### bounds
+
+`Bounds`
+
+### source
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+## Returns
+
+`Bounds`
diff --git a/hugo/content/docs/ref/sprotty-core/Function.translatePoint.md b/hugo/content/docs/ref/sprotty-core/Function.translatePoint.md
new file mode 100644
index 0000000..74cda03
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Function.translatePoint.md
@@ -0,0 +1,29 @@
+
+[sprotty](../globals) / translatePoint
+
+# Function: translatePoint()
+
+> **translatePoint**(`point`, `source`, `target`): `Point`
+
+Defined in: [packages/sprotty/src/base/model/smodel-utils.ts:69](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel-utils.ts#L69)
+
+Translate a point from the coordinate system of the source element to the coordinate system
+of the target element.
+
+## Parameters
+
+### point
+
+`Point`
+
+### source
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+## Returns
+
+`Point`
diff --git a/hugo/content/docs/ref/sprotty-core/InitializeCanvasBoundsAction.Function.create.md b/hugo/content/docs/ref/sprotty-core/InitializeCanvasBoundsAction.Function.create.md
new file mode 100644
index 0000000..45e7f95
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/InitializeCanvasBoundsAction.Function.create.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / [InitializeCanvasBoundsAction](../Namespace.InitializeCanvasBoundsAction) / create
+
+# Function: create()
+
+> **create**(`newCanvasBounds`): [`InitializeCanvasBoundsAction`](../Interface.InitializeCanvasBoundsAction)
+
+Defined in: [packages/sprotty/src/base/features/initialize-canvas.ts:83](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/features/initialize-canvas.ts#L83)
+
+## Parameters
+
+### newCanvasBounds
+
+`Bounds`
+
+## Returns
+
+[`InitializeCanvasBoundsAction`](../Interface.InitializeCanvasBoundsAction)
diff --git a/hugo/content/docs/ref/sprotty-core/InitializeCanvasBoundsAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-core/InitializeCanvasBoundsAction.Variable.KIND.md
new file mode 100644
index 0000000..3e4daf3
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/InitializeCanvasBoundsAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / [InitializeCanvasBoundsAction](../Namespace.InitializeCanvasBoundsAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"initializeCanvasBounds"` = `'initializeCanvasBounds'`
+
+Defined in: [packages/sprotty/src/base/features/initialize-canvas.ts:81](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/features/initialize-canvas.ts#L81)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.ActionHandlerRegistration.md b/hugo/content/docs/ref/sprotty-core/Interface.ActionHandlerRegistration.md
new file mode 100644
index 0000000..7c5a469
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.ActionHandlerRegistration.md
@@ -0,0 +1,10 @@
+
+### factory()
+
+> **factory**: () => [`IActionHandler`](../Interface.IActionHandler)
+
+Defined in: [packages/sprotty/src/base/actions/action-handler.ts:37](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/actions/action-handler.ts#L37)
+
+#### Returns
+
+[`IActionHandler`](../Interface.IActionHandler)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.AddRemoveBezierSegmentAction.md b/hugo/content/docs/ref/sprotty-core/Interface.AddRemoveBezierSegmentAction.md
new file mode 100644
index 0000000..83fa91b
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.AddRemoveBezierSegmentAction.md
@@ -0,0 +1,6 @@
+
+### targetId
+
+> **targetId**: `string`
+
+Defined in: [packages/sprotty/src/features/routing/bezier-edge-router.ts:335](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/bezier-edge-router.ts#L335)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.Alignable.md b/hugo/content/docs/ref/sprotty-core/Interface.Alignable.md
new file mode 100644
index 0000000..bf0fdcd
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.Alignable.md
@@ -0,0 +1,22 @@
+
+[sprotty](../globals) / Alignable
+
+# ~~Interface: Alignable~~
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:72](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L72)
+
+Feature extension interface for [alignFeature](../Variable.alignFeature).
+Used to adjust elements whose bounding box is not at the origin, e.g.
+labels, or pre-rendered SVG figures.
+
+## Deprecated
+
+use the definition from `sprotty-protocol` instead.
+
+## Properties
+
+### ~~alignment~~
+
+> **alignment**: `Point`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:73](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L73)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.CommandExecutionContext.md b/hugo/content/docs/ref/sprotty-core/Interface.CommandExecutionContext.md
new file mode 100644
index 0000000..8c91d61
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.CommandExecutionContext.md
@@ -0,0 +1,28 @@
+
+### modelFactory
+
+> **modelFactory**: [`IModelFactory`](../Interface.IModelFactory)
+
+Defined in: [packages/sprotty/src/base/commands/command.ts:199](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command.ts#L199)
+
+Used to turn sprotty external model elements (e.g. from the action) into internal model elements
+
+***
+
+### root
+
+> **root**: [`SModelRootImpl`](../Class.SModelRootImpl)
+
+Defined in: [packages/sprotty/src/base/commands/command.ts:196](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command.ts#L196)
+
+The current Sprotty model (i.e. the main model that is visible to the user)
+
+***
+
+### syncer
+
+> **syncer**: [`AnimationFrameSyncer`](../Class.AnimationFrameSyncer)
+
+Defined in: [packages/sprotty/src/base/commands/command.ts:211](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command.ts#L211)
+
+Provides the ticks for animations
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.CommandRegistration.md b/hugo/content/docs/ref/sprotty-core/Interface.CommandRegistration.md
new file mode 100644
index 0000000..98235d9
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.CommandRegistration.md
@@ -0,0 +1,6 @@
+
+### kind
+
+> **kind**: `string`
+
+Defined in: [packages/sprotty/src/base/commands/command-registration.ts:47](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-registration.ts#L47)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.CommandStackOptions.md b/hugo/content/docs/ref/sprotty-core/Interface.CommandStackOptions.md
new file mode 100644
index 0000000..4f4fdbc
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.CommandStackOptions.md
@@ -0,0 +1,12 @@
+
+### undoHistoryLimit
+
+> **undoHistoryLimit**: `number`
+
+Defined in: [packages/sprotty/src/base/commands/command-stack-options.ts:37](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack-options.ts#L37)
+
+The maximum number of commands that can be undone. Once the undo stack
+reaches this number, any additional command that is pushed will remove
+one from the bottom of the stack.
+
+If negative, there is no limit, which results in a memory leak.
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.CommandStackState.md b/hugo/content/docs/ref/sprotty-core/Interface.CommandStackState.md
new file mode 100644
index 0000000..1501eb5
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.CommandStackState.md
@@ -0,0 +1,6 @@
+
+### popup
+
+> **popup**: [`CommandResult`](../TypeAlias.CommandResult)
+
+Defined in: [packages/sprotty/src/base/commands/command-stack.ts:457](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack.ts#L457)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.CommitModelAction.md b/hugo/content/docs/ref/sprotty-core/Interface.CommitModelAction.md
new file mode 100644
index 0000000..4673baf
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.CommitModelAction.md
@@ -0,0 +1,29 @@
+
+[sprotty](../globals) / CommitModelAction
+
+# Interface: CommitModelAction
+
+Defined in: [packages/sprotty/src/model-source/commit-model.ts:33](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/commit-model.ts#L33)
+
+Commit the current SModel back to the model source.
+
+The SModel (AKA internal model) contains a lot of dirty/transitional state, such
+as intermediate move postions or handles. When a user interaction that spans multiple
+commands finishes, it fires a CommitModelAction to write the final changes back to
+the model source.
+
+## Extends
+
+- `Action`
+
+## Properties
+
+### kind
+
+> **kind**: `"commitModel"`
+
+Defined in: [packages/sprotty/src/model-source/commit-model.ts:34](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/commit-model.ts#L34)
+
+#### Overrides
+
+`Action.kind`
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.Connectable.md b/hugo/content/docs/ref/sprotty-core/Interface.Connectable.md
new file mode 100644
index 0000000..75e3d7c
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.Connectable.md
@@ -0,0 +1,30 @@
+
+[sprotty](../globals) / Connectable
+
+# Interface: Connectable
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:60](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L60)
+
+Feature extension interface for [connectableFeature](../Variable.connectableFeature).
+
+## Methods
+
+### canConnect()
+
+> **canConnect**(`routable`, `role`): `boolean`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:61](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L61)
+
+#### Parameters
+
+##### routable
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### role
+
+`"source"` | `"target"`
+
+#### Returns
+
+`boolean`
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.CreatingOnDrag.md b/hugo/content/docs/ref/sprotty-core/Interface.CreatingOnDrag.md
new file mode 100644
index 0000000..59fae24
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.CreatingOnDrag.md
@@ -0,0 +1,26 @@
+
+[sprotty](../globals) / CreatingOnDrag
+
+# Interface: CreatingOnDrag
+
+Defined in: [packages/sprotty/src/features/edit/create-on-drag.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/create-on-drag.ts#L25)
+
+Feature extension interface for [creatingOnDragFeature](../Variable.creatingOnDragFeature).
+
+## Methods
+
+### createAction()
+
+> **createAction**(`id`): `Action`
+
+Defined in: [packages/sprotty/src/features/edit/create-on-drag.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/create-on-drag.ts#L26)
+
+#### Parameters
+
+##### id
+
+`string`
+
+#### Returns
+
+`Action`
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.CustomFeatures.md b/hugo/content/docs/ref/sprotty-core/Interface.CustomFeatures.md
new file mode 100644
index 0000000..349f910
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.CustomFeatures.md
@@ -0,0 +1,6 @@
+
+### enable?
+
+> `optional` **enable**: `symbol`[]
+
+Defined in: [packages/sprotty/src/base/model/smodel-factory.ts:201](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel-factory.ts#L201)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.Decoration.md b/hugo/content/docs/ref/sprotty-core/Interface.Decoration.md
new file mode 100644
index 0000000..9ecd2ba
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.Decoration.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / Decoration
+
+# Interface: Decoration
+
+Defined in: [packages/sprotty/src/features/decoration/model.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/decoration/model.ts#L27)
+
+Feature extension interface for [decorationFeature](../Variable.decorationFeature).
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.Deletable.md b/hugo/content/docs/ref/sprotty-core/Interface.Deletable.md
new file mode 100644
index 0000000..46a0e22
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.Deletable.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / Deletable
+
+# Interface: Deletable
+
+Defined in: [packages/sprotty/src/features/edit/delete.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/delete.ts#L28)
+
+Feature extension interface for [deletableFeature](../Variable.deletableFeature).
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.EdgeLayoutable.md b/hugo/content/docs/ref/sprotty-core/Interface.EdgeLayoutable.md
new file mode 100644
index 0000000..da3ac39
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.EdgeLayoutable.md
@@ -0,0 +1,19 @@
+
+[sprotty](../globals) / EdgeLayoutable
+
+# ~~Interface: EdgeLayoutable~~
+
+Defined in: [packages/sprotty/src/features/edge-layout/model.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-layout/model.ts#L28)
+
+## Deprecated
+
+Use EdgeLayoutable from sprotty-protocol instead
+Feature extension interface for [edgeLayoutFeature](../Variable.edgeLayoutFeature).
+
+## Properties
+
+### ~~edgePlacement~~
+
+> **edgePlacement**: `EdgePlacement`
+
+Defined in: [packages/sprotty/src/features/edge-layout/model.ts:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-layout/model.ts#L29)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.EdgeMemento.md b/hugo/content/docs/ref/sprotty-core/Interface.EdgeMemento.md
new file mode 100644
index 0000000..c332c99
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.EdgeMemento.md
@@ -0,0 +1,6 @@
+
+### edge
+
+> **edge**: [`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+Defined in: [packages/sprotty/src/features/routing/routing.ts:57](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/routing.ts#L57)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.EdgeRoutingContainer.md b/hugo/content/docs/ref/sprotty-core/Interface.EdgeRoutingContainer.md
new file mode 100644
index 0000000..48f4a73
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.EdgeRoutingContainer.md
@@ -0,0 +1,16 @@
+
+[sprotty](../globals) / EdgeRoutingContainer
+
+# Interface: EdgeRoutingContainer
+
+Defined in: [packages/sprotty/src/features/routing/routing.ts:250](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/routing.ts#L250)
+
+Any object that contains a routing, such as an argument object passed to views for rendering.
+
+## Properties
+
+### edgeRouting
+
+> **edgeRouting**: [`EdgeRouting`](../Class.EdgeRouting)
+
+Defined in: [packages/sprotty/src/features/routing/routing.ts:251](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/routing.ts#L251)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.EdgeSnapshot.md b/hugo/content/docs/ref/sprotty-core/Interface.EdgeSnapshot.md
new file mode 100644
index 0000000..1594aa3
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.EdgeSnapshot.md
@@ -0,0 +1,22 @@
+
+### routingPoints
+
+> **routingPoints**: `Point`[]
+
+Defined in: [packages/sprotty/src/features/routing/routing.ts:49](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/routing.ts#L49)
+
+***
+
+### source?
+
+> `optional` **source**: [`SConnectableElementImpl`](../Class.SConnectableElementImpl)
+
+Defined in: [packages/sprotty/src/features/routing/routing.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/routing.ts#L52)
+
+***
+
+### target?
+
+> `optional` **target**: [`SConnectableElementImpl`](../Class.SConnectableElementImpl)
+
+Defined in: [packages/sprotty/src/features/routing/routing.ts:53](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/routing.ts#L53)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.EditLabelAction.md b/hugo/content/docs/ref/sprotty-core/Interface.EditLabelAction.md
new file mode 100644
index 0000000..24afa4a
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.EditLabelAction.md
@@ -0,0 +1,6 @@
+
+### labelId
+
+> **labelId**: `string`
+
+Defined in: [packages/sprotty/src/features/edit/edit-label.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label.ts#L31)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.EditLabelValidationResult.md b/hugo/content/docs/ref/sprotty-core/Interface.EditLabelValidationResult.md
new file mode 100644
index 0000000..0504599
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.EditLabelValidationResult.md
@@ -0,0 +1,6 @@
+
+### severity
+
+> `readonly` **severity**: [`Severity`](../TypeAlias.Severity)
+
+Defined in: [packages/sprotty/src/features/edit/edit-label.ts:98](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label.ts#L98)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.EditableLabel.md b/hugo/content/docs/ref/sprotty-core/Interface.EditableLabel.md
new file mode 100644
index 0000000..9124014
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.EditableLabel.md
@@ -0,0 +1,6 @@
+
+### text
+
+> **text**: `string`
+
+Defined in: [packages/sprotty/src/features/edit/model.ts:34](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/model.ts#L34)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.ElementMove.md b/hugo/content/docs/ref/sprotty-core/Interface.ElementMove.md
new file mode 100644
index 0000000..d16ae83
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.ElementMove.md
@@ -0,0 +1,6 @@
+
+### toPosition
+
+> **toPosition**: `Point`
+
+Defined in: [packages/sprotty/src/features/move/move.ts:48](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L48)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.Expandable.md b/hugo/content/docs/ref/sprotty-core/Interface.Expandable.md
new file mode 100644
index 0000000..aa15f29
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.Expandable.md
@@ -0,0 +1,21 @@
+
+[sprotty](../globals) / Expandable
+
+# ~~Interface: Expandable~~
+
+Defined in: [packages/sprotty/src/features/expand/model.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/expand/model.ts#L26)
+
+Feature extension interface for [expandFeature](../Variable.expandFeature).
+Model elements that implement this interface can be expanded/collapsed
+
+## Deprecated
+
+Use the definition from `sprotty-protocol` instead.
+
+## Properties
+
+### ~~expanded~~
+
+> **expanded**: `boolean`
+
+Defined in: [packages/sprotty/src/features/expand/model.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/expand/model.ts#L27)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.ExportSvgAction.md b/hugo/content/docs/ref/sprotty-core/Interface.ExportSvgAction.md
new file mode 100644
index 0000000..cf591a6
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.ExportSvgAction.md
@@ -0,0 +1,6 @@
+
+### ~~svg~~
+
+> **svg**: `string`
+
+Defined in: [packages/sprotty/src/features/export/svg-exporter.ts:33](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/export/svg-exporter.ts#L33)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.ExportSvgOptions.md b/hugo/content/docs/ref/sprotty-core/Interface.ExportSvgOptions.md
new file mode 100644
index 0000000..cf3a058
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.ExportSvgOptions.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / ExportSvgOptions
+
+# ~~Interface: ExportSvgOptions~~
+
+Defined in: [packages/sprotty/src/features/export/export.ts:45](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/export/export.ts#L45)
+
+## Deprecated
+
+Use the definition from `sprotty-protocol` instead.
+
+## Properties
+
+### ~~skipCopyStyles?~~
+
+> `optional` **skipCopyStyles**: `boolean`
+
+Defined in: [packages/sprotty/src/features/export/export.ts:46](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/export/export.ts#L46)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.Fadeable.md b/hugo/content/docs/ref/sprotty-core/Interface.Fadeable.md
new file mode 100644
index 0000000..9fd8438
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.Fadeable.md
@@ -0,0 +1,20 @@
+
+[sprotty](../globals) / Fadeable
+
+# ~~Interface: Fadeable~~
+
+Defined in: [packages/sprotty/src/features/fade/model.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/fade/model.ts#L25)
+
+Feature extension interface for [fadeFeature](../Variable.fadeFeature).
+
+## Deprecated
+
+Use the definition from `sprotty-protocol` instead.
+
+## Properties
+
+### ~~opacity~~
+
+> **opacity**: `number`
+
+Defined in: [packages/sprotty/src/features/fade/model.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/fade/model.ts#L26)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.FeatureSet.md b/hugo/content/docs/ref/sprotty-core/Interface.FeatureSet.md
new file mode 100644
index 0000000..600aa0b
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.FeatureSet.md
@@ -0,0 +1,24 @@
+
+[sprotty](../globals) / FeatureSet
+
+# Interface: FeatureSet
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:58](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L58)
+
+## Methods
+
+### has()
+
+> **has**(`feature`): `boolean`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:59](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L59)
+
+#### Parameters
+
+##### feature
+
+`symbol`
+
+#### Returns
+
+`boolean`
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.ForeignObjectElementSchema.md b/hugo/content/docs/ref/sprotty-core/Interface.ForeignObjectElementSchema.md
new file mode 100644
index 0000000..b7790af
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.ForeignObjectElementSchema.md
@@ -0,0 +1,56 @@
+
+### ~~id~~
+
+> **id**: `string`
+
+Defined in: packages/sprotty-protocol/lib/model.d.ts:23
+
+#### Inherited from
+
+[`ShapedPreRenderedElementSchema`](../Interface.ShapedPreRenderedElementSchema).[`id`](../Interface.ShapedPreRenderedElementSchema.md#id)
+
+***
+
+### ~~namespace~~
+
+> **namespace**: `string`
+
+Defined in: [packages/sprotty/src/lib/model.ts:199](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/model.ts#L199)
+
+The namespace to be assigned to the elements inside of the `foreignObject`.
+
+***
+
+### ~~position?~~
+
+> `optional` **position**: `Point`
+
+Defined in: [packages/sprotty/src/lib/model.ts:116](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/model.ts#L116)
+
+#### Inherited from
+
+[`ShapedPreRenderedElementSchema`](../Interface.ShapedPreRenderedElementSchema).[`position`](../Interface.ShapedPreRenderedElementSchema.md#position)
+
+***
+
+### ~~size?~~
+
+> `optional` **size**: `Dimension`
+
+Defined in: [packages/sprotty/src/lib/model.ts:117](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/model.ts#L117)
+
+#### Inherited from
+
+[`ShapedPreRenderedElementSchema`](../Interface.ShapedPreRenderedElementSchema).[`size`](../Interface.ShapedPreRenderedElementSchema.md#size)
+
+***
+
+### ~~type~~
+
+> **type**: `string`
+
+Defined in: packages/sprotty-protocol/lib/model.d.ts:22
+
+#### Inherited from
+
+[`ShapedPreRenderedElementSchema`](../Interface.ShapedPreRenderedElementSchema).[`type`](../Interface.ShapedPreRenderedElementSchema.md#type)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.HBoxLayoutOptions.md b/hugo/content/docs/ref/sprotty-core/Interface.HBoxLayoutOptions.md
new file mode 100644
index 0000000..0fd8bad
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.HBoxLayoutOptions.md
@@ -0,0 +1,78 @@
+
+### paddingBottom
+
+> **paddingBottom**: `number`
+
+Defined in: [packages/sprotty/src/features/bounds/layout-options.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/layout-options.ts#L28)
+
+#### Inherited from
+
+`AbstractLayoutOptions.paddingBottom`
+
+***
+
+### paddingFactor
+
+> **paddingFactor**: `number`
+
+Defined in: [packages/sprotty/src/features/bounds/layout-options.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/layout-options.ts#L31)
+
+#### Inherited from
+
+`AbstractLayoutOptions.paddingFactor`
+
+***
+
+### paddingLeft
+
+> **paddingLeft**: `number`
+
+Defined in: [packages/sprotty/src/features/bounds/layout-options.ts:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/layout-options.ts#L29)
+
+#### Inherited from
+
+`AbstractLayoutOptions.paddingLeft`
+
+***
+
+### paddingRight
+
+> **paddingRight**: `number`
+
+Defined in: [packages/sprotty/src/features/bounds/layout-options.ts:30](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/layout-options.ts#L30)
+
+#### Inherited from
+
+`AbstractLayoutOptions.paddingRight`
+
+***
+
+### paddingTop
+
+> **paddingTop**: `number`
+
+Defined in: [packages/sprotty/src/features/bounds/layout-options.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/layout-options.ts#L27)
+
+#### Inherited from
+
+`AbstractLayoutOptions.paddingTop`
+
+***
+
+### resizeContainer
+
+> **resizeContainer**: `boolean`
+
+Defined in: [packages/sprotty/src/features/bounds/layout-options.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/layout-options.ts#L26)
+
+#### Inherited from
+
+`AbstractLayoutOptions.resizeContainer`
+
+***
+
+### vAlign
+
+> **vAlign**: `VAlignment`
+
+Defined in: [packages/sprotty/src/features/bounds/hbox-layout.ts:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/hbox-layout.ts#L29)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.HoverState.md b/hugo/content/docs/ref/sprotty-core/Interface.HoverState.md
new file mode 100644
index 0000000..771c85c
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.HoverState.md
@@ -0,0 +1,6 @@
+
+### previousPopupElement
+
+> **previousPopupElement**: `undefined` \| [`SModelElementImpl`](../Class.SModelElementImpl)
+
+Defined in: [packages/sprotty/src/features/hover/hover.ts:95](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/hover.ts#L95)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.Hoverable.md b/hugo/content/docs/ref/sprotty-core/Interface.Hoverable.md
new file mode 100644
index 0000000..01beb70
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.Hoverable.md
@@ -0,0 +1,20 @@
+
+[sprotty](../globals) / Hoverable
+
+# ~~Interface: Hoverable~~
+
+Defined in: [packages/sprotty/src/features/hover/model.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/model.ts#L25)
+
+Feature extension interface for [hoverFeedbackFeature](../Variable.hoverFeedbackFeature).
+
+## Deprecated
+
+Use the definition from `sprotty-protocol` instead.
+
+## Properties
+
+### ~~hoverFeedback~~
+
+> **hoverFeedback**: `boolean`
+
+Defined in: [packages/sprotty/src/features/hover/model.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/model.ts#L26)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.HtmlRootSchema.md b/hugo/content/docs/ref/sprotty-core/Interface.HtmlRootSchema.md
new file mode 100644
index 0000000..9fd9545
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.HtmlRootSchema.md
@@ -0,0 +1,46 @@
+
+### ~~cssClasses?~~
+
+> `optional` **cssClasses**: `string`[]
+
+Defined in: packages/sprotty-protocol/lib/model.d.ts:25
+
+#### Inherited from
+
+`SModelRoot.cssClasses`
+
+***
+
+### ~~id~~
+
+> **id**: `string`
+
+Defined in: packages/sprotty-protocol/lib/model.d.ts:23
+
+#### Inherited from
+
+`SModelRoot.id`
+
+***
+
+### ~~revision?~~
+
+> `optional` **revision**: `number`
+
+Defined in: packages/sprotty-protocol/lib/model.d.ts:32
+
+#### Inherited from
+
+`SModelRoot.revision`
+
+***
+
+### ~~type~~
+
+> **type**: `string`
+
+Defined in: packages/sprotty-protocol/lib/model.d.ts:22
+
+#### Inherited from
+
+`SModelRoot.type`
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.IActionDispatcher.md b/hugo/content/docs/ref/sprotty-core/Interface.IActionDispatcher.md
new file mode 100644
index 0000000..085742c
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.IActionDispatcher.md
@@ -0,0 +1,22 @@
+
+### request()
+
+> **request**\<`Res`\>(`action`): `Promise`\<`Res`\>
+
+Defined in: [packages/sprotty/src/base/actions/action-dispatcher.ts:34](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/actions/action-dispatcher.ts#L34)
+
+#### Type Parameters
+
+##### Res
+
+`Res` *extends* `ResponseAction`
+
+#### Parameters
+
+##### action
+
+`RequestAction`\<`Res`\>
+
+#### Returns
+
+`Promise`\<`Res`\>
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.IActionHandler.md b/hugo/content/docs/ref/sprotty-core/Interface.IActionHandler.md
new file mode 100644
index 0000000..35fbe85
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.IActionHandler.md
@@ -0,0 +1,27 @@
+
+[sprotty](../globals) / IActionHandler
+
+# Interface: IActionHandler
+
+Defined in: [packages/sprotty/src/base/actions/action-handler.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/actions/action-handler.ts#L28)
+
+An action handler accepts an action and reacts to it by returning either a command to be
+executed, or another action to be dispatched.
+
+## Methods
+
+### handle()
+
+> **handle**(`action`): `void` \| `Action` \| [`ICommand`](../Interface.ICommand)
+
+Defined in: [packages/sprotty/src/base/actions/action-handler.ts:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/actions/action-handler.ts#L29)
+
+#### Parameters
+
+##### action
+
+`Action`
+
+#### Returns
+
+`void` \| `Action` \| [`ICommand`](../Interface.ICommand)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.IActionHandlerInitializer.md b/hugo/content/docs/ref/sprotty-core/Interface.IActionHandlerInitializer.md
new file mode 100644
index 0000000..29b577c
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.IActionHandlerInitializer.md
@@ -0,0 +1,27 @@
+
+[sprotty](../globals) / IActionHandlerInitializer
+
+# Interface: IActionHandlerInitializer
+
+Defined in: [packages/sprotty/src/base/actions/action-handler.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/actions/action-handler.ts#L44)
+
+Initializes and registers an action handler for multiple action kinds. In most cases
+`ActionHandlerRegistration` should be used instead.
+
+## Methods
+
+### initialize()
+
+> **initialize**(`registry`): `void`
+
+Defined in: [packages/sprotty/src/base/actions/action-handler.ts:45](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/actions/action-handler.ts#L45)
+
+#### Parameters
+
+##### registry
+
+[`ActionHandlerRegistry`](../Class.ActionHandlerRegistry)
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.IAnchorComputer.md b/hugo/content/docs/ref/sprotty-core/Interface.IAnchorComputer.md
new file mode 100644
index 0000000..c9b0f46
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.IAnchorComputer.md
@@ -0,0 +1,55 @@
+
+[sprotty](../globals) / IAnchorComputer
+
+# Interface: IAnchorComputer
+
+Defined in: [packages/sprotty/src/features/routing/anchor.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/anchor.ts#L27)
+
+## Properties
+
+### kind
+
+> `readonly` **kind**: `string`
+
+Defined in: [packages/sprotty/src/features/routing/anchor.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/anchor.ts#L28)
+
+## Methods
+
+### getAnchor()
+
+> **getAnchor**(`connectable`, `referencePoint`, `offset?`): `Point`
+
+Defined in: [packages/sprotty/src/features/routing/anchor.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/anchor.ts#L44)
+
+Compute an anchor position for routing an edge towards this element.
+
+The default implementation returns the element's center point. If edges should be connected
+differently, e.g. to some point on the boundary of the element's view, the according computation
+should be implemented in a subclass by overriding this method.
+
+#### Parameters
+
+##### connectable
+
+[`SConnectableElementImpl`](../Class.SConnectableElementImpl)
+
+The node or port an edge should be connected to.
+
+##### referencePoint
+
+`Point`
+
+The point from which the edge is routed towards this elemet, in the same
+ coordintae system as the connectable.
+
+##### offset?
+
+`number`
+
+An optional offset value to be considered in the anchor computation;
+ positive values should shift the anchor away from this element, negative values
+ should shift the anchor more to the inside. Use this to adapt ot arrow heads.
+
+#### Returns
+
+`Point`
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.IButtonHandler.md b/hugo/content/docs/ref/sprotty-core/Interface.IButtonHandler.md
new file mode 100644
index 0000000..ce629bd
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.IButtonHandler.md
@@ -0,0 +1,24 @@
+
+[sprotty](../globals) / IButtonHandler
+
+# Interface: IButtonHandler
+
+Defined in: [packages/sprotty/src/features/button/button-handler.ts:24](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/button/button-handler.ts#L24)
+
+## Methods
+
+### buttonPressed()
+
+> **buttonPressed**(`button`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/features/button/button-handler.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/button/button-handler.ts#L25)
+
+#### Parameters
+
+##### button
+
+[`SButtonImpl`](../Class.SButtonImpl)
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.IButtonHandlerRegistration.md b/hugo/content/docs/ref/sprotty-core/Interface.IButtonHandlerRegistration.md
new file mode 100644
index 0000000..242654d
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.IButtonHandlerRegistration.md
@@ -0,0 +1,6 @@
+
+### TYPE
+
+> **TYPE**: `string`
+
+Defined in: [packages/sprotty/src/features/button/button-handler.ts:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/button/button-handler.ts#L29)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.ICommand.md b/hugo/content/docs/ref/sprotty-core/Interface.ICommand.md
new file mode 100644
index 0000000..8b3f5a7
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.ICommand.md
@@ -0,0 +1,16 @@
+
+### undo()
+
+> **undo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/base/commands/command.ts:51](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command.ts#L51)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.ICommandConstructor.md b/hugo/content/docs/ref/sprotty-core/Interface.ICommandConstructor.md
new file mode 100644
index 0000000..8078290
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.ICommandConstructor.md
@@ -0,0 +1,42 @@
+
+[sprotty](../globals) / ICommandConstructor
+
+# Interface: ICommandConstructor\
+
+Defined in: [packages/sprotty/src/base/commands/command-registration.ts:51](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-registration.ts#L51)
+
+## Type Parameters
+
+### T
+
+`T` *extends* `Action`
+
+## Constructors
+
+### Constructor
+
+> **new ICommandConstructor**(`a`, ...`args`): [`ICommand`](../Interface.ICommand)
+
+Defined in: [packages/sprotty/src/base/commands/command-registration.ts:53](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-registration.ts#L53)
+
+#### Parameters
+
+##### a
+
+`T`
+
+##### args
+
+...`any`[]
+
+#### Returns
+
+[`ICommand`](../Interface.ICommand)
+
+## Properties
+
+### KIND
+
+> **KIND**: `string`
+
+Defined in: [packages/sprotty/src/base/commands/command-registration.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-registration.ts#L52)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.ICommandPaletteActionProvider.md b/hugo/content/docs/ref/sprotty-core/Interface.ICommandPaletteActionProvider.md
new file mode 100644
index 0000000..17ef29a
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.ICommandPaletteActionProvider.md
@@ -0,0 +1,36 @@
+
+[sprotty](../globals) / ICommandPaletteActionProvider
+
+# Interface: ICommandPaletteActionProvider
+
+Defined in: [packages/sprotty/src/features/command-palette/action-providers.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/action-providers.ts#L27)
+
+## Methods
+
+### getActions()
+
+> **getActions**(`root`, `text`, `lastMousePosition?`, `index?`): `Promise`\<[`LabeledAction`](../Class.LabeledAction)[]\>
+
+Defined in: [packages/sprotty/src/features/command-palette/action-providers.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/action-providers.ts#L28)
+
+#### Parameters
+
+##### root
+
+`Readonly`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+##### text
+
+`string`
+
+##### lastMousePosition?
+
+`Point`
+
+##### index?
+
+`number`
+
+#### Returns
+
+`Promise`\<[`LabeledAction`](../Class.LabeledAction)[]\>
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.ICommandStack.md b/hugo/content/docs/ref/sprotty-core/Interface.ICommandStack.md
new file mode 100644
index 0000000..1c09f2a
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.ICommandStack.md
@@ -0,0 +1,14 @@
+
+### undo()
+
+> **undo**(): `Promise`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+Defined in: [packages/sprotty/src/base/commands/command-stack.ts:61](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack.ts#L61)
+
+Takes the topmost command from the undo stack, undoes its
+changes and pushes it ot the redo stack. Returns a Promise for
+the changed model.
+
+#### Returns
+
+`Promise`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.IContextMenuItemProvider.md b/hugo/content/docs/ref/sprotty-core/Interface.IContextMenuItemProvider.md
new file mode 100644
index 0000000..6d7cb87
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.IContextMenuItemProvider.md
@@ -0,0 +1,28 @@
+
+[sprotty](../globals) / IContextMenuItemProvider
+
+# Interface: IContextMenuItemProvider
+
+Defined in: [packages/sprotty/src/features/context-menu/menu-providers.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/context-menu/menu-providers.ts#L27)
+
+## Methods
+
+### getItems()
+
+> **getItems**(`root`, `lastMousePosition?`): `Promise`\<[`LabeledAction`](../Class.LabeledAction)[]\>
+
+Defined in: [packages/sprotty/src/features/context-menu/menu-providers.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/context-menu/menu-providers.ts#L28)
+
+#### Parameters
+
+##### root
+
+`Readonly`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+##### lastMousePosition?
+
+`Point`
+
+#### Returns
+
+`Promise`\<[`LabeledAction`](../Class.LabeledAction)[]\>
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.IContextMenuService.md b/hugo/content/docs/ref/sprotty-core/Interface.IContextMenuService.md
new file mode 100644
index 0000000..28de719
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.IContextMenuService.md
@@ -0,0 +1,32 @@
+
+[sprotty](../globals) / IContextMenuService
+
+# Interface: IContextMenuService
+
+Defined in: [packages/sprotty/src/features/context-menu/context-menu-service.ts:47](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/context-menu/context-menu-service.ts#L47)
+
+## Methods
+
+### show()
+
+> **show**(`items`, `anchor`, `onHide?`): `void`
+
+Defined in: [packages/sprotty/src/features/context-menu/context-menu-service.ts:48](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/context-menu/context-menu-service.ts#L48)
+
+#### Parameters
+
+##### items
+
+[`MenuItem`](../Interface.MenuItem)[]
+
+##### anchor
+
+[`Anchor`](../TypeAlias.Anchor)
+
+##### onHide?
+
+() => `void`
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.IDiagramLocker.md b/hugo/content/docs/ref/sprotty-core/Interface.IDiagramLocker.md
new file mode 100644
index 0000000..df9ea46
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.IDiagramLocker.md
@@ -0,0 +1,30 @@
+
+[sprotty](../globals) / IDiagramLocker
+
+# Interface: IDiagramLocker
+
+Defined in: [packages/sprotty/src/base/actions/diagram-locker.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/actions/diagram-locker.ts#L27)
+
+Allows to lock the diagram by preventing certain actions from being
+dispatched.
+
+This could for example be used to prevent the diagram from being modified
+when the underlying model is broken or the server is unavailable.
+
+## Methods
+
+### isAllowed()
+
+> **isAllowed**(`action`): `boolean`
+
+Defined in: [packages/sprotty/src/base/actions/diagram-locker.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/actions/diagram-locker.ts#L28)
+
+#### Parameters
+
+##### action
+
+`Action`
+
+#### Returns
+
+`boolean`
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.IEdgeRoutePostprocessor.md b/hugo/content/docs/ref/sprotty-core/Interface.IEdgeRoutePostprocessor.md
new file mode 100644
index 0000000..afa0b63
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.IEdgeRoutePostprocessor.md
@@ -0,0 +1,30 @@
+
+[sprotty](../globals) / IEdgeRoutePostprocessor
+
+# Interface: IEdgeRoutePostprocessor
+
+Defined in: [packages/sprotty/src/features/routing/routing.ts:150](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/routing.ts#L150)
+
+A postprocessor that is applied to all routes, once they are computed.
+
+## Methods
+
+### apply()
+
+> **apply**(`routing`, `parent`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/routing.ts:151](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/routing.ts#L151)
+
+#### Parameters
+
+##### routing
+
+[`EdgeRouting`](../Class.EdgeRouting)
+
+##### parent
+
+[`SParentElementImpl`](../Class.SParentElementImpl)
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.IEdgeRouter.md b/hugo/content/docs/ref/sprotty-core/Interface.IEdgeRouter.md
new file mode 100644
index 0000000..5326ef5
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.IEdgeRouter.md
@@ -0,0 +1,205 @@
+
+### cleanupRoutingPoints()
+
+> **cleanupRoutingPoints**(`edge`, `routingPoints`, `updateHandles`, `addRoutingPoints`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/routing.ts:123](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/routing.ts#L123)
+
+Remove/add points in order to keep routing constraints consistent, or reset RPs on reconnect.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### routingPoints
+
+`Point`[]
+
+##### updateHandles
+
+`boolean`
+
+##### addRoutingPoints
+
+`boolean`
+
+#### Returns
+
+`void`
+
+***
+
+### createRoutingHandles()
+
+> **createRoutingHandles**(`edge`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/routing.ts:108](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/routing.ts#L108)
+
+Creates the routing handles for the given target.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+#### Returns
+
+`void`
+
+***
+
+### derivativeAt()
+
+> **derivativeAt**(`edge`, `t`): `undefined` \| `Point`
+
+Defined in: [packages/sprotty/src/features/routing/routing.ts:98](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/routing.ts#L98)
+
+Calculates the derivative at a point on the edge.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### t
+
+`number`
+
+a value between 0 (sourceAnchor) and 1 (targetAnchor)
+
+#### Returns
+
+`undefined` \| `Point`
+
+the point or undefined if t is out of bounds or it cannot be computed
+
+***
+
+### findOrthogonalIntersection()
+
+> **findOrthogonalIntersection**(`edge`, `point`): `undefined` \| \{ `derivative`: `Point`; `point`: `Point`; \}
+
+Defined in: [packages/sprotty/src/features/routing/routing.ts:82](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/routing.ts#L82)
+
+Finds the orthogonal intersection point between an edge and a given point in 2D space.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+The edge to find the intersection point on.
+
+##### point
+
+`Point`
+
+The point to find the intersection with.
+
+#### Returns
+
+`undefined` \| \{ `derivative`: `Point`; `point`: `Point`; \}
+
+The intersection point and its derivative on the respective edge segment.
+
+***
+
+### getHandlePosition()
+
+> **getHandlePosition**(`edge`, `route`, `handle`): `undefined` \| `Point`
+
+Defined in: [packages/sprotty/src/features/routing/routing.ts:103](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/routing.ts#L103)
+
+Retuns the position of the given handle based on the routing points of the edge.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### route
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+##### handle
+
+[`SRoutingHandleImpl`](../Class.SRoutingHandleImpl)
+
+#### Returns
+
+`undefined` \| `Point`
+
+***
+
+### pointAt()
+
+> **pointAt**(`edge`, `t`): `undefined` \| `Point`
+
+Defined in: [packages/sprotty/src/features/routing/routing.ts:90](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/routing.ts#L90)
+
+Calculates a point on the edge
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### t
+
+`number`
+
+a value between 0 (sourceAnchor) and 1 (targetAnchor)
+
+#### Returns
+
+`undefined` \| `Point`
+
+the point or undefined if t is out of bounds or it cannot be computed
+
+***
+
+### route()
+
+> **route**(`edge`): [`RoutedPoint`](../Interface.RoutedPoint)[]
+
+Defined in: [packages/sprotty/src/features/routing/routing.ts:73](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/routing.ts#L73)
+
+Calculates the route of the given edge.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+#### Returns
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+***
+
+### takeSnapshot()
+
+> **takeSnapshot**(`edge`): [`EdgeSnapshot`](../Interface.EdgeSnapshot)
+
+Defined in: [packages/sprotty/src/features/routing/routing.ts:128](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/routing.ts#L128)
+
+Creates a snapshot of the given edge, storing all the data needed to restore it to
+its current state.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+#### Returns
+
+[`EdgeSnapshot`](../Interface.EdgeSnapshot)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.IEditLabelValidationDecorator.md b/hugo/content/docs/ref/sprotty-core/Interface.IEditLabelValidationDecorator.md
new file mode 100644
index 0000000..22aed60
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.IEditLabelValidationDecorator.md
@@ -0,0 +1,16 @@
+
+### dispose()
+
+> **dispose**(`input`): `void`
+
+Defined in: [packages/sprotty/src/features/edit/edit-label-ui.ts:47](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label-ui.ts#L47)
+
+#### Parameters
+
+##### input
+
+`HTMLInputElement` | `HTMLTextAreaElement`
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.IEditLabelValidator.md b/hugo/content/docs/ref/sprotty-core/Interface.IEditLabelValidator.md
new file mode 100644
index 0000000..d779383
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.IEditLabelValidator.md
@@ -0,0 +1,28 @@
+
+[sprotty](../globals) / IEditLabelValidator
+
+# Interface: IEditLabelValidator
+
+Defined in: [packages/sprotty/src/features/edit/edit-label.ts:93](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label.ts#L93)
+
+## Methods
+
+### validate()
+
+> **validate**(`value`, `label`): `Promise`\<[`EditLabelValidationResult`](../Interface.EditLabelValidationResult)\>
+
+Defined in: [packages/sprotty/src/features/edit/edit-label.ts:94](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label.ts#L94)
+
+#### Parameters
+
+##### value
+
+`string`
+
+##### label
+
+[`EditableLabel`](../Interface.EditableLabel) & [`SModelElementImpl`](../Class.SModelElementImpl)
+
+#### Returns
+
+`Promise`\<[`EditLabelValidationResult`](../Interface.EditLabelValidationResult)\>
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.ILayout.md b/hugo/content/docs/ref/sprotty-core/Interface.ILayout.md
new file mode 100644
index 0000000..b9d4078
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.ILayout.md
@@ -0,0 +1,28 @@
+
+[sprotty](../globals) / ILayout
+
+# Interface: ILayout
+
+Defined in: [packages/sprotty/src/features/bounds/layout.ts:116](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/layout.ts#L116)
+
+## Methods
+
+### layout()
+
+> **layout**(`container`, `layouter`): `void`
+
+Defined in: [packages/sprotty/src/features/bounds/layout.ts:117](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/layout.ts#L117)
+
+#### Parameters
+
+##### container
+
+[`SParentElementImpl`](../Class.SParentElementImpl) & [`InternalLayoutContainer`](../Interface.InternalLayoutContainer)
+
+##### layouter
+
+[`StatefulLayouter`](../Class.StatefulLayouter)
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.ILogger.md b/hugo/content/docs/ref/sprotty-core/Interface.ILogger.md
new file mode 100644
index 0000000..c9ab496
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.ILogger.md
@@ -0,0 +1,24 @@
+
+### warn()
+
+> **warn**(`thisArg`, `message`, ...`params`): `void`
+
+Defined in: [packages/sprotty/src/utils/logging.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/logging.ts#L25)
+
+#### Parameters
+
+##### thisArg
+
+`any`
+
+##### message
+
+`string`
+
+##### params
+
+...`any`[]
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.IModelFactory.md b/hugo/content/docs/ref/sprotty-core/Interface.IModelFactory.md
new file mode 100644
index 0000000..2b7581a
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.IModelFactory.md
@@ -0,0 +1,16 @@
+
+### createSchema()
+
+> **createSchema**(`element`): `SModelElement`
+
+Defined in: [packages/sprotty/src/base/model/smodel-factory.ts:81](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel-factory.ts#L81)
+
+#### Parameters
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+#### Returns
+
+`SModelElement`
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.IModelIndex.md b/hugo/content/docs/ref/sprotty-core/Interface.IModelIndex.md
new file mode 100644
index 0000000..b7275a7
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.IModelIndex.md
@@ -0,0 +1,16 @@
+
+### remove()
+
+> **remove**(`element`): `void`
+
+Defined in: [packages/sprotty/src/base/model/smodel.ts:196](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel.ts#L196)
+
+#### Parameters
+
+##### element
+
+`SModelElement`
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.IMultipleEdgesRouter.md b/hugo/content/docs/ref/sprotty-core/Interface.IMultipleEdgesRouter.md
new file mode 100644
index 0000000..d63bf4b
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.IMultipleEdgesRouter.md
@@ -0,0 +1,259 @@
+
+### cleanupRoutingPoints()
+
+> **cleanupRoutingPoints**(`edge`, `routingPoints`, `updateHandles`, `addRoutingPoints`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/routing.ts:123](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/routing.ts#L123)
+
+Remove/add points in order to keep routing constraints consistent, or reset RPs on reconnect.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### routingPoints
+
+`Point`[]
+
+##### updateHandles
+
+`boolean`
+
+##### addRoutingPoints
+
+`boolean`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`IEdgeRouter`](../Interface.IEdgeRouter).[`cleanupRoutingPoints`](../Interface.IEdgeRouter.md#cleanuproutingpoints)
+
+***
+
+### createRoutingHandles()
+
+> **createRoutingHandles**(`edge`): `void`
+
+Defined in: [packages/sprotty/src/features/routing/routing.ts:108](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/routing.ts#L108)
+
+Creates the routing handles for the given target.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`IEdgeRouter`](../Interface.IEdgeRouter).[`createRoutingHandles`](../Interface.IEdgeRouter.md#createroutinghandles)
+
+***
+
+### derivativeAt()
+
+> **derivativeAt**(`edge`, `t`): `undefined` \| `Point`
+
+Defined in: [packages/sprotty/src/features/routing/routing.ts:98](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/routing.ts#L98)
+
+Calculates the derivative at a point on the edge.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### t
+
+`number`
+
+a value between 0 (sourceAnchor) and 1 (targetAnchor)
+
+#### Returns
+
+`undefined` \| `Point`
+
+the point or undefined if t is out of bounds or it cannot be computed
+
+#### Inherited from
+
+[`IEdgeRouter`](../Interface.IEdgeRouter).[`derivativeAt`](../Interface.IEdgeRouter.md#derivativeat)
+
+***
+
+### findOrthogonalIntersection()
+
+> **findOrthogonalIntersection**(`edge`, `point`): `undefined` \| \{ `derivative`: `Point`; `point`: `Point`; \}
+
+Defined in: [packages/sprotty/src/features/routing/routing.ts:82](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/routing.ts#L82)
+
+Finds the orthogonal intersection point between an edge and a given point in 2D space.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+The edge to find the intersection point on.
+
+##### point
+
+`Point`
+
+The point to find the intersection with.
+
+#### Returns
+
+`undefined` \| \{ `derivative`: `Point`; `point`: `Point`; \}
+
+The intersection point and its derivative on the respective edge segment.
+
+#### Inherited from
+
+[`IEdgeRouter`](../Interface.IEdgeRouter).[`findOrthogonalIntersection`](../Interface.IEdgeRouter.md#findorthogonalintersection)
+
+***
+
+### getHandlePosition()
+
+> **getHandlePosition**(`edge`, `route`, `handle`): `undefined` \| `Point`
+
+Defined in: [packages/sprotty/src/features/routing/routing.ts:103](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/routing.ts#L103)
+
+Retuns the position of the given handle based on the routing points of the edge.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### route
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+##### handle
+
+[`SRoutingHandleImpl`](../Class.SRoutingHandleImpl)
+
+#### Returns
+
+`undefined` \| `Point`
+
+#### Inherited from
+
+[`IEdgeRouter`](../Interface.IEdgeRouter).[`getHandlePosition`](../Interface.IEdgeRouter.md#gethandleposition)
+
+***
+
+### pointAt()
+
+> **pointAt**(`edge`, `t`): `undefined` \| `Point`
+
+Defined in: [packages/sprotty/src/features/routing/routing.ts:90](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/routing.ts#L90)
+
+Calculates a point on the edge
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+##### t
+
+`number`
+
+a value between 0 (sourceAnchor) and 1 (targetAnchor)
+
+#### Returns
+
+`undefined` \| `Point`
+
+the point or undefined if t is out of bounds or it cannot be computed
+
+#### Inherited from
+
+[`IEdgeRouter`](../Interface.IEdgeRouter).[`pointAt`](../Interface.IEdgeRouter.md#pointat)
+
+***
+
+### route()
+
+> **route**(`edge`): [`RoutedPoint`](../Interface.RoutedPoint)[]
+
+Defined in: [packages/sprotty/src/features/routing/routing.ts:73](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/routing.ts#L73)
+
+Calculates the route of the given edge.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+#### Returns
+
+[`RoutedPoint`](../Interface.RoutedPoint)[]
+
+#### Inherited from
+
+[`IEdgeRouter`](../Interface.IEdgeRouter).[`route`](../Interface.IEdgeRouter.md#route)
+
+***
+
+### routeAll()
+
+> **routeAll**(`edges`, `parent`): [`EdgeRouting`](../Class.EdgeRouting)
+
+Defined in: [packages/sprotty/src/features/routing/routing.ts:137](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/routing.ts#L137)
+
+#### Parameters
+
+##### edges
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)[]
+
+##### parent
+
+`Readonly`\<[`SParentElementImpl`](../Class.SParentElementImpl)\>
+
+#### Returns
+
+[`EdgeRouting`](../Class.EdgeRouting)
+
+***
+
+### takeSnapshot()
+
+> **takeSnapshot**(`edge`): [`EdgeSnapshot`](../Interface.EdgeSnapshot)
+
+Defined in: [packages/sprotty/src/features/routing/routing.ts:128](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/routing.ts#L128)
+
+Creates a snapshot of the given edge, storing all the data needed to restore it to
+its current state.
+
+#### Parameters
+
+##### edge
+
+[`SRoutableElementImpl`](../Class.SRoutableElementImpl)
+
+#### Returns
+
+[`EdgeSnapshot`](../Interface.EdgeSnapshot)
+
+#### Inherited from
+
+[`IEdgeRouter`](../Interface.IEdgeRouter).[`takeSnapshot`](../Interface.IEdgeRouter.md#takesnapshot)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.IPointerListener.md b/hugo/content/docs/ref/sprotty-core/Interface.IPointerListener.md
new file mode 100644
index 0000000..03edf13
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.IPointerListener.md
@@ -0,0 +1,152 @@
+
+### pointerDown()
+
+> **pointerDown**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/pointer-tool.ts:122](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/pointer-tool.ts#L122)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`PointerEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+***
+
+### pointerEnter()
+
+> **pointerEnter**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/pointer-tool.ts:120](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/pointer-tool.ts#L120)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`PointerEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+***
+
+### pointerLeave()
+
+> **pointerLeave**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/pointer-tool.ts:132](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/pointer-tool.ts#L132)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`PointerEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+***
+
+### pointerMove()
+
+> **pointerMove**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/pointer-tool.ts:124](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/pointer-tool.ts#L124)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`PointerEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+***
+
+### pointerOut()
+
+> **pointerOut**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/pointer-tool.ts:130](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/pointer-tool.ts#L130)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`PointerEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+***
+
+### pointerOver()
+
+> **pointerOver**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/pointer-tool.ts:118](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/pointer-tool.ts#L118)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`PointerEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
+
+***
+
+### pointerUp()
+
+> **pointerUp**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/pointer-tool.ts:126](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/pointer-tool.ts#L126)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`PointerEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.IPopupModelProvider.md b/hugo/content/docs/ref/sprotty-core/Interface.IPopupModelProvider.md
new file mode 100644
index 0000000..c5ac6c9
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.IPopupModelProvider.md
@@ -0,0 +1,28 @@
+
+[sprotty](../globals) / IPopupModelProvider
+
+# Interface: IPopupModelProvider
+
+Defined in: [packages/sprotty/src/model-source/local-model-source.ts:35](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/local-model-source.ts#L35)
+
+## Methods
+
+### getPopupModel()
+
+> **getPopupModel**(`request`, `element?`): `undefined` \| `SModelRoot`
+
+Defined in: [packages/sprotty/src/model-source/local-model-source.ts:36](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/local-model-source.ts#L36)
+
+#### Parameters
+
+##### request
+
+`RequestPopupModelAction`
+
+##### element?
+
+`SModelElement`
+
+#### Returns
+
+`undefined` \| `SModelRoot`
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.ISnapper.md b/hugo/content/docs/ref/sprotty-core/Interface.ISnapper.md
new file mode 100644
index 0000000..156aa8b
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.ISnapper.md
@@ -0,0 +1,34 @@
+
+[sprotty](../globals) / ISnapper
+
+# Interface: ISnapper
+
+Defined in: [packages/sprotty/src/features/move/snap.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/snap.ts#L25)
+
+A snapper helps to align nodes and routing handles.
+
+## Methods
+
+### snap()
+
+> **snap**(`position`, `element`): `Point`
+
+Defined in: [packages/sprotty/src/features/move/snap.ts:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/snap.ts#L29)
+
+#### Parameters
+
+##### position
+
+`Point`
+
+##### element
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+#### Returns
+
+`Point`
+
+#### Retruns
+
+the closest snapped position that for the `element` located at `position`
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.IStoppableCommand.md b/hugo/content/docs/ref/sprotty-core/Interface.IStoppableCommand.md
new file mode 100644
index 0000000..b00e273
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.IStoppableCommand.md
@@ -0,0 +1,32 @@
+
+### stopExecution()
+
+> **stopExecution**(): `void`
+
+Defined in: [packages/sprotty/src/base/commands/command.ts:60](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command.ts#L60)
+
+#### Returns
+
+`void`
+
+***
+
+### undo()
+
+> **undo**(`context`): [`CommandReturn`](../TypeAlias.CommandReturn)
+
+Defined in: [packages/sprotty/src/base/commands/command.ts:51](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command.ts#L51)
+
+#### Parameters
+
+##### context
+
+[`CommandExecutionContext`](../Interface.CommandExecutionContext)
+
+#### Returns
+
+[`CommandReturn`](../TypeAlias.CommandReturn)
+
+#### Inherited from
+
+[`ICommand`](../Interface.ICommand).[`undo`](../Interface.ICommand.md#undo)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.ISvgExportPostProcessor.md b/hugo/content/docs/ref/sprotty-core/Interface.ISvgExportPostProcessor.md
new file mode 100644
index 0000000..eb0884c
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.ISvgExportPostProcessor.md
@@ -0,0 +1,28 @@
+
+[sprotty](../globals) / ISvgExportPostProcessor
+
+# Interface: ISvgExportPostProcessor
+
+Defined in: [packages/sprotty/src/features/export/svg-export-postprocessor.ts:19](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/export/svg-export-postprocessor.ts#L19)
+
+## Methods
+
+### postUpdate()
+
+> **postUpdate**(`element`, `cause?`): `void`
+
+Defined in: [packages/sprotty/src/features/export/svg-export-postprocessor.ts:20](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/export/svg-export-postprocessor.ts#L20)
+
+#### Parameters
+
+##### element
+
+`SVGSVGElement`
+
+##### cause?
+
+`Action`
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.ITouchListener.md b/hugo/content/docs/ref/sprotty-core/Interface.ITouchListener.md
new file mode 100644
index 0000000..5a1f5ec
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.ITouchListener.md
@@ -0,0 +1,20 @@
+
+### touchStart()
+
+> **touchStart**(`target`, `event`): (`Action` \| `Promise`\<`Action`\>)[]
+
+Defined in: [packages/sprotty/src/base/views/touch-tool.ts:108](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/touch-tool.ts#L108)
+
+#### Parameters
+
+##### target
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+##### event
+
+`TouchEvent`
+
+#### Returns
+
+(`Action` \| `Promise`\<`Action`\>)[]
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.IUIExtension.md b/hugo/content/docs/ref/sprotty-core/Interface.IUIExtension.md
new file mode 100644
index 0000000..a6cc967
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.IUIExtension.md
@@ -0,0 +1,20 @@
+
+### show()
+
+> **show**(`root`, ...`contextElementIds`): `void`
+
+Defined in: [packages/sprotty/src/base/ui-extensions/ui-extension.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/ui-extensions/ui-extension.ts#L28)
+
+#### Parameters
+
+##### root
+
+`Readonly`\<[`SModelRootImpl`](../Class.SModelRootImpl)\>
+
+##### contextElementIds
+
+...`string`[]
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.IVNodePostprocessor.md b/hugo/content/docs/ref/sprotty-core/Interface.IVNodePostprocessor.md
new file mode 100644
index 0000000..e2cb93c
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.IVNodePostprocessor.md
@@ -0,0 +1,16 @@
+
+### postUpdate()
+
+> **postUpdate**(`cause?`): `void`
+
+Defined in: [packages/sprotty/src/base/views/vnode-postprocessor.ts:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/vnode-postprocessor.ts#L29)
+
+#### Parameters
+
+##### cause?
+
+`Action`
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.IView.md b/hugo/content/docs/ref/sprotty-core/Interface.IView.md
new file mode 100644
index 0000000..8dd0e22
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.IView.md
@@ -0,0 +1,40 @@
+
+[sprotty](../globals) / IView
+
+# Interface: IView\
+
+Defined in: [packages/sprotty/src/base/views/view.tsx:57](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/view.tsx#L57)
+
+Base interface for the components that turn GModelElements into virtual DOM elements.
+
+## Type Parameters
+
+### A
+
+`A` *extends* [`IViewArgs`](../Interface.IViewArgs) = \{ \}
+
+## Methods
+
+### render()
+
+> **render**(`model`, `context`, `args?`): `undefined` \| `VNode`
+
+Defined in: [packages/sprotty/src/base/views/view.tsx:58](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/view.tsx#L58)
+
+#### Parameters
+
+##### model
+
+`Readonly`\<[`SModelElementImpl`](../Class.SModelElementImpl)\>
+
+##### context
+
+[`RenderingContext`](../Interface.RenderingContext)
+
+##### args?
+
+`A`
+
+#### Returns
+
+`undefined` \| `VNode`
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.IViewArgs.md b/hugo/content/docs/ref/sprotty-core/Interface.IViewArgs.md
new file mode 100644
index 0000000..109b93e
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.IViewArgs.md
@@ -0,0 +1,20 @@
+
+[sprotty](../globals) / IViewArgs
+
+# Interface: IViewArgs
+
+Defined in: [packages/sprotty/src/base/views/view.tsx:34](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/view.tsx#L34)
+
+Arguments for `IView` rendering.
+
+## Indexable
+
+\[`key`: `string`\]: `any`
+
+## Properties
+
+### parentArgs?
+
+> `optional` **parentArgs**: `IViewArgs`
+
+Defined in: [packages/sprotty/src/base/views/view.tsx:35](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/view.tsx#L35)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.IViewer.md b/hugo/content/docs/ref/sprotty-core/Interface.IViewer.md
new file mode 100644
index 0000000..1b3ab33
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.IViewer.md
@@ -0,0 +1,28 @@
+
+[sprotty](../globals) / IViewer
+
+# Interface: IViewer
+
+Defined in: [packages/sprotty/src/base/views/viewer.tsx:36](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer.tsx#L36)
+
+## Methods
+
+### update()
+
+> **update**(`model`, `cause?`): `void`
+
+Defined in: [packages/sprotty/src/base/views/viewer.tsx:37](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer.tsx#L37)
+
+#### Parameters
+
+##### model
+
+[`SModelRootImpl`](../Class.SModelRootImpl)
+
+##### cause?
+
+`Action`
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.IViewerProvider.md b/hugo/content/docs/ref/sprotty-core/Interface.IViewerProvider.md
new file mode 100644
index 0000000..008509f
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.IViewerProvider.md
@@ -0,0 +1,6 @@
+
+### popupModelViewer
+
+> `readonly` **popupModelViewer**: [`IViewer`](../Interface.IViewer)
+
+Defined in: [packages/sprotty/src/base/views/viewer.tsx:43](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer.tsx#L43)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.InitializeCanvasBoundsAction.md b/hugo/content/docs/ref/sprotty-core/Interface.InitializeCanvasBoundsAction.md
new file mode 100644
index 0000000..10b8bba
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.InitializeCanvasBoundsAction.md
@@ -0,0 +1,6 @@
+
+### newCanvasBounds
+
+> **newCanvasBounds**: `Bounds`
+
+Defined in: [packages/sprotty/src/base/features/initialize-canvas.ts:78](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/features/initialize-canvas.ts#L78)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.Insets.md b/hugo/content/docs/ref/sprotty-core/Interface.Insets.md
new file mode 100644
index 0000000..8964121
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.Insets.md
@@ -0,0 +1,6 @@
+
+### top
+
+> **top**: `number`
+
+Defined in: [packages/sprotty/src/utils/geometry.ts:23](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/geometry.ts#L23)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.InternalBoundsAware.md b/hugo/content/docs/ref/sprotty-core/Interface.InternalBoundsAware.md
new file mode 100644
index 0000000..36d0ec4
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.InternalBoundsAware.md
@@ -0,0 +1,24 @@
+
+[sprotty](../globals) / InternalBoundsAware
+
+# Interface: InternalBoundsAware
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:37](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L37)
+
+Model elements that implement this interface have a position and a size.
+Note that this definition differs from the one in `sprotty-protocol` because this is
+used in the _internal model_, while the other is used in the _external model_.
+
+Feature extension interface for [boundsFeature](../Variable.boundsFeature).
+
+## Extended by
+
+- [`InternalLayoutableChild`](../Interface.InternalLayoutableChild)
+
+## Properties
+
+### bounds
+
+> **bounds**: `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:38](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L38)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.InternalLayoutContainer.md b/hugo/content/docs/ref/sprotty-core/Interface.InternalLayoutContainer.md
new file mode 100644
index 0000000..0c7087a
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.InternalLayoutContainer.md
@@ -0,0 +1,10 @@
+
+### layoutOptions?
+
+> `optional` **layoutOptions**: [`ModelLayoutOptions`](../TypeAlias.ModelLayoutOptions)
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:60](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L60)
+
+#### Inherited from
+
+[`InternalLayoutableChild`](../Interface.InternalLayoutableChild).[`layoutOptions`](../Interface.InternalLayoutableChild.md#layoutoptions)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.InternalLayoutableChild.md b/hugo/content/docs/ref/sprotty-core/Interface.InternalLayoutableChild.md
new file mode 100644
index 0000000..28c917f
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.InternalLayoutableChild.md
@@ -0,0 +1,6 @@
+
+### layoutOptions?
+
+> `optional` **layoutOptions**: [`ModelLayoutOptions`](../TypeAlias.ModelLayoutOptions)
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:60](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L60)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.IntersectingRoutedPoint.md b/hugo/content/docs/ref/sprotty-core/Interface.IntersectingRoutedPoint.md
new file mode 100644
index 0000000..b478e5d
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.IntersectingRoutedPoint.md
@@ -0,0 +1,34 @@
+
+### pointIndex?
+
+> `optional` **pointIndex**: `number`
+
+Defined in: [packages/sprotty/src/features/routing/routing.ts:40](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/routing.ts#L40)
+
+#### Inherited from
+
+[`RoutedPoint`](../Interface.RoutedPoint).[`pointIndex`](../Interface.RoutedPoint.md#pointindex)
+
+***
+
+### x
+
+> `readonly` **x**: `number`
+
+Defined in: packages/sprotty-protocol/lib/utils/geometry.d.ts:20
+
+#### Inherited from
+
+[`RoutedPoint`](../Interface.RoutedPoint).[`x`](../Interface.RoutedPoint.md#x)
+
+***
+
+### y
+
+> `readonly` **y**: `number`
+
+Defined in: packages/sprotty-protocol/lib/utils/geometry.d.ts:21
+
+#### Inherited from
+
+[`RoutedPoint`](../Interface.RoutedPoint).[`y`](../Interface.RoutedPoint.md#y)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.Intersection.md b/hugo/content/docs/ref/sprotty-core/Interface.Intersection.md
new file mode 100644
index 0000000..ea2ee49
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.Intersection.md
@@ -0,0 +1,14 @@
+
+### segmentIndex1
+
+> `readonly` **segmentIndex1**: `number`
+
+Defined in: [packages/sprotty/src/features/edge-intersection/intersection-finder.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-intersection/intersection-finder.ts#L25)
+
+***
+
+### segmentIndex2
+
+> `readonly` **segmentIndex2**: `number`
+
+Defined in: [packages/sprotty/src/features/edge-intersection/intersection-finder.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-intersection/intersection-finder.ts#L27)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.LayoutRegistration.md b/hugo/content/docs/ref/sprotty-core/Interface.LayoutRegistration.md
new file mode 100644
index 0000000..d0468c2
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.LayoutRegistration.md
@@ -0,0 +1,6 @@
+
+### layoutKind
+
+> **layoutKind**: `string`
+
+Defined in: [packages/sprotty/src/features/bounds/layout.ts:45](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/layout.ts#L45)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.Limits.md b/hugo/content/docs/ref/sprotty-core/Interface.Limits.md
new file mode 100644
index 0000000..399f702
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.Limits.md
@@ -0,0 +1,6 @@
+
+### min
+
+> **min**: `number`
+
+Defined in: [packages/sprotty/src/utils/geometry.ts:262](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/geometry.ts#L262)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.Line.md b/hugo/content/docs/ref/sprotty-core/Interface.Line.md
new file mode 100644
index 0000000..d22f466
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.Line.md
@@ -0,0 +1,6 @@
+
+### c
+
+> `readonly` **c**: `number`
+
+Defined in: [packages/sprotty/src/utils/geometry.ts:114](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/geometry.ts#L114)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.LinearRouteOptions.md b/hugo/content/docs/ref/sprotty-core/Interface.LinearRouteOptions.md
new file mode 100644
index 0000000..837cf7c
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.LinearRouteOptions.md
@@ -0,0 +1,6 @@
+
+### standardDistance
+
+> **standardDistance**: `number`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L29)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.LoadModuleOptions.md b/hugo/content/docs/ref/sprotty-core/Interface.LoadModuleOptions.md
new file mode 100644
index 0000000..ac2ea41
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.LoadModuleOptions.md
@@ -0,0 +1,14 @@
+
+[sprotty](../globals) / LoadModuleOptions
+
+# Interface: LoadModuleOptions
+
+Defined in: [packages/sprotty/src/lib/modules.ts:40](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/modules.ts#L40)
+
+## Properties
+
+### exclude?
+
+> `optional` **exclude**: `ContainerModule`[]
+
+Defined in: [packages/sprotty/src/lib/modules.ts:41](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/modules.ts#L41)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.Locateable.md b/hugo/content/docs/ref/sprotty-core/Interface.Locateable.md
new file mode 100644
index 0000000..a1c898a
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.Locateable.md
@@ -0,0 +1,21 @@
+
+[sprotty](../globals) / Locateable
+
+# ~~Interface: Locateable~~
+
+Defined in: [packages/sprotty/src/features/move/model.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/model.ts#L28)
+
+An element that can be placed at a specific location using its position property.
+Feature extension interface for [moveFeature](../Variable.moveFeature).
+
+## Deprecated
+
+Use the definition from `sprotty-protocol` instead.
+
+## Properties
+
+### ~~position~~
+
+> **position**: `Point`
+
+Defined in: [packages/sprotty/src/features/move/model.ts:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/model.ts#L29)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.ManhattanRouterOptions.md b/hugo/content/docs/ref/sprotty-core/Interface.ManhattanRouterOptions.md
new file mode 100644
index 0000000..dff60c1
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.ManhattanRouterOptions.md
@@ -0,0 +1,10 @@
+
+### standardDistance
+
+> **standardDistance**: `number`
+
+Defined in: [packages/sprotty/src/features/routing/manhattan-edge-router.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/manhattan-edge-router.ts#L25)
+
+#### Overrides
+
+[`LinearRouteOptions`](../Interface.LinearRouteOptions).[`standardDistance`](../Interface.LinearRouteOptions.md#standarddistance)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.Match.md b/hugo/content/docs/ref/sprotty-core/Interface.Match.md
new file mode 100644
index 0000000..243d489
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.Match.md
@@ -0,0 +1,6 @@
+
+### rightParentId?
+
+> `optional` **rightParentId**: `string`
+
+Defined in: [packages/sprotty/src/features/update/model-matching.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/update/model-matching.ts#L25)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.MatchResult.md b/hugo/content/docs/ref/sprotty-core/Interface.MatchResult.md
new file mode 100644
index 0000000..d6aa375
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.MatchResult.md
@@ -0,0 +1,10 @@
+
+[sprotty](../globals) / MatchResult
+
+# Interface: MatchResult
+
+Defined in: [packages/sprotty/src/features/update/model-matching.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/update/model-matching.ts#L28)
+
+## Indexable
+
+\[`id`: `string`\]: [`Match`](../Interface.Match)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.MenuItem.md b/hugo/content/docs/ref/sprotty-core/Interface.MenuItem.md
new file mode 100644
index 0000000..e6708fe
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.MenuItem.md
@@ -0,0 +1,96 @@
+
+### icon?
+
+> `readonly` `optional` **icon**: `string`
+
+Defined in: [packages/sprotty/src/base/actions/action.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/actions/action.ts#L25)
+
+#### Inherited from
+
+[`MenuItem`]().[`icon`](#icon)
+
+***
+
+### id
+
+> `readonly` **id**: `string`
+
+Defined in: [packages/sprotty/src/features/context-menu/context-menu-service.ts:20](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/context-menu/context-menu-service.ts#L20)
+
+Technical id of the menu item.
+
+***
+
+### isEnabled()?
+
+> `readonly` `optional` **isEnabled**: () => `boolean`
+
+Defined in: [packages/sprotty/src/features/context-menu/context-menu-service.ts:32](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/context-menu/context-menu-service.ts#L32)
+
+Function determining whether the element is enabled.
+
+#### Returns
+
+`boolean`
+
+***
+
+### isToggled()?
+
+> `readonly` `optional` **isToggled**: () => `boolean`
+
+Defined in: [packages/sprotty/src/features/context-menu/context-menu-service.ts:36](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/context-menu/context-menu-service.ts#L36)
+
+Function determining whether the element is toggled on or off.
+
+#### Returns
+
+`boolean`
+
+***
+
+### isVisible()?
+
+> `readonly` `optional` **isVisible**: () => `boolean`
+
+Defined in: [packages/sprotty/src/features/context-menu/context-menu-service.ts:34](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/context-menu/context-menu-service.ts#L34)
+
+Function determining whether the element is visible.
+
+#### Returns
+
+`boolean`
+
+***
+
+### label
+
+> `readonly` **label**: `string`
+
+Defined in: [packages/sprotty/src/base/actions/action.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/actions/action.ts#L25)
+
+#### Inherited from
+
+[`MenuItem`]().[`label`](#label)
+
+***
+
+### parentId?
+
+> `readonly` `optional` **parentId**: `string`
+
+Defined in: [packages/sprotty/src/features/context-menu/context-menu-service.ts:30](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/context-menu/context-menu-service.ts#L30)
+
+The optional parent id can be used to add this element as a child of another element provided by anohter menu provider.
+The `parentId` must be fully qualified in the form of `a.b.c`, whereas `a`, `b` and `c` are referring to the IDs of other elements.
+Note that this attribute will only be considered for root items of a provider and not for children of provided items.
+
+***
+
+### sortString?
+
+> `readonly` `optional` **sortString**: `string`
+
+Defined in: [packages/sprotty/src/features/context-menu/context-menu-service.ts:22](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/context-menu/context-menu-service.ts#L22)
+
+String indicating the order.
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.Nameable.md b/hugo/content/docs/ref/sprotty-core/Interface.Nameable.md
new file mode 100644
index 0000000..ae4af3f
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.Nameable.md
@@ -0,0 +1,16 @@
+
+[sprotty](../globals) / Nameable
+
+# Interface: Nameable
+
+Defined in: [packages/sprotty/src/features/nameable/model.ts:24](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/nameable/model.ts#L24)
+
+Feature extension interface for nameableFeature.
+
+## Properties
+
+### name
+
+> **name**: `string`
+
+Defined in: [packages/sprotty/src/features/nameable/model.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/nameable/model.ts#L25)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.PolylineRouteOptions.md b/hugo/content/docs/ref/sprotty-core/Interface.PolylineRouteOptions.md
new file mode 100644
index 0000000..dd9321e
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.PolylineRouteOptions.md
@@ -0,0 +1,10 @@
+
+### standardDistance
+
+> **standardDistance**: `number`
+
+Defined in: [packages/sprotty/src/features/routing/abstract-edge-router.ts:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/abstract-edge-router.ts#L29)
+
+#### Inherited from
+
+[`LinearRouteOptions`](../Interface.LinearRouteOptions).[`standardDistance`](../Interface.LinearRouteOptions.md#standarddistance)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.PostponedAction.md b/hugo/content/docs/ref/sprotty-core/Interface.PostponedAction.md
new file mode 100644
index 0000000..b7f5e26
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.PostponedAction.md
@@ -0,0 +1,10 @@
+
+### resolve()
+
+> **resolve**: () => `void`
+
+Defined in: [packages/sprotty/src/base/actions/action-dispatcher.ts:184](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/actions/action-dispatcher.ts#L184)
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.PreRenderedElementSchema.md b/hugo/content/docs/ref/sprotty-core/Interface.PreRenderedElementSchema.md
new file mode 100644
index 0000000..07b6c64
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.PreRenderedElementSchema.md
@@ -0,0 +1,22 @@
+
+### ~~id~~
+
+> **id**: `string`
+
+Defined in: packages/sprotty-protocol/lib/model.d.ts:23
+
+#### Inherited from
+
+`SModelElement.id`
+
+***
+
+### ~~type~~
+
+> **type**: `string`
+
+Defined in: packages/sprotty-protocol/lib/model.d.ts:22
+
+#### Inherited from
+
+`SModelElement.type`
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.Projectable.md b/hugo/content/docs/ref/sprotty-core/Interface.Projectable.md
new file mode 100644
index 0000000..52e4a3d
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.Projectable.md
@@ -0,0 +1,6 @@
+
+### ~~projectionCssClasses~~
+
+> **projectionCssClasses**: `string`[]
+
+Defined in: [packages/sprotty/src/features/projection/model.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/projection/model.ts#L31)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.RGBColor.md b/hugo/content/docs/ref/sprotty-core/Interface.RGBColor.md
new file mode 100644
index 0000000..95b2649
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.RGBColor.md
@@ -0,0 +1,14 @@
+
+### green
+
+> **green**: `number`
+
+Defined in: [packages/sprotty/src/utils/color.ts:19](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/color.ts#L19)
+
+***
+
+### red
+
+> **red**: `number`
+
+Defined in: [packages/sprotty/src/utils/color.ts:18](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/color.ts#L18)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.RenderingContext.md b/hugo/content/docs/ref/sprotty-core/Interface.RenderingContext.md
new file mode 100644
index 0000000..727cac6
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.RenderingContext.md
@@ -0,0 +1,38 @@
+
+### renderChildren()
+
+> **renderChildren**(`element`, `args?`): `VNode`[]
+
+Defined in: [packages/sprotty/src/base/views/view.tsx:80](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/view.tsx#L80)
+
+#### Parameters
+
+##### element
+
+`Readonly`\<[`SParentElementImpl`](../Class.SParentElementImpl)\>
+
+##### args?
+
+[`IViewArgs`](../Interface.IViewArgs)
+
+#### Returns
+
+`VNode`[]
+
+***
+
+### renderElement()
+
+> **renderElement**(`element`): `undefined` \| `VNode`
+
+Defined in: [packages/sprotty/src/base/views/view.tsx:78](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/view.tsx#L78)
+
+#### Parameters
+
+##### element
+
+`Readonly`\<[`SModelElementImpl`](../Class.SModelElementImpl)\>
+
+#### Returns
+
+`undefined` \| `VNode`
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.RequestExportSvgAction.md b/hugo/content/docs/ref/sprotty-core/Interface.RequestExportSvgAction.md
new file mode 100644
index 0000000..7fb8b7a
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.RequestExportSvgAction.md
@@ -0,0 +1,10 @@
+
+### ~~requestId~~
+
+> **requestId**: `string`
+
+Defined in: packages/sprotty-protocol/lib/actions.d.ts:41
+
+#### Inherited from
+
+`RequestAction.requestId`
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.ResolvedElementAndAlignment.md b/hugo/content/docs/ref/sprotty-core/Interface.ResolvedElementAndAlignment.md
new file mode 100644
index 0000000..931a26b
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.ResolvedElementAndAlignment.md
@@ -0,0 +1,6 @@
+
+### oldAlignment
+
+> **oldAlignment**: `Point`
+
+Defined in: [packages/sprotty/src/features/bounds/bounds-manipulation.ts:35](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/bounds-manipulation.ts#L35)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.ResolvedElementAndBounds.md b/hugo/content/docs/ref/sprotty-core/Interface.ResolvedElementAndBounds.md
new file mode 100644
index 0000000..f846e70
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.ResolvedElementAndBounds.md
@@ -0,0 +1,6 @@
+
+### oldBounds
+
+> **oldBounds**: `Bounds`
+
+Defined in: [packages/sprotty/src/features/bounds/bounds-manipulation.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/bounds-manipulation.ts#L28)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.ResolvedElementFade.md b/hugo/content/docs/ref/sprotty-core/Interface.ResolvedElementFade.md
new file mode 100644
index 0000000..7440683
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.ResolvedElementFade.md
@@ -0,0 +1,6 @@
+
+### type
+
+> **type**: `"in"` \| `"out"`
+
+Defined in: [packages/sprotty/src/features/fade/fade.ts:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/fade/fade.ts#L29)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.ResolvedElementMove.md b/hugo/content/docs/ref/sprotty-core/Interface.ResolvedElementMove.md
new file mode 100644
index 0000000..3336f08
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.ResolvedElementMove.md
@@ -0,0 +1,6 @@
+
+### toPosition
+
+> **toPosition**: `Point`
+
+Defined in: [packages/sprotty/src/features/move/move.ts:54](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L54)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.ResolvedHandleMove.md b/hugo/content/docs/ref/sprotty-core/Interface.ResolvedHandleMove.md
new file mode 100644
index 0000000..54aa530
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.ResolvedHandleMove.md
@@ -0,0 +1,6 @@
+
+### toPosition
+
+> **toPosition**: `Point`
+
+Defined in: [packages/sprotty/src/features/move/move.ts:60](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/move.ts#L60)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.RoutedPoint.md b/hugo/content/docs/ref/sprotty-core/Interface.RoutedPoint.md
new file mode 100644
index 0000000..a9eab9f
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.RoutedPoint.md
@@ -0,0 +1,22 @@
+
+### x
+
+> `readonly` **x**: `number`
+
+Defined in: packages/sprotty-protocol/lib/utils/geometry.d.ts:20
+
+#### Inherited from
+
+`Point.x`
+
+***
+
+### y
+
+> `readonly` **y**: `number`
+
+Defined in: packages/sprotty-protocol/lib/utils/geometry.d.ts:21
+
+#### Inherited from
+
+`Point.y`
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.SButtonSchema.md b/hugo/content/docs/ref/sprotty-core/Interface.SButtonSchema.md
new file mode 100644
index 0000000..dc54a6e
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.SButtonSchema.md
@@ -0,0 +1,66 @@
+
+### ~~id~~
+
+> **id**: `string`
+
+Defined in: packages/sprotty-protocol/lib/model.d.ts:23
+
+#### Inherited from
+
+`SShapeElement.id`
+
+***
+
+### ~~layoutOptions?~~
+
+> `optional` **layoutOptions**: `ModelLayoutOptions`
+
+Defined in: packages/sprotty-protocol/lib/model.d.ts:125
+
+#### Inherited from
+
+`SShapeElement.layoutOptions`
+
+***
+
+### ~~position?~~
+
+> `optional` **position**: `Point`
+
+Defined in: packages/sprotty-protocol/lib/model.d.ts:112
+
+#### Inherited from
+
+`SShapeElement.position`
+
+***
+
+### ~~pressed~~
+
+> **pressed**: `boolean`
+
+Defined in: [packages/sprotty/src/features/button/model.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/button/model.ts#L25)
+
+***
+
+### ~~size?~~
+
+> `optional` **size**: `Dimension`
+
+Defined in: packages/sprotty-protocol/lib/model.d.ts:118
+
+#### Inherited from
+
+`SShapeElement.size`
+
+***
+
+### ~~type~~
+
+> **type**: `string`
+
+Defined in: packages/sprotty-protocol/lib/model.d.ts:22
+
+#### Inherited from
+
+`SShapeElement.type`
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.SModelElementConstructor.md b/hugo/content/docs/ref/sprotty-core/Interface.SModelElementConstructor.md
new file mode 100644
index 0000000..e5acac8
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.SModelElementConstructor.md
@@ -0,0 +1,26 @@
+
+[sprotty](../globals) / SModelElementConstructor
+
+# Interface: SModelElementConstructor
+
+Defined in: [packages/sprotty/src/base/model/smodel-factory.ts:195](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel-factory.ts#L195)
+
+## Constructors
+
+### Constructor
+
+> **new SModelElementConstructor**(): [`SModelElementImpl`](../Class.SModelElementImpl)
+
+Defined in: [packages/sprotty/src/base/model/smodel-factory.ts:197](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel-factory.ts#L197)
+
+#### Returns
+
+[`SModelElementImpl`](../Class.SModelElementImpl)
+
+## Properties
+
+### DEFAULT\_FEATURES?
+
+> `optional` **DEFAULT\_FEATURES**: readonly `symbol`[]
+
+Defined in: [packages/sprotty/src/base/model/smodel-factory.ts:196](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel-factory.ts#L196)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.SModelElementRegistration.md b/hugo/content/docs/ref/sprotty-core/Interface.SModelElementRegistration.md
new file mode 100644
index 0000000..b4e5fc8
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.SModelElementRegistration.md
@@ -0,0 +1,6 @@
+
+### type
+
+> **type**: `string`
+
+Defined in: [packages/sprotty/src/base/model/smodel-factory.ts:189](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel-factory.ts#L189)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.Selectable.md b/hugo/content/docs/ref/sprotty-core/Interface.Selectable.md
new file mode 100644
index 0000000..9c68135
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.Selectable.md
@@ -0,0 +1,20 @@
+
+[sprotty](../globals) / Selectable
+
+# ~~Interface: Selectable~~
+
+Defined in: [packages/sprotty/src/features/select/model.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/select/model.ts#L25)
+
+Feature extension interface for [selectFeature](../Variable.selectFeature).
+
+## Deprecated
+
+Use the definition from `sprotty-protocol` instead.
+
+## Properties
+
+### ~~selected~~
+
+> **selected**: `boolean`
+
+Defined in: [packages/sprotty/src/features/select/model.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/select/model.ts#L26)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.SetUIExtensionVisibilityAction.md b/hugo/content/docs/ref/sprotty-core/Interface.SetUIExtensionVisibilityAction.md
new file mode 100644
index 0000000..b0edfaa
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.SetUIExtensionVisibilityAction.md
@@ -0,0 +1,6 @@
+
+### visible
+
+> **visible**: `boolean`
+
+Defined in: [packages/sprotty/src/base/ui-extensions/ui-extension-registry.ts:40](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/ui-extensions/ui-extension-registry.ts#L40)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.ShapedPreRenderedElementSchema.md b/hugo/content/docs/ref/sprotty-core/Interface.ShapedPreRenderedElementSchema.md
new file mode 100644
index 0000000..d42a5d5
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.ShapedPreRenderedElementSchema.md
@@ -0,0 +1,38 @@
+
+### ~~id~~
+
+> **id**: `string`
+
+Defined in: packages/sprotty-protocol/lib/model.d.ts:23
+
+#### Inherited from
+
+[`PreRenderedElementSchema`](../Interface.PreRenderedElementSchema).[`id`](../Interface.PreRenderedElementSchema.md#id)
+
+***
+
+### ~~position?~~
+
+> `optional` **position**: `Point`
+
+Defined in: [packages/sprotty/src/lib/model.ts:116](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/model.ts#L116)
+
+***
+
+### ~~size?~~
+
+> `optional` **size**: `Dimension`
+
+Defined in: [packages/sprotty/src/lib/model.ts:117](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/model.ts#L117)
+
+***
+
+### ~~type~~
+
+> **type**: `string`
+
+Defined in: packages/sprotty-protocol/lib/model.d.ts:22
+
+#### Inherited from
+
+[`PreRenderedElementSchema`](../Interface.PreRenderedElementSchema).[`type`](../Interface.PreRenderedElementSchema.md#type)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.StackLayoutOptions.md b/hugo/content/docs/ref/sprotty-core/Interface.StackLayoutOptions.md
new file mode 100644
index 0000000..d10caeb
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.StackLayoutOptions.md
@@ -0,0 +1,78 @@
+
+### paddingBottom
+
+> **paddingBottom**: `number`
+
+Defined in: [packages/sprotty/src/features/bounds/layout-options.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/layout-options.ts#L28)
+
+#### Inherited from
+
+`AbstractLayoutOptions.paddingBottom`
+
+***
+
+### paddingFactor
+
+> **paddingFactor**: `number`
+
+Defined in: [packages/sprotty/src/features/bounds/stack-layout.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/stack-layout.ts#L28)
+
+#### Overrides
+
+`AbstractLayoutOptions.paddingFactor`
+
+***
+
+### paddingLeft
+
+> **paddingLeft**: `number`
+
+Defined in: [packages/sprotty/src/features/bounds/layout-options.ts:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/layout-options.ts#L29)
+
+#### Inherited from
+
+`AbstractLayoutOptions.paddingLeft`
+
+***
+
+### paddingRight
+
+> **paddingRight**: `number`
+
+Defined in: [packages/sprotty/src/features/bounds/layout-options.ts:30](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/layout-options.ts#L30)
+
+#### Inherited from
+
+`AbstractLayoutOptions.paddingRight`
+
+***
+
+### paddingTop
+
+> **paddingTop**: `number`
+
+Defined in: [packages/sprotty/src/features/bounds/layout-options.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/layout-options.ts#L27)
+
+#### Inherited from
+
+`AbstractLayoutOptions.paddingTop`
+
+***
+
+### resizeContainer
+
+> **resizeContainer**: `boolean`
+
+Defined in: [packages/sprotty/src/features/bounds/layout-options.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/layout-options.ts#L26)
+
+#### Inherited from
+
+`AbstractLayoutOptions.resizeContainer`
+
+***
+
+### vAlign
+
+> **vAlign**: `VAlignment`
+
+Defined in: [packages/sprotty/src/features/bounds/stack-layout.ts:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/stack-layout.ts#L29)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.SwitchEditModeAction.md b/hugo/content/docs/ref/sprotty-core/Interface.SwitchEditModeAction.md
new file mode 100644
index 0000000..e759cdf
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.SwitchEditModeAction.md
@@ -0,0 +1,10 @@
+
+### kind
+
+> **kind**: `"switchEditMode"`
+
+Defined in: [packages/sprotty/src/features/edit/edit-routing.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-routing.ts#L28)
+
+#### Overrides
+
+`Action.kind`
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.ThunkVNode.md b/hugo/content/docs/ref/sprotty-core/Interface.ThunkVNode.md
new file mode 100644
index 0000000..3be239d
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.ThunkVNode.md
@@ -0,0 +1,42 @@
+
+### key
+
+> **key**: `undefined` \| `Key`
+
+Defined in: node\_modules/snabbdom/build/vnode.d.ts:16
+
+#### Inherited from
+
+`VNode.key`
+
+***
+
+### sel
+
+> **sel**: `undefined` \| `string`
+
+Defined in: node\_modules/snabbdom/build/vnode.d.ts:11
+
+#### Inherited from
+
+`VNode.sel`
+
+***
+
+### text
+
+> **text**: `undefined` \| `string`
+
+Defined in: node\_modules/snabbdom/build/vnode.d.ts:15
+
+#### Inherited from
+
+`VNode.text`
+
+***
+
+### thunk
+
+> **thunk**: `boolean`
+
+Defined in: [packages/sprotty/src/base/views/thunk-view.ts:110](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/thunk-view.ts#L110)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.UpdateAnimationData.md b/hugo/content/docs/ref/sprotty-core/Interface.UpdateAnimationData.md
new file mode 100644
index 0000000..a95d889
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.UpdateAnimationData.md
@@ -0,0 +1,6 @@
+
+### resizes?
+
+> `optional` **resizes**: `ResolvedElementResize`[]
+
+Defined in: [packages/sprotty/src/features/update/update-model.ts:43](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/update/update-model.ts#L43)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.VBoxLayoutOptions.md b/hugo/content/docs/ref/sprotty-core/Interface.VBoxLayoutOptions.md
new file mode 100644
index 0000000..e120d72
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.VBoxLayoutOptions.md
@@ -0,0 +1,78 @@
+
+### paddingBottom
+
+> **paddingBottom**: `number`
+
+Defined in: [packages/sprotty/src/features/bounds/layout-options.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/layout-options.ts#L28)
+
+#### Inherited from
+
+`AbstractLayoutOptions.paddingBottom`
+
+***
+
+### paddingFactor
+
+> **paddingFactor**: `number`
+
+Defined in: [packages/sprotty/src/features/bounds/layout-options.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/layout-options.ts#L31)
+
+#### Inherited from
+
+`AbstractLayoutOptions.paddingFactor`
+
+***
+
+### paddingLeft
+
+> **paddingLeft**: `number`
+
+Defined in: [packages/sprotty/src/features/bounds/layout-options.ts:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/layout-options.ts#L29)
+
+#### Inherited from
+
+`AbstractLayoutOptions.paddingLeft`
+
+***
+
+### paddingRight
+
+> **paddingRight**: `number`
+
+Defined in: [packages/sprotty/src/features/bounds/layout-options.ts:30](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/layout-options.ts#L30)
+
+#### Inherited from
+
+`AbstractLayoutOptions.paddingRight`
+
+***
+
+### paddingTop
+
+> **paddingTop**: `number`
+
+Defined in: [packages/sprotty/src/features/bounds/layout-options.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/layout-options.ts#L27)
+
+#### Inherited from
+
+`AbstractLayoutOptions.paddingTop`
+
+***
+
+### resizeContainer
+
+> **resizeContainer**: `boolean`
+
+Defined in: [packages/sprotty/src/features/bounds/layout-options.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/layout-options.ts#L26)
+
+#### Inherited from
+
+`AbstractLayoutOptions.resizeContainer`
+
+***
+
+### vGap
+
+> **vGap**: `number`
+
+Defined in: [packages/sprotty/src/features/bounds/vbox-layout.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/vbox-layout.ts#L28)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.ViewProjection.md b/hugo/content/docs/ref/sprotty-core/Interface.ViewProjection.md
new file mode 100644
index 0000000..019efec
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.ViewProjection.md
@@ -0,0 +1,6 @@
+
+### projectedBounds
+
+> **projectedBounds**: `Bounds`
+
+Defined in: [packages/sprotty/src/features/projection/model.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/projection/model.ts#L44)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.ViewRegistration.md b/hugo/content/docs/ref/sprotty-core/Interface.ViewRegistration.md
new file mode 100644
index 0000000..4f8f812
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.ViewRegistration.md
@@ -0,0 +1,6 @@
+
+### type
+
+> **type**: `string`
+
+Defined in: [packages/sprotty/src/base/views/view.tsx:87](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/view.tsx#L87)
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.ViewerOptions.md b/hugo/content/docs/ref/sprotty-core/Interface.ViewerOptions.md
new file mode 100644
index 0000000..2f7a01a
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.ViewerOptions.md
@@ -0,0 +1,118 @@
+
+### hiddenDiv
+
+> **hiddenDiv**: `string`
+
+Defined in: [packages/sprotty/src/base/views/viewer-options.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer-options.ts#L28)
+
+ID of the HTML element into which the hidden diagram is rendered.
+
+***
+
+### horizontalScrollLimits
+
+> **horizontalScrollLimits**: [`Limits`](../Interface.Limits)
+
+Defined in: [packages/sprotty/src/base/views/viewer-options.ts:50](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer-options.ts#L50)
+
+Minimum and maximum values for the horizontal scroll position.
+
+***
+
+### needsClientLayout
+
+> **needsClientLayout**: `boolean`
+
+Defined in: [packages/sprotty/src/base/views/viewer-options.ts:40](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer-options.ts#L40)
+
+Whether client layouts need to be computed by Sprotty. This activates a hidden rendering cycle.
+
+***
+
+### needsServerLayout
+
+> **needsServerLayout**: `boolean`
+
+Defined in: [packages/sprotty/src/base/views/viewer-options.ts:42](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer-options.ts#L42)
+
+Whether the model source needs to invoke a layout engine after a model update.
+
+***
+
+### popupClass
+
+> **popupClass**: `string`
+
+Defined in: [packages/sprotty/src/base/views/viewer-options.ts:36](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer-options.ts#L36)
+
+CSS class added to the base element of popup boxes.
+
+***
+
+### popupClosedClass
+
+> **popupClosedClass**: `string`
+
+Defined in: [packages/sprotty/src/base/views/viewer-options.ts:38](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer-options.ts#L38)
+
+CSS class added to popup boxes when they are closed.
+
+***
+
+### popupCloseDelay
+
+> **popupCloseDelay**: `number`
+
+Defined in: [packages/sprotty/src/base/views/viewer-options.ts:46](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer-options.ts#L46)
+
+Delay for closing a popup box after leaving the corresponding element.
+
+***
+
+### popupDiv
+
+> **popupDiv**: `string`
+
+Defined in: [packages/sprotty/src/base/views/viewer-options.ts:34](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer-options.ts#L34)
+
+ID of the HTML element into which hover popup boxes are rendered.
+
+***
+
+### popupOpenDelay
+
+> **popupOpenDelay**: `number`
+
+Defined in: [packages/sprotty/src/base/views/viewer-options.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer-options.ts#L44)
+
+Delay for opening a popup box after mouse hovering an element.
+
+***
+
+### shadowRoot?
+
+> `optional` **shadowRoot**: `string`
+
+Defined in: [packages/sprotty/src/base/views/viewer-options.ts:32](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer-options.ts#L32)
+
+ID of the HTML element holding the shadow root.
+
+***
+
+### verticalScrollLimits
+
+> **verticalScrollLimits**: [`Limits`](../Interface.Limits)
+
+Defined in: [packages/sprotty/src/base/views/viewer-options.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer-options.ts#L52)
+
+Minimum and maximum values for the vertical scroll position.
+
+***
+
+### zoomLimits
+
+> **zoomLimits**: [`Limits`](../Interface.Limits)
+
+Defined in: [packages/sprotty/src/base/views/viewer-options.ts:48](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer-options.ts#L48)
+
+Minimum (zoom out) and maximum (zoom in) values for the zoom factor.
diff --git a/hugo/content/docs/ref/sprotty-core/Interface.WithEditableLabel.md b/hugo/content/docs/ref/sprotty-core/Interface.WithEditableLabel.md
new file mode 100644
index 0000000..3eb6b7b
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Interface.WithEditableLabel.md
@@ -0,0 +1,16 @@
+
+[sprotty](../globals) / WithEditableLabel
+
+# Interface: WithEditableLabel
+
+Defined in: [packages/sprotty/src/features/edit/model.ts:49](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/model.ts#L49)
+
+Feature extension interface for [withEditLabelFeature](../Variable.withEditLabelFeature).
+
+## Properties
+
+### editableLabel?
+
+> `readonly` `optional` **editableLabel**: [`EditableLabel`](../Interface.EditableLabel) & [`SModelElementImpl`](../Class.SModelElementImpl)
+
+Defined in: [packages/sprotty/src/features/edit/model.ts:50](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/model.ts#L50)
diff --git a/hugo/content/docs/ref/sprotty-core/Namespace.AddRemoveBezierSegmentAction.md b/hugo/content/docs/ref/sprotty-core/Namespace.AddRemoveBezierSegmentAction.md
new file mode 100644
index 0000000..e562f7d
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Namespace.AddRemoveBezierSegmentAction.md
@@ -0,0 +1,12 @@
+
+[sprotty](../globals) / AddRemoveBezierSegmentAction
+
+# AddRemoveBezierSegmentAction
+
+## Variables
+
+- [KIND](../AddRemoveBezierSegmentAction.Variable.KIND)
+
+## Functions
+
+- [create](../AddRemoveBezierSegmentAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-core/Namespace.CommitModelAction.md b/hugo/content/docs/ref/sprotty-core/Namespace.CommitModelAction.md
new file mode 100644
index 0000000..4242fe4
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Namespace.CommitModelAction.md
@@ -0,0 +1,12 @@
+
+[sprotty](../globals) / CommitModelAction
+
+# CommitModelAction
+
+## Variables
+
+- [KIND](../CommitModelAction.Variable.KIND)
+
+## Functions
+
+- [create](../CommitModelAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-core/Namespace.EditLabelAction.md b/hugo/content/docs/ref/sprotty-core/Namespace.EditLabelAction.md
new file mode 100644
index 0000000..7ac9e4a
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Namespace.EditLabelAction.md
@@ -0,0 +1,12 @@
+
+[sprotty](../globals) / EditLabelAction
+
+# EditLabelAction
+
+## Variables
+
+- [KIND](../EditLabelAction.Variable.KIND)
+
+## Functions
+
+- [create](../EditLabelAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-core/Namespace.ExportSvgAction.md b/hugo/content/docs/ref/sprotty-core/Namespace.ExportSvgAction.md
new file mode 100644
index 0000000..7091fb2
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Namespace.ExportSvgAction.md
@@ -0,0 +1,12 @@
+
+[sprotty](../globals) / ExportSvgAction
+
+# ExportSvgAction
+
+## Variables
+
+- [KIND](../ExportSvgAction.Variable.KIND)
+
+## Functions
+
+- [create](../ExportSvgAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-core/Namespace.InitializeCanvasBoundsAction.md b/hugo/content/docs/ref/sprotty-core/Namespace.InitializeCanvasBoundsAction.md
new file mode 100644
index 0000000..038f3b4
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Namespace.InitializeCanvasBoundsAction.md
@@ -0,0 +1,12 @@
+
+[sprotty](../globals) / InitializeCanvasBoundsAction
+
+# InitializeCanvasBoundsAction
+
+## Variables
+
+- [KIND](../InitializeCanvasBoundsAction.Variable.KIND)
+
+## Functions
+
+- [create](../InitializeCanvasBoundsAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-core/Namespace.RequestExportSvgAction.md b/hugo/content/docs/ref/sprotty-core/Namespace.RequestExportSvgAction.md
new file mode 100644
index 0000000..7bcdd36
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Namespace.RequestExportSvgAction.md
@@ -0,0 +1,12 @@
+
+[sprotty](../globals) / RequestExportSvgAction
+
+# RequestExportSvgAction
+
+## Variables
+
+- [KIND](../RequestExportSvgAction.Variable.KIND)
+
+## Functions
+
+- [create](../RequestExportSvgAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-core/Namespace.SetUIExtensionVisibilityAction.md b/hugo/content/docs/ref/sprotty-core/Namespace.SetUIExtensionVisibilityAction.md
new file mode 100644
index 0000000..3e07974
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Namespace.SetUIExtensionVisibilityAction.md
@@ -0,0 +1,12 @@
+
+[sprotty](../globals) / SetUIExtensionVisibilityAction
+
+# SetUIExtensionVisibilityAction
+
+## Variables
+
+- [KIND](../SetUIExtensionVisibilityAction.Variable.KIND)
+
+## Functions
+
+- [create](../SetUIExtensionVisibilityAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-core/Namespace.SwitchEditModeAction.md b/hugo/content/docs/ref/sprotty-core/Namespace.SwitchEditModeAction.md
new file mode 100644
index 0000000..a8559ad
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Namespace.SwitchEditModeAction.md
@@ -0,0 +1,12 @@
+
+[sprotty](../globals) / SwitchEditModeAction
+
+# SwitchEditModeAction
+
+## Variables
+
+- [KIND](../SwitchEditModeAction.Variable.KIND)
+
+## Functions
+
+- [create](../SwitchEditModeAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-core/RequestExportSvgAction.Function.create.md b/hugo/content/docs/ref/sprotty-core/RequestExportSvgAction.Function.create.md
new file mode 100644
index 0000000..e137b35
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/RequestExportSvgAction.Function.create.md
@@ -0,0 +1,18 @@
+
+[sprotty](../globals) / [RequestExportSvgAction](../Namespace.RequestExportSvgAction) / create
+
+# Function: create()
+
+> **create**(`options`): [`RequestExportSvgAction`](../Interface.RequestExportSvgAction)
+
+Defined in: [packages/sprotty/src/features/export/export.ts:59](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/export/export.ts#L59)
+
+## Parameters
+
+### options
+
+[`ExportSvgOptions`](../Interface.ExportSvgOptions) = `{}`
+
+## Returns
+
+[`RequestExportSvgAction`](../Interface.RequestExportSvgAction)
diff --git a/hugo/content/docs/ref/sprotty-core/RequestExportSvgAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-core/RequestExportSvgAction.Variable.KIND.md
new file mode 100644
index 0000000..4b2646b
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/RequestExportSvgAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / [RequestExportSvgAction](../Namespace.RequestExportSvgAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"requestExportSvg"` = `'requestExportSvg'`
+
+Defined in: [packages/sprotty/src/features/export/export.ts:57](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/export/export.ts#L57)
diff --git a/hugo/content/docs/ref/sprotty-core/SetUIExtensionVisibilityAction.Function.create.md b/hugo/content/docs/ref/sprotty-core/SetUIExtensionVisibilityAction.Function.create.md
new file mode 100644
index 0000000..da9da86
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/SetUIExtensionVisibilityAction.Function.create.md
@@ -0,0 +1,28 @@
+
+[sprotty](../globals) / [SetUIExtensionVisibilityAction](../Namespace.SetUIExtensionVisibilityAction) / create
+
+# Function: create()
+
+> **create**(`options`): [`SetUIExtensionVisibilityAction`](../Interface.SetUIExtensionVisibilityAction)
+
+Defined in: [packages/sprotty/src/base/ui-extensions/ui-extension-registry.ts:46](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/ui-extensions/ui-extension-registry.ts#L46)
+
+## Parameters
+
+### options
+
+#### contextElementsId?
+
+`string`[]
+
+#### extensionId
+
+`string`
+
+#### visible
+
+`boolean`
+
+## Returns
+
+[`SetUIExtensionVisibilityAction`](../Interface.SetUIExtensionVisibilityAction)
diff --git a/hugo/content/docs/ref/sprotty-core/SetUIExtensionVisibilityAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-core/SetUIExtensionVisibilityAction.Variable.KIND.md
new file mode 100644
index 0000000..b2cdd25
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/SetUIExtensionVisibilityAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / [SetUIExtensionVisibilityAction](../Namespace.SetUIExtensionVisibilityAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"setUIExtensionVisibility"` = `"setUIExtensionVisibility"`
+
+Defined in: [packages/sprotty/src/base/ui-extensions/ui-extension-registry.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/ui-extensions/ui-extension-registry.ts#L44)
diff --git a/hugo/content/docs/ref/sprotty-core/SwitchEditModeAction.Function.create.md b/hugo/content/docs/ref/sprotty-core/SwitchEditModeAction.Function.create.md
new file mode 100644
index 0000000..206f11c
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/SwitchEditModeAction.Function.create.md
@@ -0,0 +1,24 @@
+
+[sprotty](../globals) / [SwitchEditModeAction](../Namespace.SwitchEditModeAction) / create
+
+# Function: create()
+
+> **create**(`options`): [`SwitchEditModeAction`](../Interface.SwitchEditModeAction)
+
+Defined in: [packages/sprotty/src/features/edit/edit-routing.ts:35](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-routing.ts#L35)
+
+## Parameters
+
+### options
+
+#### elementsToActivate?
+
+`string`[]
+
+#### elementsToDeactivate?
+
+`string`[]
+
+## Returns
+
+[`SwitchEditModeAction`](../Interface.SwitchEditModeAction)
diff --git a/hugo/content/docs/ref/sprotty-core/SwitchEditModeAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-core/SwitchEditModeAction.Variable.KIND.md
new file mode 100644
index 0000000..b8436c2
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/SwitchEditModeAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / [SwitchEditModeAction](../Namespace.SwitchEditModeAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"switchEditMode"` = `"switchEditMode"`
+
+Defined in: [packages/sprotty/src/features/edit/edit-routing.ts:33](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-routing.ts#L33)
diff --git a/hugo/content/docs/ref/sprotty-core/TypeAlias.Anchor.md b/hugo/content/docs/ref/sprotty-core/TypeAlias.Anchor.md
new file mode 100644
index 0000000..ebf2d41
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/TypeAlias.Anchor.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / Anchor
+
+# Type Alias: Anchor
+
+> **Anchor** = `MouseEvent` \| \{ `x`: `number`; `y`: `number`; \}
+
+Defined in: [packages/sprotty/src/features/context-menu/context-menu-service.ts:41](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/context-menu/context-menu-service.ts#L41)
diff --git a/hugo/content/docs/ref/sprotty-core/TypeAlias.BoundsAware.md b/hugo/content/docs/ref/sprotty-core/TypeAlias.BoundsAware.md
new file mode 100644
index 0000000..5573ad4
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/TypeAlias.BoundsAware.md
@@ -0,0 +1,12 @@
+
+[sprotty](../globals) / BoundsAware
+
+# ~~Type Alias: BoundsAware~~
+
+> **BoundsAware** = [`InternalBoundsAware`](../Interface.InternalBoundsAware)
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:42](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L42)
+
+## Deprecated
+
+Use `InternalBoundsAware` instead.
diff --git a/hugo/content/docs/ref/sprotty-core/TypeAlias.CardinalDirection.md b/hugo/content/docs/ref/sprotty-core/TypeAlias.CardinalDirection.md
new file mode 100644
index 0000000..d174071
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/TypeAlias.CardinalDirection.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / CardinalDirection
+
+# Type Alias: CardinalDirection
+
+> **CardinalDirection** = `"north"` \| `"north-east"` \| `"east"` \| `"south-east"` \| `"south"` \| `"south-west"` \| `"west"` \| `"north-west"`
+
+Defined in: [packages/sprotty/src/utils/geometry.ts:117](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/geometry.ts#L117)
diff --git a/hugo/content/docs/ref/sprotty-core/TypeAlias.CommandResult.md b/hugo/content/docs/ref/sprotty-core/TypeAlias.CommandResult.md
new file mode 100644
index 0000000..ba01192
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/TypeAlias.CommandResult.md
@@ -0,0 +1,6 @@
+
+### modelChanged
+
+> **modelChanged**: `boolean`
+
+Defined in: [packages/sprotty/src/base/commands/command.ts:84](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command.ts#L84)
diff --git a/hugo/content/docs/ref/sprotty-core/TypeAlias.CommandReturn.md b/hugo/content/docs/ref/sprotty-core/TypeAlias.CommandReturn.md
new file mode 100644
index 0000000..abc7bcb
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/TypeAlias.CommandReturn.md
@@ -0,0 +1,15 @@
+
+[sprotty](../globals) / CommandReturn
+
+# Type Alias: CommandReturn
+
+> **CommandReturn** = [`SModelRootImpl`](../Class.SModelRootImpl) \| `Promise`\<[`SModelRootImpl`](../Class.SModelRootImpl)\> \| [`CommandResult`](../TypeAlias.CommandResult)
+
+Defined in: [packages/sprotty/src/base/commands/command.ts:76](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command.ts#L76)
+
+Commands return the changed model or a Promise for it. Promises
+serve animating commands to render some intermediate states before
+finishing. The CommandStack is in charge of chaining these promises,
+such that they run sequentially only one at a time. Due to that
+chaining, it is essential that a command does not make any assumption
+on the state of the model before execute() is called.
diff --git a/hugo/content/docs/ref/sprotty-core/TypeAlias.CommandStackProvider.md b/hugo/content/docs/ref/sprotty-core/TypeAlias.CommandStackProvider.md
new file mode 100644
index 0000000..b0aaf96
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/TypeAlias.CommandStackProvider.md
@@ -0,0 +1,15 @@
+
+[sprotty](../globals) / CommandStackProvider
+
+# Type Alias: CommandStackProvider()
+
+> **CommandStackProvider** = () => `Promise`\<[`ICommandStack`](../Interface.ICommandStack)\>
+
+Defined in: [packages/sprotty/src/base/commands/command-stack.ts:75](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack.ts#L75)
+
+As part of the event cylce, the ICommandStack should be injected
+using a provider to avoid cyclic injection dependencies.
+
+## Returns
+
+`Promise`\<[`ICommandStack`](../Interface.ICommandStack)\>
diff --git a/hugo/content/docs/ref/sprotty-core/TypeAlias.EdgeSide.md b/hugo/content/docs/ref/sprotty-core/TypeAlias.EdgeSide.md
new file mode 100644
index 0000000..310ceb7
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/TypeAlias.EdgeSide.md
@@ -0,0 +1,12 @@
+
+[sprotty](../globals) / EdgeSide
+
+# ~~Type Alias: EdgeSide~~
+
+> **EdgeSide** = `"left"` \| `"right"` \| `"top"` \| `"bottom"` \| `"on"`
+
+Defined in: [packages/sprotty/src/features/edge-layout/model.ts:46](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-layout/model.ts#L46)
+
+## Deprecated
+
+Use EdgeSide from sprotty-protocol instead
diff --git a/hugo/content/docs/ref/sprotty-core/TypeAlias.IActionDispatcherProvider.md b/hugo/content/docs/ref/sprotty-core/TypeAlias.IActionDispatcherProvider.md
new file mode 100644
index 0000000..03a0d74
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/TypeAlias.IActionDispatcherProvider.md
@@ -0,0 +1,12 @@
+
+[sprotty](../globals) / IActionDispatcherProvider
+
+# Type Alias: IActionDispatcherProvider()
+
+> **IActionDispatcherProvider** = () => `Promise`\<[`IActionDispatcher`](../Interface.IActionDispatcher)\>
+
+Defined in: [packages/sprotty/src/base/actions/action-dispatcher.ts:188](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/actions/action-dispatcher.ts#L188)
+
+## Returns
+
+`Promise`\<[`IActionDispatcher`](../Interface.IActionDispatcher)\>
diff --git a/hugo/content/docs/ref/sprotty-core/TypeAlias.IContextMenuServiceProvider.md b/hugo/content/docs/ref/sprotty-core/TypeAlias.IContextMenuServiceProvider.md
new file mode 100644
index 0000000..9f5a4e8
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/TypeAlias.IContextMenuServiceProvider.md
@@ -0,0 +1,12 @@
+
+[sprotty](../globals) / IContextMenuServiceProvider
+
+# Type Alias: IContextMenuServiceProvider()
+
+> **IContextMenuServiceProvider** = () => `Promise`\<[`IContextMenuService`](../Interface.IContextMenuService)\>
+
+Defined in: [packages/sprotty/src/features/context-menu/context-menu-service.ts:51](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/context-menu/context-menu-service.ts#L51)
+
+## Returns
+
+`Promise`\<[`IContextMenuService`](../Interface.IContextMenuService)\>
diff --git a/hugo/content/docs/ref/sprotty-core/TypeAlias.LayoutContainer.md b/hugo/content/docs/ref/sprotty-core/TypeAlias.LayoutContainer.md
new file mode 100644
index 0000000..861c5a4
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/TypeAlias.LayoutContainer.md
@@ -0,0 +1,12 @@
+
+[sprotty](../globals) / LayoutContainer
+
+# ~~Type Alias: LayoutContainer~~
+
+> **LayoutContainer** = [`InternalLayoutContainer`](../Interface.InternalLayoutContainer)
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L52)
+
+## Deprecated
+
+Use `InternalLayoutContainer` instead.
diff --git a/hugo/content/docs/ref/sprotty-core/TypeAlias.LayoutableChild.md b/hugo/content/docs/ref/sprotty-core/TypeAlias.LayoutableChild.md
new file mode 100644
index 0000000..5717089
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/TypeAlias.LayoutableChild.md
@@ -0,0 +1,12 @@
+
+[sprotty](../globals) / LayoutableChild
+
+# ~~Type Alias: LayoutableChild~~
+
+> **LayoutableChild** = [`InternalLayoutableChild`](../Interface.InternalLayoutableChild)
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:64](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L64)
+
+## Deprecated
+
+Use `InternalLayoutableChild` instead.
diff --git a/hugo/content/docs/ref/sprotty-core/TypeAlias.ModelLayoutOptions.md b/hugo/content/docs/ref/sprotty-core/TypeAlias.ModelLayoutOptions.md
new file mode 100644
index 0000000..6886372
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/TypeAlias.ModelLayoutOptions.md
@@ -0,0 +1,12 @@
+
+[sprotty](../globals) / ModelLayoutOptions
+
+# Type Alias: ModelLayoutOptions
+
+> **ModelLayoutOptions** = `object`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:54](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L54)
+
+## Index Signature
+
+\[`key`: `string`\]: `string` \| `number` \| `boolean`
diff --git a/hugo/content/docs/ref/sprotty-core/TypeAlias.ModelRendererFactory.md b/hugo/content/docs/ref/sprotty-core/TypeAlias.ModelRendererFactory.md
new file mode 100644
index 0000000..77cfade
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/TypeAlias.ModelRendererFactory.md
@@ -0,0 +1,26 @@
+
+[sprotty](../globals) / ModelRendererFactory
+
+# Type Alias: ModelRendererFactory()
+
+> **ModelRendererFactory** = (`targetKind`, `postprocessors`, `args?`) => [`ModelRenderer`](../Class.ModelRenderer)
+
+Defined in: [packages/sprotty/src/base/views/viewer.tsx:91](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer.tsx#L91)
+
+## Parameters
+
+### targetKind
+
+[`RenderingTargetKind`](../TypeAlias.RenderingTargetKind)
+
+### postprocessors
+
+[`IVNodePostprocessor`](../Interface.IVNodePostprocessor)[]
+
+### args?
+
+[`IViewArgs`](../Interface.IViewArgs)
+
+## Returns
+
+[`ModelRenderer`](../Class.ModelRenderer)
diff --git a/hugo/content/docs/ref/sprotty-core/TypeAlias.MouseEventKind.md b/hugo/content/docs/ref/sprotty-core/TypeAlias.MouseEventKind.md
new file mode 100644
index 0000000..89ed9a1
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/TypeAlias.MouseEventKind.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / MouseEventKind
+
+# Type Alias: MouseEventKind
+
+> **MouseEventKind** = `"mouseOver"` \| `"mouseOut"` \| `"mouseEnter"` \| `"mouseLeave"` \| `"mouseDown"` \| `"mouseMove"` \| `"mouseUp"` \| `"wheel"` \| `"doubleClick"` \| `"contextMenu"` \| `"dragOver"` \| `"drop"`
+
+Defined in: [packages/sprotty/src/base/views/mouse-tool.ts:163](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/mouse-tool.ts#L163)
diff --git a/hugo/content/docs/ref/sprotty-core/TypeAlias.Orientation.md b/hugo/content/docs/ref/sprotty-core/TypeAlias.Orientation.md
new file mode 100644
index 0000000..cea06ad
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/TypeAlias.Orientation.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / Orientation
+
+# Type Alias: Orientation
+
+> **Orientation** = `"north"` \| `"south"` \| `"east"` \| `"west"`
+
+Defined in: [packages/sprotty/src/utils/geometry.ts:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/geometry.ts#L29)
diff --git a/hugo/content/docs/ref/sprotty-core/TypeAlias.Patcher.md b/hugo/content/docs/ref/sprotty-core/TypeAlias.Patcher.md
new file mode 100644
index 0000000..beb3edc
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/TypeAlias.Patcher.md
@@ -0,0 +1,22 @@
+
+[sprotty](../globals) / Patcher
+
+# Type Alias: Patcher()
+
+> **Patcher** = (`oldRoot`, `newRoot`) => `VNode`
+
+Defined in: [packages/sprotty/src/base/views/viewer.tsx:97](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer.tsx#L97)
+
+## Parameters
+
+### oldRoot
+
+`VNode` | `Element`
+
+### newRoot
+
+`VNode`
+
+## Returns
+
+`VNode`
diff --git a/hugo/content/docs/ref/sprotty-core/TypeAlias.PointerEventKind.md b/hugo/content/docs/ref/sprotty-core/TypeAlias.PointerEventKind.md
new file mode 100644
index 0000000..cb9ba5a
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/TypeAlias.PointerEventKind.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / PointerEventKind
+
+# Type Alias: PointerEventKind
+
+> **PointerEventKind** = `"pointerOver"` \| `"pointerEnter"` \| `"pointerDown"` \| `"pointerMove"` \| `"pointerUp"` \| `"pointerCancel"` \| `"pointerOut"` \| `"pointerLeave"` \| `"gotPointerCapture"` \| `"lostPointerCapture"`
+
+Defined in: [packages/sprotty/src/base/views/pointer-tool.ts:104](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/pointer-tool.ts#L104)
diff --git a/hugo/content/docs/ref/sprotty-core/TypeAlias.ProjectionParams.md b/hugo/content/docs/ref/sprotty-core/TypeAlias.ProjectionParams.md
new file mode 100644
index 0000000..701237d
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/TypeAlias.ProjectionParams.md
@@ -0,0 +1,6 @@
+
+### zoomedFactor
+
+> **zoomedFactor**: `number`
+
+Defined in: [packages/sprotty/src/features/projection/views.tsx:149](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/projection/views.tsx#L149)
diff --git a/hugo/content/docs/ref/sprotty-core/TypeAlias.RenderingTargetKind.md b/hugo/content/docs/ref/sprotty-core/TypeAlias.RenderingTargetKind.md
new file mode 100644
index 0000000..935636a
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/TypeAlias.RenderingTargetKind.md
@@ -0,0 +1,12 @@
+
+[sprotty](../globals) / RenderingTargetKind
+
+# Type Alias: RenderingTargetKind
+
+> **RenderingTargetKind** = `"main"` \| `"popup"` \| `"hidden"`
+
+Defined in: [packages/sprotty/src/base/views/view.tsx:66](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/view.tsx#L66)
+
+Indicates the target of the view rendering. `main` is the actually visible diagram,
+`popup` is the mouse hover popup, and `hidden` is for computing element bounds prior
+to the main rendering.
diff --git a/hugo/content/docs/ref/sprotty-core/TypeAlias.RoutingHandleKind.md b/hugo/content/docs/ref/sprotty-core/TypeAlias.RoutingHandleKind.md
new file mode 100644
index 0000000..a26fba0
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/TypeAlias.RoutingHandleKind.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / RoutingHandleKind
+
+# Type Alias: RoutingHandleKind
+
+> **RoutingHandleKind** = `"junction"` \| `"line"` \| `"source"` \| `"target"` \| `"manhattan-50%"` \| `"bezier-control-after"` \| `"bezier-control-before"` \| `"bezier-junction"` \| `"bezier-add"` \| `"bezier-remove"`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:140](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L140)
diff --git a/hugo/content/docs/ref/sprotty-core/TypeAlias.SIssueSeverity.md b/hugo/content/docs/ref/sprotty-core/TypeAlias.SIssueSeverity.md
new file mode 100644
index 0000000..dfa984b
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/TypeAlias.SIssueSeverity.md
@@ -0,0 +1,12 @@
+
+[sprotty](../globals) / SIssueSeverity
+
+# ~~Type Alias: SIssueSeverity~~
+
+> **SIssueSeverity** = `"error"` \| `"warning"` \| `"info"`
+
+Defined in: [packages/sprotty/src/features/decoration/model.ts:48](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/decoration/model.ts#L48)
+
+## Deprecated
+
+Use the definition from `sprotty-protocol` instead.
diff --git a/hugo/content/docs/ref/sprotty-core/TypeAlias.Severity.md b/hugo/content/docs/ref/sprotty-core/TypeAlias.Severity.md
new file mode 100644
index 0000000..aedfa45
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/TypeAlias.Severity.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / Severity
+
+# Type Alias: Severity
+
+> **Severity** = `"ok"` \| `"warning"` \| `"error"`
+
+Defined in: [packages/sprotty/src/features/edit/edit-label.ts:102](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/edit-label.ts#L102)
diff --git a/hugo/content/docs/ref/sprotty-core/TypeAlias.TouchEventKind.md b/hugo/content/docs/ref/sprotty-core/TypeAlias.TouchEventKind.md
new file mode 100644
index 0000000..4ecd354
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/TypeAlias.TouchEventKind.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / TouchEventKind
+
+# Type Alias: TouchEventKind
+
+> **TouchEventKind** = `"touchStart"` \| `"touchMove"` \| `"touchEnd"`
+
+Defined in: [packages/sprotty/src/base/views/touch-tool.ts:104](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/touch-tool.ts#L104)
diff --git a/hugo/content/docs/ref/sprotty-core/TypeAlias.ViewRegistrationFactory.md b/hugo/content/docs/ref/sprotty-core/TypeAlias.ViewRegistrationFactory.md
new file mode 100644
index 0000000..9f674ba
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/TypeAlias.ViewRegistrationFactory.md
@@ -0,0 +1,12 @@
+
+[sprotty](../globals) / ViewRegistrationFactory
+
+# Type Alias: ViewRegistrationFactory()
+
+> **ViewRegistrationFactory** = () => [`ViewRegistration`](../Interface.ViewRegistration)
+
+Defined in: [packages/sprotty/src/base/views/view.tsx:92](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/view.tsx#L92)
+
+## Returns
+
+[`ViewRegistration`](../Interface.ViewRegistration)
diff --git a/hugo/content/docs/ref/sprotty-core/TypeAlias.ZOrderElement.md b/hugo/content/docs/ref/sprotty-core/TypeAlias.ZOrderElement.md
new file mode 100644
index 0000000..e188c3c
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/TypeAlias.ZOrderElement.md
@@ -0,0 +1,6 @@
+
+### index
+
+> **index**: `number`
+
+Defined in: [packages/sprotty/src/features/zorder/zorder.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/zorder/zorder.ts#L26)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.ACTION_ITEM.md b/hugo/content/docs/ref/sprotty-core/Variable.ACTION_ITEM.md
new file mode 100644
index 0000000..e69de29
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.ANIMATION_SPIN.md b/hugo/content/docs/ref/sprotty-core/Variable.ANIMATION_SPIN.md
new file mode 100644
index 0000000..190ea94
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.ANIMATION_SPIN.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / ANIMATION\_SPIN
+
+# Variable: ANIMATION\_SPIN
+
+> `const` **ANIMATION\_SPIN**: `"animation-spin"` = `'animation-spin'`
+
+Defined in: [packages/sprotty/src/utils/codicon.ts:18](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/utils/codicon.ts#L18)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.ATTR_BBOX_ELEMENT.md b/hugo/content/docs/ref/sprotty-core/Variable.ATTR_BBOX_ELEMENT.md
new file mode 100644
index 0000000..775ce3c
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.ATTR_BBOX_ELEMENT.md
@@ -0,0 +1,12 @@
+
+[sprotty](../globals) / ATTR\_BBOX\_ELEMENT
+
+# Variable: ATTR\_BBOX\_ELEMENT
+
+> `const` **ATTR\_BBOX\_ELEMENT**: `"bboxElement"` = `'bboxElement'`
+
+Defined in: [packages/sprotty/src/features/bounds/hidden-bounds-updater.ts:185](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/hidden-bounds-updater.ts#L185)
+
+Attribute name identifying the SVG element that determines the bounding box of a rendered view.
+This can be used when a view creates a group of which only a part should contribute to the
+bounding box computed by `HiddenBoundsUpdater`.
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.DEFAULT_EDGE_PLACEMENT.md b/hugo/content/docs/ref/sprotty-core/Variable.DEFAULT_EDGE_PLACEMENT.md
new file mode 100644
index 0000000..72f7c47
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.DEFAULT_EDGE_PLACEMENT.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / DEFAULT\_EDGE\_PLACEMENT
+
+# Variable: DEFAULT\_EDGE\_PLACEMENT
+
+> `const` **DEFAULT\_EDGE\_PLACEMENT**: `EdgePlacementSchema`
+
+Defined in: [packages/sprotty/src/features/edge-layout/model.ts:81](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-layout/model.ts#L81)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.DIAMOND_ANCHOR_KIND.md b/hugo/content/docs/ref/sprotty-core/Variable.DIAMOND_ANCHOR_KIND.md
new file mode 100644
index 0000000..466a2f9
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.DIAMOND_ANCHOR_KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / DIAMOND\_ANCHOR\_KIND
+
+# Variable: DIAMOND\_ANCHOR\_KIND
+
+> `const` **DIAMOND\_ANCHOR\_KIND**: `"diamond"` = `'diamond'`
+
+Defined in: [packages/sprotty/src/features/routing/anchor.ts:23](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/anchor.ts#L23)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.ELLIPTIC_ANCHOR_KIND.md b/hugo/content/docs/ref/sprotty-core/Variable.ELLIPTIC_ANCHOR_KIND.md
new file mode 100644
index 0000000..e5986b8
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.ELLIPTIC_ANCHOR_KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / ELLIPTIC\_ANCHOR\_KIND
+
+# Variable: ELLIPTIC\_ANCHOR\_KIND
+
+> `const` **ELLIPTIC\_ANCHOR\_KIND**: `"elliptic"` = `'elliptic'`
+
+Defined in: [packages/sprotty/src/features/routing/anchor.ts:24](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/anchor.ts#L24)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.EMPTY_ROOT.md b/hugo/content/docs/ref/sprotty-core/Variable.EMPTY_ROOT.md
new file mode 100644
index 0000000..e496977
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.EMPTY_ROOT.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / EMPTY\_ROOT
+
+# Variable: EMPTY\_ROOT
+
+> `const` **EMPTY\_ROOT**: `Readonly`\<`SModelRoot`\>
+
+Defined in: [packages/sprotty/src/base/model/smodel-factory.ts:180](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/model/smodel-factory.ts#L180)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.ForeignObjectElement.md b/hugo/content/docs/ref/sprotty-core/Variable.ForeignObjectElement.md
new file mode 100644
index 0000000..6ce06d5
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.ForeignObjectElement.md
@@ -0,0 +1,12 @@
+
+[sprotty](../globals) / ForeignObjectElement
+
+# ~~Variable: ForeignObjectElement~~
+
+> `const` **ForeignObjectElement**: *typeof* [`ForeignObjectElementImpl`](../Class.ForeignObjectElementImpl) = `ForeignObjectElementImpl`
+
+Defined in: [packages/sprotty/src/lib/model.ts:190](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/model.ts#L190)
+
+## Deprecated
+
+Use `ForeignObjectElementImpl` instead.
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.HtmlRoot.md b/hugo/content/docs/ref/sprotty-core/Variable.HtmlRoot.md
new file mode 100644
index 0000000..a966a02
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.HtmlRoot.md
@@ -0,0 +1,12 @@
+
+[sprotty](../globals) / HtmlRoot
+
+# ~~Variable: HtmlRoot~~
+
+> `const` **HtmlRoot**: *typeof* [`HtmlRootImpl`](../Class.HtmlRootImpl) = `HtmlRootImpl`
+
+Defined in: [packages/sprotty/src/lib/model.ts:88](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/model.ts#L88)
+
+## Deprecated
+
+Use `HtmlRootImpl` instead.
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.PreRenderedElement.md b/hugo/content/docs/ref/sprotty-core/Variable.PreRenderedElement.md
new file mode 100644
index 0000000..ce7890b
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.PreRenderedElement.md
@@ -0,0 +1,12 @@
+
+[sprotty](../globals) / PreRenderedElement
+
+# ~~Variable: PreRenderedElement~~
+
+> `const` **PreRenderedElement**: *typeof* [`PreRenderedElementImpl`](../Class.PreRenderedElementImpl) = `PreRenderedElementImpl`
+
+Defined in: [packages/sprotty/src/lib/model.ts:108](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/model.ts#L108)
+
+## Deprecated
+
+Use `PreRenderedElementImpl` instead.
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.RECTANGULAR_ANCHOR_KIND.md b/hugo/content/docs/ref/sprotty-core/Variable.RECTANGULAR_ANCHOR_KIND.md
new file mode 100644
index 0000000..32adf89
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.RECTANGULAR_ANCHOR_KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / RECTANGULAR\_ANCHOR\_KIND
+
+# Variable: RECTANGULAR\_ANCHOR\_KIND
+
+> `const` **RECTANGULAR\_ANCHOR\_KIND**: `"rectangular"` = `'rectangular'`
+
+Defined in: [packages/sprotty/src/features/routing/anchor.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/anchor.ts#L25)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.SIssueMarker.md b/hugo/content/docs/ref/sprotty-core/Variable.SIssueMarker.md
new file mode 100644
index 0000000..6fb5974
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.SIssueMarker.md
@@ -0,0 +1,12 @@
+
+[sprotty](../globals) / SIssueMarker
+
+# ~~Variable: SIssueMarker~~
+
+> `const` **SIssueMarker**: *typeof* [`SIssueMarkerImpl`](../Class.SIssueMarkerImpl) = `SIssueMarkerImpl`
+
+Defined in: [packages/sprotty/src/features/decoration/model.ts:43](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/decoration/model.ts#L43)
+
+## Deprecated
+
+Use SIssueMarkerImpl instead.
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.ShapedPreRenderedElement.md b/hugo/content/docs/ref/sprotty-core/Variable.ShapedPreRenderedElement.md
new file mode 100644
index 0000000..8a4801b
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.ShapedPreRenderedElement.md
@@ -0,0 +1,12 @@
+
+[sprotty](../globals) / ShapedPreRenderedElement
+
+# ~~Variable: ShapedPreRenderedElement~~
+
+> `const` **ShapedPreRenderedElement**: *typeof* [`ShapedPreRenderedElementImpl`](../Class.ShapedPreRenderedElementImpl) = `ShapedPreRenderedElementImpl`
+
+Defined in: [packages/sprotty/src/lib/model.ts:154](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/model.ts#L154)
+
+## Deprecated
+
+Use `ShapedPreRenderedElementImpl` instead.
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.TYPES.md b/hugo/content/docs/ref/sprotty-core/Variable.TYPES.md
new file mode 100644
index 0000000..4e561c1
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.TYPES.md
@@ -0,0 +1,246 @@
+
+## Type declaration
+
+### Action
+
+> **Action**: `symbol`
+
+### ActionHandlerRegistration
+
+> **ActionHandlerRegistration**: `symbol`
+
+### ActionHandlerRegistryProvider
+
+> **ActionHandlerRegistryProvider**: `symbol`
+
+### AnimationFrameSyncer
+
+> **AnimationFrameSyncer**: `symbol`
+
+### CommandRegistration
+
+> **CommandRegistration**: `symbol`
+
+### CommandStackOptions
+
+> **CommandStackOptions**: `symbol`
+
+### DOMHelper
+
+> **DOMHelper**: `symbol`
+
+### HiddenModelViewer
+
+> **HiddenModelViewer**: `symbol`
+
+### HiddenVNodePostprocessor
+
+> **HiddenVNodePostprocessor**: `symbol`
+
+### HoverState
+
+> **HoverState**: `symbol`
+
+### IActionDispatcher
+
+> **IActionDispatcher**: `symbol`
+
+### IActionDispatcherProvider
+
+> **IActionDispatcherProvider**: `symbol`
+
+### IActionHandlerInitializer
+
+> **IActionHandlerInitializer**: `symbol`
+
+### IAnchorComputer
+
+> **IAnchorComputer**: `symbol`
+
+### IButtonHandlerRegistration
+
+> **IButtonHandlerRegistration**: `symbol`
+
+### ICommandPaletteActionProvider
+
+> **ICommandPaletteActionProvider**: `symbol`
+
+### ICommandPaletteActionProviderRegistry
+
+> **ICommandPaletteActionProviderRegistry**: `symbol`
+
+### ICommandStack
+
+> **ICommandStack**: `symbol`
+
+### ICommandStackProvider
+
+> **ICommandStackProvider**: `symbol`
+
+### IContextMenuItemProvider
+
+> **IContextMenuItemProvider**: `symbol`
+
+### IContextMenuProviderRegistry
+
+> **IContextMenuProviderRegistry**: `symbol`
+
+### IContextMenuService
+
+> **IContextMenuService**: `symbol`
+
+### IContextMenuServiceProvider
+
+> **IContextMenuServiceProvider**: `symbol`
+
+### IDiagramLocker
+
+> **IDiagramLocker**: `symbol`
+
+### IEdgeRoutePostprocessor
+
+> **IEdgeRoutePostprocessor**: `symbol`
+
+### IEdgeRouter
+
+> **IEdgeRouter**: `symbol`
+
+### IEditLabelValidationDecorator
+
+> **IEditLabelValidationDecorator**: `symbol`
+
+### IEditLabelValidator
+
+> **IEditLabelValidator**: `symbol`
+
+### ILogger
+
+> **ILogger**: `symbol`
+
+### IModelFactory
+
+> **IModelFactory**: `symbol`
+
+### IModelLayoutEngine
+
+> **IModelLayoutEngine**: `symbol`
+
+### IPointerListener
+
+> **IPointerListener**: `symbol`
+
+### IPopupModelProvider
+
+> **IPopupModelProvider**: `symbol`
+
+### ISnapper
+
+> **ISnapper**: `symbol`
+
+### ISvgExportPostprocessor
+
+> **ISvgExportPostprocessor**: `symbol`
+
+### ITouchListener
+
+> **ITouchListener**: `symbol`
+
+### IUIExtension
+
+> **IUIExtension**: `symbol`
+
+### IViewer
+
+> **IViewer**: `symbol`
+
+### IViewerProvider
+
+> **IViewerProvider**: `symbol`
+
+### IVNodePostprocessor
+
+> **IVNodePostprocessor**: `symbol`
+
+### KeyListener
+
+> **KeyListener**: `symbol`
+
+### Layouter
+
+> **Layouter**: `symbol`
+
+### LayoutRegistration
+
+> **LayoutRegistration**: `symbol`
+
+### LayoutRegistry
+
+> **LayoutRegistry**: `symbol`
+
+### LogLevel
+
+> **LogLevel**: `symbol`
+
+### ModelRendererFactory
+
+> **ModelRendererFactory**: `symbol`
+
+### ModelSource
+
+> **ModelSource**: `symbol`
+
+### ModelSourceProvider
+
+> **ModelSourceProvider**: `symbol`
+
+### ModelViewer
+
+> **ModelViewer**: `symbol`
+
+### MouseListener
+
+> **MouseListener**: `symbol`
+
+### PatcherProvider
+
+> **PatcherProvider**: `symbol`
+
+### PopupModelViewer
+
+> **PopupModelViewer**: `symbol`
+
+### PopupMouseListener
+
+> **PopupMouseListener**: `symbol`
+
+### PopupVNodePostprocessor
+
+> **PopupVNodePostprocessor**: `symbol`
+
+### SModelElementRegistration
+
+> **SModelElementRegistration**: `symbol`
+
+### SModelRegistry
+
+> **SModelRegistry**: `symbol`
+
+### SvgExporter
+
+> **SvgExporter**: `symbol`
+
+### UIExtensionRegistry
+
+> **UIExtensionRegistry**: `symbol`
+
+### ViewerOptions
+
+> **ViewerOptions**: `symbol`
+
+### ViewRegistration
+
+> **ViewRegistration**: `symbol`
+
+### ViewRegistry
+
+> **ViewRegistry**: `symbol`
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.alignFeature.md b/hugo/content/docs/ref/sprotty-core/Variable.alignFeature.md
new file mode 100644
index 0000000..7806461
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.alignFeature.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / alignFeature
+
+# Variable: alignFeature
+
+> `const` **alignFeature**: *typeof* `alignFeature`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L28)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.boundsFeature.md b/hugo/content/docs/ref/sprotty-core/Variable.boundsFeature.md
new file mode 100644
index 0000000..62b80cf
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.boundsFeature.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / boundsFeature
+
+# Variable: boundsFeature
+
+> `const` **boundsFeature**: *typeof* `boundsFeature`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L25)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.boundsModule.md b/hugo/content/docs/ref/sprotty-core/Variable.boundsModule.md
new file mode 100644
index 0000000..e2ebace
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.boundsModule.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / boundsModule
+
+# Variable: boundsModule
+
+> `const` **boundsModule**: `ContainerModule`
+
+Defined in: [packages/sprotty/src/features/bounds/di.config.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/di.config.ts#L27)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.buttonModule.md b/hugo/content/docs/ref/sprotty-core/Variable.buttonModule.md
new file mode 100644
index 0000000..0b85e4e
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.buttonModule.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / buttonModule
+
+# Variable: buttonModule
+
+> `const` **buttonModule**: `ContainerModule`
+
+Defined in: [packages/sprotty/src/features/button/di.config.ts:20](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/button/di.config.ts#L20)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.commandPaletteModule.md b/hugo/content/docs/ref/sprotty-core/Variable.commandPaletteModule.md
new file mode 100644
index 0000000..e20ed14
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.commandPaletteModule.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / commandPaletteModule
+
+# Variable: commandPaletteModule
+
+> `const` **commandPaletteModule**: `ContainerModule`
+
+Defined in: [packages/sprotty/src/features/command-palette/di.config.ts:21](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/command-palette/di.config.ts#L21)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.connectableFeature.md b/hugo/content/docs/ref/sprotty-core/Variable.connectableFeature.md
new file mode 100644
index 0000000..0a186cc
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.connectableFeature.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / connectableFeature
+
+# Variable: connectableFeature
+
+> `const` **connectableFeature**: *typeof* `connectableFeature`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:55](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L55)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.contextMenuModule.md b/hugo/content/docs/ref/sprotty-core/Variable.contextMenuModule.md
new file mode 100644
index 0000000..f214028
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.contextMenuModule.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / contextMenuModule
+
+# Variable: contextMenuModule
+
+> `const` **contextMenuModule**: `ContainerModule`
+
+Defined in: [packages/sprotty/src/features/context-menu/di.config.ts:23](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/context-menu/di.config.ts#L23)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.creatingOnDragFeature.md b/hugo/content/docs/ref/sprotty-core/Variable.creatingOnDragFeature.md
new file mode 100644
index 0000000..b739b4b
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.creatingOnDragFeature.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / creatingOnDragFeature
+
+# Variable: creatingOnDragFeature
+
+> `const` **creatingOnDragFeature**: *typeof* `creatingOnDragFeature`
+
+Defined in: [packages/sprotty/src/features/edit/create-on-drag.ts:20](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/create-on-drag.ts#L20)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.decorationFeature.md b/hugo/content/docs/ref/sprotty-core/Variable.decorationFeature.md
new file mode 100644
index 0000000..9273364
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.decorationFeature.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / decorationFeature
+
+# Variable: decorationFeature
+
+> `const` **decorationFeature**: *typeof* `decorationFeature`
+
+Defined in: [packages/sprotty/src/features/decoration/model.ts:22](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/decoration/model.ts#L22)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.decorationModule.md b/hugo/content/docs/ref/sprotty-core/Variable.decorationModule.md
new file mode 100644
index 0000000..850fee9
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.decorationModule.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / decorationModule
+
+# Variable: decorationModule
+
+> `const` **decorationModule**: `ContainerModule`
+
+Defined in: [packages/sprotty/src/features/decoration/di.config.ts:24](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/decoration/di.config.ts#L24)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.defaultCommandStackOptions.md b/hugo/content/docs/ref/sprotty-core/Variable.defaultCommandStackOptions.md
new file mode 100644
index 0000000..1bb356d
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.defaultCommandStackOptions.md
@@ -0,0 +1,12 @@
+
+[sprotty](../globals) / defaultCommandStackOptions
+
+# Variable: defaultCommandStackOptions()
+
+> `const` **defaultCommandStackOptions**: () => [`CommandStackOptions`](../Interface.CommandStackOptions)
+
+Defined in: [packages/sprotty/src/base/commands/command-stack-options.ts:40](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/commands/command-stack-options.ts#L40)
+
+## Returns
+
+[`CommandStackOptions`](../Interface.CommandStackOptions)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.defaultModule.md b/hugo/content/docs/ref/sprotty-core/Variable.defaultModule.md
new file mode 100644
index 0000000..7084ec3
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.defaultModule.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / defaultModule
+
+# Variable: defaultModule
+
+> `const` **defaultModule**: `ContainerModule`
+
+Defined in: [packages/sprotty/src/base/di.config.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/di.config.ts#L44)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.defaultViewerOptions.md b/hugo/content/docs/ref/sprotty-core/Variable.defaultViewerOptions.md
new file mode 100644
index 0000000..639c343
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.defaultViewerOptions.md
@@ -0,0 +1,12 @@
+
+[sprotty](../globals) / defaultViewerOptions
+
+# Variable: defaultViewerOptions()
+
+> `const` **defaultViewerOptions**: () => [`ViewerOptions`](../Interface.ViewerOptions)
+
+Defined in: [packages/sprotty/src/base/views/viewer-options.ts:55](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/base/views/viewer-options.ts#L55)
+
+## Returns
+
+[`ViewerOptions`](../Interface.ViewerOptions)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.deletableFeature.md b/hugo/content/docs/ref/sprotty-core/Variable.deletableFeature.md
new file mode 100644
index 0000000..445b393
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.deletableFeature.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / deletableFeature
+
+# Variable: deletableFeature
+
+> `const` **deletableFeature**: *typeof* `deletableFeature`
+
+Defined in: [packages/sprotty/src/features/edit/delete.ts:23](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/delete.ts#L23)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.edgeEditModule.md b/hugo/content/docs/ref/sprotty-core/Variable.edgeEditModule.md
new file mode 100644
index 0000000..759f7b0
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.edgeEditModule.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / edgeEditModule
+
+# Variable: edgeEditModule
+
+> `const` **edgeEditModule**: `ContainerModule`
+
+Defined in: [packages/sprotty/src/features/edit/di.config.ts:30](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/di.config.ts#L30)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.edgeInProgressID.md b/hugo/content/docs/ref/sprotty-core/Variable.edgeInProgressID.md
new file mode 100644
index 0000000..2c4357e
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.edgeInProgressID.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / edgeInProgressID
+
+# Variable: edgeInProgressID
+
+> `const` **edgeInProgressID**: `"edge-in-progress"` = `'edge-in-progress'`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:182](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L182)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.edgeInProgressTargetHandleID.md b/hugo/content/docs/ref/sprotty-core/Variable.edgeInProgressTargetHandleID.md
new file mode 100644
index 0000000..abd5f6f
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.edgeInProgressTargetHandleID.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / edgeInProgressTargetHandleID
+
+# Variable: edgeInProgressTargetHandleID
+
+> `const` **edgeInProgressTargetHandleID**: `string`
+
+Defined in: [packages/sprotty/src/features/routing/model.ts:183](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/model.ts#L183)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.edgeIntersectionModule.md b/hugo/content/docs/ref/sprotty-core/Variable.edgeIntersectionModule.md
new file mode 100644
index 0000000..30e263e
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.edgeIntersectionModule.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / edgeIntersectionModule
+
+# Variable: edgeIntersectionModule
+
+> `const` **edgeIntersectionModule**: `ContainerModule`
+
+Defined in: [packages/sprotty/src/features/edge-intersection/di.config.ts:21](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-intersection/di.config.ts#L21)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.edgeJunctionModule.md b/hugo/content/docs/ref/sprotty-core/Variable.edgeJunctionModule.md
new file mode 100644
index 0000000..ac0abe1
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.edgeJunctionModule.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / edgeJunctionModule
+
+# Variable: edgeJunctionModule
+
+> `const` **edgeJunctionModule**: `ContainerModule`
+
+Defined in: [packages/sprotty/src/features/edge-junction/di.config.ts:22](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-junction/di.config.ts#L22)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.edgeLayoutFeature.md b/hugo/content/docs/ref/sprotty-core/Variable.edgeLayoutFeature.md
new file mode 100644
index 0000000..37ca4f0
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.edgeLayoutFeature.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / edgeLayoutFeature
+
+# Variable: edgeLayoutFeature
+
+> `const` **edgeLayoutFeature**: *typeof* `edgeLayoutFeature`
+
+Defined in: [packages/sprotty/src/features/edge-layout/model.ts:22](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-layout/model.ts#L22)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.edgeLayoutModule.md b/hugo/content/docs/ref/sprotty-core/Variable.edgeLayoutModule.md
new file mode 100644
index 0000000..df16bc4
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.edgeLayoutModule.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / edgeLayoutModule
+
+# Variable: edgeLayoutModule
+
+> `const` **edgeLayoutModule**: `ContainerModule`
+
+Defined in: [packages/sprotty/src/features/edge-layout/di.config.ts:21](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edge-layout/di.config.ts#L21)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.editFeature.md b/hugo/content/docs/ref/sprotty-core/Variable.editFeature.md
new file mode 100644
index 0000000..78f1b91
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.editFeature.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / editFeature
+
+# Variable: editFeature
+
+> `const` **editFeature**: *typeof* `editFeature`
+
+Defined in: [packages/sprotty/src/features/edit/model.ts:21](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/model.ts#L21)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.editLabelFeature.md b/hugo/content/docs/ref/sprotty-core/Variable.editLabelFeature.md
new file mode 100644
index 0000000..125aee1
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.editLabelFeature.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / editLabelFeature
+
+# Variable: editLabelFeature
+
+> `const` **editLabelFeature**: *typeof* `editLabelFeature`
+
+Defined in: [packages/sprotty/src/features/edit/model.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/model.ts#L28)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.expandFeature.md b/hugo/content/docs/ref/sprotty-core/Variable.expandFeature.md
new file mode 100644
index 0000000..854eed5
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.expandFeature.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / expandFeature
+
+# Variable: expandFeature
+
+> `const` **expandFeature**: *typeof* `expandFeature`
+
+Defined in: [packages/sprotty/src/features/expand/model.ts:19](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/expand/model.ts#L19)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.expandModule.md b/hugo/content/docs/ref/sprotty-core/Variable.expandModule.md
new file mode 100644
index 0000000..3a1c99d
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.expandModule.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / expandModule
+
+# Variable: expandModule
+
+> `const` **expandModule**: `ContainerModule`
+
+Defined in: [packages/sprotty/src/features/expand/di.config.ts:21](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/expand/di.config.ts#L21)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.exportFeature.md b/hugo/content/docs/ref/sprotty-core/Variable.exportFeature.md
new file mode 100644
index 0000000..2eef5e0
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.exportFeature.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / exportFeature
+
+# Variable: exportFeature
+
+> `const` **exportFeature**: *typeof* `exportFeature`
+
+Defined in: [packages/sprotty/src/features/export/model.ts:19](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/export/model.ts#L19)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.exportModule.md b/hugo/content/docs/ref/sprotty-core/Variable.exportModule.md
new file mode 100644
index 0000000..f629662
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.exportModule.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / exportModule
+
+# Variable: exportModule
+
+> `const` **exportModule**: `ContainerModule`
+
+Defined in: [packages/sprotty/src/features/export/di.config.ts:23](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/export/di.config.ts#L23)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.fadeFeature.md b/hugo/content/docs/ref/sprotty-core/Variable.fadeFeature.md
new file mode 100644
index 0000000..8a92939
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.fadeFeature.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / fadeFeature
+
+# Variable: fadeFeature
+
+> `const` **fadeFeature**: *typeof* `fadeFeature`
+
+Defined in: [packages/sprotty/src/features/fade/model.ts:19](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/fade/model.ts#L19)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.fadeModule.md b/hugo/content/docs/ref/sprotty-core/Variable.fadeModule.md
new file mode 100644
index 0000000..0e71abc
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.fadeModule.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / fadeModule
+
+# Variable: fadeModule
+
+> `const` **fadeModule**: `ContainerModule`
+
+Defined in: [packages/sprotty/src/features/fade/di.config.ts:21](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/fade/di.config.ts#L21)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.hoverFeedbackFeature.md b/hugo/content/docs/ref/sprotty-core/Variable.hoverFeedbackFeature.md
new file mode 100644
index 0000000..76ebfa8
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.hoverFeedbackFeature.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / hoverFeedbackFeature
+
+# Variable: hoverFeedbackFeature
+
+> `const` **hoverFeedbackFeature**: *typeof* `hoverFeedbackFeature`
+
+Defined in: [packages/sprotty/src/features/hover/model.ts:19](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/model.ts#L19)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.hoverModule.md b/hugo/content/docs/ref/sprotty-core/Variable.hoverModule.md
new file mode 100644
index 0000000..7686c40
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.hoverModule.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / hoverModule
+
+# Variable: hoverModule
+
+> `const` **hoverModule**: `ContainerModule`
+
+Defined in: [packages/sprotty/src/features/hover/di.config.ts:30](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/di.config.ts#L30)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.html.md b/hugo/content/docs/ref/sprotty-core/Variable.html.md
new file mode 100644
index 0000000..95b23c5
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.html.md
@@ -0,0 +1,26 @@
+
+[sprotty](../globals) / html
+
+# Variable: html()
+
+> `const` **html**: (`tag`, `attrs`, ...`children`) => `VNode`
+
+Defined in: [packages/sprotty/src/lib/jsx.ts:77](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/jsx.ts#L77)
+
+## Parameters
+
+### tag
+
+`string` | `FunctionComponent`
+
+### attrs
+
+`null` | `VNodeData`
+
+### children
+
+...`JsxVNodeChild`[]
+
+## Returns
+
+`VNode`
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.labelEditModule.md b/hugo/content/docs/ref/sprotty-core/Variable.labelEditModule.md
new file mode 100644
index 0000000..1732f71
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.labelEditModule.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / labelEditModule
+
+# Variable: labelEditModule
+
+> `const` **labelEditModule**: `ContainerModule`
+
+Defined in: [packages/sprotty/src/features/edit/di.config.ts:38](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/di.config.ts#L38)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.labelEditUiModule.md b/hugo/content/docs/ref/sprotty-core/Variable.labelEditUiModule.md
new file mode 100644
index 0000000..ed513dd
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.labelEditUiModule.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / labelEditUiModule
+
+# Variable: labelEditUiModule
+
+> `const` **labelEditUiModule**: `ContainerModule`
+
+Defined in: [packages/sprotty/src/features/edit/di.config.ts:46](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/di.config.ts#L46)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.layoutContainerFeature.md b/hugo/content/docs/ref/sprotty-core/Variable.layoutContainerFeature.md
new file mode 100644
index 0000000..fd751fe
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.layoutContainerFeature.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / layoutContainerFeature
+
+# Variable: layoutContainerFeature
+
+> `const` **layoutContainerFeature**: *typeof* `layoutContainerFeature`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L26)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.layoutableChildFeature.md b/hugo/content/docs/ref/sprotty-core/Variable.layoutableChildFeature.md
new file mode 100644
index 0000000..f42aaa1
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.layoutableChildFeature.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / layoutableChildFeature
+
+# Variable: layoutableChildFeature
+
+> `const` **layoutableChildFeature**: *typeof* `layoutableChildFeature`
+
+Defined in: [packages/sprotty/src/features/bounds/model.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/bounds/model.ts#L27)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.modelSourceModule.md b/hugo/content/docs/ref/sprotty-core/Variable.modelSourceModule.md
new file mode 100644
index 0000000..7806895
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.modelSourceModule.md
@@ -0,0 +1,12 @@
+
+[sprotty](../globals) / modelSourceModule
+
+# Variable: modelSourceModule
+
+> `const` **modelSourceModule**: `ContainerModule`
+
+Defined in: [packages/sprotty/src/model-source/di.config.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/model-source/di.config.ts#L28)
+
+This container module does NOT provide any binding for TYPES.ModelSource because that needs to be
+done according to the needs of the application. You can choose between a local (LocalModelSource)
+and a remote (e.g. WebSocketDiagramServer) implementation.
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.moveFeature.md b/hugo/content/docs/ref/sprotty-core/Variable.moveFeature.md
new file mode 100644
index 0000000..202e478
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.moveFeature.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / moveFeature
+
+# Variable: moveFeature
+
+> `const` **moveFeature**: *typeof* `moveFeature`
+
+Defined in: [packages/sprotty/src/features/move/model.ts:21](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/model.ts#L21)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.moveModule.md b/hugo/content/docs/ref/sprotty-core/Variable.moveModule.md
new file mode 100644
index 0000000..4763856
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.moveModule.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / moveModule
+
+# Variable: moveModule
+
+> `const` **moveModule**: `ContainerModule`
+
+Defined in: [packages/sprotty/src/features/move/di.config.ts:22](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/move/di.config.ts#L22)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.nameFeature.md b/hugo/content/docs/ref/sprotty-core/Variable.nameFeature.md
new file mode 100644
index 0000000..4216345
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.nameFeature.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / nameFeature
+
+# Variable: nameFeature
+
+> `const` **nameFeature**: *typeof* `nameFeature`
+
+Defined in: [packages/sprotty/src/features/nameable/model.ts:19](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/nameable/model.ts#L19)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.openFeature.md b/hugo/content/docs/ref/sprotty-core/Variable.openFeature.md
new file mode 100644
index 0000000..7849e0c
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.openFeature.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / openFeature
+
+# Variable: openFeature
+
+> `const` **openFeature**: *typeof* `openFeature`
+
+Defined in: [packages/sprotty/src/features/open/model.ts:19](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/open/model.ts#L19)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.openModule.md b/hugo/content/docs/ref/sprotty-core/Variable.openModule.md
new file mode 100644
index 0000000..5dd284d
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.openModule.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / openModule
+
+# Variable: openModule
+
+> `const` **openModule**: `ContainerModule`
+
+Defined in: [packages/sprotty/src/features/open/di.config.ts:21](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/open/di.config.ts#L21)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.popupFeature.md b/hugo/content/docs/ref/sprotty-core/Variable.popupFeature.md
new file mode 100644
index 0000000..d3d9fc0
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.popupFeature.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / popupFeature
+
+# Variable: popupFeature
+
+> `const` **popupFeature**: *typeof* `popupFeature`
+
+Defined in: [packages/sprotty/src/features/hover/model.ts:33](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/hover/model.ts#L33)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.routingModule.md b/hugo/content/docs/ref/sprotty-core/Variable.routingModule.md
new file mode 100644
index 0000000..bc15a20
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.routingModule.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / routingModule
+
+# Variable: routingModule
+
+> `const` **routingModule**: `ContainerModule`
+
+Defined in: [packages/sprotty/src/features/routing/di.config.ts:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/routing/di.config.ts#L29)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.selectFeature.md b/hugo/content/docs/ref/sprotty-core/Variable.selectFeature.md
new file mode 100644
index 0000000..2eddb5d
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.selectFeature.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / selectFeature
+
+# Variable: selectFeature
+
+> `const` **selectFeature**: *typeof* `selectFeature`
+
+Defined in: [packages/sprotty/src/features/select/model.ts:19](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/select/model.ts#L19)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.selectModule.md b/hugo/content/docs/ref/sprotty-core/Variable.selectModule.md
new file mode 100644
index 0000000..c6eafb9
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.selectModule.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / selectModule
+
+# Variable: selectModule
+
+> `const` **selectModule**: `ContainerModule`
+
+Defined in: [packages/sprotty/src/features/select/di.config.ts:22](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/select/di.config.ts#L22)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.svg.md b/hugo/content/docs/ref/sprotty-core/Variable.svg.md
new file mode 100644
index 0000000..bdce0a3
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.svg.md
@@ -0,0 +1,26 @@
+
+[sprotty](../globals) / svg
+
+# Variable: svg()
+
+> `const` **svg**: (`tag`, `attrs`, ...`children`) => `VNode`
+
+Defined in: [packages/sprotty/src/lib/jsx.ts:78](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/lib/jsx.ts#L78)
+
+## Parameters
+
+### tag
+
+`string` | `FunctionComponent`
+
+### attrs
+
+`null` | `VNodeData`
+
+### children
+
+...`JsxVNodeChild`[]
+
+## Returns
+
+`VNode`
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.undoRedoModule.md b/hugo/content/docs/ref/sprotty-core/Variable.undoRedoModule.md
new file mode 100644
index 0000000..2be4440
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.undoRedoModule.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / undoRedoModule
+
+# Variable: undoRedoModule
+
+> `const` **undoRedoModule**: `ContainerModule`
+
+Defined in: [packages/sprotty/src/features/undo-redo/di.config.ts:21](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/undo-redo/di.config.ts#L21)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.updateModule.md b/hugo/content/docs/ref/sprotty-core/Variable.updateModule.md
new file mode 100644
index 0000000..e7bfdf9
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.updateModule.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / updateModule
+
+# Variable: updateModule
+
+> `const` **updateModule**: `ContainerModule`
+
+Defined in: [packages/sprotty/src/features/update/di.config.ts:21](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/update/di.config.ts#L21)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.viewportFeature.md b/hugo/content/docs/ref/sprotty-core/Variable.viewportFeature.md
new file mode 100644
index 0000000..b6b68f3
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.viewportFeature.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / viewportFeature
+
+# Variable: viewportFeature
+
+> `const` **viewportFeature**: *typeof* `viewportFeature`
+
+Defined in: [packages/sprotty/src/features/viewport/model.ts:22](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/model.ts#L22)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.viewportModule.md b/hugo/content/docs/ref/sprotty-core/Variable.viewportModule.md
new file mode 100644
index 0000000..e5d84a4
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.viewportModule.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / viewportModule
+
+# Variable: viewportModule
+
+> `const` **viewportModule**: `ContainerModule`
+
+Defined in: [packages/sprotty/src/features/viewport/di.config.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/viewport/di.config.ts#L25)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.withEditLabelFeature.md b/hugo/content/docs/ref/sprotty-core/Variable.withEditLabelFeature.md
new file mode 100644
index 0000000..7b0ad52
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.withEditLabelFeature.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / withEditLabelFeature
+
+# Variable: withEditLabelFeature
+
+> `const` **withEditLabelFeature**: *typeof* `withEditLabelFeature`
+
+Defined in: [packages/sprotty/src/features/edit/model.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/edit/model.ts#L44)
diff --git a/hugo/content/docs/ref/sprotty-core/Variable.zorderModule.md b/hugo/content/docs/ref/sprotty-core/Variable.zorderModule.md
new file mode 100644
index 0000000..371f667
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/Variable.zorderModule.md
@@ -0,0 +1,8 @@
+
+[sprotty](../globals) / zorderModule
+
+# Variable: zorderModule
+
+> `const` **zorderModule**: `ContainerModule`
+
+Defined in: [packages/sprotty/src/features/zorder/di.config.ts:21](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty/src/features/zorder/di.config.ts#L21)
diff --git a/hugo/content/docs/ref/sprotty-core/_index.md b/hugo/content/docs/ref/sprotty-core/_index.md
new file mode 100644
index 0000000..3ae2249
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-core/_index.md
@@ -0,0 +1,554 @@
+
+# sprotty
+
+## Namespaces
+
+- [AddRemoveBezierSegmentAction](Namespace.AddRemoveBezierSegmentAction)
+- [CommitModelAction](Namespace.CommitModelAction)
+- [EditLabelAction](Namespace.EditLabelAction)
+- [ExportSvgAction](Namespace.ExportSvgAction)
+- [InitializeCanvasBoundsAction](Namespace.InitializeCanvasBoundsAction)
+- [RequestExportSvgAction](Namespace.RequestExportSvgAction)
+- [SetUIExtensionVisibilityAction](Namespace.SetUIExtensionVisibilityAction)
+- [SwitchEditModeAction](Namespace.SwitchEditModeAction)
+
+## Enumerations
+
+- [LogLevel](Enumeration.LogLevel)
+- [Side](Enumeration.Side)
+
+## Classes
+
+- [AbstractEdgeRouter](Class.AbstractEdgeRouter)
+- [AbstractHoverMouseListener](Class.AbstractHoverMouseListener)
+- [AbstractUIExtension](Class.AbstractUIExtension)
+- [ActionDispatcher](Class.ActionDispatcher)
+- [ActionHandlerRegistry](Class.ActionHandlerRegistry)
+- [AddRemoveBezierSegmentCommand](Class.AddRemoveBezierSegmentCommand)
+- [AnchorComputerRegistry](Class.AnchorComputerRegistry)
+- [Animation](Class.Animation)
+- [AnimationFrameSyncer](Class.AnimationFrameSyncer)
+- [ApplyLabelEditCommand](Class.ApplyLabelEditCommand)
+- [BezierCurveEdgeView](Class.BezierCurveEdgeView)
+- [BezierDiamondAnchor](Class.BezierDiamondAnchor)
+- [BezierEdgeRouter](Class.BezierEdgeRouter)
+- [BezierEllipseAnchor](Class.BezierEllipseAnchor)
+- [BezierMouseListener](Class.BezierMouseListener)
+- [BezierRectangleAnchor](Class.BezierRectangleAnchor)
+- [BoundsAwareViewportCommand](Class.BoundsAwareViewportCommand)
+- [BoundsData](Class.BoundsData)
+- [BringToFrontCommand](Class.BringToFrontCommand)
+- [ButtonHandlerRegistry](Class.ButtonHandlerRegistry)
+- [CanvasBoundsInitializer](Class.CanvasBoundsInitializer)
+- [CenterCommand](Class.CenterCommand)
+- [CenterGridSnapper](Class.CenterGridSnapper)
+- [CenterKeyboardListener](Class.CenterKeyboardListener)
+- [CircularNode](Class.CircularNode)
+- [CircularNodeView](Class.CircularNodeView)
+- [CircularPort](Class.CircularPort)
+- [ClosePopupActionHandler](Class.ClosePopupActionHandler)
+- [ColorMap](Class.ColorMap)
+- [Command](Class.Command)
+- [CommandActionHandler](Class.CommandActionHandler)
+- [CommandActionHandlerInitializer](Class.CommandActionHandlerInitializer)
+- [CommandPalette](Class.CommandPalette)
+- [CommandPaletteActionProviderRegistry](Class.CommandPaletteActionProviderRegistry)
+- [CommandPaletteKeyListener](Class.CommandPaletteKeyListener)
+- [CommandStack](Class.CommandStack)
+- [CommitModelCommand](Class.CommitModelCommand)
+- [CompoundAnimation](Class.CompoundAnimation)
+- [ComputedBoundsApplicator](Class.ComputedBoundsApplicator)
+- [ConsoleLogger](Class.ConsoleLogger)
+- [ContextMenuMouseListener](Class.ContextMenuMouseListener)
+- [ContextMenuProviderRegistry](Class.ContextMenuProviderRegistry)
+- [CreateElementCommand](Class.CreateElementCommand)
+- [DecorationPlacer](Class.DecorationPlacer)
+- [DefaultAnchors](Class.DefaultAnchors)
+- [DefaultDiagramLocker](Class.DefaultDiagramLocker)
+- [DeleteContextMenuItemProvider](Class.DeleteContextMenuItemProvider)
+- [DeleteElementCommand](Class.DeleteElementCommand)
+- [DiagramServerProxy](Class.DiagramServerProxy)
+- [Diamond](Class.Diamond)
+- [DiamondAnchor](Class.DiamondAnchor)
+- [DiamondNode](Class.DiamondNode)
+- [DiamondNodeView](Class.DiamondNodeView)
+- [EdgeLayoutPostprocessor](Class.EdgeLayoutPostprocessor)
+- [~~EdgePlacement~~](Class.EdgePlacement)
+- [EdgeRouterRegistry](Class.EdgeRouterRegistry)
+- [EdgeRouting](Class.EdgeRouting)
+- [EditLabelActionHandler](Class.EditLabelActionHandler)
+- [EditLabelKeyListener](Class.EditLabelKeyListener)
+- [EditLabelMouseListener](Class.EditLabelMouseListener)
+- [EditLabelUI](Class.EditLabelUI)
+- [ElementFader](Class.ElementFader)
+- [EllipseAnchor](Class.EllipseAnchor)
+- [EmptyGroupView](Class.EmptyGroupView)
+- [EmptyView](Class.EmptyView)
+- [ExpandButtonHandler](Class.ExpandButtonHandler)
+- [ExpandButtonView](Class.ExpandButtonView)
+- [ExportSvgCommand](Class.ExportSvgCommand)
+- [ExportSvgKeyListener](Class.ExportSvgKeyListener)
+- [ExportSvgPostprocessor](Class.ExportSvgPostprocessor)
+- [FactoryRegistry](Class.FactoryRegistry)
+- [FadeAnimation](Class.FadeAnimation)
+- [FitToScreenCommand](Class.FitToScreenCommand)
+- [FocusFixPostprocessor](Class.FocusFixPostprocessor)
+- [ForeignObjectElementImpl](Class.ForeignObjectElementImpl)
+- [ForeignObjectView](Class.ForeignObjectView)
+- [ForwardingLogger](Class.ForwardingLogger)
+- [GetSelectionCommand](Class.GetSelectionCommand)
+- [GetViewportCommand](Class.GetViewportCommand)
+- [HBoxLayouter](Class.HBoxLayouter)
+- [HiddenBoundsUpdater](Class.HiddenBoundsUpdater)
+- [HiddenCommand](Class.HiddenCommand)
+- [HiddenModelViewer](Class.HiddenModelViewer)
+- [HoverFeedbackCommand](Class.HoverFeedbackCommand)
+- [HoverKeyListener](Class.HoverKeyListener)
+- [HoverMouseListener](Class.HoverMouseListener)
+- [HtmlRootImpl](Class.HtmlRootImpl)
+- [HtmlRootView](Class.HtmlRootView)
+- [InitializeCanvasBoundsCommand](Class.InitializeCanvasBoundsCommand)
+- [InstanceRegistry](Class.InstanceRegistry)
+- [IntersectionFinder](Class.IntersectionFinder)
+- [IssueMarkerView](Class.IssueMarkerView)
+- [JumpingPolylineEdgeView](Class.JumpingPolylineEdgeView)
+- [JunctionFinder](Class.JunctionFinder)
+- [JunctionPostProcessor](Class.JunctionPostProcessor)
+- [KeyListener](Class.KeyListener)
+- [KeyTool](Class.KeyTool)
+- [LabeledAction](Class.LabeledAction)
+- [Layouter](Class.Layouter)
+- [LayoutRegistry](Class.LayoutRegistry)
+- [LocalModelSource](Class.LocalModelSource)
+- [LocationPostprocessor](Class.LocationPostprocessor)
+- [ManhattanDiamondAnchor](Class.ManhattanDiamondAnchor)
+- [ManhattanEdgeRouter](Class.ManhattanEdgeRouter)
+- [ManhattanEllipticAnchor](Class.ManhattanEllipticAnchor)
+- [ManhattanRectangularAnchor](Class.ManhattanRectangularAnchor)
+- [MergeableCommand](Class.MergeableCommand)
+- [MissingView](Class.MissingView)
+- [ModelIndexImpl](Class.ModelIndexImpl)
+- [ModelMatcher](Class.ModelMatcher)
+- [ModelRenderer](Class.ModelRenderer)
+- [ModelSource](Class.ModelSource)
+- [ModelViewer](Class.ModelViewer)
+- [MorphEdgesAnimation](Class.MorphEdgesAnimation)
+- [MouseListener](Class.MouseListener)
+- [MousePositionTracker](Class.MousePositionTracker)
+- [MouseTool](Class.MouseTool)
+- [MoveAnimation](Class.MoveAnimation)
+- [MoveCommand](Class.MoveCommand)
+- [MoveMouseListener](Class.MoveMouseListener)
+- [MultiInstanceRegistry](Class.MultiInstanceRegistry)
+- [NullLogger](Class.NullLogger)
+- [OpenMouseListener](Class.OpenMouseListener)
+- [PatcherProvider](Class.PatcherProvider)
+- [PointerListener](Class.PointerListener)
+- [PointerTool](Class.PointerTool)
+- [PointToPointLine](Class.PointToPointLine)
+- [PolylineEdgeRouter](Class.PolylineEdgeRouter)
+- [PolylineEdgeView](Class.PolylineEdgeView)
+- [PolylineEdgeViewWithGapsOnIntersections](Class.PolylineEdgeViewWithGapsOnIntersections)
+- [PopupCommand](Class.PopupCommand)
+- [PopupHoverMouseListener](Class.PopupHoverMouseListener)
+- [PopupModelViewer](Class.PopupModelViewer)
+- [PopupMouseTool](Class.PopupMouseTool)
+- [PreRenderedElementImpl](Class.PreRenderedElementImpl)
+- [PreRenderedView](Class.PreRenderedView)
+- [ProjectedViewportView](Class.ProjectedViewportView)
+- [ProviderRegistry](Class.ProviderRegistry)
+- [ReconnectCommand](Class.ReconnectCommand)
+- [RectangleAnchor](Class.RectangleAnchor)
+- [RectangularNode](Class.RectangularNode)
+- [RectangularNodeView](Class.RectangularNodeView)
+- [RectangularPort](Class.RectangularPort)
+- [RequestBoundsCommand](Class.RequestBoundsCommand)
+- [ResetCommand](Class.ResetCommand)
+- [ResolvedDelete](Class.ResolvedDelete)
+- [ResolvedLabelEdit](Class.ResolvedLabelEdit)
+- [RevealNamedElementActionProvider](Class.RevealNamedElementActionProvider)
+- [RoutableView](Class.RoutableView)
+- [SBezierControlHandleView](Class.SBezierControlHandleView)
+- [SBezierCreateHandleView](Class.SBezierCreateHandleView)
+- [SButtonImpl](Class.SButtonImpl)
+- [SChildElementImpl](Class.SChildElementImpl)
+- [SCompartmentImpl](Class.SCompartmentImpl)
+- [SCompartmentView](Class.SCompartmentView)
+- [SConnectableElementImpl](Class.SConnectableElementImpl)
+- [ScrollMouseListener](Class.ScrollMouseListener)
+- [SDanglingAnchorImpl](Class.SDanglingAnchorImpl)
+- [SDecoration](Class.SDecoration)
+- [SEdgeImpl](Class.SEdgeImpl)
+- [Segment](Class.Segment)
+- [SelectAllCommand](Class.SelectAllCommand)
+- [SelectCommand](Class.SelectCommand)
+- [SelectKeyboardListener](Class.SelectKeyboardListener)
+- [SelectMouseListener](Class.SelectMouseListener)
+- [ServerStatusAction](Class.ServerStatusAction)
+- [SetBoundsCommand](Class.SetBoundsCommand)
+- [SetModelCommand](Class.SetModelCommand)
+- [SetPopupModelCommand](Class.SetPopupModelCommand)
+- [SetUIExtensionVisibilityCommand](Class.SetUIExtensionVisibilityCommand)
+- [SetViewportCommand](Class.SetViewportCommand)
+- [SGraphImpl](Class.SGraphImpl)
+- [SGraphIndex](Class.SGraphIndex)
+- [SGraphView](Class.SGraphView)
+- [ShapedPreRenderedElementImpl](Class.ShapedPreRenderedElementImpl)
+- [ShapeView](Class.ShapeView)
+- [~~SIssue~~](Class.SIssue)
+- [SIssueMarkerImpl](Class.SIssueMarkerImpl)
+- [SLabelImpl](Class.SLabelImpl)
+- [SLabelView](Class.SLabelView)
+- [SModelElementImpl](Class.SModelElementImpl)
+- [SModelFactory](Class.SModelFactory)
+- [SModelRegistry](Class.SModelRegistry)
+- [SModelRootImpl](Class.SModelRootImpl)
+- [SNodeImpl](Class.SNodeImpl)
+- [SParentElementImpl](Class.SParentElementImpl)
+- [SPortImpl](Class.SPortImpl)
+- [SRoutableElementImpl](Class.SRoutableElementImpl)
+- [SRoutingHandleImpl](Class.SRoutingHandleImpl)
+- [SRoutingHandleView](Class.SRoutingHandleView)
+- [SShapeElementImpl](Class.SShapeElementImpl)
+- [StackLayouter](Class.StackLayouter)
+- [StatefulLayouter](Class.StatefulLayouter)
+- [SvgExporter](Class.SvgExporter)
+- [SvgViewportView](Class.SvgViewportView)
+- [SweepEvent](Class.SweepEvent)
+- [SwitchEditModeCommand](Class.SwitchEditModeCommand)
+- [SystemCommand](Class.SystemCommand)
+- [ThunkView](Class.ThunkView)
+- [TouchListener](Class.TouchListener)
+- [TouchTool](Class.TouchTool)
+- [UIExtensionRegistry](Class.UIExtensionRegistry)
+- [UndoRedoKeyListener](Class.UndoRedoKeyListener)
+- [UpdateModelCommand](Class.UpdateModelCommand)
+- [VBoxLayouter](Class.VBoxLayouter)
+- [ViewerCache](Class.ViewerCache)
+- [ViewportAnimation](Class.ViewportAnimation)
+- [ViewportRootElementImpl](Class.ViewportRootElementImpl)
+- [ViewRegistry](Class.ViewRegistry)
+- [WebSocketDiagramServerProxy](Class.WebSocketDiagramServerProxy)
+- [ZoomMouseListener](Class.ZoomMouseListener)
+
+## Interfaces
+
+- [ActionHandlerRegistration](Interface.ActionHandlerRegistration)
+- [AddRemoveBezierSegmentAction](Interface.AddRemoveBezierSegmentAction)
+- [~~Alignable~~](Interface.Alignable)
+- [CommandExecutionContext](Interface.CommandExecutionContext)
+- [CommandRegistration](Interface.CommandRegistration)
+- [CommandStackOptions](Interface.CommandStackOptions)
+- [CommandStackState](Interface.CommandStackState)
+- [CommitModelAction](Interface.CommitModelAction)
+- [Connectable](Interface.Connectable)
+- [CreatingOnDrag](Interface.CreatingOnDrag)
+- [CustomFeatures](Interface.CustomFeatures)
+- [Decoration](Interface.Decoration)
+- [Deletable](Interface.Deletable)
+- [~~EdgeLayoutable~~](Interface.EdgeLayoutable)
+- [EdgeMemento](Interface.EdgeMemento)
+- [EdgeRoutingContainer](Interface.EdgeRoutingContainer)
+- [EdgeSnapshot](Interface.EdgeSnapshot)
+- [EditableLabel](Interface.EditableLabel)
+- [EditLabelAction](Interface.EditLabelAction)
+- [EditLabelValidationResult](Interface.EditLabelValidationResult)
+- [ElementMove](Interface.ElementMove)
+- [~~Expandable~~](Interface.Expandable)
+- [~~ExportSvgAction~~](Interface.ExportSvgAction)
+- [~~ExportSvgOptions~~](Interface.ExportSvgOptions)
+- [~~Fadeable~~](Interface.Fadeable)
+- [FeatureSet](Interface.FeatureSet)
+- [~~ForeignObjectElementSchema~~](Interface.ForeignObjectElementSchema)
+- [HBoxLayoutOptions](Interface.HBoxLayoutOptions)
+- [~~Hoverable~~](Interface.Hoverable)
+- [HoverState](Interface.HoverState)
+- [~~HtmlRootSchema~~](Interface.HtmlRootSchema)
+- [IActionDispatcher](Interface.IActionDispatcher)
+- [IActionHandler](Interface.IActionHandler)
+- [IActionHandlerInitializer](Interface.IActionHandlerInitializer)
+- [IAnchorComputer](Interface.IAnchorComputer)
+- [IButtonHandler](Interface.IButtonHandler)
+- [IButtonHandlerRegistration](Interface.IButtonHandlerRegistration)
+- [ICommand](Interface.ICommand)
+- [ICommandConstructor](Interface.ICommandConstructor)
+- [ICommandPaletteActionProvider](Interface.ICommandPaletteActionProvider)
+- [ICommandStack](Interface.ICommandStack)
+- [IContextMenuItemProvider](Interface.IContextMenuItemProvider)
+- [IContextMenuService](Interface.IContextMenuService)
+- [IDiagramLocker](Interface.IDiagramLocker)
+- [IEdgeRoutePostprocessor](Interface.IEdgeRoutePostprocessor)
+- [IEdgeRouter](Interface.IEdgeRouter)
+- [IEditLabelValidationDecorator](Interface.IEditLabelValidationDecorator)
+- [IEditLabelValidator](Interface.IEditLabelValidator)
+- [ILayout](Interface.ILayout)
+- [ILogger](Interface.ILogger)
+- [IModelFactory](Interface.IModelFactory)
+- [IModelIndex](Interface.IModelIndex)
+- [IMultipleEdgesRouter](Interface.IMultipleEdgesRouter)
+- [InitializeCanvasBoundsAction](Interface.InitializeCanvasBoundsAction)
+- [Insets](Interface.Insets)
+- [InternalBoundsAware](Interface.InternalBoundsAware)
+- [InternalLayoutableChild](Interface.InternalLayoutableChild)
+- [InternalLayoutContainer](Interface.InternalLayoutContainer)
+- [IntersectingRoutedPoint](Interface.IntersectingRoutedPoint)
+- [Intersection](Interface.Intersection)
+- [IPointerListener](Interface.IPointerListener)
+- [IPopupModelProvider](Interface.IPopupModelProvider)
+- [ISnapper](Interface.ISnapper)
+- [IStoppableCommand](Interface.IStoppableCommand)
+- [ISvgExportPostProcessor](Interface.ISvgExportPostProcessor)
+- [ITouchListener](Interface.ITouchListener)
+- [IUIExtension](Interface.IUIExtension)
+- [IView](Interface.IView)
+- [IViewArgs](Interface.IViewArgs)
+- [IViewer](Interface.IViewer)
+- [IViewerProvider](Interface.IViewerProvider)
+- [IVNodePostprocessor](Interface.IVNodePostprocessor)
+- [LayoutRegistration](Interface.LayoutRegistration)
+- [Limits](Interface.Limits)
+- [Line](Interface.Line)
+- [LinearRouteOptions](Interface.LinearRouteOptions)
+- [LoadModuleOptions](Interface.LoadModuleOptions)
+- [~~Locateable~~](Interface.Locateable)
+- [ManhattanRouterOptions](Interface.ManhattanRouterOptions)
+- [Match](Interface.Match)
+- [MatchResult](Interface.MatchResult)
+- [MenuItem](Interface.MenuItem)
+- [Nameable](Interface.Nameable)
+- [PolylineRouteOptions](Interface.PolylineRouteOptions)
+- [PostponedAction](Interface.PostponedAction)
+- [~~PreRenderedElementSchema~~](Interface.PreRenderedElementSchema)
+- [~~Projectable~~](Interface.Projectable)
+- [RenderingContext](Interface.RenderingContext)
+- [~~RequestExportSvgAction~~](Interface.RequestExportSvgAction)
+- [ResolvedElementAndAlignment](Interface.ResolvedElementAndAlignment)
+- [ResolvedElementAndBounds](Interface.ResolvedElementAndBounds)
+- [ResolvedElementFade](Interface.ResolvedElementFade)
+- [ResolvedElementMove](Interface.ResolvedElementMove)
+- [ResolvedHandleMove](Interface.ResolvedHandleMove)
+- [RGBColor](Interface.RGBColor)
+- [RoutedPoint](Interface.RoutedPoint)
+- [~~SButtonSchema~~](Interface.SButtonSchema)
+- [~~Selectable~~](Interface.Selectable)
+- [SetUIExtensionVisibilityAction](Interface.SetUIExtensionVisibilityAction)
+- [~~ShapedPreRenderedElementSchema~~](Interface.ShapedPreRenderedElementSchema)
+- [SModelElementConstructor](Interface.SModelElementConstructor)
+- [SModelElementRegistration](Interface.SModelElementRegistration)
+- [StackLayoutOptions](Interface.StackLayoutOptions)
+- [SwitchEditModeAction](Interface.SwitchEditModeAction)
+- [ThunkVNode](Interface.ThunkVNode)
+- [UpdateAnimationData](Interface.UpdateAnimationData)
+- [VBoxLayoutOptions](Interface.VBoxLayoutOptions)
+- [ViewerOptions](Interface.ViewerOptions)
+- [ViewProjection](Interface.ViewProjection)
+- [ViewRegistration](Interface.ViewRegistration)
+- [WithEditableLabel](Interface.WithEditableLabel)
+
+## Type Aliases
+
+- [Anchor](TypeAlias.Anchor)
+- [~~BoundsAware~~](TypeAlias.BoundsAware)
+- [CardinalDirection](TypeAlias.CardinalDirection)
+- [CommandResult](TypeAlias.CommandResult)
+- [CommandReturn](TypeAlias.CommandReturn)
+- [CommandStackProvider](TypeAlias.CommandStackProvider)
+- [~~EdgeSide~~](TypeAlias.EdgeSide)
+- [IActionDispatcherProvider](TypeAlias.IActionDispatcherProvider)
+- [IContextMenuServiceProvider](TypeAlias.IContextMenuServiceProvider)
+- [~~LayoutableChild~~](TypeAlias.LayoutableChild)
+- [~~LayoutContainer~~](TypeAlias.LayoutContainer)
+- [ModelLayoutOptions](TypeAlias.ModelLayoutOptions)
+- [ModelRendererFactory](TypeAlias.ModelRendererFactory)
+- [MouseEventKind](TypeAlias.MouseEventKind)
+- [Orientation](TypeAlias.Orientation)
+- [Patcher](TypeAlias.Patcher)
+- [PointerEventKind](TypeAlias.PointerEventKind)
+- [ProjectionParams](TypeAlias.ProjectionParams)
+- [RenderingTargetKind](TypeAlias.RenderingTargetKind)
+- [RoutingHandleKind](TypeAlias.RoutingHandleKind)
+- [Severity](TypeAlias.Severity)
+- [~~SIssueSeverity~~](TypeAlias.SIssueSeverity)
+- [TouchEventKind](TypeAlias.TouchEventKind)
+- [ViewRegistrationFactory](TypeAlias.ViewRegistrationFactory)
+- [ZOrderElement](TypeAlias.ZOrderElement)
+
+## Variables
+
+- [ACTION\_ITEM](Variable.ACTION_ITEM)
+- [alignFeature](Variable.alignFeature)
+- [ANIMATION\_SPIN](Variable.ANIMATION_SPIN)
+- [ATTR\_BBOX\_ELEMENT](Variable.ATTR_BBOX_ELEMENT)
+- [boundsFeature](Variable.boundsFeature)
+- [boundsModule](Variable.boundsModule)
+- [buttonModule](Variable.buttonModule)
+- [commandPaletteModule](Variable.commandPaletteModule)
+- [connectableFeature](Variable.connectableFeature)
+- [contextMenuModule](Variable.contextMenuModule)
+- [creatingOnDragFeature](Variable.creatingOnDragFeature)
+- [decorationFeature](Variable.decorationFeature)
+- [decorationModule](Variable.decorationModule)
+- [DEFAULT\_EDGE\_PLACEMENT](Variable.DEFAULT_EDGE_PLACEMENT)
+- [defaultCommandStackOptions](Variable.defaultCommandStackOptions)
+- [defaultModule](Variable.defaultModule)
+- [defaultViewerOptions](Variable.defaultViewerOptions)
+- [deletableFeature](Variable.deletableFeature)
+- [DIAMOND\_ANCHOR\_KIND](Variable.DIAMOND_ANCHOR_KIND)
+- [edgeEditModule](Variable.edgeEditModule)
+- [edgeInProgressID](Variable.edgeInProgressID)
+- [edgeInProgressTargetHandleID](Variable.edgeInProgressTargetHandleID)
+- [edgeIntersectionModule](Variable.edgeIntersectionModule)
+- [edgeJunctionModule](Variable.edgeJunctionModule)
+- [edgeLayoutFeature](Variable.edgeLayoutFeature)
+- [edgeLayoutModule](Variable.edgeLayoutModule)
+- [editFeature](Variable.editFeature)
+- [editLabelFeature](Variable.editLabelFeature)
+- [ELLIPTIC\_ANCHOR\_KIND](Variable.ELLIPTIC_ANCHOR_KIND)
+- [EMPTY\_ROOT](Variable.EMPTY_ROOT)
+- [expandFeature](Variable.expandFeature)
+- [expandModule](Variable.expandModule)
+- [exportFeature](Variable.exportFeature)
+- [exportModule](Variable.exportModule)
+- [fadeFeature](Variable.fadeFeature)
+- [fadeModule](Variable.fadeModule)
+- [~~ForeignObjectElement~~](Variable.ForeignObjectElement)
+- [hoverFeedbackFeature](Variable.hoverFeedbackFeature)
+- [hoverModule](Variable.hoverModule)
+- [html](Variable.html)
+- [~~HtmlRoot~~](Variable.HtmlRoot)
+- [labelEditModule](Variable.labelEditModule)
+- [labelEditUiModule](Variable.labelEditUiModule)
+- [layoutableChildFeature](Variable.layoutableChildFeature)
+- [layoutContainerFeature](Variable.layoutContainerFeature)
+- [modelSourceModule](Variable.modelSourceModule)
+- [moveFeature](Variable.moveFeature)
+- [moveModule](Variable.moveModule)
+- [nameFeature](Variable.nameFeature)
+- [openFeature](Variable.openFeature)
+- [openModule](Variable.openModule)
+- [popupFeature](Variable.popupFeature)
+- [~~PreRenderedElement~~](Variable.PreRenderedElement)
+- [RECTANGULAR\_ANCHOR\_KIND](Variable.RECTANGULAR_ANCHOR_KIND)
+- [routingModule](Variable.routingModule)
+- [selectFeature](Variable.selectFeature)
+- [selectModule](Variable.selectModule)
+- [~~ShapedPreRenderedElement~~](Variable.ShapedPreRenderedElement)
+- [~~SIssueMarker~~](Variable.SIssueMarker)
+- [svg](Variable.svg)
+- [TYPES](Variable.TYPES)
+- [undoRedoModule](Variable.undoRedoModule)
+- [updateModule](Variable.updateModule)
+- [viewportFeature](Variable.viewportFeature)
+- [viewportModule](Variable.viewportModule)
+- [withEditLabelFeature](Variable.withEditLabelFeature)
+- [zorderModule](Variable.zorderModule)
+
+## Functions
+
+- [addRoute](Function.addRoute)
+- [applyMatches](Function.applyMatches)
+- [BY\_DESCENDING\_X\_THEN\_DESCENDING\_Y](Function.BY_DESCENDING_X_THEN_DESCENDING_Y)
+- [BY\_DESCENDING\_X\_THEN\_Y](Function.BY_DESCENDING_X_THEN_Y)
+- [BY\_X\_THEN\_DESCENDING\_Y](Function.BY_X_THEN_DESCENDING_Y)
+- [BY\_X\_THEN\_Y](Function.BY_X_THEN_Y)
+- [canEditRouting](Function.canEditRouting)
+- [checkEdgePlacement](Function.checkEdgePlacement)
+- [checkWhichEventIsLeft](Function.checkWhichEventIsLeft)
+- [checkWhichSegmentHasRightEndpointFirst](Function.checkWhichSegmentHasRightEndpointFirst)
+- [codiconCSSClasses](Function.codiconCSSClasses)
+- [codiconCSSString](Function.codiconCSSString)
+- [configureActionHandler](Function.configureActionHandler)
+- [configureButtonHandler](Function.configureButtonHandler)
+- [configureCommand](Function.configureCommand)
+- [configureCommandStackOptions](Function.configureCommandStackOptions)
+- [configureLayout](Function.configureLayout)
+- [configureModelElement](Function.configureModelElement)
+- [configureView](Function.configureView)
+- [configureViewerOptions](Function.configureViewerOptions)
+- [containsSome](Function.containsSome)
+- [copyClassesFromElement](Function.copyClassesFromElement)
+- [copyClassesFromVNode](Function.copyClassesFromVNode)
+- [createFeatureSet](Function.createFeatureSet)
+- [createRandomId](Function.createRandomId)
+- [easeInOut](Function.easeInOut)
+- [findArgValue](Function.findArgValue)
+- [findChildrenAtPosition](Function.findChildrenAtPosition)
+- [findParent](Function.findParent)
+- [findParentByFeature](Function.findParentByFeature)
+- [findViewportScrollbar](Function.findViewportScrollbar)
+- [forEachMatch](Function.forEachMatch)
+- [getAbsoluteBounds](Function.getAbsoluteBounds)
+- [getAbsoluteClientBounds](Function.getAbsoluteClientBounds)
+- [getAbsoluteRouteBounds](Function.getAbsoluteRouteBounds)
+- [getAttrs](Function.getAttrs)
+- [getEditableLabel](Function.getEditableLabel)
+- [getModelBounds](Function.getModelBounds)
+- [getProjectedBounds](Function.getProjectedBounds)
+- [getProjections](Function.getProjections)
+- [getRouteBounds](Function.getRouteBounds)
+- [getSegmentIndex](Function.getSegmentIndex)
+- [getWindowScroll](Function.getWindowScroll)
+- [getZoom](Function.getZoom)
+- [hasPopupFeature](Function.hasPopupFeature)
+- [hitsMouseEvent](Function.hitsMouseEvent)
+- [intersection](Function.intersection)
+- [intersectionOfSegments](Function.intersectionOfSegments)
+- [isAlignable](Function.isAlignable)
+- [isApplyLabelEditAction](Function.isApplyLabelEditAction)
+- [isBoundsAware](Function.isBoundsAware)
+- [isConnectable](Function.isConnectable)
+- [isCreatingOnDrag](Function.isCreatingOnDrag)
+- [isCrossSite](Function.isCrossSite)
+- [isCtrlOrCmd](Function.isCtrlOrCmd)
+- [isDecoration](Function.isDecoration)
+- [isDeletable](Function.isDeletable)
+- [isEdgeLayoutable](Function.isEdgeLayoutable)
+- [isEditableLabel](Function.isEditableLabel)
+- [isEditLabelAction](Function.isEditLabelAction)
+- [isExpandable](Function.isExpandable)
+- [isExportable](Function.isExportable)
+- [isFadeable](Function.isFadeable)
+- [isHoverable](Function.isHoverable)
+- [isInjectable](Function.isInjectable)
+- [isIntersectingRoutedPoint](Function.isIntersectingRoutedPoint)
+- [isLabeledAction](Function.isLabeledAction)
+- [isLayoutableChild](Function.isLayoutableChild)
+- [isLayoutContainer](Function.isLayoutContainer)
+- [isLocateable](Function.isLocateable)
+- [isMac](Function.isMac)
+- [isMoveable](Function.isMoveable)
+- [isNameable](Function.isNameable)
+- [isOpenable](Function.isOpenable)
+- [isParent](Function.isParent)
+- [isProjectable](Function.isProjectable)
+- [isSelectable](Function.isSelectable)
+- [isSelected](Function.isSelected)
+- [isSizeable](Function.isSizeable)
+- [isStoppableCommand](Function.isStoppableCommand)
+- [isSVGGraphicsElement](Function.isSVGGraphicsElement)
+- [isThunk](Function.isThunk)
+- [isUIExtension](Function.isUIExtension)
+- [isViewport](Function.isViewport)
+- [isWithEditableLabel](Function.isWithEditableLabel)
+- [JSX](Function.JSX)
+- [limit](Function.limit)
+- [limitViewport](Function.limitViewport)
+- [loadDefaultModules](Function.loadDefaultModules)
+- [mergeStyle](Function.mergeStyle)
+- [name](Function.name)
+- [on](Function.on)
+- [onAction](Function.onAction)
+- [overrideCommandStackOptions](Function.overrideCommandStackOptions)
+- [overrideModelElement](Function.overrideModelElement)
+- [overrideViewerOptions](Function.overrideViewerOptions)
+- [registerModelElement](Function.registerModelElement)
+- [rgb](Function.rgb)
+- [runSweep](Function.runSweep)
+- [setAttr](Function.setAttr)
+- [setClass](Function.setClass)
+- [setNamespace](Function.setNamespace)
+- [toAnchor](Function.toAnchor)
+- [toSVG](Function.toSVG)
+- [transformToRootBounds](Function.transformToRootBounds)
+- [translateBounds](Function.translateBounds)
+- [translatePoint](Function.translatePoint)
diff --git a/hugo/content/docs/ref/sprotty-protocol/ApplyLabelEditAction.Function.create.md b/hugo/content/docs/ref/sprotty-protocol/ApplyLabelEditAction.Function.create.md
new file mode 100644
index 0000000..7f04da6
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/ApplyLabelEditAction.Function.create.md
@@ -0,0 +1,22 @@
+
+[sprotty-protocol](../globals) / [ApplyLabelEditAction](../Namespace.ApplyLabelEditAction) / create
+
+# Function: create()
+
+> **create**(`labelId`, `text`): [`ApplyLabelEditAction`](../Interface.ApplyLabelEditAction)
+
+Defined in: [actions.ts:816](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L816)
+
+## Parameters
+
+### labelId
+
+`string`
+
+### text
+
+`string`
+
+## Returns
+
+[`ApplyLabelEditAction`](../Interface.ApplyLabelEditAction)
diff --git a/hugo/content/docs/ref/sprotty-protocol/ApplyLabelEditAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-protocol/ApplyLabelEditAction.Variable.KIND.md
new file mode 100644
index 0000000..bc9783c
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/ApplyLabelEditAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [ApplyLabelEditAction](../Namespace.ApplyLabelEditAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"applyLabelEdit"` = `'applyLabelEdit'`
+
+Defined in: [actions.ts:814](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L814)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Bounds.Function.center.md b/hugo/content/docs/ref/sprotty-protocol/Bounds.Function.center.md
new file mode 100644
index 0000000..f66980d
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Bounds.Function.center.md
@@ -0,0 +1,24 @@
+
+[sprotty-protocol](../globals) / [Bounds](../Namespace.Bounds) / center
+
+# Function: center()
+
+> **center**(`b`): [`Point`](../Interface.Point)
+
+Defined in: [utils/geometry.ts:289](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L289)
+
+Returns the center point of the bounds of an object
+
+## Parameters
+
+### b
+
+[`Bounds`](../Interface.Bounds)
+
+Bounds object
+
+## Returns
+
+[`Point`](../Interface.Point)
+
+the center point
diff --git a/hugo/content/docs/ref/sprotty-protocol/Bounds.Function.combine.md b/hugo/content/docs/ref/sprotty-protocol/Bounds.Function.combine.md
new file mode 100644
index 0000000..31120f5
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Bounds.Function.combine.md
@@ -0,0 +1,31 @@
+
+[sprotty-protocol](../globals) / [Bounds](../Namespace.Bounds) / combine
+
+# Function: combine()
+
+> **combine**(`b0`, `b1`): [`Bounds`](../Interface.Bounds)
+
+Defined in: [utils/geometry.ts:255](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L255)
+
+Combines the bounds of two objects into one, so that the new bounds
+are the minimum bounds that covers both of the original bounds.
+
+## Parameters
+
+### b0
+
+[`Bounds`](../Interface.Bounds)
+
+First bounds object
+
+### b1
+
+[`Bounds`](../Interface.Bounds)
+
+Second bounds object
+
+## Returns
+
+[`Bounds`](../Interface.Bounds)
+
+The combined bounds
diff --git a/hugo/content/docs/ref/sprotty-protocol/Bounds.Function.includes.md b/hugo/content/docs/ref/sprotty-protocol/Bounds.Function.includes.md
new file mode 100644
index 0000000..bb7e770
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Bounds.Function.includes.md
@@ -0,0 +1,24 @@
+
+[sprotty-protocol](../globals) / [Bounds](../Namespace.Bounds) / includes
+
+# Function: includes()
+
+> **includes**(`b`, `p`): `boolean`
+
+Defined in: [utils/geometry.ts:299](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L299)
+
+Checks whether the point p is included in the bounds b.
+
+## Parameters
+
+### b
+
+[`Bounds`](../Interface.Bounds)
+
+### p
+
+[`Point`](../Interface.Point)
+
+## Returns
+
+`boolean`
diff --git a/hugo/content/docs/ref/sprotty-protocol/Bounds.Function.translate.md b/hugo/content/docs/ref/sprotty-protocol/Bounds.Function.translate.md
new file mode 100644
index 0000000..24c2a37
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Bounds.Function.translate.md
@@ -0,0 +1,30 @@
+
+[sprotty-protocol](../globals) / [Bounds](../Namespace.Bounds) / translate
+
+# Function: translate()
+
+> **translate**(`b`, `p`): [`Bounds`](../Interface.Bounds)
+
+Defined in: [utils/geometry.ts:275](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L275)
+
+Translates the given bounds.
+
+## Parameters
+
+### b
+
+[`Bounds`](../Interface.Bounds)
+
+Bounds object
+
+### p
+
+[`Point`](../Interface.Point)
+
+Vector by which to translate the bounds
+
+## Returns
+
+[`Bounds`](../Interface.Bounds)
+
+The translated bounds
diff --git a/hugo/content/docs/ref/sprotty-protocol/Bounds.Variable.EMPTY.md b/hugo/content/docs/ref/sprotty-protocol/Bounds.Variable.EMPTY.md
new file mode 100644
index 0000000..c0f7eab
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Bounds.Variable.EMPTY.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [Bounds](../Namespace.Bounds) / EMPTY
+
+# Variable: EMPTY
+
+> `const` **EMPTY**: [`Bounds`](../Interface.Bounds)
+
+Defined in: [utils/geometry.ts:241](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L241)
diff --git a/hugo/content/docs/ref/sprotty-protocol/BringToFrontAction.Function.create.md b/hugo/content/docs/ref/sprotty-protocol/BringToFrontAction.Function.create.md
new file mode 100644
index 0000000..7537cf1
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/BringToFrontAction.Function.create.md
@@ -0,0 +1,18 @@
+
+[sprotty-protocol](../globals) / [BringToFrontAction](../Namespace.BringToFrontAction) / create
+
+# Function: create()
+
+> **create**(`elementIDs`): [`BringToFrontAction`](../Interface.BringToFrontAction)
+
+Defined in: [actions.ts:631](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L631)
+
+## Parameters
+
+### elementIDs
+
+`string`[]
+
+## Returns
+
+[`BringToFrontAction`](../Interface.BringToFrontAction)
diff --git a/hugo/content/docs/ref/sprotty-protocol/BringToFrontAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-protocol/BringToFrontAction.Variable.KIND.md
new file mode 100644
index 0000000..6b4b5fe
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/BringToFrontAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [BringToFrontAction](../Namespace.BringToFrontAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"bringToFront"` = `'bringToFront'`
+
+Defined in: [actions.ts:629](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L629)
diff --git a/hugo/content/docs/ref/sprotty-protocol/CenterAction.Function.create.md b/hugo/content/docs/ref/sprotty-protocol/CenterAction.Function.create.md
new file mode 100644
index 0000000..839809c
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/CenterAction.Function.create.md
@@ -0,0 +1,32 @@
+
+[sprotty-protocol](../globals) / [CenterAction](../Namespace.CenterAction) / create
+
+# Function: create()
+
+> **create**(`elementIds`, `options`): [`CenterAction`](../Interface.CenterAction)
+
+Defined in: [actions.ts:521](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L521)
+
+## Parameters
+
+### elementIds
+
+`string`[]
+
+### options
+
+#### animate?
+
+`boolean`
+
+#### retainZoom?
+
+`boolean`
+
+#### zoomScale?
+
+`number`
+
+## Returns
+
+[`CenterAction`](../Interface.CenterAction)
diff --git a/hugo/content/docs/ref/sprotty-protocol/CenterAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-protocol/CenterAction.Variable.KIND.md
new file mode 100644
index 0000000..ce12913
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/CenterAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [CenterAction](../Namespace.CenterAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"center"` = `'center'`
+
+Defined in: [actions.ts:519](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L519)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Class.Deferred.md b/hugo/content/docs/ref/sprotty-protocol/Class.Deferred.md
new file mode 100644
index 0000000..b2ae94f
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Class.Deferred.md
@@ -0,0 +1,71 @@
+
+[sprotty-protocol](../globals) / Deferred
+
+# Class: Deferred\
+
+Defined in: [utils/async.ts:21](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/async.ts#L21)
+
+Simple implementation of the deferred pattern.
+An object that exposes a promise and functions to resolve and reject it.
+
+## Type Parameters
+
+### T
+
+`T`
+
+## Constructors
+
+### Constructor
+
+> **new Deferred**\<`T`\>(): `Deferred`\<`T`\>
+
+Defined in: [utils/async.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/async.ts#L28)
+
+#### Returns
+
+`Deferred`\<`T`\>
+
+## Properties
+
+### promise
+
+> `readonly` **promise**: `Promise`\<`T`\>
+
+Defined in: [utils/async.ts:24](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/async.ts#L24)
+
+***
+
+### reject()
+
+> **reject**: (`reason?`) => `void`
+
+Defined in: [utils/async.ts:23](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/async.ts#L23)
+
+#### Parameters
+
+##### reason?
+
+`any`
+
+#### Returns
+
+`void`
+
+***
+
+### resolve()
+
+> **resolve**: (`value?`) => `void`
+
+Defined in: [utils/async.ts:22](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/async.ts#L22)
+
+#### Parameters
+
+##### value?
+
+`T` | `PromiseLike`\<`T`\>
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-protocol/Class.DiagramServer.md b/hugo/content/docs/ref/sprotty-protocol/Class.DiagramServer.md
new file mode 100644
index 0000000..0e0c0f6
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Class.DiagramServer.md
@@ -0,0 +1,354 @@
+
+[sprotty-protocol](../globals) / DiagramServer
+
+# Class: DiagramServer
+
+Defined in: [diagram-server.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-server.ts#L31)
+
+An instance of this class is responsible for handling a single diagram client. It holds the current
+state of the diagram and manages communication with the client via actions.
+
+## Constructors
+
+### Constructor
+
+> **new DiagramServer**(`dispatch`, `services`): `DiagramServer`
+
+Defined in: [diagram-server.ts:49](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-server.ts#L49)
+
+#### Parameters
+
+##### dispatch
+
+\<`A`\>(`action`) => `Promise`\<`void`\>
+
+##### services
+
+[`DiagramServices`](../Interface.DiagramServices)
+
+#### Returns
+
+`DiagramServer`
+
+## Properties
+
+### actionHandlerRegistry?
+
+> `protected` `optional` **actionHandlerRegistry**: [`ServerActionHandlerRegistry`](../Class.ServerActionHandlerRegistry)
+
+Defined in: [diagram-server.ts:46](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-server.ts#L46)
+
+***
+
+### diagramGenerator
+
+> `protected` `readonly` **diagramGenerator**: [`IDiagramGenerator`](../Interface.IDiagramGenerator)
+
+Defined in: [diagram-server.ts:44](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-server.ts#L44)
+
+***
+
+### dispatch()
+
+> `readonly` **dispatch**: \<`A`\>(`action`) => `Promise`\<`void`\>
+
+Defined in: [diagram-server.ts:42](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-server.ts#L42)
+
+#### Type Parameters
+
+##### A
+
+`A` *extends* [`Action`](../Interface.Action)
+
+#### Parameters
+
+##### action
+
+`A`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### layoutEngine?
+
+> `protected` `readonly` `optional` **layoutEngine**: [`IModelLayoutEngine`](../Interface.IModelLayoutEngine)
+
+Defined in: [diagram-server.ts:45](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-server.ts#L45)
+
+***
+
+### requests
+
+> `protected` `readonly` **requests**: `Map`\<`string`, [`Deferred`](../Class.Deferred)\<[`ResponseAction`](../Interface.ResponseAction)\>\>
+
+Defined in: [diagram-server.ts:47](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-server.ts#L47)
+
+***
+
+### state
+
+> `readonly` **state**: [`DiagramState`](../Interface.DiagramState) & `object`
+
+Defined in: [diagram-server.ts:33](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-server.ts#L33)
+
+#### Type declaration
+
+##### lastSubmittedModelType?
+
+> `optional` **lastSubmittedModelType**: `string`
+
+## Accessors
+
+### needsClientLayout
+
+#### Get Signature
+
+> **get** **needsClientLayout**(): `boolean`
+
+Defined in: [diagram-server.ts:83](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-server.ts#L83)
+
+Whether the client needs to compute the layout of parts of the model. This affects the behavior
+of `submitModel`.
+
+This setting is determined by the `DiagramOptions` that are received with the `RequestModelAction`
+from the client. If the client does not specify whether it needs client layout, the default value
+is `true`.
+
+##### Returns
+
+`boolean`
+
+***
+
+### needsServerLayout
+
+#### Get Signature
+
+> **get** **needsServerLayout**(): `boolean`
+
+Defined in: [diagram-server.ts:98](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-server.ts#L98)
+
+Whether the server needs to compute the layout of parts of the model. This affects the behavior
+of `submitModel`.
+
+This setting is determined by the `DiagramOptions` that are received with the `RequestModelAction`
+from the client. If the client does not specify whether it needs server layout, the default value
+is `false`.
+
+##### Returns
+
+`boolean`
+
+## Methods
+
+### accept()
+
+> **accept**(`action`): `Promise`\<`void`\>
+
+Defined in: [diagram-server.ts:108](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-server.ts#L108)
+
+Called when an action is received from the client.
+
+#### Parameters
+
+##### action
+
+[`Action`](../Interface.Action)
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### handleAction()
+
+> `protected` **handleAction**(`action`): `Promise`\<`void`\>
+
+Defined in: [diagram-server.ts:160](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-server.ts#L160)
+
+#### Parameters
+
+##### action
+
+[`Action`](../Interface.Action)
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### handleComputedBounds()
+
+> `protected` **handleComputedBounds**(`action`): `Promise`\<`void`\>
+
+Defined in: [diagram-server.ts:242](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-server.ts#L242)
+
+#### Parameters
+
+##### action
+
+[`ComputedBoundsAction`](../Interface.ComputedBoundsAction)
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### handleLayout()
+
+> `protected` **handleLayout**(`action`): `Promise`\<`void`\>
+
+Defined in: [diagram-server.ts:250](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-server.ts#L250)
+
+#### Parameters
+
+##### action
+
+[`LayoutAction`](../Interface.LayoutAction)
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### handleRequestModel()
+
+> `protected` **handleRequestModel**(`action`): `Promise`\<`void`\>
+
+Defined in: [diagram-server.ts:182](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-server.ts#L182)
+
+#### Parameters
+
+##### action
+
+[`RequestModelAction`](../Interface.RequestModelAction)
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### rejectRemoteRequest()
+
+> **rejectRemoteRequest**(`action`, `error`): `void`
+
+Defined in: [diagram-server.ts:149](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-server.ts#L149)
+
+Send a `RejectAction` to the client to notify that a request could not be fulfilled.
+
+#### Parameters
+
+##### action
+
+`undefined` | [`Action`](../Interface.Action)
+
+##### error
+
+`Error`
+
+#### Returns
+
+`void`
+
+***
+
+### request()
+
+> **request**\<`Res`\>(`action`): `Promise`\<`Res`\>
+
+Defined in: [diagram-server.ts:132](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-server.ts#L132)
+
+Send a request action to the client. The resulting promise is resolved when a matching
+response is received and rejected when a `RejectAction` is received.
+
+#### Type Parameters
+
+##### Res
+
+`Res` *extends* [`ResponseAction`](../Interface.ResponseAction)
+
+#### Parameters
+
+##### action
+
+[`RequestAction`](../Interface.RequestAction)\<`Res`\>
+
+#### Returns
+
+`Promise`\<`Res`\>
+
+***
+
+### setModel()
+
+> **setModel**(`newRoot`): `Promise`\<`void`\>
+
+Defined in: [diagram-server.ts:60](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-server.ts#L60)
+
+Set the model and submit it to the client.
+
+#### Parameters
+
+##### newRoot
+
+[`SModelRoot`](../Interface.SModelRoot)
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### submitModel()
+
+> `protected` **submitModel**(`newRoot`, `update`, `cause?`): `Promise`\<`void`\>
+
+Defined in: [diagram-server.ts:201](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-server.ts#L201)
+
+Submit a model to the client after it has been updated in the server state.
+
+#### Parameters
+
+##### newRoot
+
+[`SModelRoot`](../Interface.SModelRoot)
+
+##### update
+
+`boolean`
+
+##### cause?
+
+[`Action`](../Interface.Action)
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### updateModel()
+
+> **updateModel**(`newRoot`): `Promise`\<`void`\>
+
+Defined in: [diagram-server.ts:69](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-server.ts#L69)
+
+Update the model to a new state and submit it to the client.
+
+#### Parameters
+
+##### newRoot
+
+[`SModelRoot`](../Interface.SModelRoot)
+
+#### Returns
+
+`Promise`\<`void`\>
diff --git a/hugo/content/docs/ref/sprotty-protocol/Class.SModelIndex.md b/hugo/content/docs/ref/sprotty-protocol/Class.SModelIndex.md
new file mode 100644
index 0000000..59a4b0e
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Class.SModelIndex.md
@@ -0,0 +1,127 @@
+
+[sprotty-protocol](../globals) / SModelIndex
+
+# Class: SModelIndex
+
+Defined in: [utils/model-utils.ts:105](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/model-utils.ts#L105)
+
+Used to speed up model element lookup by id.
+This index implementation is for the serializable _external model_ defined in `sprotty-protocol`.
+
+## Constructors
+
+### Constructor
+
+> **new SModelIndex**(): `SModelIndex`
+
+#### Returns
+
+`SModelIndex`
+
+## Methods
+
+### add()
+
+> **add**(`element`): `this`
+
+Defined in: [utils/model-utils.ts:110](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/model-utils.ts#L110)
+
+#### Parameters
+
+##### element
+
+[`SModelElement`](../Interface.SModelElement)
+
+#### Returns
+
+`this`
+
+***
+
+### contains()
+
+> **contains**(`element`): `boolean`
+
+Defined in: [utils/model-utils.ts:137](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/model-utils.ts#L137)
+
+#### Parameters
+
+##### element
+
+[`SModelElement`](../Interface.SModelElement)
+
+#### Returns
+
+`boolean`
+
+***
+
+### getById()
+
+> **getById**(`id`): `undefined` \| [`SModelElement`](../Interface.SModelElement)
+
+Defined in: [utils/model-utils.ts:141](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/model-utils.ts#L141)
+
+#### Parameters
+
+##### id
+
+`string`
+
+#### Returns
+
+`undefined` \| [`SModelElement`](../Interface.SModelElement)
+
+***
+
+### getParent()
+
+> **getParent**(`id`): `undefined` \| [`SModelElement`](../Interface.SModelElement)
+
+Defined in: [utils/model-utils.ts:145](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/model-utils.ts#L145)
+
+#### Parameters
+
+##### id
+
+`string`
+
+#### Returns
+
+`undefined` \| [`SModelElement`](../Interface.SModelElement)
+
+***
+
+### getRoot()
+
+> **getRoot**(`element`): [`SModelRoot`](../Interface.SModelRoot)
+
+Defined in: [utils/model-utils.ts:149](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/model-utils.ts#L149)
+
+#### Parameters
+
+##### element
+
+[`SModelElement`](../Interface.SModelElement)
+
+#### Returns
+
+[`SModelRoot`](../Interface.SModelRoot)
+
+***
+
+### remove()
+
+> **remove**(`element`): `this`
+
+Defined in: [utils/model-utils.ts:126](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/model-utils.ts#L126)
+
+#### Parameters
+
+##### element
+
+[`SModelElement`](../Interface.SModelElement)
+
+#### Returns
+
+`this`
diff --git a/hugo/content/docs/ref/sprotty-protocol/Class.ServerActionHandlerRegistry.md b/hugo/content/docs/ref/sprotty-protocol/Class.ServerActionHandlerRegistry.md
new file mode 100644
index 0000000..d5c162e
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Class.ServerActionHandlerRegistry.md
@@ -0,0 +1,108 @@
+
+[sprotty-protocol](../globals) / ServerActionHandlerRegistry
+
+# Class: ServerActionHandlerRegistry
+
+Defined in: [action-handler.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/action-handler.ts#L28)
+
+Use this service to register handlers to specific actions. The `DiagramServer` queries this registry
+when an action is received from the client, and falls back to the built-in behavior if no handlers
+are found.
+
+## Constructors
+
+### Constructor
+
+> **new ServerActionHandlerRegistry**(): `ServerActionHandlerRegistry`
+
+#### Returns
+
+`ServerActionHandlerRegistry`
+
+## Properties
+
+### handlers
+
+> `protected` `readonly` **handlers**: `Map`\<`string`, [`ServerActionHandler`](../TypeAlias.ServerActionHandler)\<[`Action`](../Interface.Action)\>[]\>
+
+Defined in: [action-handler.ts:30](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/action-handler.ts#L30)
+
+## Methods
+
+### getHandler()
+
+> **getHandler**(`kind`): `undefined` \| [`ServerActionHandler`](../TypeAlias.ServerActionHandler)\<[`Action`](../Interface.Action)\>[]
+
+Defined in: [action-handler.ts:35](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/action-handler.ts#L35)
+
+Returns the action handlers for the given action kind, or `undefined` if there are none.
+
+#### Parameters
+
+##### kind
+
+`string`
+
+#### Returns
+
+`undefined` \| [`ServerActionHandler`](../TypeAlias.ServerActionHandler)\<[`Action`](../Interface.Action)\>[]
+
+***
+
+### onAction()
+
+> **onAction**\<`A`\>(`kind`, `handler`): `void`
+
+Defined in: [action-handler.ts:42](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/action-handler.ts#L42)
+
+Add an action handler to be called when an action of the specified kind is received.
+
+#### Type Parameters
+
+##### A
+
+`A` *extends* [`Action`](../Interface.Action)
+
+#### Parameters
+
+##### kind
+
+`string`
+
+##### handler
+
+[`ServerActionHandler`](../TypeAlias.ServerActionHandler)\<`A`\>
+
+#### Returns
+
+`void`
+
+***
+
+### removeActionHandler()
+
+> **removeActionHandler**\<`A`\>(`kind`, `handler`): `void`
+
+Defined in: [action-handler.ts:53](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/action-handler.ts#L53)
+
+Remove an action handler that was previously added with `onAction`.
+
+#### Type Parameters
+
+##### A
+
+`A` *extends* [`Action`](../Interface.Action)
+
+#### Parameters
+
+##### kind
+
+`string`
+
+##### handler
+
+[`ServerActionHandler`](../TypeAlias.ServerActionHandler)\<`A`\>
+
+#### Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-protocol/CollapseExpandAction.Function.create.md b/hugo/content/docs/ref/sprotty-protocol/CollapseExpandAction.Function.create.md
new file mode 100644
index 0000000..0468f4f
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/CollapseExpandAction.Function.create.md
@@ -0,0 +1,24 @@
+
+[sprotty-protocol](../globals) / [CollapseExpandAction](../Namespace.CollapseExpandAction) / create
+
+# Function: create()
+
+> **create**(`options`): [`CollapseExpandAction`](../Interface.CollapseExpandAction)
+
+Defined in: [actions.ts:441](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L441)
+
+## Parameters
+
+### options
+
+#### collapseIds?
+
+`string`[]
+
+#### expandIds?
+
+`string`[]
+
+## Returns
+
+[`CollapseExpandAction`](../Interface.CollapseExpandAction)
diff --git a/hugo/content/docs/ref/sprotty-protocol/CollapseExpandAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-protocol/CollapseExpandAction.Variable.KIND.md
new file mode 100644
index 0000000..179b8dc
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/CollapseExpandAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [CollapseExpandAction](../Namespace.CollapseExpandAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"collapseExpand"` = `'collapseExpand'`
+
+Defined in: [actions.ts:439](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L439)
diff --git a/hugo/content/docs/ref/sprotty-protocol/CollapseExpandAllAction.Function.create.md b/hugo/content/docs/ref/sprotty-protocol/CollapseExpandAllAction.Function.create.md
new file mode 100644
index 0000000..0f9aabf
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/CollapseExpandAllAction.Function.create.md
@@ -0,0 +1,20 @@
+
+[sprotty-protocol](../globals) / [CollapseExpandAllAction](../Namespace.CollapseExpandAllAction) / create
+
+# Function: create()
+
+> **create**(`options`): [`CollapseExpandAllAction`](../Interface.CollapseExpandAllAction)
+
+Defined in: [actions.ts:461](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L461)
+
+## Parameters
+
+### options
+
+#### expand?
+
+`boolean`
+
+## Returns
+
+[`CollapseExpandAllAction`](../Interface.CollapseExpandAllAction)
diff --git a/hugo/content/docs/ref/sprotty-protocol/CollapseExpandAllAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-protocol/CollapseExpandAllAction.Variable.KIND.md
new file mode 100644
index 0000000..09e54c9
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/CollapseExpandAllAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [CollapseExpandAllAction](../Namespace.CollapseExpandAllAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"collapseExpandAll"` = `'collapseExpandAll'`
+
+Defined in: [actions.ts:459](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L459)
diff --git a/hugo/content/docs/ref/sprotty-protocol/ComputedBoundsAction.Function.create.md b/hugo/content/docs/ref/sprotty-protocol/ComputedBoundsAction.Function.create.md
new file mode 100644
index 0000000..0e8cebb
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/ComputedBoundsAction.Function.create.md
@@ -0,0 +1,32 @@
+
+[sprotty-protocol](../globals) / [ComputedBoundsAction](../Namespace.ComputedBoundsAction) / create
+
+# Function: create()
+
+> **create**(`bounds`, `options`): [`ComputedBoundsAction`](../Interface.ComputedBoundsAction)
+
+Defined in: [actions.ts:301](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L301)
+
+## Parameters
+
+### bounds
+
+[`ElementAndBounds`](../Interface.ElementAndBounds)[]
+
+### options
+
+#### alignments?
+
+[`ElementAndAlignment`](../Interface.ElementAndAlignment)[]
+
+#### requestId?
+
+`string`
+
+#### revision?
+
+`number`
+
+## Returns
+
+[`ComputedBoundsAction`](../Interface.ComputedBoundsAction)
diff --git a/hugo/content/docs/ref/sprotty-protocol/ComputedBoundsAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-protocol/ComputedBoundsAction.Variable.KIND.md
new file mode 100644
index 0000000..a05b48d
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/ComputedBoundsAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [ComputedBoundsAction](../Namespace.ComputedBoundsAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"computedBounds"` = `'computedBounds'`
+
+Defined in: [actions.ts:299](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L299)
diff --git a/hugo/content/docs/ref/sprotty-protocol/CreateElementAction.Function.create.md b/hugo/content/docs/ref/sprotty-protocol/CreateElementAction.Function.create.md
new file mode 100644
index 0000000..25226d0
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/CreateElementAction.Function.create.md
@@ -0,0 +1,24 @@
+
+[sprotty-protocol](../globals) / [CreateElementAction](../Namespace.CreateElementAction) / create
+
+# Function: create()
+
+> **create**(`elementSchema`, `options`): [`CreateElementAction`](../Interface.CreateElementAction)
+
+Defined in: [actions.ts:778](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L778)
+
+## Parameters
+
+### elementSchema
+
+[`SModelElement`](../Interface.SModelElement)
+
+### options
+
+#### containerId
+
+`string`
+
+## Returns
+
+[`CreateElementAction`](../Interface.CreateElementAction)
diff --git a/hugo/content/docs/ref/sprotty-protocol/CreateElementAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-protocol/CreateElementAction.Variable.KIND.md
new file mode 100644
index 0000000..5840050
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/CreateElementAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [CreateElementAction](../Namespace.CreateElementAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"createElement"` = `'createElement'`
+
+Defined in: [actions.ts:776](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L776)
diff --git a/hugo/content/docs/ref/sprotty-protocol/DeleteElementAction.Function.create.md b/hugo/content/docs/ref/sprotty-protocol/DeleteElementAction.Function.create.md
new file mode 100644
index 0000000..e7c03b9
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/DeleteElementAction.Function.create.md
@@ -0,0 +1,18 @@
+
+[sprotty-protocol](../globals) / [DeleteElementAction](../Namespace.DeleteElementAction) / create
+
+# Function: create()
+
+> **create**(`elementIds`): [`DeleteElementAction`](../Interface.DeleteElementAction)
+
+Defined in: [actions.ts:797](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L797)
+
+## Parameters
+
+### elementIds
+
+`string`[]
+
+## Returns
+
+[`DeleteElementAction`](../Interface.DeleteElementAction)
diff --git a/hugo/content/docs/ref/sprotty-protocol/DeleteElementAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-protocol/DeleteElementAction.Variable.KIND.md
new file mode 100644
index 0000000..138176c
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/DeleteElementAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [DeleteElementAction](../Namespace.DeleteElementAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"delete"` = `'delete'`
+
+Defined in: [actions.ts:795](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L795)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Dimension.Function.isValid.md b/hugo/content/docs/ref/sprotty-protocol/Dimension.Function.isValid.md
new file mode 100644
index 0000000..52ab367
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Dimension.Function.isValid.md
@@ -0,0 +1,22 @@
+
+[sprotty-protocol](../globals) / [Dimension](../Namespace.Dimension) / isValid
+
+# Function: isValid()
+
+> **isValid**(`d`): `boolean`
+
+Defined in: [utils/geometry.ts:225](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L225)
+
+Checks whether the given dimention is valid, i.e. the width and height are non-zero.
+
+## Parameters
+
+### d
+
+[`Dimension`](../Interface.Dimension)
+
+## Returns
+
+`boolean`
+
+`true` if the dimension is valid
diff --git a/hugo/content/docs/ref/sprotty-protocol/Dimension.Variable.EMPTY.md b/hugo/content/docs/ref/sprotty-protocol/Dimension.Variable.EMPTY.md
new file mode 100644
index 0000000..2f373d5
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Dimension.Variable.EMPTY.md
@@ -0,0 +1,10 @@
+
+[sprotty-protocol](../globals) / [Dimension](../Namespace.Dimension) / EMPTY
+
+# Variable: EMPTY
+
+> `const` **EMPTY**: [`Dimension`](../Interface.Dimension)
+
+Defined in: [utils/geometry.ts:215](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L215)
+
+A dimension with both width and height set to a negative value, which is considered as undefined.
diff --git a/hugo/content/docs/ref/sprotty-protocol/ExportSvgAction.Function.create.md b/hugo/content/docs/ref/sprotty-protocol/ExportSvgAction.Function.create.md
new file mode 100644
index 0000000..08bcb72
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/ExportSvgAction.Function.create.md
@@ -0,0 +1,26 @@
+
+[sprotty-protocol](../globals) / [ExportSvgAction](../Namespace.ExportSvgAction) / create
+
+# Function: create()
+
+> **create**(`svg`, `requestId`, `options?`): [`ExportSvgAction`](../Interface.ExportSvgAction)
+
+Defined in: [actions.ts:757](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L757)
+
+## Parameters
+
+### svg
+
+`string`
+
+### requestId
+
+`string`
+
+### options?
+
+[`ExportSvgOptions`](../Interface.ExportSvgOptions)
+
+## Returns
+
+[`ExportSvgAction`](../Interface.ExportSvgAction)
diff --git a/hugo/content/docs/ref/sprotty-protocol/ExportSvgAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-protocol/ExportSvgAction.Variable.KIND.md
new file mode 100644
index 0000000..b3aafc1
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/ExportSvgAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [ExportSvgAction](../Namespace.ExportSvgAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"exportSvg"` = `'exportSvg'`
+
+Defined in: [actions.ts:755](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L755)
diff --git a/hugo/content/docs/ref/sprotty-protocol/FitToScreenAction.Function.create.md b/hugo/content/docs/ref/sprotty-protocol/FitToScreenAction.Function.create.md
new file mode 100644
index 0000000..3870a16
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/FitToScreenAction.Function.create.md
@@ -0,0 +1,32 @@
+
+[sprotty-protocol](../globals) / [FitToScreenAction](../Namespace.FitToScreenAction) / create
+
+# Function: create()
+
+> **create**(`elementIds`, `options`): [`FitToScreenAction`](../Interface.FitToScreenAction)
+
+Defined in: [actions.ts:548](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L548)
+
+## Parameters
+
+### elementIds
+
+`string`[]
+
+### options
+
+#### animate?
+
+`boolean`
+
+#### maxZoom?
+
+`number`
+
+#### padding?
+
+`number`
+
+## Returns
+
+[`FitToScreenAction`](../Interface.FitToScreenAction)
diff --git a/hugo/content/docs/ref/sprotty-protocol/FitToScreenAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-protocol/FitToScreenAction.Variable.KIND.md
new file mode 100644
index 0000000..8656534
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/FitToScreenAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [FitToScreenAction](../Namespace.FitToScreenAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"fit"` = `'fit'`
+
+Defined in: [actions.ts:546](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L546)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Function.almostEquals.md b/hugo/content/docs/ref/sprotty-protocol/Function.almostEquals.md
new file mode 100644
index 0000000..05f88fa
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Function.almostEquals.md
@@ -0,0 +1,30 @@
+
+[sprotty-protocol](../globals) / almostEquals
+
+# Function: almostEquals()
+
+> **almostEquals**(`a`, `b`): `boolean`
+
+Defined in: [utils/geometry.ts:328](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L328)
+
+Returns whether two numbers are almost equal, within a small margin (0.001)
+
+## Parameters
+
+### a
+
+`number`
+
+First number
+
+### b
+
+`number`
+
+Second number
+
+## Returns
+
+`boolean`
+
+True if the two numbers are almost equal
diff --git a/hugo/content/docs/ref/sprotty-protocol/Function.angleBetweenPoints.md b/hugo/content/docs/ref/sprotty-protocol/Function.angleBetweenPoints.md
new file mode 100644
index 0000000..a019f7a
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Function.angleBetweenPoints.md
@@ -0,0 +1,29 @@
+
+[sprotty-protocol](../globals) / angleBetweenPoints
+
+# Function: angleBetweenPoints()
+
+> **angleBetweenPoints**(`a`, `b`): `number`
+
+Defined in: [utils/geometry.ts:180](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L180)
+
+Computes the angle in radians between the two given points (relative to the origin of the coordinate system).
+The result is in the range [0, pi]. Returns NaN if the points are equal.
+
+## Parameters
+
+### a
+
+[`Point`](../Interface.Point)
+
+First point
+
+### b
+
+[`Point`](../Interface.Point)
+
+Second point
+
+## Returns
+
+`number`
diff --git a/hugo/content/docs/ref/sprotty-protocol/Function.angleOfPoint.md b/hugo/content/docs/ref/sprotty-protocol/Function.angleOfPoint.md
new file mode 100644
index 0000000..65f973b
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Function.angleOfPoint.md
@@ -0,0 +1,23 @@
+
+[sprotty-protocol](../globals) / angleOfPoint
+
+# Function: angleOfPoint()
+
+> **angleOfPoint**(`p`): `number`
+
+Defined in: [utils/geometry.ts:170](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L170)
+
+Computes the angle in radians of the given point to the x-axis of the coordinate system.
+The result is in the range [-pi, pi].
+
+## Parameters
+
+### p
+
+[`Point`](../Interface.Point)
+
+A point in the Eucledian plane
+
+## Returns
+
+`number`
diff --git a/hugo/content/docs/ref/sprotty-protocol/Function.applyBounds.md b/hugo/content/docs/ref/sprotty-protocol/Function.applyBounds.md
new file mode 100644
index 0000000..7631698
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Function.applyBounds.md
@@ -0,0 +1,25 @@
+
+[sprotty-protocol](../globals) / applyBounds
+
+# Function: applyBounds()
+
+> **applyBounds**(`root`, `action`): `void`
+
+Defined in: [utils/model-utils.ts:32](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/model-utils.ts#L32)
+
+Apply the computed bounds to the given model. This ensures that the model has complete
+information about positions and sizes derived from its actual rendering in the frontend.
+
+## Parameters
+
+### root
+
+[`SModelRoot`](../Interface.SModelRoot)
+
+### action
+
+[`ComputedBoundsAction`](../Interface.ComputedBoundsAction)
+
+## Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-protocol/Function.centerOfLine.md b/hugo/content/docs/ref/sprotty-protocol/Function.centerOfLine.md
new file mode 100644
index 0000000..657c711
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Function.centerOfLine.md
@@ -0,0 +1,28 @@
+
+[sprotty-protocol](../globals) / centerOfLine
+
+# Function: centerOfLine()
+
+> **centerOfLine**(`s`, `e`): [`Point`](../Interface.Point)
+
+Defined in: [utils/geometry.ts:193](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L193)
+
+Computes the center of the line segment spanned by the two given points.
+
+## Parameters
+
+### s
+
+[`Point`](../Interface.Point)
+
+Start point of the line
+
+### e
+
+[`Point`](../Interface.Point)
+
+End point of the line
+
+## Returns
+
+[`Point`](../Interface.Point)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Function.cloneModel.md b/hugo/content/docs/ref/sprotty-protocol/Function.cloneModel.md
new file mode 100644
index 0000000..8cb1146
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Function.cloneModel.md
@@ -0,0 +1,27 @@
+
+[sprotty-protocol](../globals) / cloneModel
+
+# Function: cloneModel()
+
+> **cloneModel**\<`T`\>(`model`): `T`
+
+Defined in: [utils/model-utils.ts:24](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/model-utils.ts#L24)
+
+Clone a given model. This function requires that the model is serializable, so it's
+free of cycles and functions.
+
+## Type Parameters
+
+### T
+
+`T` *extends* [`SModelElement`](../Interface.SModelElement)
+
+## Parameters
+
+### model
+
+`T`
+
+## Returns
+
+`T`
diff --git a/hugo/content/docs/ref/sprotty-protocol/Function.findElement.md b/hugo/content/docs/ref/sprotty-protocol/Function.findElement.md
new file mode 100644
index 0000000..2fe0e21
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Function.findElement.md
@@ -0,0 +1,25 @@
+
+[sprotty-protocol](../globals) / findElement
+
+# Function: findElement()
+
+> **findElement**(`parent`, `elementId`): `undefined` \| [`SModelElement`](../Interface.SModelElement)
+
+Defined in: [utils/model-utils.ts:86](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/model-utils.ts#L86)
+
+Find the element with the given identifier. If you need to find multiple elements, using an
+`SModelIndex` might be more effective.
+
+## Parameters
+
+### parent
+
+[`SModelElement`](../Interface.SModelElement)
+
+### elementId
+
+`string`
+
+## Returns
+
+`undefined` \| [`SModelElement`](../Interface.SModelElement)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Function.generateRequestId.md b/hugo/content/docs/ref/sprotty-protocol/Function.generateRequestId.md
new file mode 100644
index 0000000..c95e20a
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Function.generateRequestId.md
@@ -0,0 +1,14 @@
+
+[sprotty-protocol](../globals) / generateRequestId
+
+# Function: generateRequestId()
+
+> **generateRequestId**(): `string`
+
+Defined in: [actions.ts:69](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L69)
+
+Generate a unique `requestId` for a request action.
+
+## Returns
+
+`string`
diff --git a/hugo/content/docs/ref/sprotty-protocol/Function.getBasicType.md b/hugo/content/docs/ref/sprotty-protocol/Function.getBasicType.md
new file mode 100644
index 0000000..a5248c9
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Function.getBasicType.md
@@ -0,0 +1,23 @@
+
+[sprotty-protocol](../globals) / getBasicType
+
+# Function: getBasicType()
+
+> **getBasicType**(`element`): `string`
+
+Defined in: [utils/model-utils.ts:62](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/model-utils.ts#L62)
+
+Model element types can include a colon to separate the basic type and a sub-type. This function
+extracts the basic type of a model element.
+
+## Parameters
+
+### element
+
+#### type
+
+`string`
+
+## Returns
+
+`string`
diff --git a/hugo/content/docs/ref/sprotty-protocol/Function.getSubType.md b/hugo/content/docs/ref/sprotty-protocol/Function.getSubType.md
new file mode 100644
index 0000000..93c6451
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Function.getSubType.md
@@ -0,0 +1,23 @@
+
+[sprotty-protocol](../globals) / getSubType
+
+# Function: getSubType()
+
+> **getSubType**(`schema`): `string`
+
+Defined in: [utils/model-utils.ts:74](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/model-utils.ts#L74)
+
+Model element types can include a colon to separate the basic type and a sub-type. This function
+extracts the sub-type of a model element.
+
+## Parameters
+
+### schema
+
+#### type
+
+`string`
+
+## Returns
+
+`string`
diff --git a/hugo/content/docs/ref/sprotty-protocol/Function.hasOwnProperty.md b/hugo/content/docs/ref/sprotty-protocol/Function.hasOwnProperty.md
new file mode 100644
index 0000000..2a06794
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Function.hasOwnProperty.md
@@ -0,0 +1,36 @@
+
+[sprotty-protocol](../globals) / hasOwnProperty
+
+# Function: hasOwnProperty()
+
+> **hasOwnProperty**\<`K`, `T`\>(`arg`, `key`, `type?`): `arg is Record`
+
+Defined in: [utils/object.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/object.ts#L31)
+
+## Type Parameters
+
+### K
+
+`K` *extends* `PropertyKey`
+
+### T
+
+`T`
+
+## Parameters
+
+### arg
+
+`unknown`
+
+### key
+
+`K` | `K`[]
+
+### type?
+
+[`TypeOf`](../TypeAlias.TypeOf)\<`T`\> | (`v`) => `v is T`
+
+## Returns
+
+`arg is Record`
diff --git a/hugo/content/docs/ref/sprotty-protocol/Function.isAction.md b/hugo/content/docs/ref/sprotty-protocol/Function.isAction.md
new file mode 100644
index 0000000..b83a776
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Function.isAction.md
@@ -0,0 +1,18 @@
+
+[sprotty-protocol](../globals) / isAction
+
+# Function: isAction()
+
+> **isAction**(`object?`): `object is Action`
+
+Defined in: [actions.ts:43](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L43)
+
+## Parameters
+
+### object?
+
+`unknown`
+
+## Returns
+
+`object is Action`
diff --git a/hugo/content/docs/ref/sprotty-protocol/Function.isActionMessage.md b/hugo/content/docs/ref/sprotty-protocol/Function.isActionMessage.md
new file mode 100644
index 0000000..206b452
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Function.isActionMessage.md
@@ -0,0 +1,18 @@
+
+[sprotty-protocol](../globals) / isActionMessage
+
+# Function: isActionMessage()
+
+> **isActionMessage**(`object`): `object is ActionMessage`
+
+Defined in: [actions.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L31)
+
+## Parameters
+
+### object
+
+`unknown`
+
+## Returns
+
+`object is ActionMessage`
diff --git a/hugo/content/docs/ref/sprotty-protocol/Function.isBounds.md b/hugo/content/docs/ref/sprotty-protocol/Function.isBounds.md
new file mode 100644
index 0000000..8ce6498
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Function.isBounds.md
@@ -0,0 +1,18 @@
+
+[sprotty-protocol](../globals) / isBounds
+
+# Function: isBounds()
+
+> **isBounds**(`element`): `element is Bounds`
+
+Defined in: [utils/geometry.ts:236](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L236)
+
+## Parameters
+
+### element
+
+`unknown`
+
+## Returns
+
+`element is Bounds`
diff --git a/hugo/content/docs/ref/sprotty-protocol/Function.isObject.md b/hugo/content/docs/ref/sprotty-protocol/Function.isObject.md
new file mode 100644
index 0000000..46f6df0
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Function.isObject.md
@@ -0,0 +1,34 @@
+
+[sprotty-protocol](../globals) / isObject
+
+# Function: isObject()
+
+> **isObject**(`data`): `data is Record`
+
+Defined in: [utils/object.ts:17](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/object.ts#L17)
+
+*****************************************************************************
+Copyright (c) 2017-2021 TypeFox and others.
+
+This program and the accompanying materials are made available under the
+terms of the Eclipse Public License v. 2.0 which is available at
+http://www.eclipse.org/legal/epl-2.0.
+
+This Source Code may also be made available under the following Secondary
+Licenses when the conditions for such availability set forth in the Eclipse
+Public License v. 2.0 are satisfied: GNU General Public License, version 2
+with the GNU Classpath Exception which is available at
+https://www.gnu.org/software/classpath/license.html.
+
+SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
+******************************************************************************
+
+## Parameters
+
+### data
+
+`unknown`
+
+## Returns
+
+`data is Record`
diff --git a/hugo/content/docs/ref/sprotty-protocol/Function.isRequestAction.md b/hugo/content/docs/ref/sprotty-protocol/Function.isRequestAction.md
new file mode 100644
index 0000000..8025f09
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Function.isRequestAction.md
@@ -0,0 +1,18 @@
+
+[sprotty-protocol](../globals) / isRequestAction
+
+# Function: isRequestAction()
+
+> **isRequestAction**(`object?`): `object is RequestAction`
+
+Defined in: [actions.ts:60](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L60)
+
+## Parameters
+
+### object?
+
+[`Action`](../Interface.Action)
+
+## Returns
+
+`object is RequestAction`
diff --git a/hugo/content/docs/ref/sprotty-protocol/Function.isResponseAction.md b/hugo/content/docs/ref/sprotty-protocol/Function.isResponseAction.md
new file mode 100644
index 0000000..b27771b
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Function.isResponseAction.md
@@ -0,0 +1,22 @@
+
+[sprotty-protocol](../globals) / isResponseAction
+
+# Function: isResponseAction()
+
+> **isResponseAction**(`object?`): `object is ResponseAction`
+
+Defined in: [actions.ts:96](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L96)
+
+A response action is sent to respond to a request action. The `responseId` must match
+the `requestId` of the preceding request. In case the `responseId` is empty or undefined,
+the action is handled as standalone, i.e. it was fired without a preceding request.
+
+## Parameters
+
+### object?
+
+[`Action`](../Interface.Action)
+
+## Returns
+
+`object is ResponseAction`
diff --git a/hugo/content/docs/ref/sprotty-protocol/Function.isScrollable.md b/hugo/content/docs/ref/sprotty-protocol/Function.isScrollable.md
new file mode 100644
index 0000000..02984d5
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Function.isScrollable.md
@@ -0,0 +1,18 @@
+
+[sprotty-protocol](../globals) / isScrollable
+
+# Function: isScrollable()
+
+> **isScrollable**(`element`): `element is Scrollable`
+
+Defined in: [model.ts:114](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L114)
+
+## Parameters
+
+### element
+
+[`SModelElement`](../Interface.SModelElement) | [`Scrollable`](../Interface.Scrollable)
+
+## Returns
+
+`element is Scrollable`
diff --git a/hugo/content/docs/ref/sprotty-protocol/Function.isZoomable.md b/hugo/content/docs/ref/sprotty-protocol/Function.isZoomable.md
new file mode 100644
index 0000000..3fc2cc9
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Function.isZoomable.md
@@ -0,0 +1,18 @@
+
+[sprotty-protocol](../globals) / isZoomable
+
+# Function: isZoomable()
+
+> **isZoomable**(`element`): `element is Zoomable`
+
+Defined in: [model.ts:126](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L126)
+
+## Parameters
+
+### element
+
+[`SModelElement`](../Interface.SModelElement) | [`Zoomable`](../Interface.Zoomable)
+
+## Returns
+
+`element is Zoomable`
diff --git a/hugo/content/docs/ref/sprotty-protocol/Function.safeAssign.md b/hugo/content/docs/ref/sprotty-protocol/Function.safeAssign.md
new file mode 100644
index 0000000..f06ad1e
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Function.safeAssign.md
@@ -0,0 +1,28 @@
+
+[sprotty-protocol](../globals) / safeAssign
+
+# Function: safeAssign()
+
+> **safeAssign**\<`T`\>(`target`, `partial`): `T`
+
+Defined in: [utils/object.ts:60](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/object.ts#L60)
+
+## Type Parameters
+
+### T
+
+`T` *extends* `object`
+
+## Parameters
+
+### target
+
+`T`
+
+### partial
+
+`Partial`\<`T`\>
+
+## Returns
+
+`T`
diff --git a/hugo/content/docs/ref/sprotty-protocol/Function.setRequestContext.md b/hugo/content/docs/ref/sprotty-protocol/Function.setRequestContext.md
new file mode 100644
index 0000000..5521fff
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Function.setRequestContext.md
@@ -0,0 +1,21 @@
+
+[sprotty-protocol](../globals) / setRequestContext
+
+# Function: setRequestContext()
+
+> **setRequestContext**(`context`): `void`
+
+Defined in: [actions.ts:77](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L77)
+
+Configure the context in which request actions are created. This is typically either
+'client' or 'server' to avoid collisions of request IDs.
+
+## Parameters
+
+### context
+
+`string`
+
+## Returns
+
+`void`
diff --git a/hugo/content/docs/ref/sprotty-protocol/Function.toDegrees.md b/hugo/content/docs/ref/sprotty-protocol/Function.toDegrees.md
new file mode 100644
index 0000000..c214230
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Function.toDegrees.md
@@ -0,0 +1,24 @@
+
+[sprotty-protocol](../globals) / toDegrees
+
+# Function: toDegrees()
+
+> **toDegrees**(`a`): `number`
+
+Defined in: [utils/geometry.ts:309](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L309)
+
+Converts from radians to degrees
+
+## Parameters
+
+### a
+
+`number`
+
+A value in radians
+
+## Returns
+
+`number`
+
+The converted value
diff --git a/hugo/content/docs/ref/sprotty-protocol/Function.toRadians.md b/hugo/content/docs/ref/sprotty-protocol/Function.toRadians.md
new file mode 100644
index 0000000..2c42746
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Function.toRadians.md
@@ -0,0 +1,24 @@
+
+[sprotty-protocol](../globals) / toRadians
+
+# Function: toRadians()
+
+> **toRadians**(`a`): `number`
+
+Defined in: [utils/geometry.ts:318](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L318)
+
+Converts from degrees to radians
+
+## Parameters
+
+### a
+
+`number`
+
+A value in degrees
+
+## Returns
+
+`number`
+
+The converted value
diff --git a/hugo/content/docs/ref/sprotty-protocol/GetSelectionAction.Function.create.md b/hugo/content/docs/ref/sprotty-protocol/GetSelectionAction.Function.create.md
new file mode 100644
index 0000000..d8f108b
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/GetSelectionAction.Function.create.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / [GetSelectionAction](../Namespace.GetSelectionAction) / create
+
+# Function: create()
+
+> **create**(): [`GetSelectionAction`](../Interface.GetSelectionAction)
+
+Defined in: [actions.ts:402](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L402)
+
+## Returns
+
+[`GetSelectionAction`](../Interface.GetSelectionAction)
diff --git a/hugo/content/docs/ref/sprotty-protocol/GetSelectionAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-protocol/GetSelectionAction.Variable.KIND.md
new file mode 100644
index 0000000..218a1d0
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/GetSelectionAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [GetSelectionAction](../Namespace.GetSelectionAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"getSelection"` = `'getSelection'`
+
+Defined in: [actions.ts:400](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L400)
diff --git a/hugo/content/docs/ref/sprotty-protocol/GetViewportAction.Function.create.md b/hugo/content/docs/ref/sprotty-protocol/GetViewportAction.Function.create.md
new file mode 100644
index 0000000..8c22e05
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/GetViewportAction.Function.create.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / [GetViewportAction](../Namespace.GetViewportAction) / create
+
+# Function: create()
+
+> **create**(): [`GetViewportAction`](../Interface.GetViewportAction)
+
+Defined in: [actions.ts:592](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L592)
+
+## Returns
+
+[`GetViewportAction`](../Interface.GetViewportAction)
diff --git a/hugo/content/docs/ref/sprotty-protocol/GetViewportAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-protocol/GetViewportAction.Variable.KIND.md
new file mode 100644
index 0000000..c1957ca
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/GetViewportAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [GetViewportAction](../Namespace.GetViewportAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"getViewport"` = `'getViewport'`
+
+Defined in: [actions.ts:590](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L590)
diff --git a/hugo/content/docs/ref/sprotty-protocol/HoverFeedbackAction.Function.create.md b/hugo/content/docs/ref/sprotty-protocol/HoverFeedbackAction.Function.create.md
new file mode 100644
index 0000000..e9be696
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/HoverFeedbackAction.Function.create.md
@@ -0,0 +1,24 @@
+
+[sprotty-protocol](../globals) / [HoverFeedbackAction](../Namespace.HoverFeedbackAction) / create
+
+# Function: create()
+
+> **create**(`options`): [`HoverFeedbackAction`](../Interface.HoverFeedbackAction)
+
+Defined in: [actions.ts:713](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L713)
+
+## Parameters
+
+### options
+
+#### mouseIsOver
+
+`boolean`
+
+#### mouseoverElement
+
+`string`
+
+## Returns
+
+[`HoverFeedbackAction`](../Interface.HoverFeedbackAction)
diff --git a/hugo/content/docs/ref/sprotty-protocol/HoverFeedbackAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-protocol/HoverFeedbackAction.Variable.KIND.md
new file mode 100644
index 0000000..1c922b6
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/HoverFeedbackAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [HoverFeedbackAction](../Namespace.HoverFeedbackAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"hoverFeedback"` = `'hoverFeedback'`
+
+Defined in: [actions.ts:711](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L711)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.Action.md b/hugo/content/docs/ref/sprotty-protocol/Interface.Action.md
new file mode 100644
index 0000000..5227f80
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.Action.md
@@ -0,0 +1,36 @@
+
+[sprotty-protocol](../globals) / Action
+
+# Interface: Action
+
+Defined in: [actions.ts:39](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L39)
+
+An action describes a change to the model declaratively.
+It is a plain data structure, and as such transferable between server and client.
+
+## Extended by
+
+- [`RequestAction`](../Interface.RequestAction)
+- [`ResponseAction`](../Interface.ResponseAction)
+- [`SetBoundsAction`](../Interface.SetBoundsAction)
+- [`LoggingAction`](../Interface.LoggingAction)
+- [`CenterAction`](../Interface.CenterAction)
+- [`FitToScreenAction`](../Interface.FitToScreenAction)
+- [`SetViewportAction`](../Interface.SetViewportAction)
+- [`BringToFrontAction`](../Interface.BringToFrontAction)
+- [`UndoAction`](../Interface.UndoAction)
+- [`RedoAction`](../Interface.RedoAction)
+- [`MoveAction`](../Interface.MoveAction)
+- [`HoverFeedbackAction`](../Interface.HoverFeedbackAction)
+- [`CreateElementAction`](../Interface.CreateElementAction)
+- [`DeleteElementAction`](../Interface.DeleteElementAction)
+- [`ApplyLabelEditAction`](../Interface.ApplyLabelEditAction)
+- [`ReconnectAction`](../Interface.ReconnectAction)
+
+## Properties
+
+### kind
+
+> **kind**: `string`
+
+Defined in: [actions.ts:40](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L40)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.ActionMessage.md b/hugo/content/docs/ref/sprotty-protocol/Interface.ActionMessage.md
new file mode 100644
index 0000000..2c1b1f5
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.ActionMessage.md
@@ -0,0 +1,25 @@
+
+[sprotty-protocol](../globals) / ActionMessage
+
+# Interface: ActionMessage
+
+Defined in: [actions.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L26)
+
+Wrapper for actions when transferring them between client and server.
+The `clientId` is used to identify the specific diagram instance in the client.
+
+## Properties
+
+### action
+
+> **action**: [`Action`](../Interface.Action)
+
+Defined in: [actions.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L28)
+
+***
+
+### clientId
+
+> **clientId**: `string`
+
+Defined in: [actions.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L27)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.Alignable.md b/hugo/content/docs/ref/sprotty-protocol/Interface.Alignable.md
new file mode 100644
index 0000000..e73b53a
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.Alignable.md
@@ -0,0 +1,18 @@
+
+[sprotty-protocol](../globals) / Alignable
+
+# Interface: Alignable
+
+Defined in: [model.ts:192](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L192)
+
+Feature extension interface for `alignFeature`.
+Used to adjust elements whose bounding box is not at the origin, e.g. labels
+or pre-rendered SVG figures.
+
+## Properties
+
+### alignment
+
+> **alignment**: [`Point`](../Interface.Point)
+
+Defined in: [model.ts:193](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L193)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.ApplyLabelEditAction.md b/hugo/content/docs/ref/sprotty-protocol/Interface.ApplyLabelEditAction.md
new file mode 100644
index 0000000..014894e
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.ApplyLabelEditAction.md
@@ -0,0 +1,40 @@
+
+[sprotty-protocol](../globals) / ApplyLabelEditAction
+
+# Interface: ApplyLabelEditAction
+
+Defined in: [actions.ts:808](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L808)
+
+Apply a text change to a label element.
+
+## Extends
+
+- [`Action`](../Interface.Action)
+
+## Properties
+
+### kind
+
+> **kind**: `"applyLabelEdit"`
+
+Defined in: [actions.ts:809](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L809)
+
+#### Overrides
+
+[`Action`](../Interface.Action).[`kind`](../Interface.Action.md#kind)
+
+***
+
+### labelId
+
+> **labelId**: `string`
+
+Defined in: [actions.ts:810](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L810)
+
+***
+
+### text
+
+> **text**: `string`
+
+Defined in: [actions.ts:811](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L811)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.Bounds.md b/hugo/content/docs/ref/sprotty-protocol/Interface.Bounds.md
new file mode 100644
index 0000000..fec8841
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.Bounds.md
@@ -0,0 +1,60 @@
+
+[sprotty-protocol](../globals) / Bounds
+
+# Interface: Bounds
+
+Defined in: [utils/geometry.ts:233](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L233)
+
+The bounds are the position (x, y) and dimension (width, height) of an object.
+
+## Extends
+
+- [`Point`](../Interface.Point).[`Dimension`](../Interface.Dimension)
+
+## Properties
+
+### height
+
+> `readonly` **height**: `number`
+
+Defined in: [utils/geometry.ts:208](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L208)
+
+#### Inherited from
+
+[`Dimension`](../Interface.Dimension).[`height`](../Interface.Dimension.md#height)
+
+***
+
+### width
+
+> `readonly` **width**: `number`
+
+Defined in: [utils/geometry.ts:207](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L207)
+
+#### Inherited from
+
+[`Dimension`](../Interface.Dimension).[`width`](../Interface.Dimension.md#width)
+
+***
+
+### x
+
+> `readonly` **x**: `number`
+
+Defined in: [utils/geometry.ts:23](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L23)
+
+#### Inherited from
+
+[`Point`](../Interface.Point).[`x`](../Interface.Point.md#x)
+
+***
+
+### y
+
+> `readonly` **y**: `number`
+
+Defined in: [utils/geometry.ts:24](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L24)
+
+#### Inherited from
+
+[`Point`](../Interface.Point).[`y`](../Interface.Point.md#y)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.BoundsAware.md b/hugo/content/docs/ref/sprotty-protocol/Interface.BoundsAware.md
new file mode 100644
index 0000000..cddef91
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.BoundsAware.md
@@ -0,0 +1,36 @@
+
+[sprotty-protocol](../globals) / BoundsAware
+
+# Interface: BoundsAware
+
+Defined in: [model.ts:141](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L141)
+
+Model elements that implement this interface have a position and a size.
+
+## Extends
+
+- [`Locateable`](../Interface.Locateable)
+
+## Extended by
+
+- [`LayoutableChild`](../Interface.LayoutableChild)
+
+## Properties
+
+### position
+
+> **position**: [`Point`](../Interface.Point)
+
+Defined in: [model.ts:135](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L135)
+
+#### Inherited from
+
+[`Locateable`](../Interface.Locateable).[`position`](../Interface.Locateable.md#position)
+
+***
+
+### size
+
+> **size**: [`Dimension`](../Interface.Dimension)
+
+Defined in: [model.ts:142](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L142)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.BringToFrontAction.md b/hugo/content/docs/ref/sprotty-protocol/Interface.BringToFrontAction.md
new file mode 100644
index 0000000..0b996a8
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.BringToFrontAction.md
@@ -0,0 +1,32 @@
+
+[sprotty-protocol](../globals) / BringToFrontAction
+
+# Interface: BringToFrontAction
+
+Defined in: [actions.ts:624](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L624)
+
+Action to render the selected elements in front of others by manipulating the z-order.
+
+## Extends
+
+- [`Action`](../Interface.Action)
+
+## Properties
+
+### elementIDs
+
+> **elementIDs**: `string`[]
+
+Defined in: [actions.ts:626](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L626)
+
+***
+
+### kind
+
+> **kind**: `"bringToFront"`
+
+Defined in: [actions.ts:625](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L625)
+
+#### Overrides
+
+[`Action`](../Interface.Action).[`kind`](../Interface.Action.md#kind)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.CenterAction.md b/hugo/content/docs/ref/sprotty-protocol/Interface.CenterAction.md
new file mode 100644
index 0000000..e312285
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.CenterAction.md
@@ -0,0 +1,60 @@
+
+[sprotty-protocol](../globals) / CenterAction
+
+# Interface: CenterAction
+
+Defined in: [actions.ts:511](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L511)
+
+Triggered when the user requests the viewer to center on the current model. The resulting
+CenterCommand changes the scroll setting of the viewport accordingly.
+It also resets the zoom to its default if retainZoom is false.
+This action can also be sent from the model source to the client in order to perform such a
+viewport change programmatically.
+
+## Extends
+
+- [`Action`](../Interface.Action)
+
+## Properties
+
+### animate
+
+> **animate**: `boolean`
+
+Defined in: [actions.ts:514](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L514)
+
+***
+
+### elementIds
+
+> **elementIds**: `string`[]
+
+Defined in: [actions.ts:513](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L513)
+
+***
+
+### kind
+
+> **kind**: `"center"`
+
+Defined in: [actions.ts:512](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L512)
+
+#### Overrides
+
+[`Action`](../Interface.Action).[`kind`](../Interface.Action.md#kind)
+
+***
+
+### retainZoom
+
+> **retainZoom**: `boolean`
+
+Defined in: [actions.ts:515](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L515)
+
+***
+
+### zoomScale?
+
+> `optional` **zoomScale**: `number`
+
+Defined in: [actions.ts:516](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L516)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.CollapseExpandAction.md b/hugo/content/docs/ref/sprotty-protocol/Interface.CollapseExpandAction.md
new file mode 100644
index 0000000..bcf0018
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.CollapseExpandAction.md
@@ -0,0 +1,33 @@
+
+[sprotty-protocol](../globals) / CollapseExpandAction
+
+# Interface: CollapseExpandAction
+
+Defined in: [actions.ts:433](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L433)
+
+Sent from the client to the model source to recalculate a diagram when elements
+are collapsed/expanded by the client.
+
+## Properties
+
+### collapseIds
+
+> **collapseIds**: `string`[]
+
+Defined in: [actions.ts:436](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L436)
+
+***
+
+### expandIds
+
+> **expandIds**: `string`[]
+
+Defined in: [actions.ts:435](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L435)
+
+***
+
+### kind
+
+> **kind**: `"collapseExpand"`
+
+Defined in: [actions.ts:434](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L434)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.CollapseExpandAllAction.md b/hugo/content/docs/ref/sprotty-protocol/Interface.CollapseExpandAllAction.md
new file mode 100644
index 0000000..87b38ef
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.CollapseExpandAllAction.md
@@ -0,0 +1,25 @@
+
+[sprotty-protocol](../globals) / CollapseExpandAllAction
+
+# Interface: CollapseExpandAllAction
+
+Defined in: [actions.ts:454](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L454)
+
+Programmatic action for expanding or collapsing all elements.
+If `expand` is true, all elements are expanded, otherwise they are collapsed.
+
+## Properties
+
+### expand
+
+> **expand**: `boolean`
+
+Defined in: [actions.ts:456](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L456)
+
+***
+
+### kind
+
+> **kind**: `"collapseExpandAll"`
+
+Defined in: [actions.ts:455](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L455)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.ComputedBoundsAction.md b/hugo/content/docs/ref/sprotty-protocol/Interface.ComputedBoundsAction.md
new file mode 100644
index 0000000..9cca76d
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.ComputedBoundsAction.md
@@ -0,0 +1,64 @@
+
+[sprotty-protocol](../globals) / ComputedBoundsAction
+
+# Interface: ComputedBoundsAction
+
+Defined in: [actions.ts:292](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L292)
+
+Sent from the client to the model source (e.g. a DiagramServer) to transmit the result of bounds
+computation as a response to a RequestBoundsAction. If the server is responsible for parts of
+the layout (see `needsServerLayout` viewer option), it can do so after applying the computed bounds
+received with this action. Otherwise there is no need to send the computed bounds to the server,
+so they can be processed locally by the client.
+
+## Extends
+
+- [`ResponseAction`](../Interface.ResponseAction)
+
+## Properties
+
+### alignments?
+
+> `optional` **alignments**: [`ElementAndAlignment`](../Interface.ElementAndAlignment)[]
+
+Defined in: [actions.ts:296](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L296)
+
+***
+
+### bounds
+
+> **bounds**: [`ElementAndBounds`](../Interface.ElementAndBounds)[]
+
+Defined in: [actions.ts:294](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L294)
+
+***
+
+### kind
+
+> **kind**: `"computedBounds"`
+
+Defined in: [actions.ts:293](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L293)
+
+#### Overrides
+
+[`ResponseAction`](../Interface.ResponseAction).[`kind`](../Interface.ResponseAction.md#kind)
+
+***
+
+### responseId
+
+> **responseId**: `string`
+
+Defined in: [actions.ts:87](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L87)
+
+#### Inherited from
+
+[`ResponseAction`](../Interface.ResponseAction).[`responseId`](../Interface.ResponseAction.md#responseid)
+
+***
+
+### revision?
+
+> `optional` **revision**: `number`
+
+Defined in: [actions.ts:295](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L295)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.CreateElementAction.md b/hugo/content/docs/ref/sprotty-protocol/Interface.CreateElementAction.md
new file mode 100644
index 0000000..dc8b180
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.CreateElementAction.md
@@ -0,0 +1,40 @@
+
+[sprotty-protocol](../globals) / CreateElementAction
+
+# Interface: CreateElementAction
+
+Defined in: [actions.ts:770](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L770)
+
+Create an element with the given schema and add it to the diagram.
+
+## Extends
+
+- [`Action`](../Interface.Action)
+
+## Properties
+
+### containerId
+
+> **containerId**: `string`
+
+Defined in: [actions.ts:772](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L772)
+
+***
+
+### elementSchema
+
+> **elementSchema**: [`SModelElement`](../Interface.SModelElement)
+
+Defined in: [actions.ts:773](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L773)
+
+***
+
+### kind
+
+> **kind**: `"createElement"`
+
+Defined in: [actions.ts:771](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L771)
+
+#### Overrides
+
+[`Action`](../Interface.Action).[`kind`](../Interface.Action.md#kind)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.DeleteElementAction.md b/hugo/content/docs/ref/sprotty-protocol/Interface.DeleteElementAction.md
new file mode 100644
index 0000000..575e952
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.DeleteElementAction.md
@@ -0,0 +1,32 @@
+
+[sprotty-protocol](../globals) / DeleteElementAction
+
+# Interface: DeleteElementAction
+
+Defined in: [actions.ts:790](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L790)
+
+Delete a set of elements identified by their IDs.
+
+## Extends
+
+- [`Action`](../Interface.Action)
+
+## Properties
+
+### elementIds
+
+> **elementIds**: `string`[]
+
+Defined in: [actions.ts:792](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L792)
+
+***
+
+### kind
+
+> **kind**: `"delete"`
+
+Defined in: [actions.ts:791](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L791)
+
+#### Overrides
+
+[`Action`](../Interface.Action).[`kind`](../Interface.Action.md#kind)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.DiagramServices.md b/hugo/content/docs/ref/sprotty-protocol/Interface.DiagramServices.md
new file mode 100644
index 0000000..501437a
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.DiagramServices.md
@@ -0,0 +1,32 @@
+
+[sprotty-protocol](../globals) / DiagramServices
+
+# Interface: DiagramServices
+
+Defined in: [diagram-services.ts:37](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-services.ts#L37)
+
+The set of services required by a `DiagramServer`.
+
+## Properties
+
+### DiagramGenerator
+
+> `readonly` **DiagramGenerator**: [`IDiagramGenerator`](../Interface.IDiagramGenerator)
+
+Defined in: [diagram-services.ts:38](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-services.ts#L38)
+
+***
+
+### ModelLayoutEngine?
+
+> `readonly` `optional` **ModelLayoutEngine**: [`IModelLayoutEngine`](../Interface.IModelLayoutEngine)
+
+Defined in: [diagram-services.ts:39](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-services.ts#L39)
+
+***
+
+### ServerActionHandlerRegistry?
+
+> `readonly` `optional` **ServerActionHandlerRegistry**: [`ServerActionHandlerRegistry`](../Class.ServerActionHandlerRegistry)
+
+Defined in: [diagram-services.ts:40](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-services.ts#L40)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.DiagramState.md b/hugo/content/docs/ref/sprotty-protocol/Interface.DiagramState.md
new file mode 100644
index 0000000..dbb17e9
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.DiagramState.md
@@ -0,0 +1,40 @@
+
+[sprotty-protocol](../globals) / DiagramState
+
+# Interface: DiagramState
+
+Defined in: [diagram-services.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-services.ts#L27)
+
+The current state captured by a `DiagramServer`.
+
+## Properties
+
+### currentRoot
+
+> **currentRoot**: [`SModelRoot`](../Interface.SModelRoot)
+
+Defined in: [diagram-services.ts:29](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-services.ts#L29)
+
+***
+
+### index?
+
+> `optional` **index**: [`SModelIndex`](../Class.SModelIndex)
+
+Defined in: [diagram-services.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-services.ts#L31)
+
+***
+
+### options?
+
+> `optional` **options**: [`JsonMap`](../Interface.JsonMap)
+
+Defined in: [diagram-services.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-services.ts#L28)
+
+***
+
+### revision
+
+> **revision**: `number`
+
+Defined in: [diagram-services.ts:30](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-services.ts#L30)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.Dimension.md b/hugo/content/docs/ref/sprotty-protocol/Interface.Dimension.md
new file mode 100644
index 0000000..dae0b31
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.Dimension.md
@@ -0,0 +1,28 @@
+
+[sprotty-protocol](../globals) / Dimension
+
+# Interface: Dimension
+
+Defined in: [utils/geometry.ts:206](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L206)
+
+The Dimension of an object is composed of its width and height.
+
+## Extended by
+
+- [`Bounds`](../Interface.Bounds)
+
+## Properties
+
+### height
+
+> `readonly` **height**: `number`
+
+Defined in: [utils/geometry.ts:208](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L208)
+
+***
+
+### width
+
+> `readonly` **width**: `number`
+
+Defined in: [utils/geometry.ts:207](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L207)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.EdgeLayoutable.md b/hugo/content/docs/ref/sprotty-protocol/Interface.EdgeLayoutable.md
new file mode 100644
index 0000000..b367242
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.EdgeLayoutable.md
@@ -0,0 +1,17 @@
+
+[sprotty-protocol](../globals) / EdgeLayoutable
+
+# Interface: EdgeLayoutable
+
+Defined in: [model.ts:242](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L242)
+
+Feature extension interface for `edgeLayoutFeature`. This is often applied to
+[SLabel](../Interface.SLabel) elements to specify their placement along the containing edge.
+
+## Properties
+
+### edgePlacement
+
+> **edgePlacement**: [`EdgePlacement`](../Interface.EdgePlacement)
+
+Defined in: [model.ts:243](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L243)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.EdgePlacement.md b/hugo/content/docs/ref/sprotty-protocol/Interface.EdgePlacement.md
new file mode 100644
index 0000000..fd68cc8
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.EdgePlacement.md
@@ -0,0 +1,61 @@
+
+[sprotty-protocol](../globals) / EdgePlacement
+
+# Interface: EdgePlacement
+
+Defined in: [model.ts:252](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L252)
+
+Each label attached to an edge can be placed on the edge in different ways.
+With this interface the placement of such a single label is defined.
+
+## Properties
+
+### moveMode?
+
+> `optional` **moveMode**: `"edge"` \| `"free"` \| `"none"`
+
+Defined in: [model.ts:278](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L278)
+
+where should the label be moved when move feature is enabled.
+'edge' means the label is moved along the edge, 'free' means the label is moved freely, 'none' means the label can not be moved.
+Default is 'edge'.
+
+***
+
+### offset
+
+> **offset**: `number`
+
+Defined in: [model.ts:271](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L271)
+
+space between label and edge/connected nodes
+
+***
+
+### position
+
+> **position**: `number`
+
+Defined in: [model.ts:266](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L266)
+
+between 0 (source anchor) and 1 (target anchor)
+
+***
+
+### rotate
+
+> **rotate**: `boolean`
+
+Defined in: [model.ts:256](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L256)
+
+true, if the label should be rotated to touch the edge tangentially
+
+***
+
+### side
+
+> **side**: [`EdgeSide`](../TypeAlias.EdgeSide)
+
+Defined in: [model.ts:261](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L261)
+
+where is the label relative to the line's direction
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.ElementAndAlignment.md b/hugo/content/docs/ref/sprotty-protocol/Interface.ElementAndAlignment.md
new file mode 100644
index 0000000..99e0380
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.ElementAndAlignment.md
@@ -0,0 +1,24 @@
+
+[sprotty-protocol](../globals) / ElementAndAlignment
+
+# Interface: ElementAndAlignment
+
+Defined in: [actions.ts:324](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L324)
+
+Associates a new alignment with a model element, which is referenced via its id.
+
+## Properties
+
+### elementId
+
+> **elementId**: `string`
+
+Defined in: [actions.ts:325](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L325)
+
+***
+
+### newAlignment
+
+> **newAlignment**: [`Point`](../Interface.Point)
+
+Defined in: [actions.ts:326](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L326)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.ElementAndBounds.md b/hugo/content/docs/ref/sprotty-protocol/Interface.ElementAndBounds.md
new file mode 100644
index 0000000..c638e3c
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.ElementAndBounds.md
@@ -0,0 +1,32 @@
+
+[sprotty-protocol](../globals) / ElementAndBounds
+
+# Interface: ElementAndBounds
+
+Defined in: [actions.ts:315](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L315)
+
+Associates new bounds with a model element, which is referenced via its id.
+
+## Properties
+
+### elementId
+
+> **elementId**: `string`
+
+Defined in: [actions.ts:316](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L316)
+
+***
+
+### newPosition?
+
+> `optional` **newPosition**: [`Point`](../Interface.Point)
+
+Defined in: [actions.ts:317](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L317)
+
+***
+
+### newSize
+
+> **newSize**: [`Dimension`](../Interface.Dimension)
+
+Defined in: [actions.ts:318](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L318)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.ElementMove.md b/hugo/content/docs/ref/sprotty-protocol/Interface.ElementMove.md
new file mode 100644
index 0000000..e576e8e
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.ElementMove.md
@@ -0,0 +1,38 @@
+
+[sprotty-protocol](../globals) / ElementMove
+
+# Interface: ElementMove
+
+Defined in: [actions.ts:695](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L695)
+
+## Properties
+
+### elementId
+
+> **elementId**: `string`
+
+Defined in: [actions.ts:696](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L696)
+
+***
+
+### elementType?
+
+> `optional` **elementType**: `string`
+
+Defined in: [actions.ts:697](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L697)
+
+***
+
+### fromPosition?
+
+> `optional` **fromPosition**: [`Point`](../Interface.Point)
+
+Defined in: [actions.ts:698](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L698)
+
+***
+
+### toPosition
+
+> **toPosition**: [`Point`](../Interface.Point)
+
+Defined in: [actions.ts:699](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L699)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.Expandable.md b/hugo/content/docs/ref/sprotty-protocol/Interface.Expandable.md
new file mode 100644
index 0000000..50449a4
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.Expandable.md
@@ -0,0 +1,17 @@
+
+[sprotty-protocol](../globals) / Expandable
+
+# Interface: Expandable
+
+Defined in: [model.ts:224](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L224)
+
+Feature extension interface for `expandFeature`.
+Model elements that implement this interface can be expanded and collapsed.
+
+## Properties
+
+### expanded
+
+> **expanded**: `boolean`
+
+Defined in: [model.ts:225](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L225)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.ExportSvgAction.md b/hugo/content/docs/ref/sprotty-protocol/Interface.ExportSvgAction.md
new file mode 100644
index 0000000..1cafb72
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.ExportSvgAction.md
@@ -0,0 +1,52 @@
+
+[sprotty-protocol](../globals) / ExportSvgAction
+
+# Interface: ExportSvgAction
+
+Defined in: [actions.ts:748](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L748)
+
+Response to a `RequestExportSvgAction` containing the current diagram's SVG code.
+
+## Extends
+
+- [`ResponseAction`](../Interface.ResponseAction)
+
+## Properties
+
+### kind
+
+> **kind**: `"exportSvg"`
+
+Defined in: [actions.ts:749](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L749)
+
+#### Overrides
+
+[`ResponseAction`](../Interface.ResponseAction).[`kind`](../Interface.ResponseAction.md#kind)
+
+***
+
+### options?
+
+> `optional` **options**: [`ExportSvgOptions`](../Interface.ExportSvgOptions)
+
+Defined in: [actions.ts:752](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L752)
+
+***
+
+### responseId
+
+> **responseId**: `string`
+
+Defined in: [actions.ts:751](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L751)
+
+#### Overrides
+
+[`ResponseAction`](../Interface.ResponseAction).[`responseId`](../Interface.ResponseAction.md#responseid)
+
+***
+
+### svg
+
+> **svg**: `string`
+
+Defined in: [actions.ts:750](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L750)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.ExportSvgOptions.md b/hugo/content/docs/ref/sprotty-protocol/Interface.ExportSvgOptions.md
new file mode 100644
index 0000000..706f3b3
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.ExportSvgOptions.md
@@ -0,0 +1,14 @@
+
+[sprotty-protocol](../globals) / ExportSvgOptions
+
+# Interface: ExportSvgOptions
+
+Defined in: [actions.ts:741](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L741)
+
+## Properties
+
+### skipCopyStyles?
+
+> `optional` **skipCopyStyles**: `boolean`
+
+Defined in: [actions.ts:742](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L742)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.Fadeable.md b/hugo/content/docs/ref/sprotty-protocol/Interface.Fadeable.md
new file mode 100644
index 0000000..fe0c930
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.Fadeable.md
@@ -0,0 +1,17 @@
+
+[sprotty-protocol](../globals) / Fadeable
+
+# Interface: Fadeable
+
+Defined in: [model.ts:216](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L216)
+
+Feature extension interface for `fadeFeature`. Fading is mostly used to animate when an element
+appears or disappears.
+
+## Properties
+
+### opacity
+
+> **opacity**: `number`
+
+Defined in: [model.ts:217](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L217)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.FitToScreenAction.md b/hugo/content/docs/ref/sprotty-protocol/Interface.FitToScreenAction.md
new file mode 100644
index 0000000..8914edb
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.FitToScreenAction.md
@@ -0,0 +1,59 @@
+
+[sprotty-protocol](../globals) / FitToScreenAction
+
+# Interface: FitToScreenAction
+
+Defined in: [actions.ts:538](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L538)
+
+Triggered when the user requests the viewer to fit its content to the available drawing area.
+The resulting FitToScreenCommand changes the zoom and scroll settings of the viewport so the model
+can be shown completely. This action can also be sent from the model source to the client in order
+to perform such a viewport change programmatically.
+
+## Extends
+
+- [`Action`](../Interface.Action)
+
+## Properties
+
+### animate
+
+> **animate**: `boolean`
+
+Defined in: [actions.ts:543](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L543)
+
+***
+
+### elementIds
+
+> **elementIds**: `string`[]
+
+Defined in: [actions.ts:540](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L540)
+
+***
+
+### kind
+
+> **kind**: `"fit"`
+
+Defined in: [actions.ts:539](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L539)
+
+#### Overrides
+
+[`Action`](../Interface.Action).[`kind`](../Interface.Action.md#kind)
+
+***
+
+### maxZoom?
+
+> `optional` **maxZoom**: `number`
+
+Defined in: [actions.ts:542](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L542)
+
+***
+
+### padding?
+
+> `optional` **padding**: `number`
+
+Defined in: [actions.ts:541](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L541)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.ForeignObjectElement.md b/hugo/content/docs/ref/sprotty-protocol/Interface.ForeignObjectElement.md
new file mode 100644
index 0000000..6411ed1
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.ForeignObjectElement.md
@@ -0,0 +1,114 @@
+
+[sprotty-protocol](../globals) / ForeignObjectElement
+
+# Interface: ForeignObjectElement
+
+Defined in: [model.ts:337](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L337)
+
+A `foreignObject` element to be transferred to the DOM within the SVG.
+
+This can be useful to to benefit from e.g. HTML rendering features, such as line wrapping, inside of
+the SVG diagram. Note that `foreignObject` is not supported by all browsers and SVG viewers may not
+support rendering the `foreignObject` content.
+
+If no dimensions are specified in the schema element, this element will obtain the dimension of
+its parent to fill the entire available room. Thus, this element requires specified bounds itself
+or bounds to be available for its parent.
+
+## Extends
+
+- [`ShapedPreRenderedElement`](../Interface.ShapedPreRenderedElement)
+
+## Properties
+
+### children?
+
+> `optional` **children**: [`SModelElement`](../Interface.SModelElement)[]
+
+Defined in: [model.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L27)
+
+#### Inherited from
+
+[`ShapedPreRenderedElement`](../Interface.ShapedPreRenderedElement).[`children`](../Interface.ShapedPreRenderedElement.md#children)
+
+***
+
+### code
+
+> **code**: `string`
+
+Defined in: [model.ts:315](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L315)
+
+#### Inherited from
+
+[`ShapedPreRenderedElement`](../Interface.ShapedPreRenderedElement).[`code`](../Interface.ShapedPreRenderedElement.md#code)
+
+***
+
+### cssClasses?
+
+> `optional` **cssClasses**: `string`[]
+
+Defined in: [model.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L28)
+
+#### Inherited from
+
+[`ShapedPreRenderedElement`](../Interface.ShapedPreRenderedElement).[`cssClasses`](../Interface.ShapedPreRenderedElement.md#cssclasses)
+
+***
+
+### id
+
+> **id**: `string`
+
+Defined in: [model.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L26)
+
+#### Inherited from
+
+[`ShapedPreRenderedElement`](../Interface.ShapedPreRenderedElement).[`id`](../Interface.ShapedPreRenderedElement.md#id)
+
+***
+
+### namespace
+
+> **namespace**: `string`
+
+Defined in: [model.ts:339](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L339)
+
+The namespace to be assigned to the elements inside of the `foreignObject`.
+
+***
+
+### position?
+
+> `optional` **position**: [`Point`](../Interface.Point)
+
+Defined in: [model.ts:322](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L322)
+
+#### Inherited from
+
+[`ShapedPreRenderedElement`](../Interface.ShapedPreRenderedElement).[`position`](../Interface.ShapedPreRenderedElement.md#position)
+
+***
+
+### size?
+
+> `optional` **size**: [`Dimension`](../Interface.Dimension)
+
+Defined in: [model.ts:323](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L323)
+
+#### Inherited from
+
+[`ShapedPreRenderedElement`](../Interface.ShapedPreRenderedElement).[`size`](../Interface.ShapedPreRenderedElement.md#size)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [model.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L25)
+
+#### Inherited from
+
+[`ShapedPreRenderedElement`](../Interface.ShapedPreRenderedElement).[`type`](../Interface.ShapedPreRenderedElement.md#type)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.GeneratorArguments.md b/hugo/content/docs/ref/sprotty-protocol/Interface.GeneratorArguments.md
new file mode 100644
index 0000000..39232f7
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.GeneratorArguments.md
@@ -0,0 +1,22 @@
+
+[sprotty-protocol](../globals) / GeneratorArguments
+
+# Interface: GeneratorArguments
+
+Defined in: [diagram-services.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-services.ts#L52)
+
+## Properties
+
+### options
+
+> **options**: [`JsonMap`](../Interface.JsonMap)
+
+Defined in: [diagram-services.ts:53](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-services.ts#L53)
+
+***
+
+### state
+
+> **state**: [`DiagramState`](../Interface.DiagramState)
+
+Defined in: [diagram-services.ts:54](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-services.ts#L54)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.GetSelectionAction.md b/hugo/content/docs/ref/sprotty-protocol/Interface.GetSelectionAction.md
new file mode 100644
index 0000000..6cab90e
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.GetSelectionAction.md
@@ -0,0 +1,50 @@
+
+[sprotty-protocol](../globals) / GetSelectionAction
+
+# Interface: GetSelectionAction
+
+Defined in: [actions.ts:396](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L396)
+
+Request action for retrieving the current selection.
+
+## Extends
+
+- [`RequestAction`](../Interface.RequestAction)\<[`SelectionResult`](../Interface.SelectionResult)\>
+
+## Properties
+
+### \_?
+
+> `readonly` `optional` **\_**: [`SelectionResult`](../Interface.SelectionResult)
+
+Defined in: [actions.ts:57](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L57)
+
+Used to ensure correct typing. Clients must not use this property
+
+#### Inherited from
+
+[`RequestAction`](../Interface.RequestAction).[`_`](../Interface.RequestAction.md#_)
+
+***
+
+### kind
+
+> **kind**: `"getSelection"`
+
+Defined in: [actions.ts:397](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L397)
+
+#### Overrides
+
+[`RequestAction`](../Interface.RequestAction).[`kind`](../Interface.RequestAction.md#kind)
+
+***
+
+### requestId
+
+> **requestId**: `string`
+
+Defined in: [actions.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L52)
+
+#### Inherited from
+
+[`RequestAction`](../Interface.RequestAction).[`requestId`](../Interface.RequestAction.md#requestid)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.GetViewportAction.md b/hugo/content/docs/ref/sprotty-protocol/Interface.GetViewportAction.md
new file mode 100644
index 0000000..4aedd5e
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.GetViewportAction.md
@@ -0,0 +1,50 @@
+
+[sprotty-protocol](../globals) / GetViewportAction
+
+# Interface: GetViewportAction
+
+Defined in: [actions.ts:586](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L586)
+
+Request action for retrieving the current viewport and canvas bounds.
+
+## Extends
+
+- [`RequestAction`](../Interface.RequestAction)\<[`ViewportResult`](../Interface.ViewportResult)\>
+
+## Properties
+
+### \_?
+
+> `readonly` `optional` **\_**: [`ViewportResult`](../Interface.ViewportResult)
+
+Defined in: [actions.ts:57](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L57)
+
+Used to ensure correct typing. Clients must not use this property
+
+#### Inherited from
+
+[`RequestAction`](../Interface.RequestAction).[`_`](../Interface.RequestAction.md#_)
+
+***
+
+### kind
+
+> **kind**: `"getViewport"`
+
+Defined in: [actions.ts:587](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L587)
+
+#### Overrides
+
+[`RequestAction`](../Interface.RequestAction).[`kind`](../Interface.RequestAction.md#kind)
+
+***
+
+### requestId
+
+> **requestId**: `string`
+
+Defined in: [actions.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L52)
+
+#### Inherited from
+
+[`RequestAction`](../Interface.RequestAction).[`requestId`](../Interface.RequestAction.md#requestid)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.HoverFeedbackAction.md b/hugo/content/docs/ref/sprotty-protocol/Interface.HoverFeedbackAction.md
new file mode 100644
index 0000000..0b61cbf
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.HoverFeedbackAction.md
@@ -0,0 +1,40 @@
+
+[sprotty-protocol](../globals) / HoverFeedbackAction
+
+# Interface: HoverFeedbackAction
+
+Defined in: [actions.ts:705](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L705)
+
+Triggered when the user puts the mouse pointer over an element.
+
+## Extends
+
+- [`Action`](../Interface.Action)
+
+## Properties
+
+### kind
+
+> **kind**: `"hoverFeedback"`
+
+Defined in: [actions.ts:706](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L706)
+
+#### Overrides
+
+[`Action`](../Interface.Action).[`kind`](../Interface.Action.md#kind)
+
+***
+
+### mouseIsOver
+
+> **mouseIsOver**: `boolean`
+
+Defined in: [actions.ts:708](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L708)
+
+***
+
+### mouseoverElement
+
+> **mouseoverElement**: `string`
+
+Defined in: [actions.ts:707](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L707)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.Hoverable.md b/hugo/content/docs/ref/sprotty-protocol/Interface.Hoverable.md
new file mode 100644
index 0000000..a312958
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.Hoverable.md
@@ -0,0 +1,17 @@
+
+[sprotty-protocol](../globals) / Hoverable
+
+# Interface: Hoverable
+
+Defined in: [model.ts:208](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L208)
+
+Feature extension interface for `hoverFeedbackFeature`. The hover feedback status is often
+considered in the frontend views, e.g. by switching CSS classes.
+
+## Properties
+
+### hoverFeedback
+
+> **hoverFeedback**: `boolean`
+
+Defined in: [model.ts:209](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L209)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.HtmlRoot.md b/hugo/content/docs/ref/sprotty-protocol/Interface.HtmlRoot.md
new file mode 100644
index 0000000..b959074
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.HtmlRoot.md
@@ -0,0 +1,92 @@
+
+[sprotty-protocol](../globals) / HtmlRoot
+
+# Interface: HtmlRoot
+
+Defined in: [model.ts:306](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L306)
+
+Root model element class for HTML content. Usually this is rendered with a `div` DOM element.
+
+## Extends
+
+- [`SModelRoot`](../Interface.SModelRoot)
+
+## Properties
+
+### canvasBounds?
+
+> `optional` **canvasBounds**: [`Bounds`](../Interface.Bounds)
+
+Defined in: [model.ts:35](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L35)
+
+#### Inherited from
+
+[`SModelRoot`](../Interface.SModelRoot).[`canvasBounds`](../Interface.SModelRoot.md#canvasbounds)
+
+***
+
+### children?
+
+> `optional` **children**: [`SModelElement`](../Interface.SModelElement)[]
+
+Defined in: [model.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L27)
+
+#### Inherited from
+
+[`SModelRoot`](../Interface.SModelRoot).[`children`](../Interface.SModelRoot.md#children)
+
+***
+
+### classes?
+
+> `optional` **classes**: `string`[]
+
+Defined in: [model.ts:307](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L307)
+
+***
+
+### cssClasses?
+
+> `optional` **cssClasses**: `string`[]
+
+Defined in: [model.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L28)
+
+#### Inherited from
+
+[`SModelRoot`](../Interface.SModelRoot).[`cssClasses`](../Interface.SModelRoot.md#cssclasses)
+
+***
+
+### id
+
+> **id**: `string`
+
+Defined in: [model.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L26)
+
+#### Inherited from
+
+[`SModelRoot`](../Interface.SModelRoot).[`id`](../Interface.SModelRoot.md#id)
+
+***
+
+### revision?
+
+> `optional` **revision**: `number`
+
+Defined in: [model.ts:36](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L36)
+
+#### Inherited from
+
+[`SModelRoot`](../Interface.SModelRoot).[`revision`](../Interface.SModelRoot.md#revision)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [model.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L25)
+
+#### Inherited from
+
+[`SModelRoot`](../Interface.SModelRoot).[`type`](../Interface.SModelRoot.md#type)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.IDiagramGenerator.md b/hugo/content/docs/ref/sprotty-protocol/Interface.IDiagramGenerator.md
new file mode 100644
index 0000000..a78e2be
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.IDiagramGenerator.md
@@ -0,0 +1,28 @@
+
+[sprotty-protocol](../globals) / IDiagramGenerator
+
+# Interface: IDiagramGenerator
+
+Defined in: [diagram-services.ts:48](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-services.ts#L48)
+
+A diagram generator is responsible for creating a diagram model from some source.
+This process is controlled by the `DiagramOptions`, which for example may contain
+a URI to the source document from which the diagram shall be created.
+
+## Methods
+
+### generate()
+
+> **generate**(`args`): [`SModelRoot`](../Interface.SModelRoot) \| `Promise`\<[`SModelRoot`](../Interface.SModelRoot)\>
+
+Defined in: [diagram-services.ts:49](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-services.ts#L49)
+
+#### Parameters
+
+##### args
+
+[`GeneratorArguments`](../Interface.GeneratorArguments)
+
+#### Returns
+
+[`SModelRoot`](../Interface.SModelRoot) \| `Promise`\<[`SModelRoot`](../Interface.SModelRoot)\>
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.IModelLayoutEngine.md b/hugo/content/docs/ref/sprotty-protocol/Interface.IModelLayoutEngine.md
new file mode 100644
index 0000000..b7c4016
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.IModelLayoutEngine.md
@@ -0,0 +1,33 @@
+
+[sprotty-protocol](../globals) / IModelLayoutEngine
+
+# Interface: IModelLayoutEngine
+
+Defined in: [diagram-services.ts:63](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-services.ts#L63)
+
+This service is responsible for the "macro layout" of a model, that is the positioning
+and sizing of the main structural elements of a model. In a graph, macro layout affects
+positions of nodes and routings of edges, but not necessarily the layout of labels and
+compartments inside a node, which are often arranged on the client side ("micro layout").
+
+## Methods
+
+### layout()
+
+> **layout**(`model`, `index?`): [`SModelRoot`](../Interface.SModelRoot) \| `Promise`\<[`SModelRoot`](../Interface.SModelRoot)\>
+
+Defined in: [diagram-services.ts:64](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-services.ts#L64)
+
+#### Parameters
+
+##### model
+
+[`SModelRoot`](../Interface.SModelRoot)
+
+##### index?
+
+[`SModelIndex`](../Class.SModelIndex)
+
+#### Returns
+
+[`SModelRoot`](../Interface.SModelRoot) \| `Promise`\<[`SModelRoot`](../Interface.SModelRoot)\>
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.JsonMap.md b/hugo/content/docs/ref/sprotty-protocol/Interface.JsonMap.md
new file mode 100644
index 0000000..15c00fb
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.JsonMap.md
@@ -0,0 +1,10 @@
+
+[sprotty-protocol](../globals) / JsonMap
+
+# Interface: JsonMap
+
+Defined in: [utils/json.ts:21](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/json.ts#L21)
+
+## Indexable
+
+\[`key`: `string`\]: [`JsonAny`](../TypeAlias.JsonAny)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.LayoutAction.md b/hugo/content/docs/ref/sprotty-protocol/Interface.LayoutAction.md
new file mode 100644
index 0000000..e8db851
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.LayoutAction.md
@@ -0,0 +1,32 @@
+
+[sprotty-protocol](../globals) / LayoutAction
+
+# Interface: LayoutAction
+
+Defined in: [actions.ts:487](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L487)
+
+Request a layout of the diagram or the selected elements only.
+
+## Properties
+
+### elementIds?
+
+> `optional` **elementIds**: `string`[]
+
+Defined in: [actions.ts:490](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L490)
+
+***
+
+### kind
+
+> **kind**: `"layout"`
+
+Defined in: [actions.ts:488](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L488)
+
+***
+
+### layoutType?
+
+> `optional` **layoutType**: `string`
+
+Defined in: [actions.ts:489](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L489)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.LayoutContainer.md b/hugo/content/docs/ref/sprotty-protocol/Interface.LayoutContainer.md
new file mode 100644
index 0000000..3e86e3a
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.LayoutContainer.md
@@ -0,0 +1,56 @@
+
+[sprotty-protocol](../globals) / LayoutContainer
+
+# Interface: LayoutContainer
+
+Defined in: [model.ts:178](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L178)
+
+Used to identify model elements that specify a layout to apply to their children.
+
+## Extends
+
+- [`LayoutableChild`](../Interface.LayoutableChild)
+
+## Properties
+
+### layout
+
+> **layout**: [`LayoutKind`](../TypeAlias.LayoutKind)
+
+Defined in: [model.ts:179](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L179)
+
+***
+
+### layoutOptions?
+
+> `optional` **layoutOptions**: [`ModelLayoutOptions`](../Interface.ModelLayoutOptions)
+
+Defined in: [model.ts:150](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L150)
+
+#### Inherited from
+
+[`LayoutableChild`](../Interface.LayoutableChild).[`layoutOptions`](../Interface.LayoutableChild.md#layoutoptions)
+
+***
+
+### position
+
+> **position**: [`Point`](../Interface.Point)
+
+Defined in: [model.ts:135](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L135)
+
+#### Inherited from
+
+[`LayoutableChild`](../Interface.LayoutableChild).[`position`](../Interface.LayoutableChild.md#position)
+
+***
+
+### size
+
+> **size**: [`Dimension`](../Interface.Dimension)
+
+Defined in: [model.ts:142](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L142)
+
+#### Inherited from
+
+[`LayoutableChild`](../Interface.LayoutableChild).[`size`](../Interface.LayoutableChild.md#size)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.LayoutableChild.md b/hugo/content/docs/ref/sprotty-protocol/Interface.LayoutableChild.md
new file mode 100644
index 0000000..5f30826
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.LayoutableChild.md
@@ -0,0 +1,49 @@
+
+[sprotty-protocol](../globals) / LayoutableChild
+
+# Interface: LayoutableChild
+
+Defined in: [model.ts:149](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L149)
+
+Feature extension interface for `layoutableChildFeature`. This is used when the parent
+element has a `layout` property (meaning it's a `LayoutContainer`).
+
+## Extends
+
+- [`BoundsAware`](../Interface.BoundsAware)
+
+## Extended by
+
+- [`LayoutContainer`](../Interface.LayoutContainer)
+
+## Properties
+
+### layoutOptions?
+
+> `optional` **layoutOptions**: [`ModelLayoutOptions`](../Interface.ModelLayoutOptions)
+
+Defined in: [model.ts:150](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L150)
+
+***
+
+### position
+
+> **position**: [`Point`](../Interface.Point)
+
+Defined in: [model.ts:135](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L135)
+
+#### Inherited from
+
+[`BoundsAware`](../Interface.BoundsAware).[`position`](../Interface.BoundsAware.md#position)
+
+***
+
+### size
+
+> **size**: [`Dimension`](../Interface.Dimension)
+
+Defined in: [model.ts:142](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L142)
+
+#### Inherited from
+
+[`BoundsAware`](../Interface.BoundsAware).[`size`](../Interface.BoundsAware.md#size)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.Locateable.md b/hugo/content/docs/ref/sprotty-protocol/Interface.Locateable.md
new file mode 100644
index 0000000..4e5b099
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.Locateable.md
@@ -0,0 +1,21 @@
+
+[sprotty-protocol](../globals) / Locateable
+
+# Interface: Locateable
+
+Defined in: [model.ts:134](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L134)
+
+An element that can be placed at a specific location using its position property.
+Feature extension interface for `moveFeature`.
+
+## Extended by
+
+- [`BoundsAware`](../Interface.BoundsAware)
+
+## Properties
+
+### position
+
+> **position**: [`Point`](../Interface.Point)
+
+Defined in: [model.ts:135](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L135)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.LoggingAction.md b/hugo/content/docs/ref/sprotty-protocol/Interface.LoggingAction.md
new file mode 100644
index 0000000..adbd1bd
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.LoggingAction.md
@@ -0,0 +1,64 @@
+
+[sprotty-protocol](../globals) / LoggingAction
+
+# Interface: LoggingAction
+
+Defined in: [actions.ts:332](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L332)
+
+Transport logging data to be stored elsewhere.
+
+## Extends
+
+- [`Action`](../Interface.Action)
+
+## Properties
+
+### caller
+
+> **caller**: `string`
+
+Defined in: [actions.ts:336](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L336)
+
+***
+
+### kind
+
+> **kind**: `"logging"`
+
+Defined in: [actions.ts:333](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L333)
+
+#### Overrides
+
+[`Action`](../Interface.Action).[`kind`](../Interface.Action.md#kind)
+
+***
+
+### message
+
+> **message**: `string`
+
+Defined in: [actions.ts:337](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L337)
+
+***
+
+### params
+
+> **params**: `string`[]
+
+Defined in: [actions.ts:338](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L338)
+
+***
+
+### severity
+
+> **severity**: `string`
+
+Defined in: [actions.ts:334](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L334)
+
+***
+
+### time
+
+> **time**: `string`
+
+Defined in: [actions.ts:335](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L335)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.Match.md b/hugo/content/docs/ref/sprotty-protocol/Interface.Match.md
new file mode 100644
index 0000000..fd1e282
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.Match.md
@@ -0,0 +1,38 @@
+
+[sprotty-protocol](../globals) / Match
+
+# Interface: Match
+
+Defined in: [actions.ts:194](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L194)
+
+## Properties
+
+### left?
+
+> `optional` **left**: [`SModelElement`](../Interface.SModelElement)
+
+Defined in: [actions.ts:195](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L195)
+
+***
+
+### leftParentId?
+
+> `optional` **leftParentId**: `string`
+
+Defined in: [actions.ts:197](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L197)
+
+***
+
+### right?
+
+> `optional` **right**: [`SModelElement`](../Interface.SModelElement)
+
+Defined in: [actions.ts:196](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L196)
+
+***
+
+### rightParentId?
+
+> `optional` **rightParentId**: `string`
+
+Defined in: [actions.ts:198](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L198)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.ModelLayoutOptions.md b/hugo/content/docs/ref/sprotty-protocol/Interface.ModelLayoutOptions.md
new file mode 100644
index 0000000..c0d16ec
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.ModelLayoutOptions.md
@@ -0,0 +1,108 @@
+
+[sprotty-protocol](../globals) / ModelLayoutOptions
+
+# Interface: ModelLayoutOptions
+
+Defined in: [model.ts:156](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L156)
+
+Layout options of a `LayoutableChild`.
+
+## Indexable
+
+\[`key`: `string`\]: `undefined` \| `string` \| `number` \| `boolean`
+
+## Properties
+
+### hAlign?
+
+> `optional` **hAlign**: [`HAlignment`](../TypeAlias.HAlignment)
+
+Defined in: [model.ts:157](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L157)
+
+***
+
+### hGap?
+
+> `optional` **hGap**: `number`
+
+Defined in: [model.ts:158](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L158)
+
+***
+
+### minHeight?
+
+> `optional` **minHeight**: `number`
+
+Defined in: [model.ts:167](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L167)
+
+***
+
+### minWidth?
+
+> `optional` **minWidth**: `number`
+
+Defined in: [model.ts:166](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L166)
+
+***
+
+### paddingBottom?
+
+> `optional` **paddingBottom**: `number`
+
+Defined in: [model.ts:163](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L163)
+
+***
+
+### paddingFactor?
+
+> `optional` **paddingFactor**: `number`
+
+Defined in: [model.ts:165](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L165)
+
+***
+
+### paddingLeft?
+
+> `optional` **paddingLeft**: `number`
+
+Defined in: [model.ts:164](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L164)
+
+***
+
+### paddingRight?
+
+> `optional` **paddingRight**: `number`
+
+Defined in: [model.ts:162](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L162)
+
+***
+
+### paddingTop?
+
+> `optional` **paddingTop**: `number`
+
+Defined in: [model.ts:161](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L161)
+
+***
+
+### resizeContainer?
+
+> `optional` **resizeContainer**: `boolean`
+
+Defined in: [model.ts:168](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L168)
+
+***
+
+### vAlign?
+
+> `optional` **vAlign**: [`VAlignment`](../TypeAlias.VAlignment)
+
+Defined in: [model.ts:159](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L159)
+
+***
+
+### vGap?
+
+> `optional` **vGap**: `number`
+
+Defined in: [model.ts:160](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L160)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.MoveAction.md b/hugo/content/docs/ref/sprotty-protocol/Interface.MoveAction.md
new file mode 100644
index 0000000..45c6086
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.MoveAction.md
@@ -0,0 +1,56 @@
+
+[sprotty-protocol](../globals) / MoveAction
+
+# Interface: MoveAction
+
+Defined in: [actions.ts:674](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L674)
+
+Move an arbitrary set of elements to new positions.
+
+## Extends
+
+- [`Action`](../Interface.Action)
+
+## Properties
+
+### animate
+
+> **animate**: `boolean`
+
+Defined in: [actions.ts:677](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L677)
+
+***
+
+### finished
+
+> **finished**: `boolean`
+
+Defined in: [actions.ts:678](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L678)
+
+***
+
+### kind
+
+> **kind**: `"move"`
+
+Defined in: [actions.ts:675](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L675)
+
+#### Overrides
+
+[`Action`](../Interface.Action).[`kind`](../Interface.Action.md#kind)
+
+***
+
+### moves
+
+> **moves**: [`ElementMove`](../Interface.ElementMove)[]
+
+Defined in: [actions.ts:676](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L676)
+
+***
+
+### stoppable
+
+> **stoppable**: `boolean`
+
+Defined in: [actions.ts:679](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L679)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.OpenAction.md b/hugo/content/docs/ref/sprotty-protocol/Interface.OpenAction.md
new file mode 100644
index 0000000..3b4adbe
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.OpenAction.md
@@ -0,0 +1,22 @@
+
+[sprotty-protocol](../globals) / OpenAction
+
+# Interface: OpenAction
+
+Defined in: [actions.ts:469](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L469)
+
+## Properties
+
+### elementId
+
+> **elementId**: `string`
+
+Defined in: [actions.ts:471](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L471)
+
+***
+
+### kind
+
+> **kind**: `"open"`
+
+Defined in: [actions.ts:470](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L470)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.Point.md b/hugo/content/docs/ref/sprotty-protocol/Interface.Point.md
new file mode 100644
index 0000000..fdb5b6d
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.Point.md
@@ -0,0 +1,28 @@
+
+[sprotty-protocol](../globals) / Point
+
+# Interface: Point
+
+Defined in: [utils/geometry.ts:22](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L22)
+
+A Point is composed of the (x,y) coordinates of an object.
+
+## Extended by
+
+- [`Bounds`](../Interface.Bounds)
+
+## Properties
+
+### x
+
+> `readonly` **x**: `number`
+
+Defined in: [utils/geometry.ts:23](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L23)
+
+***
+
+### y
+
+> `readonly` **y**: `number`
+
+Defined in: [utils/geometry.ts:24](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L24)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.PreRenderedElement.md b/hugo/content/docs/ref/sprotty-protocol/Interface.PreRenderedElement.md
new file mode 100644
index 0000000..3187025
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.PreRenderedElement.md
@@ -0,0 +1,73 @@
+
+[sprotty-protocol](../globals) / PreRenderedElement
+
+# Interface: PreRenderedElement
+
+Defined in: [model.ts:314](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L314)
+
+Pre-rendered elements contain HTML or SVG code to be transferred to the DOM. This can be useful to
+render complex figures or to compute the view on the server instead of the client code.
+
+## Extends
+
+- [`SModelElement`](../Interface.SModelElement)
+
+## Extended by
+
+- [`ShapedPreRenderedElement`](../Interface.ShapedPreRenderedElement)
+
+## Properties
+
+### children?
+
+> `optional` **children**: [`SModelElement`](../Interface.SModelElement)[]
+
+Defined in: [model.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L27)
+
+#### Inherited from
+
+[`SModelElement`](../Interface.SModelElement).[`children`](../Interface.SModelElement.md#children)
+
+***
+
+### code
+
+> **code**: `string`
+
+Defined in: [model.ts:315](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L315)
+
+***
+
+### cssClasses?
+
+> `optional` **cssClasses**: `string`[]
+
+Defined in: [model.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L28)
+
+#### Inherited from
+
+[`SModelElement`](../Interface.SModelElement).[`cssClasses`](../Interface.SModelElement.md#cssclasses)
+
+***
+
+### id
+
+> **id**: `string`
+
+Defined in: [model.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L26)
+
+#### Inherited from
+
+[`SModelElement`](../Interface.SModelElement).[`id`](../Interface.SModelElement.md#id)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [model.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L25)
+
+#### Inherited from
+
+[`SModelElement`](../Interface.SModelElement).[`type`](../Interface.SModelElement.md#type)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.Projectable.md b/hugo/content/docs/ref/sprotty-protocol/Interface.Projectable.md
new file mode 100644
index 0000000..4ee1464
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.Projectable.md
@@ -0,0 +1,26 @@
+
+[sprotty-protocol](../globals) / Projectable
+
+# Interface: Projectable
+
+Defined in: [model.ts:233](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L233)
+
+Model elements implementing this interface can be displayed on a projection bar.
+_Note:_ If set, the projectedBounds property will be prefered over the model element bounds.
+Otherwise model elements also have to be `BoundsAware` so their projections can be shown.
+
+## Properties
+
+### projectedBounds?
+
+> `optional` **projectedBounds**: [`Bounds`](../Interface.Bounds)
+
+Defined in: [model.ts:235](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L235)
+
+***
+
+### projectionCssClasses
+
+> **projectionCssClasses**: `string`[]
+
+Defined in: [model.ts:234](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L234)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.ReconnectAction.md b/hugo/content/docs/ref/sprotty-protocol/Interface.ReconnectAction.md
new file mode 100644
index 0000000..c110f17
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.ReconnectAction.md
@@ -0,0 +1,48 @@
+
+[sprotty-protocol](../globals) / ReconnectAction
+
+# Interface: ReconnectAction
+
+Defined in: [actions.ts:828](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L828)
+
+Change the source or target node of a routable element (edge of a graph).
+
+## Extends
+
+- [`Action`](../Interface.Action)
+
+## Properties
+
+### kind
+
+> **kind**: `"reconnect"`
+
+Defined in: [actions.ts:829](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L829)
+
+#### Overrides
+
+[`Action`](../Interface.Action).[`kind`](../Interface.Action.md#kind)
+
+***
+
+### newSourceId?
+
+> `optional` **newSourceId**: `string`
+
+Defined in: [actions.ts:831](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L831)
+
+***
+
+### newTargetId?
+
+> `optional` **newTargetId**: `string`
+
+Defined in: [actions.ts:832](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L832)
+
+***
+
+### routableId
+
+> **routableId**: `string`
+
+Defined in: [actions.ts:830](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L830)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.RedoAction.md b/hugo/content/docs/ref/sprotty-protocol/Interface.RedoAction.md
new file mode 100644
index 0000000..67b902e
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.RedoAction.md
@@ -0,0 +1,24 @@
+
+[sprotty-protocol](../globals) / RedoAction
+
+# Interface: RedoAction
+
+Defined in: [actions.ts:658](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L658)
+
+Redo a previously undone operation.
+
+## Extends
+
+- [`Action`](../Interface.Action)
+
+## Properties
+
+### kind
+
+> **kind**: `"redo"`
+
+Defined in: [actions.ts:659](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L659)
+
+#### Overrides
+
+[`Action`](../Interface.Action).[`kind`](../Interface.Action.md#kind)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.RejectAction.md b/hugo/content/docs/ref/sprotty-protocol/Interface.RejectAction.md
new file mode 100644
index 0000000..3e19243
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.RejectAction.md
@@ -0,0 +1,52 @@
+
+[sprotty-protocol](../globals) / RejectAction
+
+# Interface: RejectAction
+
+Defined in: [actions.ts:103](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L103)
+
+A reject action is fired to indicate that a request must be rejected.
+
+## Extends
+
+- [`ResponseAction`](../Interface.ResponseAction)
+
+## Properties
+
+### detail?
+
+> `optional` **detail**: [`JsonAny`](../TypeAlias.JsonAny)
+
+Defined in: [actions.ts:106](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L106)
+
+***
+
+### kind
+
+> **kind**: `"rejectRequest"`
+
+Defined in: [actions.ts:104](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L104)
+
+#### Overrides
+
+[`ResponseAction`](../Interface.ResponseAction).[`kind`](../Interface.ResponseAction.md#kind)
+
+***
+
+### message
+
+> **message**: `string`
+
+Defined in: [actions.ts:105](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L105)
+
+***
+
+### responseId
+
+> **responseId**: `string`
+
+Defined in: [actions.ts:87](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L87)
+
+#### Inherited from
+
+[`ResponseAction`](../Interface.ResponseAction).[`responseId`](../Interface.ResponseAction.md#responseid)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.RequestAction.md b/hugo/content/docs/ref/sprotty-protocol/Interface.RequestAction.md
new file mode 100644
index 0000000..094bb01
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.RequestAction.md
@@ -0,0 +1,58 @@
+
+[sprotty-protocol](../globals) / RequestAction
+
+# Interface: RequestAction\
+
+Defined in: [actions.ts:51](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L51)
+
+A request action is tied to the expectation of receiving a corresponding response action.
+The `requestId` property is used to match the received response with the original request.
+
+## Extends
+
+- [`Action`](../Interface.Action)
+
+## Extended by
+
+- [`RequestModelAction`](../Interface.RequestModelAction)
+- [`RequestPopupModelAction`](../Interface.RequestPopupModelAction)
+- [`RequestBoundsAction`](../Interface.RequestBoundsAction)
+- [`GetSelectionAction`](../Interface.GetSelectionAction)
+- [`GetViewportAction`](../Interface.GetViewportAction)
+- [`RequestExportSvgAction`](../Interface.RequestExportSvgAction)
+
+## Type Parameters
+
+### Res
+
+`Res` *extends* [`ResponseAction`](../Interface.ResponseAction)
+
+## Properties
+
+### \_?
+
+> `readonly` `optional` **\_**: `Res`
+
+Defined in: [actions.ts:57](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L57)
+
+Used to ensure correct typing. Clients must not use this property
+
+***
+
+### kind
+
+> **kind**: `string`
+
+Defined in: [actions.ts:40](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L40)
+
+#### Inherited from
+
+[`Action`](../Interface.Action).[`kind`](../Interface.Action.md#kind)
+
+***
+
+### requestId
+
+> **requestId**: `string`
+
+Defined in: [actions.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L52)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.RequestBoundsAction.md b/hugo/content/docs/ref/sprotty-protocol/Interface.RequestBoundsAction.md
new file mode 100644
index 0000000..f5d536f
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.RequestBoundsAction.md
@@ -0,0 +1,61 @@
+
+[sprotty-protocol](../globals) / RequestBoundsAction
+
+# Interface: RequestBoundsAction
+
+Defined in: [actions.ts:269](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L269)
+
+Sent from the model source to the client to request bounds for the given model. The model is
+rendered invisibly so the bounds can derived from the DOM. The response is a ComputedBoundsAction.
+This hidden rendering round-trip is necessary if the client is responsible for parts of the layout
+(see `needsClientLayout` viewer option).
+
+## Extends
+
+- [`RequestAction`](../Interface.RequestAction)\<[`ComputedBoundsAction`](../Interface.ComputedBoundsAction)\>
+
+## Properties
+
+### \_?
+
+> `readonly` `optional` **\_**: [`ComputedBoundsAction`](../Interface.ComputedBoundsAction)
+
+Defined in: [actions.ts:57](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L57)
+
+Used to ensure correct typing. Clients must not use this property
+
+#### Inherited from
+
+[`RequestAction`](../Interface.RequestAction).[`_`](../Interface.RequestAction.md#_)
+
+***
+
+### kind
+
+> **kind**: `"requestBounds"`
+
+Defined in: [actions.ts:270](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L270)
+
+#### Overrides
+
+[`RequestAction`](../Interface.RequestAction).[`kind`](../Interface.RequestAction.md#kind)
+
+***
+
+### newRoot
+
+> **newRoot**: [`SModelRoot`](../Interface.SModelRoot)
+
+Defined in: [actions.ts:271](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L271)
+
+***
+
+### requestId
+
+> **requestId**: `string`
+
+Defined in: [actions.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L52)
+
+#### Inherited from
+
+[`RequestAction`](../Interface.RequestAction).[`requestId`](../Interface.RequestAction.md#requestid)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.RequestExportSvgAction.md b/hugo/content/docs/ref/sprotty-protocol/Interface.RequestExportSvgAction.md
new file mode 100644
index 0000000..9da5574
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.RequestExportSvgAction.md
@@ -0,0 +1,58 @@
+
+[sprotty-protocol](../globals) / RequestExportSvgAction
+
+# Interface: RequestExportSvgAction
+
+Defined in: [actions.ts:725](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L725)
+
+Request to extract the currently displayed diagram as an SVG.
+
+## Extends
+
+- [`RequestAction`](../Interface.RequestAction)\<[`ExportSvgAction`](../Interface.ExportSvgAction)\>
+
+## Properties
+
+### \_?
+
+> `readonly` `optional` **\_**: [`ExportSvgAction`](../Interface.ExportSvgAction)
+
+Defined in: [actions.ts:57](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L57)
+
+Used to ensure correct typing. Clients must not use this property
+
+#### Inherited from
+
+[`RequestAction`](../Interface.RequestAction).[`_`](../Interface.RequestAction.md#_)
+
+***
+
+### kind
+
+> **kind**: `"requestExportSvg"`
+
+Defined in: [actions.ts:726](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L726)
+
+#### Overrides
+
+[`RequestAction`](../Interface.RequestAction).[`kind`](../Interface.RequestAction.md#kind)
+
+***
+
+### options?
+
+> `optional` **options**: [`ExportSvgOptions`](../Interface.ExportSvgOptions)
+
+Defined in: [actions.ts:727](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L727)
+
+***
+
+### requestId
+
+> **requestId**: `string`
+
+Defined in: [actions.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L52)
+
+#### Inherited from
+
+[`RequestAction`](../Interface.RequestAction).[`requestId`](../Interface.RequestAction.md#requestid)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.RequestModelAction.md b/hugo/content/docs/ref/sprotty-protocol/Interface.RequestModelAction.md
new file mode 100644
index 0000000..fc42bfb
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.RequestModelAction.md
@@ -0,0 +1,60 @@
+
+[sprotty-protocol](../globals) / RequestModelAction
+
+# Interface: RequestModelAction
+
+Defined in: [actions.ts:126](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L126)
+
+Sent from the client to the model source (e.g. a DiagramServer) in order to request a model. Usually this
+is the first message that is sent to the source, so it is also used to initiate the communication.
+The response is a SetModelAction or an UpdateModelAction.
+
+## Extends
+
+- [`RequestAction`](../Interface.RequestAction)\<[`SetModelAction`](../Interface.SetModelAction)\>
+
+## Properties
+
+### \_?
+
+> `readonly` `optional` **\_**: [`SetModelAction`](../Interface.SetModelAction)
+
+Defined in: [actions.ts:57](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L57)
+
+Used to ensure correct typing. Clients must not use this property
+
+#### Inherited from
+
+[`RequestAction`](../Interface.RequestAction).[`_`](../Interface.RequestAction.md#_)
+
+***
+
+### kind
+
+> **kind**: `"requestModel"`
+
+Defined in: [actions.ts:127](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L127)
+
+#### Overrides
+
+[`RequestAction`](../Interface.RequestAction).[`kind`](../Interface.RequestAction.md#kind)
+
+***
+
+### options?
+
+> `optional` **options**: [`JsonMap`](../Interface.JsonMap)
+
+Defined in: [actions.ts:128](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L128)
+
+***
+
+### requestId
+
+> **requestId**: `string`
+
+Defined in: [actions.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L52)
+
+#### Inherited from
+
+[`RequestAction`](../Interface.RequestAction).[`requestId`](../Interface.RequestAction.md#requestid)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.RequestPopupModelAction.md b/hugo/content/docs/ref/sprotty-protocol/Interface.RequestPopupModelAction.md
new file mode 100644
index 0000000..6bc948f
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.RequestPopupModelAction.md
@@ -0,0 +1,68 @@
+
+[sprotty-protocol](../globals) / RequestPopupModelAction
+
+# Interface: RequestPopupModelAction
+
+Defined in: [actions.ts:206](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L206)
+
+Triggered when the user hovers the mouse pointer over an element to get a popup with details on
+that element. This action is sent from the client to the model source, e.g. a DiagramServer.
+The response is a SetPopupModelAction.
+
+## Extends
+
+- [`RequestAction`](../Interface.RequestAction)\<[`SetPopupModelAction`](../Interface.SetPopupModelAction)\>
+
+## Properties
+
+### \_?
+
+> `readonly` `optional` **\_**: [`SetPopupModelAction`](../Interface.SetPopupModelAction)
+
+Defined in: [actions.ts:57](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L57)
+
+Used to ensure correct typing. Clients must not use this property
+
+#### Inherited from
+
+[`RequestAction`](../Interface.RequestAction).[`_`](../Interface.RequestAction.md#_)
+
+***
+
+### bounds
+
+> **bounds**: [`Bounds`](../Interface.Bounds)
+
+Defined in: [actions.ts:209](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L209)
+
+***
+
+### elementId
+
+> **elementId**: `string`
+
+Defined in: [actions.ts:208](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L208)
+
+***
+
+### kind
+
+> **kind**: `"requestPopupModel"`
+
+Defined in: [actions.ts:207](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L207)
+
+#### Overrides
+
+[`RequestAction`](../Interface.RequestAction).[`kind`](../Interface.RequestAction.md#kind)
+
+***
+
+### requestId
+
+> **requestId**: `string`
+
+Defined in: [actions.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L52)
+
+#### Inherited from
+
+[`RequestAction`](../Interface.RequestAction).[`requestId`](../Interface.RequestAction.md#requestid)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.ResponseAction.md b/hugo/content/docs/ref/sprotty-protocol/Interface.ResponseAction.md
new file mode 100644
index 0000000..f4e469f
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.ResponseAction.md
@@ -0,0 +1,44 @@
+
+[sprotty-protocol](../globals) / ResponseAction
+
+# Interface: ResponseAction
+
+Defined in: [actions.ts:86](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L86)
+
+A response action is sent to respond to a request action. The `responseId` must match
+the `requestId` of the preceding request. In case the `responseId` is empty or undefined,
+the action is handled as standalone, i.e. it was fired without a preceding request.
+
+## Extends
+
+- [`Action`](../Interface.Action)
+
+## Extended by
+
+- [`RejectAction`](../Interface.RejectAction)
+- [`SetModelAction`](../Interface.SetModelAction)
+- [`SetPopupModelAction`](../Interface.SetPopupModelAction)
+- [`ComputedBoundsAction`](../Interface.ComputedBoundsAction)
+- [`SelectionResult`](../Interface.SelectionResult)
+- [`ViewportResult`](../Interface.ViewportResult)
+- [`ExportSvgAction`](../Interface.ExportSvgAction)
+
+## Properties
+
+### kind
+
+> **kind**: `string`
+
+Defined in: [actions.ts:40](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L40)
+
+#### Inherited from
+
+[`Action`](../Interface.Action).[`kind`](../Interface.Action.md#kind)
+
+***
+
+### responseId
+
+> **responseId**: `string`
+
+Defined in: [actions.ts:87](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L87)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.SButton.md b/hugo/content/docs/ref/sprotty-protocol/Interface.SButton.md
new file mode 100644
index 0000000..006b765
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.SButton.md
@@ -0,0 +1,112 @@
+
+[sprotty-protocol](../globals) / SButton
+
+# Interface: SButton
+
+Defined in: [model.ts:284](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L284)
+
+Buttons are elements that can react to clicks. A button handler can be registered in the frontend.
+
+## Extends
+
+- [`SShapeElement`](../Interface.SShapeElement)
+
+## Properties
+
+### children?
+
+> `optional` **children**: [`SModelElement`](../Interface.SModelElement)[]
+
+Defined in: [model.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L27)
+
+#### Inherited from
+
+[`SShapeElement`](../Interface.SShapeElement).[`children`](../Interface.SShapeElement.md#children)
+
+***
+
+### cssClasses?
+
+> `optional` **cssClasses**: `string`[]
+
+Defined in: [model.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L28)
+
+#### Inherited from
+
+[`SShapeElement`](../Interface.SShapeElement).[`cssClasses`](../Interface.SShapeElement.md#cssclasses)
+
+***
+
+### enabled
+
+> **enabled**: `boolean`
+
+Defined in: [model.ts:286](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L286)
+
+***
+
+### id
+
+> **id**: `string`
+
+Defined in: [model.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L26)
+
+#### Inherited from
+
+[`SShapeElement`](../Interface.SShapeElement).[`id`](../Interface.SShapeElement.md#id)
+
+***
+
+### layoutOptions?
+
+> `optional` **layoutOptions**: [`ModelLayoutOptions`](../Interface.ModelLayoutOptions)
+
+Defined in: [model.ts:150](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L150)
+
+#### Inherited from
+
+[`LayoutableChild`](../Interface.LayoutableChild).[`layoutOptions`](../Interface.LayoutableChild.md#layoutoptions)
+
+***
+
+### position?
+
+> `optional` **position**: [`Point`](../Interface.Point)
+
+Defined in: [model.ts:135](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L135)
+
+#### Inherited from
+
+[`Locateable`](../Interface.Locateable).[`position`](../Interface.Locateable.md#position)
+
+***
+
+### pressed
+
+> **pressed**: `boolean`
+
+Defined in: [model.ts:285](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L285)
+
+***
+
+### size?
+
+> `optional` **size**: [`Dimension`](../Interface.Dimension)
+
+Defined in: [model.ts:142](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L142)
+
+#### Inherited from
+
+[`BoundsAware`](../Interface.BoundsAware).[`size`](../Interface.BoundsAware.md#size)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [model.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L25)
+
+#### Inherited from
+
+[`SShapeElement`](../Interface.SShapeElement).[`type`](../Interface.SShapeElement.md#type)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.SCompartment.md b/hugo/content/docs/ref/sprotty-protocol/Interface.SCompartment.md
new file mode 100644
index 0000000..f89694a
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.SCompartment.md
@@ -0,0 +1,109 @@
+
+[sprotty-protocol](../globals) / SCompartment
+
+# Interface: SCompartment
+
+Defined in: [model.ts:96](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L96)
+
+A compartment is used to group multiple child elements such as labels of a node. Usually a `vbox`
+or `hbox` layout is used to arrange these children.
+
+## Extends
+
+- [`SShapeElement`](../Interface.SShapeElement).`Partial`\<[`LayoutContainer`](../Interface.LayoutContainer)\>
+
+## Properties
+
+### children?
+
+> `optional` **children**: [`SModelElement`](../Interface.SModelElement)[]
+
+Defined in: [model.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L27)
+
+#### Inherited from
+
+[`SShapeElement`](../Interface.SShapeElement).[`children`](../Interface.SShapeElement.md#children)
+
+***
+
+### cssClasses?
+
+> `optional` **cssClasses**: `string`[]
+
+Defined in: [model.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L28)
+
+#### Inherited from
+
+[`SShapeElement`](../Interface.SShapeElement).[`cssClasses`](../Interface.SShapeElement.md#cssclasses)
+
+***
+
+### id
+
+> **id**: `string`
+
+Defined in: [model.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L26)
+
+#### Inherited from
+
+[`SShapeElement`](../Interface.SShapeElement).[`id`](../Interface.SShapeElement.md#id)
+
+***
+
+### layout?
+
+> `optional` **layout**: [`LayoutKind`](../TypeAlias.LayoutKind)
+
+Defined in: [model.ts:179](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L179)
+
+#### Inherited from
+
+[`LayoutContainer`](../Interface.LayoutContainer).[`layout`](../Interface.LayoutContainer.md#layout)
+
+***
+
+### layoutOptions?
+
+> `optional` **layoutOptions**: [`ModelLayoutOptions`](../Interface.ModelLayoutOptions)
+
+Defined in: [model.ts:150](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L150)
+
+#### Inherited from
+
+[`LayoutableChild`](../Interface.LayoutableChild).[`layoutOptions`](../Interface.LayoutableChild.md#layoutoptions)
+
+***
+
+### position?
+
+> `optional` **position**: [`Point`](../Interface.Point)
+
+Defined in: [model.ts:135](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L135)
+
+#### Inherited from
+
+[`Locateable`](../Interface.Locateable).[`position`](../Interface.Locateable.md#position)
+
+***
+
+### size?
+
+> `optional` **size**: [`Dimension`](../Interface.Dimension)
+
+Defined in: [model.ts:142](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L142)
+
+#### Inherited from
+
+[`BoundsAware`](../Interface.BoundsAware).[`size`](../Interface.BoundsAware.md#size)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [model.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L25)
+
+#### Inherited from
+
+[`SShapeElement`](../Interface.SShapeElement).[`type`](../Interface.SShapeElement.md#type)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.SEdge.md b/hugo/content/docs/ref/sprotty-protocol/Interface.SEdge.md
new file mode 100644
index 0000000..45ec6df
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.SEdge.md
@@ -0,0 +1,129 @@
+
+[sprotty-protocol](../globals) / SEdge
+
+# Interface: SEdge
+
+Defined in: [model.ts:78](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L78)
+
+Model element class for edges, which are the connectors in a graph. An edge has a source and a target,
+each of which can be either a node or a port. The source and target elements are referenced via their ids.
+
+## Extends
+
+- [`SModelElement`](../Interface.SModelElement).`Partial`\<[`Selectable`](../Interface.Selectable)\>.`Partial`\<[`Hoverable`](../Interface.Hoverable)\>.`Partial`\<[`Fadeable`](../Interface.Fadeable)\>
+
+## Properties
+
+### children?
+
+> `optional` **children**: [`SModelElement`](../Interface.SModelElement)[]
+
+Defined in: [model.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L27)
+
+#### Inherited from
+
+[`SModelElement`](../Interface.SModelElement).[`children`](../Interface.SModelElement.md#children)
+
+***
+
+### cssClasses?
+
+> `optional` **cssClasses**: `string`[]
+
+Defined in: [model.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L28)
+
+#### Inherited from
+
+[`SModelElement`](../Interface.SModelElement).[`cssClasses`](../Interface.SModelElement.md#cssclasses)
+
+***
+
+### hoverFeedback?
+
+> `optional` **hoverFeedback**: `boolean`
+
+Defined in: [model.ts:209](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L209)
+
+#### Inherited from
+
+[`Hoverable`](../Interface.Hoverable).[`hoverFeedback`](../Interface.Hoverable.md#hoverfeedback)
+
+***
+
+### id
+
+> **id**: `string`
+
+Defined in: [model.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L26)
+
+#### Inherited from
+
+[`SModelElement`](../Interface.SModelElement).[`id`](../Interface.SModelElement.md#id)
+
+***
+
+### opacity?
+
+> `optional` **opacity**: `number`
+
+Defined in: [model.ts:217](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L217)
+
+#### Inherited from
+
+[`Fadeable`](../Interface.Fadeable).[`opacity`](../Interface.Fadeable.md#opacity)
+
+***
+
+### routerKind?
+
+> `optional` **routerKind**: `string`
+
+Defined in: [model.ts:81](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L81)
+
+***
+
+### routingPoints?
+
+> `optional` **routingPoints**: [`Point`](../Interface.Point)[]
+
+Defined in: [model.ts:82](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L82)
+
+***
+
+### selected?
+
+> `optional` **selected**: `boolean`
+
+Defined in: [model.ts:201](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L201)
+
+#### Inherited from
+
+[`Selectable`](../Interface.Selectable).[`selected`](../Interface.Selectable.md#selected)
+
+***
+
+### sourceId
+
+> **sourceId**: `string`
+
+Defined in: [model.ts:79](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L79)
+
+***
+
+### targetId
+
+> **targetId**: `string`
+
+Defined in: [model.ts:80](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L80)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [model.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L25)
+
+#### Inherited from
+
+[`SModelElement`](../Interface.SModelElement).[`type`](../Interface.SModelElement.md#type)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.SGraph.md b/hugo/content/docs/ref/sprotty-protocol/Interface.SGraph.md
new file mode 100644
index 0000000..f410ea8
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.SGraph.md
@@ -0,0 +1,156 @@
+
+[sprotty-protocol](../globals) / SGraph
+
+# Interface: SGraph
+
+Defined in: [model.ts:48](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L48)
+
+Root element for graph-like models.
+
+## Extends
+
+- [`ViewportRootElement`](../Interface.ViewportRootElement).`Partial`\<[`LayoutableChild`](../Interface.LayoutableChild)\>
+
+## Properties
+
+### ~~bounds?~~
+
+> `optional` **bounds**: [`Bounds`](../Interface.Bounds)
+
+Defined in: [model.ts:52](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L52)
+
+#### Deprecated
+
+Use `position` and `size` instead.
+
+***
+
+### canvasBounds?
+
+> `optional` **canvasBounds**: [`Bounds`](../Interface.Bounds)
+
+Defined in: [model.ts:35](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L35)
+
+#### Inherited from
+
+[`ViewportRootElement`](../Interface.ViewportRootElement).[`canvasBounds`](../Interface.ViewportRootElement.md#canvasbounds)
+
+***
+
+### children
+
+> **children**: [`SModelElement`](../Interface.SModelElement)[]
+
+Defined in: [model.ts:49](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L49)
+
+#### Overrides
+
+[`ViewportRootElement`](../Interface.ViewportRootElement).[`children`](../Interface.ViewportRootElement.md#children)
+
+***
+
+### cssClasses?
+
+> `optional` **cssClasses**: `string`[]
+
+Defined in: [model.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L28)
+
+#### Inherited from
+
+[`ViewportRootElement`](../Interface.ViewportRootElement).[`cssClasses`](../Interface.ViewportRootElement.md#cssclasses)
+
+***
+
+### id
+
+> **id**: `string`
+
+Defined in: [model.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L26)
+
+#### Inherited from
+
+[`ViewportRootElement`](../Interface.ViewportRootElement).[`id`](../Interface.ViewportRootElement.md#id)
+
+***
+
+### layoutOptions?
+
+> `optional` **layoutOptions**: [`ModelLayoutOptions`](../Interface.ModelLayoutOptions)
+
+Defined in: [model.ts:150](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L150)
+
+#### Inherited from
+
+[`LayoutableChild`](../Interface.LayoutableChild).[`layoutOptions`](../Interface.LayoutableChild.md#layoutoptions)
+
+***
+
+### position?
+
+> `optional` **position**: [`Point`](../Interface.Point)
+
+Defined in: [model.ts:135](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L135)
+
+#### Inherited from
+
+[`Locateable`](../Interface.Locateable).[`position`](../Interface.Locateable.md#position)
+
+***
+
+### revision?
+
+> `optional` **revision**: `number`
+
+Defined in: [model.ts:36](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L36)
+
+#### Inherited from
+
+[`ViewportRootElement`](../Interface.ViewportRootElement).[`revision`](../Interface.ViewportRootElement.md#revision)
+
+***
+
+### scroll?
+
+> `optional` **scroll**: [`Point`](../Interface.Point)
+
+Defined in: [model.ts:111](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L111)
+
+#### Inherited from
+
+[`Viewport`](../Interface.Viewport).[`scroll`](../Interface.Viewport.md#scroll)
+
+***
+
+### size?
+
+> `optional` **size**: [`Dimension`](../Interface.Dimension)
+
+Defined in: [model.ts:142](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L142)
+
+#### Inherited from
+
+[`BoundsAware`](../Interface.BoundsAware).[`size`](../Interface.BoundsAware.md#size)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [model.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L25)
+
+#### Inherited from
+
+[`ViewportRootElement`](../Interface.ViewportRootElement).[`type`](../Interface.ViewportRootElement.md#type)
+
+***
+
+### zoom?
+
+> `optional` **zoom**: `number`
+
+Defined in: [model.ts:123](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L123)
+
+#### Inherited from
+
+[`Viewport`](../Interface.Viewport).[`zoom`](../Interface.Viewport.md#zoom)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.SIssue.md b/hugo/content/docs/ref/sprotty-protocol/Interface.SIssue.md
new file mode 100644
index 0000000..276bf62
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.SIssue.md
@@ -0,0 +1,22 @@
+
+[sprotty-protocol](../globals) / SIssue
+
+# Interface: SIssue
+
+Defined in: [model.ts:298](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L298)
+
+## Properties
+
+### message
+
+> **message**: `string`
+
+Defined in: [model.ts:299](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L299)
+
+***
+
+### severity
+
+> **severity**: [`SIssueSeverity`](../TypeAlias.SIssueSeverity)
+
+Defined in: [model.ts:300](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L300)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.SIssueMarker.md b/hugo/content/docs/ref/sprotty-protocol/Interface.SIssueMarker.md
new file mode 100644
index 0000000..2df38b4
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.SIssueMarker.md
@@ -0,0 +1,104 @@
+
+[sprotty-protocol](../globals) / SIssueMarker
+
+# Interface: SIssueMarker
+
+Defined in: [model.ts:292](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L292)
+
+An issue marker is used to display a symbol about an error or a warning attached to another model element.
+
+## Extends
+
+- [`SShapeElement`](../Interface.SShapeElement)
+
+## Properties
+
+### children?
+
+> `optional` **children**: [`SModelElement`](../Interface.SModelElement)[]
+
+Defined in: [model.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L27)
+
+#### Inherited from
+
+[`SShapeElement`](../Interface.SShapeElement).[`children`](../Interface.SShapeElement.md#children)
+
+***
+
+### cssClasses?
+
+> `optional` **cssClasses**: `string`[]
+
+Defined in: [model.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L28)
+
+#### Inherited from
+
+[`SShapeElement`](../Interface.SShapeElement).[`cssClasses`](../Interface.SShapeElement.md#cssclasses)
+
+***
+
+### id
+
+> **id**: `string`
+
+Defined in: [model.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L26)
+
+#### Inherited from
+
+[`SShapeElement`](../Interface.SShapeElement).[`id`](../Interface.SShapeElement.md#id)
+
+***
+
+### issues
+
+> **issues**: [`SIssue`](../Interface.SIssue)[]
+
+Defined in: [model.ts:293](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L293)
+
+***
+
+### layoutOptions?
+
+> `optional` **layoutOptions**: [`ModelLayoutOptions`](../Interface.ModelLayoutOptions)
+
+Defined in: [model.ts:150](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L150)
+
+#### Inherited from
+
+[`LayoutableChild`](../Interface.LayoutableChild).[`layoutOptions`](../Interface.LayoutableChild.md#layoutoptions)
+
+***
+
+### position?
+
+> `optional` **position**: [`Point`](../Interface.Point)
+
+Defined in: [model.ts:135](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L135)
+
+#### Inherited from
+
+[`Locateable`](../Interface.Locateable).[`position`](../Interface.Locateable.md#position)
+
+***
+
+### size?
+
+> `optional` **size**: [`Dimension`](../Interface.Dimension)
+
+Defined in: [model.ts:142](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L142)
+
+#### Inherited from
+
+[`BoundsAware`](../Interface.BoundsAware).[`size`](../Interface.BoundsAware.md#size)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [model.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L25)
+
+#### Inherited from
+
+[`SShapeElement`](../Interface.SShapeElement).[`type`](../Interface.SShapeElement.md#type)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.SLabel.md b/hugo/content/docs/ref/sprotty-protocol/Interface.SLabel.md
new file mode 100644
index 0000000..6815dc6
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.SLabel.md
@@ -0,0 +1,128 @@
+
+[sprotty-protocol](../globals) / SLabel
+
+# Interface: SLabel
+
+Defined in: [model.ts:88](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L88)
+
+A label can be attached to a node, edge, or port, and contains some text to be rendered in its view.
+
+## Extends
+
+- [`SShapeElement`](../Interface.SShapeElement).`Partial`\<[`Selectable`](../Interface.Selectable)\>.`Partial`\<[`Alignable`](../Interface.Alignable)\>
+
+## Properties
+
+### alignment?
+
+> `optional` **alignment**: [`Point`](../Interface.Point)
+
+Defined in: [model.ts:193](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L193)
+
+#### Inherited from
+
+[`Alignable`](../Interface.Alignable).[`alignment`](../Interface.Alignable.md#alignment)
+
+***
+
+### children?
+
+> `optional` **children**: [`SModelElement`](../Interface.SModelElement)[]
+
+Defined in: [model.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L27)
+
+#### Inherited from
+
+[`SShapeElement`](../Interface.SShapeElement).[`children`](../Interface.SShapeElement.md#children)
+
+***
+
+### cssClasses?
+
+> `optional` **cssClasses**: `string`[]
+
+Defined in: [model.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L28)
+
+#### Inherited from
+
+[`SShapeElement`](../Interface.SShapeElement).[`cssClasses`](../Interface.SShapeElement.md#cssclasses)
+
+***
+
+### id
+
+> **id**: `string`
+
+Defined in: [model.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L26)
+
+#### Inherited from
+
+[`SShapeElement`](../Interface.SShapeElement).[`id`](../Interface.SShapeElement.md#id)
+
+***
+
+### layoutOptions?
+
+> `optional` **layoutOptions**: [`ModelLayoutOptions`](../Interface.ModelLayoutOptions)
+
+Defined in: [model.ts:150](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L150)
+
+#### Inherited from
+
+[`LayoutableChild`](../Interface.LayoutableChild).[`layoutOptions`](../Interface.LayoutableChild.md#layoutoptions)
+
+***
+
+### position?
+
+> `optional` **position**: [`Point`](../Interface.Point)
+
+Defined in: [model.ts:135](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L135)
+
+#### Inherited from
+
+[`Locateable`](../Interface.Locateable).[`position`](../Interface.Locateable.md#position)
+
+***
+
+### selected?
+
+> `optional` **selected**: `boolean`
+
+Defined in: [model.ts:201](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L201)
+
+#### Inherited from
+
+[`Selectable`](../Interface.Selectable).[`selected`](../Interface.Selectable.md#selected)
+
+***
+
+### size?
+
+> `optional` **size**: [`Dimension`](../Interface.Dimension)
+
+Defined in: [model.ts:142](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L142)
+
+#### Inherited from
+
+[`BoundsAware`](../Interface.BoundsAware).[`size`](../Interface.BoundsAware.md#size)
+
+***
+
+### text
+
+> **text**: `string`
+
+Defined in: [model.ts:89](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L89)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [model.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L25)
+
+#### Inherited from
+
+[`SShapeElement`](../Interface.SShapeElement).[`type`](../Interface.SShapeElement.md#type)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.SModelElement.md b/hugo/content/docs/ref/sprotty-protocol/Interface.SModelElement.md
new file mode 100644
index 0000000..2e546de
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.SModelElement.md
@@ -0,0 +1,48 @@
+
+[sprotty-protocol](../globals) / SModelElement
+
+# Interface: SModelElement
+
+Defined in: [model.ts:24](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L24)
+
+Base type for all elements of the diagram model.
+Each model element must have a unique ID and a type that is used to look up its view.
+
+## Extended by
+
+- [`SModelRoot`](../Interface.SModelRoot)
+- [`SShapeElement`](../Interface.SShapeElement)
+- [`SEdge`](../Interface.SEdge)
+- [`PreRenderedElement`](../Interface.PreRenderedElement)
+
+## Properties
+
+### children?
+
+> `optional` **children**: `SModelElement`[]
+
+Defined in: [model.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L27)
+
+***
+
+### cssClasses?
+
+> `optional` **cssClasses**: `string`[]
+
+Defined in: [model.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L28)
+
+***
+
+### id
+
+> **id**: `string`
+
+Defined in: [model.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L26)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [model.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L25)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.SModelRoot.md b/hugo/content/docs/ref/sprotty-protocol/Interface.SModelRoot.md
new file mode 100644
index 0000000..d5a57af
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.SModelRoot.md
@@ -0,0 +1,81 @@
+
+[sprotty-protocol](../globals) / SModelRoot
+
+# Interface: SModelRoot
+
+Defined in: [model.ts:34](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L34)
+
+Base type for the root element of the diagram model tree.
+
+## Extends
+
+- [`SModelElement`](../Interface.SModelElement)
+
+## Extended by
+
+- [`ViewportRootElement`](../Interface.ViewportRootElement)
+- [`HtmlRoot`](../Interface.HtmlRoot)
+
+## Properties
+
+### canvasBounds?
+
+> `optional` **canvasBounds**: [`Bounds`](../Interface.Bounds)
+
+Defined in: [model.ts:35](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L35)
+
+***
+
+### children?
+
+> `optional` **children**: [`SModelElement`](../Interface.SModelElement)[]
+
+Defined in: [model.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L27)
+
+#### Inherited from
+
+[`SModelElement`](../Interface.SModelElement).[`children`](../Interface.SModelElement.md#children)
+
+***
+
+### cssClasses?
+
+> `optional` **cssClasses**: `string`[]
+
+Defined in: [model.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L28)
+
+#### Inherited from
+
+[`SModelElement`](../Interface.SModelElement).[`cssClasses`](../Interface.SModelElement.md#cssclasses)
+
+***
+
+### id
+
+> **id**: `string`
+
+Defined in: [model.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L26)
+
+#### Inherited from
+
+[`SModelElement`](../Interface.SModelElement).[`id`](../Interface.SModelElement.md#id)
+
+***
+
+### revision?
+
+> `optional` **revision**: `number`
+
+Defined in: [model.ts:36](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L36)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [model.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L25)
+
+#### Inherited from
+
+[`SModelElement`](../Interface.SModelElement).[`type`](../Interface.SModelElement.md#type)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.SNode.md b/hugo/content/docs/ref/sprotty-protocol/Interface.SNode.md
new file mode 100644
index 0000000..8255b96
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.SNode.md
@@ -0,0 +1,154 @@
+
+[sprotty-protocol](../globals) / SNode
+
+# Interface: SNode
+
+Defined in: [model.ts:63](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L63)
+
+Model element class for nodes, which are the main entities in a graph. A node can be connected to
+another node via an SEdge. Such a connection can be direct, i.e. the node is the source or target of
+the edge, or indirect through a port, i.e. it contains an SPort which is the source or target of the edge.
+
+## Extends
+
+- [`SShapeElement`](../Interface.SShapeElement).`Partial`\<[`LayoutContainer`](../Interface.LayoutContainer)\>.`Partial`\<[`Selectable`](../Interface.Selectable)\>.`Partial`\<[`Hoverable`](../Interface.Hoverable)\>.`Partial`\<[`Fadeable`](../Interface.Fadeable)\>
+
+## Properties
+
+### anchorKind?
+
+> `optional` **anchorKind**: `string`
+
+Defined in: [model.ts:64](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L64)
+
+***
+
+### children?
+
+> `optional` **children**: [`SModelElement`](../Interface.SModelElement)[]
+
+Defined in: [model.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L27)
+
+#### Inherited from
+
+[`SShapeElement`](../Interface.SShapeElement).[`children`](../Interface.SShapeElement.md#children)
+
+***
+
+### cssClasses?
+
+> `optional` **cssClasses**: `string`[]
+
+Defined in: [model.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L28)
+
+#### Inherited from
+
+[`SShapeElement`](../Interface.SShapeElement).[`cssClasses`](../Interface.SShapeElement.md#cssclasses)
+
+***
+
+### hoverFeedback?
+
+> `optional` **hoverFeedback**: `boolean`
+
+Defined in: [model.ts:209](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L209)
+
+#### Inherited from
+
+[`Hoverable`](../Interface.Hoverable).[`hoverFeedback`](../Interface.Hoverable.md#hoverfeedback)
+
+***
+
+### id
+
+> **id**: `string`
+
+Defined in: [model.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L26)
+
+#### Inherited from
+
+[`SShapeElement`](../Interface.SShapeElement).[`id`](../Interface.SShapeElement.md#id)
+
+***
+
+### layout?
+
+> `optional` **layout**: [`LayoutKind`](../TypeAlias.LayoutKind)
+
+Defined in: [model.ts:179](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L179)
+
+#### Inherited from
+
+[`LayoutContainer`](../Interface.LayoutContainer).[`layout`](../Interface.LayoutContainer.md#layout)
+
+***
+
+### layoutOptions?
+
+> `optional` **layoutOptions**: [`ModelLayoutOptions`](../Interface.ModelLayoutOptions)
+
+Defined in: [model.ts:150](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L150)
+
+#### Inherited from
+
+[`LayoutableChild`](../Interface.LayoutableChild).[`layoutOptions`](../Interface.LayoutableChild.md#layoutoptions)
+
+***
+
+### opacity?
+
+> `optional` **opacity**: `number`
+
+Defined in: [model.ts:217](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L217)
+
+#### Inherited from
+
+[`Fadeable`](../Interface.Fadeable).[`opacity`](../Interface.Fadeable.md#opacity)
+
+***
+
+### position?
+
+> `optional` **position**: [`Point`](../Interface.Point)
+
+Defined in: [model.ts:135](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L135)
+
+#### Inherited from
+
+[`Locateable`](../Interface.Locateable).[`position`](../Interface.Locateable.md#position)
+
+***
+
+### selected?
+
+> `optional` **selected**: `boolean`
+
+Defined in: [model.ts:201](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L201)
+
+#### Inherited from
+
+[`Selectable`](../Interface.Selectable).[`selected`](../Interface.Selectable.md#selected)
+
+***
+
+### size?
+
+> `optional` **size**: [`Dimension`](../Interface.Dimension)
+
+Defined in: [model.ts:142](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L142)
+
+#### Inherited from
+
+[`BoundsAware`](../Interface.BoundsAware).[`size`](../Interface.BoundsAware.md#size)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [model.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L25)
+
+#### Inherited from
+
+[`SShapeElement`](../Interface.SShapeElement).[`type`](../Interface.SShapeElement.md#type)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.SPort.md b/hugo/content/docs/ref/sprotty-protocol/Interface.SPort.md
new file mode 100644
index 0000000..e778110
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.SPort.md
@@ -0,0 +1,140 @@
+
+[sprotty-protocol](../globals) / SPort
+
+# Interface: SPort
+
+Defined in: [model.ts:70](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L70)
+
+A port is a connection point for edges. It should always be contained in an SNode.
+
+## Extends
+
+- [`SShapeElement`](../Interface.SShapeElement).`Partial`\<[`Selectable`](../Interface.Selectable)\>.`Partial`\<[`Hoverable`](../Interface.Hoverable)\>.`Partial`\<[`Fadeable`](../Interface.Fadeable)\>
+
+## Properties
+
+### anchorKind?
+
+> `optional` **anchorKind**: `string`
+
+Defined in: [model.ts:71](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L71)
+
+***
+
+### children?
+
+> `optional` **children**: [`SModelElement`](../Interface.SModelElement)[]
+
+Defined in: [model.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L27)
+
+#### Inherited from
+
+[`SShapeElement`](../Interface.SShapeElement).[`children`](../Interface.SShapeElement.md#children)
+
+***
+
+### cssClasses?
+
+> `optional` **cssClasses**: `string`[]
+
+Defined in: [model.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L28)
+
+#### Inherited from
+
+[`SShapeElement`](../Interface.SShapeElement).[`cssClasses`](../Interface.SShapeElement.md#cssclasses)
+
+***
+
+### hoverFeedback?
+
+> `optional` **hoverFeedback**: `boolean`
+
+Defined in: [model.ts:209](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L209)
+
+#### Inherited from
+
+[`Hoverable`](../Interface.Hoverable).[`hoverFeedback`](../Interface.Hoverable.md#hoverfeedback)
+
+***
+
+### id
+
+> **id**: `string`
+
+Defined in: [model.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L26)
+
+#### Inherited from
+
+[`SShapeElement`](../Interface.SShapeElement).[`id`](../Interface.SShapeElement.md#id)
+
+***
+
+### layoutOptions?
+
+> `optional` **layoutOptions**: [`ModelLayoutOptions`](../Interface.ModelLayoutOptions)
+
+Defined in: [model.ts:150](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L150)
+
+#### Inherited from
+
+[`LayoutableChild`](../Interface.LayoutableChild).[`layoutOptions`](../Interface.LayoutableChild.md#layoutoptions)
+
+***
+
+### opacity?
+
+> `optional` **opacity**: `number`
+
+Defined in: [model.ts:217](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L217)
+
+#### Inherited from
+
+[`Fadeable`](../Interface.Fadeable).[`opacity`](../Interface.Fadeable.md#opacity)
+
+***
+
+### position?
+
+> `optional` **position**: [`Point`](../Interface.Point)
+
+Defined in: [model.ts:135](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L135)
+
+#### Inherited from
+
+[`Locateable`](../Interface.Locateable).[`position`](../Interface.Locateable.md#position)
+
+***
+
+### selected?
+
+> `optional` **selected**: `boolean`
+
+Defined in: [model.ts:201](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L201)
+
+#### Inherited from
+
+[`Selectable`](../Interface.Selectable).[`selected`](../Interface.Selectable.md#selected)
+
+***
+
+### size?
+
+> `optional` **size**: [`Dimension`](../Interface.Dimension)
+
+Defined in: [model.ts:142](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L142)
+
+#### Inherited from
+
+[`BoundsAware`](../Interface.BoundsAware).[`size`](../Interface.BoundsAware.md#size)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [model.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L25)
+
+#### Inherited from
+
+[`SShapeElement`](../Interface.SShapeElement).[`type`](../Interface.SShapeElement.md#type)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.SShapeElement.md b/hugo/content/docs/ref/sprotty-protocol/Interface.SShapeElement.md
new file mode 100644
index 0000000..207bcfd
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.SShapeElement.md
@@ -0,0 +1,106 @@
+
+[sprotty-protocol](../globals) / SShapeElement
+
+# Interface: SShapeElement
+
+Defined in: [model.ts:55](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L55)
+
+Base type for all elements of the diagram model.
+Each model element must have a unique ID and a type that is used to look up its view.
+
+## Extends
+
+- [`SModelElement`](../Interface.SModelElement).`Partial`\<[`LayoutableChild`](../Interface.LayoutableChild)\>
+
+## Extended by
+
+- [`SNode`](../Interface.SNode)
+- [`SPort`](../Interface.SPort)
+- [`SLabel`](../Interface.SLabel)
+- [`SCompartment`](../Interface.SCompartment)
+- [`SButton`](../Interface.SButton)
+- [`SIssueMarker`](../Interface.SIssueMarker)
+
+## Properties
+
+### children?
+
+> `optional` **children**: [`SModelElement`](../Interface.SModelElement)[]
+
+Defined in: [model.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L27)
+
+#### Inherited from
+
+[`SModelElement`](../Interface.SModelElement).[`children`](../Interface.SModelElement.md#children)
+
+***
+
+### cssClasses?
+
+> `optional` **cssClasses**: `string`[]
+
+Defined in: [model.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L28)
+
+#### Inherited from
+
+[`SModelElement`](../Interface.SModelElement).[`cssClasses`](../Interface.SModelElement.md#cssclasses)
+
+***
+
+### id
+
+> **id**: `string`
+
+Defined in: [model.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L26)
+
+#### Inherited from
+
+[`SModelElement`](../Interface.SModelElement).[`id`](../Interface.SModelElement.md#id)
+
+***
+
+### layoutOptions?
+
+> `optional` **layoutOptions**: [`ModelLayoutOptions`](../Interface.ModelLayoutOptions)
+
+Defined in: [model.ts:150](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L150)
+
+#### Inherited from
+
+[`LayoutableChild`](../Interface.LayoutableChild).[`layoutOptions`](../Interface.LayoutableChild.md#layoutoptions)
+
+***
+
+### position?
+
+> `optional` **position**: [`Point`](../Interface.Point)
+
+Defined in: [model.ts:135](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L135)
+
+#### Inherited from
+
+[`Locateable`](../Interface.Locateable).[`position`](../Interface.Locateable.md#position)
+
+***
+
+### size?
+
+> `optional` **size**: [`Dimension`](../Interface.Dimension)
+
+Defined in: [model.ts:142](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L142)
+
+#### Inherited from
+
+[`BoundsAware`](../Interface.BoundsAware).[`size`](../Interface.BoundsAware.md#size)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [model.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L25)
+
+#### Inherited from
+
+[`SModelElement`](../Interface.SModelElement).[`type`](../Interface.SModelElement.md#type)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.Scrollable.md b/hugo/content/docs/ref/sprotty-protocol/Interface.Scrollable.md
new file mode 100644
index 0000000..4586eb6
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.Scrollable.md
@@ -0,0 +1,21 @@
+
+[sprotty-protocol](../globals) / Scrollable
+
+# Interface: Scrollable
+
+Defined in: [model.ts:110](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L110)
+
+A scrollable element has a scroll position, which indicates the top left corner of the
+visible area.
+
+## Extended by
+
+- [`Viewport`](../Interface.Viewport)
+
+## Properties
+
+### scroll
+
+> **scroll**: [`Point`](../Interface.Point)
+
+Defined in: [model.ts:111](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L111)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.SelectAction.md b/hugo/content/docs/ref/sprotty-protocol/Interface.SelectAction.md
new file mode 100644
index 0000000..14fdd16
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.SelectAction.md
@@ -0,0 +1,35 @@
+
+[sprotty-protocol](../globals) / SelectAction
+
+# Interface: SelectAction
+
+Defined in: [actions.ts:357](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L357)
+
+Triggered when the user changes the selection, e.g. by clicking on a selectable element. The resulting
+SelectCommand changes the `selected` state accordingly, so the elements can be rendered differently.
+This action is also forwarded to the diagram server, if present, so it may react on the selection change.
+Furthermore, the server can send such an action to the client in order to change the selection programmatically.
+
+## Properties
+
+### deselectedElementsIDs
+
+> **deselectedElementsIDs**: `string`[]
+
+Defined in: [actions.ts:360](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L360)
+
+***
+
+### kind
+
+> **kind**: `"elementSelected"`
+
+Defined in: [actions.ts:358](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L358)
+
+***
+
+### selectedElementsIDs
+
+> **selectedElementsIDs**: `string`[]
+
+Defined in: [actions.ts:359](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L359)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.SelectAllAction.md b/hugo/content/docs/ref/sprotty-protocol/Interface.SelectAllAction.md
new file mode 100644
index 0000000..69d65d8
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.SelectAllAction.md
@@ -0,0 +1,25 @@
+
+[sprotty-protocol](../globals) / SelectAllAction
+
+# Interface: SelectAllAction
+
+Defined in: [actions.ts:378](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L378)
+
+Programmatic action for selecting or deselecting all elements.
+If `select` is true, all elements are selected, otherwise they are deselected.
+
+## Properties
+
+### kind
+
+> **kind**: `"allSelected"`
+
+Defined in: [actions.ts:379](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L379)
+
+***
+
+### select
+
+> **select**: `boolean`
+
+Defined in: [actions.ts:380](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L380)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.Selectable.md b/hugo/content/docs/ref/sprotty-protocol/Interface.Selectable.md
new file mode 100644
index 0000000..e235860
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.Selectable.md
@@ -0,0 +1,17 @@
+
+[sprotty-protocol](../globals) / Selectable
+
+# Interface: Selectable
+
+Defined in: [model.ts:200](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L200)
+
+Feature extension interface for `selectFeature`. The selection status is often considered
+in the frontend views, e.g. by switching CSS classes.
+
+## Properties
+
+### selected
+
+> **selected**: `boolean`
+
+Defined in: [model.ts:201](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L201)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.SelectionResult.md b/hugo/content/docs/ref/sprotty-protocol/Interface.SelectionResult.md
new file mode 100644
index 0000000..9f6425a
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.SelectionResult.md
@@ -0,0 +1,44 @@
+
+[sprotty-protocol](../globals) / SelectionResult
+
+# Interface: SelectionResult
+
+Defined in: [actions.ts:413](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L413)
+
+Result for a `GetSelectionAction`.
+
+## Extends
+
+- [`ResponseAction`](../Interface.ResponseAction)
+
+## Properties
+
+### kind
+
+> **kind**: `"selectionResult"`
+
+Defined in: [actions.ts:414](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L414)
+
+#### Overrides
+
+[`ResponseAction`](../Interface.ResponseAction).[`kind`](../Interface.ResponseAction.md#kind)
+
+***
+
+### responseId
+
+> **responseId**: `string`
+
+Defined in: [actions.ts:87](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L87)
+
+#### Inherited from
+
+[`ResponseAction`](../Interface.ResponseAction).[`responseId`](../Interface.ResponseAction.md#responseid)
+
+***
+
+### selectedElementsIDs
+
+> **selectedElementsIDs**: `string`[]
+
+Defined in: [actions.ts:415](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L415)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.SetBoundsAction.md b/hugo/content/docs/ref/sprotty-protocol/Interface.SetBoundsAction.md
new file mode 100644
index 0000000..ab911cb
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.SetBoundsAction.md
@@ -0,0 +1,33 @@
+
+[sprotty-protocol](../globals) / SetBoundsAction
+
+# Interface: SetBoundsAction
+
+Defined in: [actions.ts:248](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L248)
+
+Sent from the model source (e.g. a DiagramServer) to the client to update the bounds of some
+(or all) model elements.
+
+## Extends
+
+- [`Action`](../Interface.Action)
+
+## Properties
+
+### bounds
+
+> **bounds**: [`ElementAndBounds`](../Interface.ElementAndBounds)[]
+
+Defined in: [actions.ts:250](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L250)
+
+***
+
+### kind
+
+> **kind**: `"setBounds"`
+
+Defined in: [actions.ts:249](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L249)
+
+#### Overrides
+
+[`Action`](../Interface.Action).[`kind`](../Interface.Action.md#kind)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.SetModelAction.md b/hugo/content/docs/ref/sprotty-protocol/Interface.SetModelAction.md
new file mode 100644
index 0000000..9564afc
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.SetModelAction.md
@@ -0,0 +1,44 @@
+
+[sprotty-protocol](../globals) / SetModelAction
+
+# Interface: SetModelAction
+
+Defined in: [actions.ts:145](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L145)
+
+Sent from the model source to the client in order to set the model. If a model is already present, it is replaced.
+
+## Extends
+
+- [`ResponseAction`](../Interface.ResponseAction)
+
+## Properties
+
+### kind
+
+> **kind**: `"setModel"`
+
+Defined in: [actions.ts:146](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L146)
+
+#### Overrides
+
+[`ResponseAction`](../Interface.ResponseAction).[`kind`](../Interface.ResponseAction.md#kind)
+
+***
+
+### newRoot
+
+> **newRoot**: [`SModelRoot`](../Interface.SModelRoot)
+
+Defined in: [actions.ts:147](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L147)
+
+***
+
+### responseId
+
+> **responseId**: `string`
+
+Defined in: [actions.ts:87](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L87)
+
+#### Inherited from
+
+[`ResponseAction`](../Interface.ResponseAction).[`responseId`](../Interface.ResponseAction.md#responseid)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.SetPopupModelAction.md b/hugo/content/docs/ref/sprotty-protocol/Interface.SetPopupModelAction.md
new file mode 100644
index 0000000..52ec926
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.SetPopupModelAction.md
@@ -0,0 +1,45 @@
+
+[sprotty-protocol](../globals) / SetPopupModelAction
+
+# Interface: SetPopupModelAction
+
+Defined in: [actions.ts:228](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L228)
+
+Sent from the model source to the client to display a popup in response to a RequestPopupModelAction.
+This action can also be used to remove any existing popup by choosing EMPTY_ROOT as root element.
+
+## Extends
+
+- [`ResponseAction`](../Interface.ResponseAction)
+
+## Properties
+
+### kind
+
+> **kind**: `"setPopupModel"`
+
+Defined in: [actions.ts:229](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L229)
+
+#### Overrides
+
+[`ResponseAction`](../Interface.ResponseAction).[`kind`](../Interface.ResponseAction.md#kind)
+
+***
+
+### newRoot
+
+> **newRoot**: [`SModelRoot`](../Interface.SModelRoot)
+
+Defined in: [actions.ts:230](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L230)
+
+***
+
+### responseId
+
+> **responseId**: `string`
+
+Defined in: [actions.ts:87](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L87)
+
+#### Inherited from
+
+[`ResponseAction`](../Interface.ResponseAction).[`responseId`](../Interface.ResponseAction.md#responseid)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.SetViewportAction.md b/hugo/content/docs/ref/sprotty-protocol/Interface.SetViewportAction.md
new file mode 100644
index 0000000..02d2f6a
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.SetViewportAction.md
@@ -0,0 +1,50 @@
+
+[sprotty-protocol](../globals) / SetViewportAction
+
+# Interface: SetViewportAction
+
+Defined in: [actions.ts:564](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L564)
+
+Directly set the diagram viewport to the given scroll and zoom values.
+The ID of the viewport element to manipulate must be given with the action
+(usually it is the root element's ID).
+
+## Extends
+
+- [`Action`](../Interface.Action)
+
+## Properties
+
+### animate
+
+> **animate**: `boolean`
+
+Defined in: [actions.ts:568](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L568)
+
+***
+
+### elementId
+
+> **elementId**: `string`
+
+Defined in: [actions.ts:566](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L566)
+
+***
+
+### kind
+
+> **kind**: `"viewport"`
+
+Defined in: [actions.ts:565](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L565)
+
+#### Overrides
+
+[`Action`](../Interface.Action).[`kind`](../Interface.Action.md#kind)
+
+***
+
+### newViewport
+
+> **newViewport**: [`Viewport`](../Interface.Viewport)
+
+Defined in: [actions.ts:567](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L567)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.ShapedPreRenderedElement.md b/hugo/content/docs/ref/sprotty-protocol/Interface.ShapedPreRenderedElement.md
new file mode 100644
index 0000000..19e88c5
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.ShapedPreRenderedElement.md
@@ -0,0 +1,92 @@
+
+[sprotty-protocol](../globals) / ShapedPreRenderedElement
+
+# Interface: ShapedPreRenderedElement
+
+Defined in: [model.ts:321](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L321)
+
+Same as PreRenderedElement, but with a position and a size.
+
+## Extends
+
+- [`PreRenderedElement`](../Interface.PreRenderedElement)
+
+## Extended by
+
+- [`ForeignObjectElement`](../Interface.ForeignObjectElement)
+
+## Properties
+
+### children?
+
+> `optional` **children**: [`SModelElement`](../Interface.SModelElement)[]
+
+Defined in: [model.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L27)
+
+#### Inherited from
+
+[`PreRenderedElement`](../Interface.PreRenderedElement).[`children`](../Interface.PreRenderedElement.md#children)
+
+***
+
+### code
+
+> **code**: `string`
+
+Defined in: [model.ts:315](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L315)
+
+#### Inherited from
+
+[`PreRenderedElement`](../Interface.PreRenderedElement).[`code`](../Interface.PreRenderedElement.md#code)
+
+***
+
+### cssClasses?
+
+> `optional` **cssClasses**: `string`[]
+
+Defined in: [model.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L28)
+
+#### Inherited from
+
+[`PreRenderedElement`](../Interface.PreRenderedElement).[`cssClasses`](../Interface.PreRenderedElement.md#cssclasses)
+
+***
+
+### id
+
+> **id**: `string`
+
+Defined in: [model.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L26)
+
+#### Inherited from
+
+[`PreRenderedElement`](../Interface.PreRenderedElement).[`id`](../Interface.PreRenderedElement.md#id)
+
+***
+
+### position?
+
+> `optional` **position**: [`Point`](../Interface.Point)
+
+Defined in: [model.ts:322](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L322)
+
+***
+
+### size?
+
+> `optional` **size**: [`Dimension`](../Interface.Dimension)
+
+Defined in: [model.ts:323](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L323)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [model.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L25)
+
+#### Inherited from
+
+[`PreRenderedElement`](../Interface.PreRenderedElement).[`type`](../Interface.PreRenderedElement.md#type)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.UndoAction.md b/hugo/content/docs/ref/sprotty-protocol/Interface.UndoAction.md
new file mode 100644
index 0000000..18dd05e
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.UndoAction.md
@@ -0,0 +1,24 @@
+
+[sprotty-protocol](../globals) / UndoAction
+
+# Interface: UndoAction
+
+Defined in: [actions.ts:642](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L642)
+
+Undo the previous operation on the stack of operations.
+
+## Extends
+
+- [`Action`](../Interface.Action)
+
+## Properties
+
+### kind
+
+> **kind**: `"undo"`
+
+Defined in: [actions.ts:643](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L643)
+
+#### Overrides
+
+[`Action`](../Interface.Action).[`kind`](../Interface.Action.md#kind)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.UpdateModelAction.md b/hugo/content/docs/ref/sprotty-protocol/Interface.UpdateModelAction.md
new file mode 100644
index 0000000..4773e65
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.UpdateModelAction.md
@@ -0,0 +1,49 @@
+
+[sprotty-protocol](../globals) / UpdateModelAction
+
+# Interface: UpdateModelAction
+
+Defined in: [actions.ts:165](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L165)
+
+Sent from the model source to the client in order to update the model. If no model is present yet,
+this behaves the same as a SetModelAction. The transition from the old model to the new one can be animated.
+
+## Properties
+
+### animate?
+
+> `optional` **animate**: `boolean`
+
+Defined in: [actions.ts:169](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L169)
+
+***
+
+### cause?
+
+> `optional` **cause**: [`Action`](../Interface.Action)
+
+Defined in: [actions.ts:170](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L170)
+
+***
+
+### kind
+
+> **kind**: `"updateModel"`
+
+Defined in: [actions.ts:166](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L166)
+
+***
+
+### matches?
+
+> `optional` **matches**: [`Match`](../Interface.Match)[]
+
+Defined in: [actions.ts:168](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L168)
+
+***
+
+### newRoot?
+
+> `optional` **newRoot**: [`SModelRoot`](../Interface.SModelRoot)
+
+Defined in: [actions.ts:167](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L167)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.Viewport.md b/hugo/content/docs/ref/sprotty-protocol/Interface.Viewport.md
new file mode 100644
index 0000000..3d60b6c
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.Viewport.md
@@ -0,0 +1,37 @@
+
+[sprotty-protocol](../globals) / Viewport
+
+# Interface: Viewport
+
+Defined in: [model.ts:103](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L103)
+
+A viewport has a scroll position and a zoom factor. Usually these properties are
+applied to the root element to enable navigating through the diagram.
+
+## Extends
+
+- [`Scrollable`](../Interface.Scrollable).[`Zoomable`](../Interface.Zoomable)
+
+## Properties
+
+### scroll
+
+> **scroll**: [`Point`](../Interface.Point)
+
+Defined in: [model.ts:111](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L111)
+
+#### Inherited from
+
+[`Scrollable`](../Interface.Scrollable).[`scroll`](../Interface.Scrollable.md#scroll)
+
+***
+
+### zoom
+
+> **zoom**: `number`
+
+Defined in: [model.ts:123](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L123)
+
+#### Inherited from
+
+[`Zoomable`](../Interface.Zoomable).[`zoom`](../Interface.Zoomable.md#zoom)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.ViewportResult.md b/hugo/content/docs/ref/sprotty-protocol/Interface.ViewportResult.md
new file mode 100644
index 0000000..f75d226
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.ViewportResult.md
@@ -0,0 +1,52 @@
+
+[sprotty-protocol](../globals) / ViewportResult
+
+# Interface: ViewportResult
+
+Defined in: [actions.ts:603](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L603)
+
+Response to a `GetViewportAction`.
+
+## Extends
+
+- [`ResponseAction`](../Interface.ResponseAction)
+
+## Properties
+
+### canvasBounds
+
+> **canvasBounds**: [`Bounds`](../Interface.Bounds)
+
+Defined in: [actions.ts:606](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L606)
+
+***
+
+### kind
+
+> **kind**: `"viewportResult"`
+
+Defined in: [actions.ts:604](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L604)
+
+#### Overrides
+
+[`ResponseAction`](../Interface.ResponseAction).[`kind`](../Interface.ResponseAction.md#kind)
+
+***
+
+### responseId
+
+> **responseId**: `string`
+
+Defined in: [actions.ts:87](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L87)
+
+#### Inherited from
+
+[`ResponseAction`](../Interface.ResponseAction).[`responseId`](../Interface.ResponseAction.md#responseid)
+
+***
+
+### viewport
+
+> **viewport**: [`Viewport`](../Interface.Viewport)
+
+Defined in: [actions.ts:605](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L605)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.ViewportRootElement.md b/hugo/content/docs/ref/sprotty-protocol/Interface.ViewportRootElement.md
new file mode 100644
index 0000000..73cd399
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.ViewportRootElement.md
@@ -0,0 +1,136 @@
+
+[sprotty-protocol](../globals) / ViewportRootElement
+
+# Interface: ViewportRootElement
+
+Defined in: [model.ts:42](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L42)
+
+Usually the root of a model is also a viewport.
+
+## Extends
+
+- [`SModelRoot`](../Interface.SModelRoot).`Partial`\<[`Viewport`](../Interface.Viewport)\>.`Partial`\<[`BoundsAware`](../Interface.BoundsAware)\>
+
+## Extended by
+
+- [`SGraph`](../Interface.SGraph)
+
+## Properties
+
+### canvasBounds?
+
+> `optional` **canvasBounds**: [`Bounds`](../Interface.Bounds)
+
+Defined in: [model.ts:35](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L35)
+
+#### Inherited from
+
+[`SModelRoot`](../Interface.SModelRoot).[`canvasBounds`](../Interface.SModelRoot.md#canvasbounds)
+
+***
+
+### children?
+
+> `optional` **children**: [`SModelElement`](../Interface.SModelElement)[]
+
+Defined in: [model.ts:27](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L27)
+
+#### Inherited from
+
+[`SModelRoot`](../Interface.SModelRoot).[`children`](../Interface.SModelRoot.md#children)
+
+***
+
+### cssClasses?
+
+> `optional` **cssClasses**: `string`[]
+
+Defined in: [model.ts:28](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L28)
+
+#### Inherited from
+
+[`SModelRoot`](../Interface.SModelRoot).[`cssClasses`](../Interface.SModelRoot.md#cssclasses)
+
+***
+
+### id
+
+> **id**: `string`
+
+Defined in: [model.ts:26](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L26)
+
+#### Inherited from
+
+[`SModelRoot`](../Interface.SModelRoot).[`id`](../Interface.SModelRoot.md#id)
+
+***
+
+### position?
+
+> `optional` **position**: [`Point`](../Interface.Point)
+
+Defined in: [model.ts:135](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L135)
+
+#### Inherited from
+
+[`Locateable`](../Interface.Locateable).[`position`](../Interface.Locateable.md#position)
+
+***
+
+### revision?
+
+> `optional` **revision**: `number`
+
+Defined in: [model.ts:36](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L36)
+
+#### Inherited from
+
+[`SModelRoot`](../Interface.SModelRoot).[`revision`](../Interface.SModelRoot.md#revision)
+
+***
+
+### scroll?
+
+> `optional` **scroll**: [`Point`](../Interface.Point)
+
+Defined in: [model.ts:111](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L111)
+
+#### Inherited from
+
+[`Viewport`](../Interface.Viewport).[`scroll`](../Interface.Viewport.md#scroll)
+
+***
+
+### size?
+
+> `optional` **size**: [`Dimension`](../Interface.Dimension)
+
+Defined in: [model.ts:142](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L142)
+
+#### Inherited from
+
+[`BoundsAware`](../Interface.BoundsAware).[`size`](../Interface.BoundsAware.md#size)
+
+***
+
+### type
+
+> **type**: `string`
+
+Defined in: [model.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L25)
+
+#### Inherited from
+
+[`SModelRoot`](../Interface.SModelRoot).[`type`](../Interface.SModelRoot.md#type)
+
+***
+
+### zoom?
+
+> `optional` **zoom**: `number`
+
+Defined in: [model.ts:123](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L123)
+
+#### Inherited from
+
+[`Viewport`](../Interface.Viewport).[`zoom`](../Interface.Viewport.md#zoom)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Interface.Zoomable.md b/hugo/content/docs/ref/sprotty-protocol/Interface.Zoomable.md
new file mode 100644
index 0000000..9f8b9c4
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Interface.Zoomable.md
@@ -0,0 +1,21 @@
+
+[sprotty-protocol](../globals) / Zoomable
+
+# Interface: Zoomable
+
+Defined in: [model.ts:122](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L122)
+
+A zoomable element can be scaled so it appears smaller or larger than its actual size.
+The zoom value 1 is the default scale where the content is drawn with its actual size.
+
+## Extended by
+
+- [`Viewport`](../Interface.Viewport)
+
+## Properties
+
+### zoom
+
+> **zoom**: `number`
+
+Defined in: [model.ts:123](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L123)
diff --git a/hugo/content/docs/ref/sprotty-protocol/LayoutAction.Function.create.md b/hugo/content/docs/ref/sprotty-protocol/LayoutAction.Function.create.md
new file mode 100644
index 0000000..68703e9
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/LayoutAction.Function.create.md
@@ -0,0 +1,24 @@
+
+[sprotty-protocol](../globals) / [LayoutAction](../Namespace.LayoutAction) / create
+
+# Function: create()
+
+> **create**(`options`): [`LayoutAction`](../Interface.LayoutAction)
+
+Defined in: [actions.ts:495](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L495)
+
+## Parameters
+
+### options
+
+#### elementIds?
+
+`string`[]
+
+#### layoutType?
+
+`string`
+
+## Returns
+
+[`LayoutAction`](../Interface.LayoutAction)
diff --git a/hugo/content/docs/ref/sprotty-protocol/LayoutAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-protocol/LayoutAction.Variable.KIND.md
new file mode 100644
index 0000000..66b8027
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/LayoutAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [LayoutAction](../Namespace.LayoutAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"layout"` = `'layout'`
+
+Defined in: [actions.ts:493](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L493)
diff --git a/hugo/content/docs/ref/sprotty-protocol/LoggingAction.Function.create.md b/hugo/content/docs/ref/sprotty-protocol/LoggingAction.Function.create.md
new file mode 100644
index 0000000..b894fc0
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/LoggingAction.Function.create.md
@@ -0,0 +1,36 @@
+
+[sprotty-protocol](../globals) / [LoggingAction](../Namespace.LoggingAction) / create
+
+# Function: create()
+
+> **create**(`options`): [`LoggingAction`](../Interface.LoggingAction)
+
+Defined in: [actions.ts:343](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L343)
+
+## Parameters
+
+### options
+
+#### caller
+
+`string`
+
+#### message
+
+`string`
+
+#### params
+
+`string`[]
+
+#### severity
+
+`string`
+
+#### time
+
+`string`
+
+## Returns
+
+[`LoggingAction`](../Interface.LoggingAction)
diff --git a/hugo/content/docs/ref/sprotty-protocol/LoggingAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-protocol/LoggingAction.Variable.KIND.md
new file mode 100644
index 0000000..2c317ad
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/LoggingAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [LoggingAction](../Namespace.LoggingAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"logging"` = `'logging'`
+
+Defined in: [actions.ts:341](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L341)
diff --git a/hugo/content/docs/ref/sprotty-protocol/MoveAction.Function.create.md b/hugo/content/docs/ref/sprotty-protocol/MoveAction.Function.create.md
new file mode 100644
index 0000000..55b87a6
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/MoveAction.Function.create.md
@@ -0,0 +1,32 @@
+
+[sprotty-protocol](../globals) / [MoveAction](../Namespace.MoveAction) / create
+
+# Function: create()
+
+> **create**(`moves`, `options`): [`MoveAction`](../Interface.MoveAction)
+
+Defined in: [actions.ts:684](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L684)
+
+## Parameters
+
+### moves
+
+[`ElementMove`](../Interface.ElementMove)[]
+
+### options
+
+#### animate?
+
+`boolean`
+
+#### finished?
+
+`boolean`
+
+#### stoppable?
+
+`boolean`
+
+## Returns
+
+[`MoveAction`](../Interface.MoveAction)
diff --git a/hugo/content/docs/ref/sprotty-protocol/MoveAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-protocol/MoveAction.Variable.KIND.md
new file mode 100644
index 0000000..1bcd592
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/MoveAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [MoveAction](../Namespace.MoveAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"move"` = `'move'`
+
+Defined in: [actions.ts:682](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L682)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.ApplyLabelEditAction.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.ApplyLabelEditAction.md
new file mode 100644
index 0000000..c7bada1
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.ApplyLabelEditAction.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / ApplyLabelEditAction
+
+# ApplyLabelEditAction
+
+## Variables
+
+- [KIND](../ApplyLabelEditAction.Variable.KIND)
+
+## Functions
+
+- [create](../ApplyLabelEditAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.Bounds.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.Bounds.md
new file mode 100644
index 0000000..0ab0cfc
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.Bounds.md
@@ -0,0 +1,15 @@
+
+[sprotty-protocol](../globals) / Bounds
+
+# Bounds
+
+## Variables
+
+- [EMPTY](../Bounds.Variable.EMPTY)
+
+## Functions
+
+- [center](../Bounds.Function.center)
+- [combine](../Bounds.Function.combine)
+- [includes](../Bounds.Function.includes)
+- [translate](../Bounds.Function.translate)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.BringToFrontAction.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.BringToFrontAction.md
new file mode 100644
index 0000000..9003aef
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.BringToFrontAction.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / BringToFrontAction
+
+# BringToFrontAction
+
+## Variables
+
+- [KIND](../BringToFrontAction.Variable.KIND)
+
+## Functions
+
+- [create](../BringToFrontAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.CenterAction.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.CenterAction.md
new file mode 100644
index 0000000..0b39fed
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.CenterAction.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / CenterAction
+
+# CenterAction
+
+## Variables
+
+- [KIND](../CenterAction.Variable.KIND)
+
+## Functions
+
+- [create](../CenterAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.CollapseExpandAction.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.CollapseExpandAction.md
new file mode 100644
index 0000000..113d946
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.CollapseExpandAction.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / CollapseExpandAction
+
+# CollapseExpandAction
+
+## Variables
+
+- [KIND](../CollapseExpandAction.Variable.KIND)
+
+## Functions
+
+- [create](../CollapseExpandAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.CollapseExpandAllAction.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.CollapseExpandAllAction.md
new file mode 100644
index 0000000..de5f500
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.CollapseExpandAllAction.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / CollapseExpandAllAction
+
+# CollapseExpandAllAction
+
+## Variables
+
+- [KIND](../CollapseExpandAllAction.Variable.KIND)
+
+## Functions
+
+- [create](../CollapseExpandAllAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.ComputedBoundsAction.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.ComputedBoundsAction.md
new file mode 100644
index 0000000..ae783bd
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.ComputedBoundsAction.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / ComputedBoundsAction
+
+# ComputedBoundsAction
+
+## Variables
+
+- [KIND](../ComputedBoundsAction.Variable.KIND)
+
+## Functions
+
+- [create](../ComputedBoundsAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.CreateElementAction.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.CreateElementAction.md
new file mode 100644
index 0000000..0976a0b
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.CreateElementAction.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / CreateElementAction
+
+# CreateElementAction
+
+## Variables
+
+- [KIND](../CreateElementAction.Variable.KIND)
+
+## Functions
+
+- [create](../CreateElementAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.DeleteElementAction.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.DeleteElementAction.md
new file mode 100644
index 0000000..239e85d
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.DeleteElementAction.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / DeleteElementAction
+
+# DeleteElementAction
+
+## Variables
+
+- [KIND](../DeleteElementAction.Variable.KIND)
+
+## Functions
+
+- [create](../DeleteElementAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.Dimension.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.Dimension.md
new file mode 100644
index 0000000..6746a76
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.Dimension.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / Dimension
+
+# Dimension
+
+## Variables
+
+- [EMPTY](../Dimension.Variable.EMPTY)
+
+## Functions
+
+- [isValid](../Dimension.Function.isValid)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.ExportSvgAction.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.ExportSvgAction.md
new file mode 100644
index 0000000..b8be2ff
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.ExportSvgAction.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / ExportSvgAction
+
+# ExportSvgAction
+
+## Variables
+
+- [KIND](../ExportSvgAction.Variable.KIND)
+
+## Functions
+
+- [create](../ExportSvgAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.FitToScreenAction.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.FitToScreenAction.md
new file mode 100644
index 0000000..7cfd528
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.FitToScreenAction.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / FitToScreenAction
+
+# FitToScreenAction
+
+## Variables
+
+- [KIND](../FitToScreenAction.Variable.KIND)
+
+## Functions
+
+- [create](../FitToScreenAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.GetSelectionAction.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.GetSelectionAction.md
new file mode 100644
index 0000000..acc28d1
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.GetSelectionAction.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / GetSelectionAction
+
+# GetSelectionAction
+
+## Variables
+
+- [KIND](../GetSelectionAction.Variable.KIND)
+
+## Functions
+
+- [create](../GetSelectionAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.GetViewportAction.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.GetViewportAction.md
new file mode 100644
index 0000000..460b9e6
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.GetViewportAction.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / GetViewportAction
+
+# GetViewportAction
+
+## Variables
+
+- [KIND](../GetViewportAction.Variable.KIND)
+
+## Functions
+
+- [create](../GetViewportAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.HoverFeedbackAction.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.HoverFeedbackAction.md
new file mode 100644
index 0000000..b33ff51
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.HoverFeedbackAction.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / HoverFeedbackAction
+
+# HoverFeedbackAction
+
+## Variables
+
+- [KIND](../HoverFeedbackAction.Variable.KIND)
+
+## Functions
+
+- [create](../HoverFeedbackAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.LayoutAction.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.LayoutAction.md
new file mode 100644
index 0000000..4ae02c4
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.LayoutAction.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / LayoutAction
+
+# LayoutAction
+
+## Variables
+
+- [KIND](../LayoutAction.Variable.KIND)
+
+## Functions
+
+- [create](../LayoutAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.LoggingAction.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.LoggingAction.md
new file mode 100644
index 0000000..f7069f6
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.LoggingAction.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / LoggingAction
+
+# LoggingAction
+
+## Variables
+
+- [KIND](../LoggingAction.Variable.KIND)
+
+## Functions
+
+- [create](../LoggingAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.MoveAction.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.MoveAction.md
new file mode 100644
index 0000000..79ce8d9
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.MoveAction.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / MoveAction
+
+# MoveAction
+
+## Variables
+
+- [KIND](../MoveAction.Variable.KIND)
+
+## Functions
+
+- [create](../MoveAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.OpenAction.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.OpenAction.md
new file mode 100644
index 0000000..c8a94b0
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.OpenAction.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / OpenAction
+
+# OpenAction
+
+## Variables
+
+- [KIND](../OpenAction.Variable.KIND)
+
+## Functions
+
+- [create](../OpenAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.Point.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.Point.md
new file mode 100644
index 0000000..2b818b1
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.Point.md
@@ -0,0 +1,22 @@
+
+[sprotty-protocol](../globals) / Point
+
+# Point
+
+## Variables
+
+- [ORIGIN](../Point.Variable.ORIGIN)
+
+## Functions
+
+- [add](../Point.Function.add)
+- [dotProduct](../Point.Function.dotProduct)
+- [equals](../Point.Function.equals)
+- [euclideanDistance](../Point.Function.euclideanDistance)
+- [linear](../Point.Function.linear)
+- [magnitude](../Point.Function.magnitude)
+- [manhattanDistance](../Point.Function.manhattanDistance)
+- [maxDistance](../Point.Function.maxDistance)
+- [normalize](../Point.Function.normalize)
+- [shiftTowards](../Point.Function.shiftTowards)
+- [subtract](../Point.Function.subtract)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.ReconnectAction.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.ReconnectAction.md
new file mode 100644
index 0000000..2bc7e0d
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.ReconnectAction.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / ReconnectAction
+
+# ReconnectAction
+
+## Variables
+
+- [KIND](../ReconnectAction.Variable.KIND)
+
+## Functions
+
+- [create](../ReconnectAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.RedoAction.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.RedoAction.md
new file mode 100644
index 0000000..ee30577
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.RedoAction.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / RedoAction
+
+# RedoAction
+
+## Variables
+
+- [KIND](../RedoAction.Variable.KIND)
+
+## Functions
+
+- [create](../RedoAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.RejectAction.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.RejectAction.md
new file mode 100644
index 0000000..ad80252
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.RejectAction.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / RejectAction
+
+# RejectAction
+
+## Variables
+
+- [KIND](../RejectAction.Variable.KIND)
+
+## Functions
+
+- [create](../RejectAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.RequestBoundsAction.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.RequestBoundsAction.md
new file mode 100644
index 0000000..1b47c6b
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.RequestBoundsAction.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / RequestBoundsAction
+
+# RequestBoundsAction
+
+## Variables
+
+- [KIND](../RequestBoundsAction.Variable.KIND)
+
+## Functions
+
+- [create](../RequestBoundsAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.RequestExportSvgAction.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.RequestExportSvgAction.md
new file mode 100644
index 0000000..445a780
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.RequestExportSvgAction.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / RequestExportSvgAction
+
+# RequestExportSvgAction
+
+## Variables
+
+- [KIND](../RequestExportSvgAction.Variable.KIND)
+
+## Functions
+
+- [create](../RequestExportSvgAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.RequestModelAction.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.RequestModelAction.md
new file mode 100644
index 0000000..6517437
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.RequestModelAction.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / RequestModelAction
+
+# RequestModelAction
+
+## Variables
+
+- [KIND](../RequestModelAction.Variable.KIND)
+
+## Functions
+
+- [create](../RequestModelAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.RequestPopupModelAction.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.RequestPopupModelAction.md
new file mode 100644
index 0000000..ff17985
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.RequestPopupModelAction.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / RequestPopupModelAction
+
+# RequestPopupModelAction
+
+## Variables
+
+- [KIND](../RequestPopupModelAction.Variable.KIND)
+
+## Functions
+
+- [create](../RequestPopupModelAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.SelectAction.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.SelectAction.md
new file mode 100644
index 0000000..b4a099d
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.SelectAction.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / SelectAction
+
+# SelectAction
+
+## Variables
+
+- [KIND](../SelectAction.Variable.KIND)
+
+## Functions
+
+- [create](../SelectAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.SelectAllAction.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.SelectAllAction.md
new file mode 100644
index 0000000..c131f3f
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.SelectAllAction.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / SelectAllAction
+
+# SelectAllAction
+
+## Variables
+
+- [KIND](../SelectAllAction.Variable.KIND)
+
+## Functions
+
+- [create](../SelectAllAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.SelectionResult.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.SelectionResult.md
new file mode 100644
index 0000000..689a6e5
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.SelectionResult.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / SelectionResult
+
+# SelectionResult
+
+## Variables
+
+- [KIND](../SelectionResult.Variable.KIND)
+
+## Functions
+
+- [create](../SelectionResult.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.SetBoundsAction.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.SetBoundsAction.md
new file mode 100644
index 0000000..7315cc1
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.SetBoundsAction.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / SetBoundsAction
+
+# SetBoundsAction
+
+## Variables
+
+- [KIND](../SetBoundsAction.Variable.KIND)
+
+## Functions
+
+- [create](../SetBoundsAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.SetModelAction.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.SetModelAction.md
new file mode 100644
index 0000000..f1a3b8c
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.SetModelAction.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / SetModelAction
+
+# SetModelAction
+
+## Variables
+
+- [KIND](../SetModelAction.Variable.KIND)
+
+## Functions
+
+- [create](../SetModelAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.SetPopupModelAction.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.SetPopupModelAction.md
new file mode 100644
index 0000000..7e52d33
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.SetPopupModelAction.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / SetPopupModelAction
+
+# SetPopupModelAction
+
+## Variables
+
+- [KIND](../SetPopupModelAction.Variable.KIND)
+
+## Functions
+
+- [create](../SetPopupModelAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.SetViewportAction.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.SetViewportAction.md
new file mode 100644
index 0000000..cf9686e
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.SetViewportAction.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / SetViewportAction
+
+# SetViewportAction
+
+## Variables
+
+- [KIND](../SetViewportAction.Variable.KIND)
+
+## Functions
+
+- [create](../SetViewportAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.UndoAction.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.UndoAction.md
new file mode 100644
index 0000000..08a8012
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.UndoAction.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / UndoAction
+
+# UndoAction
+
+## Variables
+
+- [KIND](../UndoAction.Variable.KIND)
+
+## Functions
+
+- [create](../UndoAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.UpdateModelAction.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.UpdateModelAction.md
new file mode 100644
index 0000000..a052739
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.UpdateModelAction.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / UpdateModelAction
+
+# UpdateModelAction
+
+## Variables
+
+- [KIND](../UpdateModelAction.Variable.KIND)
+
+## Functions
+
+- [create](../UpdateModelAction.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Namespace.ViewportResult.md b/hugo/content/docs/ref/sprotty-protocol/Namespace.ViewportResult.md
new file mode 100644
index 0000000..2112945
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Namespace.ViewportResult.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / ViewportResult
+
+# ViewportResult
+
+## Variables
+
+- [KIND](../ViewportResult.Variable.KIND)
+
+## Functions
+
+- [create](../ViewportResult.Function.create)
diff --git a/hugo/content/docs/ref/sprotty-protocol/OpenAction.Function.create.md b/hugo/content/docs/ref/sprotty-protocol/OpenAction.Function.create.md
new file mode 100644
index 0000000..28a9319
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/OpenAction.Function.create.md
@@ -0,0 +1,18 @@
+
+[sprotty-protocol](../globals) / [OpenAction](../Namespace.OpenAction) / create
+
+# Function: create()
+
+> **create**(`elementId`): [`OpenAction`](../Interface.OpenAction)
+
+Defined in: [actions.ts:476](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L476)
+
+## Parameters
+
+### elementId
+
+`string`
+
+## Returns
+
+[`OpenAction`](../Interface.OpenAction)
diff --git a/hugo/content/docs/ref/sprotty-protocol/OpenAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-protocol/OpenAction.Variable.KIND.md
new file mode 100644
index 0000000..d4776f9
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/OpenAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [OpenAction](../Namespace.OpenAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"open"` = `'open'`
+
+Defined in: [actions.ts:474](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L474)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Point.Function.add.md b/hugo/content/docs/ref/sprotty-protocol/Point.Function.add.md
new file mode 100644
index 0000000..3269a50
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Point.Function.add.md
@@ -0,0 +1,30 @@
+
+[sprotty-protocol](../globals) / [Point](../Namespace.Point) / add
+
+# Function: add()
+
+> **add**(`p1`, `p2`): [`Point`](../Interface.Point)
+
+Defined in: [utils/geometry.ts:42](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L42)
+
+Adds two points.
+
+## Parameters
+
+### p1
+
+[`Point`](../Interface.Point)
+
+First point
+
+### p2
+
+[`Point`](../Interface.Point)
+
+Second point
+
+## Returns
+
+[`Point`](../Interface.Point)
+
+The sum of the two points
diff --git a/hugo/content/docs/ref/sprotty-protocol/Point.Function.dotProduct.md b/hugo/content/docs/ref/sprotty-protocol/Point.Function.dotProduct.md
new file mode 100644
index 0000000..cbae9ba
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Point.Function.dotProduct.md
@@ -0,0 +1,30 @@
+
+[sprotty-protocol](../globals) / [Point](../Namespace.Point) / dotProduct
+
+# Function: dotProduct()
+
+> **dotProduct**(`a`, `b`): `number`
+
+Defined in: [utils/geometry.ts:160](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L160)
+
+Returns the dot product of two points.
+
+## Parameters
+
+### a
+
+[`Point`](../Interface.Point)
+
+First point
+
+### b
+
+[`Point`](../Interface.Point)
+
+Second point
+
+## Returns
+
+`number`
+
+The dot product
diff --git a/hugo/content/docs/ref/sprotty-protocol/Point.Function.equals.md b/hugo/content/docs/ref/sprotty-protocol/Point.Function.equals.md
new file mode 100644
index 0000000..54407fd
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Point.Function.equals.md
@@ -0,0 +1,30 @@
+
+[sprotty-protocol](../globals) / [Point](../Namespace.Point) / equals
+
+# Function: equals()
+
+> **equals**(`point1`, `point2`): `boolean`
+
+Defined in: [utils/geometry.ts:68](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L68)
+
+Specifies whether a point has exactly the same coordinates as another point.
+
+## Parameters
+
+### point1
+
+[`Point`](../Interface.Point)
+
+a point
+
+### point2
+
+[`Point`](../Interface.Point)
+
+another point
+
+## Returns
+
+`boolean`
+
+`true` if `point1` has exactly the same `x` and `y` values as `point2`, `false` otherwise.
diff --git a/hugo/content/docs/ref/sprotty-protocol/Point.Function.euclideanDistance.md b/hugo/content/docs/ref/sprotty-protocol/Point.Function.euclideanDistance.md
new file mode 100644
index 0000000..01a657f
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Point.Function.euclideanDistance.md
@@ -0,0 +1,30 @@
+
+[sprotty-protocol](../globals) / [Point](../Namespace.Point) / euclideanDistance
+
+# Function: euclideanDistance()
+
+> **euclideanDistance**(`a`, `b`): `number`
+
+Defined in: [utils/geometry.ts:127](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L127)
+
+Returns the "straight line" distance between two points.
+
+## Parameters
+
+### a
+
+[`Point`](../Interface.Point)
+
+First point
+
+### b
+
+[`Point`](../Interface.Point)
+
+Second point
+
+## Returns
+
+`number`
+
+The Eucledian distance
diff --git a/hugo/content/docs/ref/sprotty-protocol/Point.Function.linear.md b/hugo/content/docs/ref/sprotty-protocol/Point.Function.linear.md
new file mode 100644
index 0000000..65b2534
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Point.Function.linear.md
@@ -0,0 +1,29 @@
+
+[sprotty-protocol](../globals) / [Point](../Namespace.Point) / linear
+
+# Function: linear()
+
+> **linear**(`p0`, `p1`, `lambda`): [`Point`](../Interface.Point)
+
+Defined in: [utils/geometry.ts:114](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L114)
+
+Calculates a linear combination of p0 and p1 using lambda, i.e.
+ (1-lambda) * p0 + lambda * p1
+
+## Parameters
+
+### p0
+
+[`Point`](../Interface.Point)
+
+### p1
+
+[`Point`](../Interface.Point)
+
+### lambda
+
+`number`
+
+## Returns
+
+[`Point`](../Interface.Point)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Point.Function.magnitude.md b/hugo/content/docs/ref/sprotty-protocol/Point.Function.magnitude.md
new file mode 100644
index 0000000..47558ee
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Point.Function.magnitude.md
@@ -0,0 +1,24 @@
+
+[sprotty-protocol](../globals) / [Point](../Namespace.Point) / magnitude
+
+# Function: magnitude()
+
+> **magnitude**(`point`): `number`
+
+Defined in: [utils/geometry.ts:106](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L106)
+
+Computes the magnitude of the vector given in `point`.
+
+## Parameters
+
+### point
+
+[`Point`](../Interface.Point)
+
+Point representing the vector to compute the magnitude for
+
+## Returns
+
+`number`
+
+The magnitude or also known as length of the `point`
diff --git a/hugo/content/docs/ref/sprotty-protocol/Point.Function.manhattanDistance.md b/hugo/content/docs/ref/sprotty-protocol/Point.Function.manhattanDistance.md
new file mode 100644
index 0000000..43b6182
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Point.Function.manhattanDistance.md
@@ -0,0 +1,31 @@
+
+[sprotty-protocol](../globals) / [Point](../Namespace.Point) / manhattanDistance
+
+# Function: manhattanDistance()
+
+> **manhattanDistance**(`a`, `b`): `number`
+
+Defined in: [utils/geometry.ts:140](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L140)
+
+Returns the distance between two points in a grid, using a
+strictly vertical and/or horizontal path (versus straight line).
+
+## Parameters
+
+### a
+
+[`Point`](../Interface.Point)
+
+First point
+
+### b
+
+[`Point`](../Interface.Point)
+
+Second point
+
+## Returns
+
+`number`
+
+The Manhattan distance
diff --git a/hugo/content/docs/ref/sprotty-protocol/Point.Function.maxDistance.md b/hugo/content/docs/ref/sprotty-protocol/Point.Function.maxDistance.md
new file mode 100644
index 0000000..c799486
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Point.Function.maxDistance.md
@@ -0,0 +1,30 @@
+
+[sprotty-protocol](../globals) / [Point](../Namespace.Point) / maxDistance
+
+# Function: maxDistance()
+
+> **maxDistance**(`a`, `b`): `number`
+
+Defined in: [utils/geometry.ts:150](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L150)
+
+Returns the maximum of the horizontal and the vertical distance.
+
+## Parameters
+
+### a
+
+[`Point`](../Interface.Point)
+
+First point
+
+### b
+
+[`Point`](../Interface.Point)
+
+Second point
+
+## Returns
+
+`number`
+
+The maximum distance
diff --git a/hugo/content/docs/ref/sprotty-protocol/Point.Function.normalize.md b/hugo/content/docs/ref/sprotty-protocol/Point.Function.normalize.md
new file mode 100644
index 0000000..022d5ff
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Point.Function.normalize.md
@@ -0,0 +1,24 @@
+
+[sprotty-protocol](../globals) / [Point](../Namespace.Point) / normalize
+
+# Function: normalize()
+
+> **normalize**(`point`): [`Point`](../Interface.Point)
+
+Defined in: [utils/geometry.ts:90](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L90)
+
+Computes the normalized vector from the vector given in `point`; that is, computing its unit vector.
+
+## Parameters
+
+### point
+
+[`Point`](../Interface.Point)
+
+Point representing the vector to be normalized
+
+## Returns
+
+[`Point`](../Interface.Point)
+
+The normalized point
diff --git a/hugo/content/docs/ref/sprotty-protocol/Point.Function.shiftTowards.md b/hugo/content/docs/ref/sprotty-protocol/Point.Function.shiftTowards.md
new file mode 100644
index 0000000..8501bb0
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Point.Function.shiftTowards.md
@@ -0,0 +1,34 @@
+
+[sprotty-protocol](../globals) / [Point](../Namespace.Point) / shiftTowards
+
+# Function: shiftTowards()
+
+> **shiftTowards**(`point`, `refPoint`, `distance`): [`Point`](../Interface.Point)
+
+Defined in: [utils/geometry.ts:78](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L78)
+
+Computes a point that is the original `point` shifted towards `refPoint` by the given `distance`.
+
+## Parameters
+
+### point
+
+[`Point`](../Interface.Point)
+
+Point to shift
+
+### refPoint
+
+[`Point`](../Interface.Point)
+
+Point to shift towards
+
+### distance
+
+`number`
+
+Distance to shift
+
+## Returns
+
+[`Point`](../Interface.Point)
diff --git a/hugo/content/docs/ref/sprotty-protocol/Point.Function.subtract.md b/hugo/content/docs/ref/sprotty-protocol/Point.Function.subtract.md
new file mode 100644
index 0000000..79da956
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Point.Function.subtract.md
@@ -0,0 +1,30 @@
+
+[sprotty-protocol](../globals) / [Point](../Namespace.Point) / subtract
+
+# Function: subtract()
+
+> **subtract**(`p1`, `p2`): [`Point`](../Interface.Point)
+
+Defined in: [utils/geometry.ts:55](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L55)
+
+Subtracts two points.
+
+## Parameters
+
+### p1
+
+[`Point`](../Interface.Point)
+
+First point
+
+### p2
+
+[`Point`](../Interface.Point)
+
+Second point
+
+## Returns
+
+[`Point`](../Interface.Point)
+
+The difference of the two points
diff --git a/hugo/content/docs/ref/sprotty-protocol/Point.Variable.ORIGIN.md b/hugo/content/docs/ref/sprotty-protocol/Point.Variable.ORIGIN.md
new file mode 100644
index 0000000..6fd0e0a
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/Point.Variable.ORIGIN.md
@@ -0,0 +1,10 @@
+
+[sprotty-protocol](../globals) / [Point](../Namespace.Point) / ORIGIN
+
+# Variable: ORIGIN
+
+> `const` **ORIGIN**: [`Point`](../Interface.Point)
+
+Defined in: [utils/geometry.ts:31](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/geometry.ts#L31)
+
+(x,y) coordinates of the origin.
diff --git a/hugo/content/docs/ref/sprotty-protocol/ReconnectAction.Function.create.md b/hugo/content/docs/ref/sprotty-protocol/ReconnectAction.Function.create.md
new file mode 100644
index 0000000..392ca81
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/ReconnectAction.Function.create.md
@@ -0,0 +1,28 @@
+
+[sprotty-protocol](../globals) / [ReconnectAction](../Namespace.ReconnectAction) / create
+
+# Function: create()
+
+> **create**(`options`): [`ReconnectAction`](../Interface.ReconnectAction)
+
+Defined in: [actions.ts:837](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L837)
+
+## Parameters
+
+### options
+
+#### newSourceId?
+
+`string`
+
+#### newTargetId?
+
+`string`
+
+#### routableId
+
+`string`
+
+## Returns
+
+[`ReconnectAction`](../Interface.ReconnectAction)
diff --git a/hugo/content/docs/ref/sprotty-protocol/ReconnectAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-protocol/ReconnectAction.Variable.KIND.md
new file mode 100644
index 0000000..47af992
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/ReconnectAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [ReconnectAction](../Namespace.ReconnectAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"reconnect"` = `'reconnect'`
+
+Defined in: [actions.ts:835](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L835)
diff --git a/hugo/content/docs/ref/sprotty-protocol/RedoAction.Function.create.md b/hugo/content/docs/ref/sprotty-protocol/RedoAction.Function.create.md
new file mode 100644
index 0000000..1f5546a
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/RedoAction.Function.create.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / [RedoAction](../Namespace.RedoAction) / create
+
+# Function: create()
+
+> **create**(): [`RedoAction`](../Interface.RedoAction)
+
+Defined in: [actions.ts:664](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L664)
+
+## Returns
+
+[`RedoAction`](../Interface.RedoAction)
diff --git a/hugo/content/docs/ref/sprotty-protocol/RedoAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-protocol/RedoAction.Variable.KIND.md
new file mode 100644
index 0000000..d01182f
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/RedoAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [RedoAction](../Namespace.RedoAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"redo"` = `'redo'`
+
+Defined in: [actions.ts:662](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L662)
diff --git a/hugo/content/docs/ref/sprotty-protocol/RejectAction.Function.create.md b/hugo/content/docs/ref/sprotty-protocol/RejectAction.Function.create.md
new file mode 100644
index 0000000..58ccb86
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/RejectAction.Function.create.md
@@ -0,0 +1,28 @@
+
+[sprotty-protocol](../globals) / [RejectAction](../Namespace.RejectAction) / create
+
+# Function: create()
+
+> **create**(`options`): [`RejectAction`](../Interface.RejectAction)
+
+Defined in: [actions.ts:111](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L111)
+
+## Parameters
+
+### options
+
+#### detail?
+
+[`JsonAny`](../TypeAlias.JsonAny)
+
+#### message
+
+`string`
+
+#### requestId
+
+`string`
+
+## Returns
+
+[`RejectAction`](../Interface.RejectAction)
diff --git a/hugo/content/docs/ref/sprotty-protocol/RejectAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-protocol/RejectAction.Variable.KIND.md
new file mode 100644
index 0000000..3682d4f
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/RejectAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [RejectAction](../Namespace.RejectAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"rejectRequest"` = `'rejectRequest'`
+
+Defined in: [actions.ts:109](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L109)
diff --git a/hugo/content/docs/ref/sprotty-protocol/RequestBoundsAction.Function.create.md b/hugo/content/docs/ref/sprotty-protocol/RequestBoundsAction.Function.create.md
new file mode 100644
index 0000000..bb7547f
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/RequestBoundsAction.Function.create.md
@@ -0,0 +1,18 @@
+
+[sprotty-protocol](../globals) / [RequestBoundsAction](../Namespace.RequestBoundsAction) / create
+
+# Function: create()
+
+> **create**(`newRoot`): [`RequestBoundsAction`](../Interface.RequestBoundsAction)
+
+Defined in: [actions.ts:276](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L276)
+
+## Parameters
+
+### newRoot
+
+[`SModelRoot`](../Interface.SModelRoot)
+
+## Returns
+
+[`RequestBoundsAction`](../Interface.RequestBoundsAction)
diff --git a/hugo/content/docs/ref/sprotty-protocol/RequestBoundsAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-protocol/RequestBoundsAction.Variable.KIND.md
new file mode 100644
index 0000000..823d2e9
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/RequestBoundsAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [RequestBoundsAction](../Namespace.RequestBoundsAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"requestBounds"` = `'requestBounds'`
+
+Defined in: [actions.ts:274](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L274)
diff --git a/hugo/content/docs/ref/sprotty-protocol/RequestExportSvgAction.Function.create.md b/hugo/content/docs/ref/sprotty-protocol/RequestExportSvgAction.Function.create.md
new file mode 100644
index 0000000..80088d6
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/RequestExportSvgAction.Function.create.md
@@ -0,0 +1,18 @@
+
+[sprotty-protocol](../globals) / [RequestExportSvgAction](../Namespace.RequestExportSvgAction) / create
+
+# Function: create()
+
+> **create**(`options?`): [`RequestExportSvgAction`](../Interface.RequestExportSvgAction)
+
+Defined in: [actions.ts:732](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L732)
+
+## Parameters
+
+### options?
+
+[`ExportSvgOptions`](../Interface.ExportSvgOptions)
+
+## Returns
+
+[`RequestExportSvgAction`](../Interface.RequestExportSvgAction)
diff --git a/hugo/content/docs/ref/sprotty-protocol/RequestExportSvgAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-protocol/RequestExportSvgAction.Variable.KIND.md
new file mode 100644
index 0000000..2e20123
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/RequestExportSvgAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [RequestExportSvgAction](../Namespace.RequestExportSvgAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"requestExportSvg"` = `'requestExportSvg'`
+
+Defined in: [actions.ts:730](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L730)
diff --git a/hugo/content/docs/ref/sprotty-protocol/RequestModelAction.Function.create.md b/hugo/content/docs/ref/sprotty-protocol/RequestModelAction.Function.create.md
new file mode 100644
index 0000000..9204823
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/RequestModelAction.Function.create.md
@@ -0,0 +1,18 @@
+
+[sprotty-protocol](../globals) / [RequestModelAction](../Namespace.RequestModelAction) / create
+
+# Function: create()
+
+> **create**(`options?`): [`RequestModelAction`](../Interface.RequestModelAction)
+
+Defined in: [actions.ts:133](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L133)
+
+## Parameters
+
+### options?
+
+[`JsonMap`](../Interface.JsonMap)
+
+## Returns
+
+[`RequestModelAction`](../Interface.RequestModelAction)
diff --git a/hugo/content/docs/ref/sprotty-protocol/RequestModelAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-protocol/RequestModelAction.Variable.KIND.md
new file mode 100644
index 0000000..5972e46
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/RequestModelAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [RequestModelAction](../Namespace.RequestModelAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"requestModel"` = `'requestModel'`
+
+Defined in: [actions.ts:131](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L131)
diff --git a/hugo/content/docs/ref/sprotty-protocol/RequestPopupModelAction.Function.create.md b/hugo/content/docs/ref/sprotty-protocol/RequestPopupModelAction.Function.create.md
new file mode 100644
index 0000000..1173fd3
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/RequestPopupModelAction.Function.create.md
@@ -0,0 +1,24 @@
+
+[sprotty-protocol](../globals) / [RequestPopupModelAction](../Namespace.RequestPopupModelAction) / create
+
+# Function: create()
+
+> **create**(`options`): [`RequestPopupModelAction`](../Interface.RequestPopupModelAction)
+
+Defined in: [actions.ts:214](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L214)
+
+## Parameters
+
+### options
+
+#### bounds
+
+[`Bounds`](../Interface.Bounds)
+
+#### elementId
+
+`string`
+
+## Returns
+
+[`RequestPopupModelAction`](../Interface.RequestPopupModelAction)
diff --git a/hugo/content/docs/ref/sprotty-protocol/RequestPopupModelAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-protocol/RequestPopupModelAction.Variable.KIND.md
new file mode 100644
index 0000000..ed2a593
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/RequestPopupModelAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [RequestPopupModelAction](../Namespace.RequestPopupModelAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"requestPopupModel"` = `'requestPopupModel'`
+
+Defined in: [actions.ts:212](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L212)
diff --git a/hugo/content/docs/ref/sprotty-protocol/SelectAction.Function.create.md b/hugo/content/docs/ref/sprotty-protocol/SelectAction.Function.create.md
new file mode 100644
index 0000000..301ffb9
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/SelectAction.Function.create.md
@@ -0,0 +1,24 @@
+
+[sprotty-protocol](../globals) / [SelectAction](../Namespace.SelectAction) / create
+
+# Function: create()
+
+> **create**(`options`): [`SelectAction`](../Interface.SelectAction)
+
+Defined in: [actions.ts:365](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L365)
+
+## Parameters
+
+### options
+
+#### deselectedElementsIDs?
+
+`string`[]
+
+#### selectedElementsIDs?
+
+`string`[]
+
+## Returns
+
+[`SelectAction`](../Interface.SelectAction)
diff --git a/hugo/content/docs/ref/sprotty-protocol/SelectAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-protocol/SelectAction.Variable.KIND.md
new file mode 100644
index 0000000..8cfdca5
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/SelectAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [SelectAction](../Namespace.SelectAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"elementSelected"` = `'elementSelected'`
+
+Defined in: [actions.ts:363](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L363)
diff --git a/hugo/content/docs/ref/sprotty-protocol/SelectAllAction.Function.create.md b/hugo/content/docs/ref/sprotty-protocol/SelectAllAction.Function.create.md
new file mode 100644
index 0000000..a2f9eeb
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/SelectAllAction.Function.create.md
@@ -0,0 +1,20 @@
+
+[sprotty-protocol](../globals) / [SelectAllAction](../Namespace.SelectAllAction) / create
+
+# Function: create()
+
+> **create**(`options`): [`SelectAllAction`](../Interface.SelectAllAction)
+
+Defined in: [actions.ts:385](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L385)
+
+## Parameters
+
+### options
+
+#### select?
+
+`boolean`
+
+## Returns
+
+[`SelectAllAction`](../Interface.SelectAllAction)
diff --git a/hugo/content/docs/ref/sprotty-protocol/SelectAllAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-protocol/SelectAllAction.Variable.KIND.md
new file mode 100644
index 0000000..eee8640
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/SelectAllAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [SelectAllAction](../Namespace.SelectAllAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"allSelected"` = `'allSelected'`
+
+Defined in: [actions.ts:383](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L383)
diff --git a/hugo/content/docs/ref/sprotty-protocol/SelectionResult.Function.create.md b/hugo/content/docs/ref/sprotty-protocol/SelectionResult.Function.create.md
new file mode 100644
index 0000000..0f4b169
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/SelectionResult.Function.create.md
@@ -0,0 +1,22 @@
+
+[sprotty-protocol](../globals) / [SelectionResult](../Namespace.SelectionResult) / create
+
+# Function: create()
+
+> **create**(`selectedElementsIDs`, `requestId`): [`SelectionResult`](../Interface.SelectionResult)
+
+Defined in: [actions.ts:420](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L420)
+
+## Parameters
+
+### selectedElementsIDs
+
+`string`[]
+
+### requestId
+
+`string`
+
+## Returns
+
+[`SelectionResult`](../Interface.SelectionResult)
diff --git a/hugo/content/docs/ref/sprotty-protocol/SelectionResult.Variable.KIND.md b/hugo/content/docs/ref/sprotty-protocol/SelectionResult.Variable.KIND.md
new file mode 100644
index 0000000..b5ebc39
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/SelectionResult.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [SelectionResult](../Namespace.SelectionResult) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"selectionResult"` = `'selectionResult'`
+
+Defined in: [actions.ts:418](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L418)
diff --git a/hugo/content/docs/ref/sprotty-protocol/SetBoundsAction.Function.create.md b/hugo/content/docs/ref/sprotty-protocol/SetBoundsAction.Function.create.md
new file mode 100644
index 0000000..47b64f6
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/SetBoundsAction.Function.create.md
@@ -0,0 +1,18 @@
+
+[sprotty-protocol](../globals) / [SetBoundsAction](../Namespace.SetBoundsAction) / create
+
+# Function: create()
+
+> **create**(`bounds`): [`SetBoundsAction`](../Interface.SetBoundsAction)
+
+Defined in: [actions.ts:255](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L255)
+
+## Parameters
+
+### bounds
+
+[`ElementAndBounds`](../Interface.ElementAndBounds)[]
+
+## Returns
+
+[`SetBoundsAction`](../Interface.SetBoundsAction)
diff --git a/hugo/content/docs/ref/sprotty-protocol/SetBoundsAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-protocol/SetBoundsAction.Variable.KIND.md
new file mode 100644
index 0000000..3b1882c
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/SetBoundsAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [SetBoundsAction](../Namespace.SetBoundsAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"setBounds"` = `'setBounds'`
+
+Defined in: [actions.ts:253](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L253)
diff --git a/hugo/content/docs/ref/sprotty-protocol/SetModelAction.Function.create.md b/hugo/content/docs/ref/sprotty-protocol/SetModelAction.Function.create.md
new file mode 100644
index 0000000..6346475
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/SetModelAction.Function.create.md
@@ -0,0 +1,22 @@
+
+[sprotty-protocol](../globals) / [SetModelAction](../Namespace.SetModelAction) / create
+
+# Function: create()
+
+> **create**(`newRoot`, `requestId`): [`SetModelAction`](../Interface.SetModelAction)
+
+Defined in: [actions.ts:152](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L152)
+
+## Parameters
+
+### newRoot
+
+[`SModelRoot`](../Interface.SModelRoot)
+
+### requestId
+
+`string` = `''`
+
+## Returns
+
+[`SetModelAction`](../Interface.SetModelAction)
diff --git a/hugo/content/docs/ref/sprotty-protocol/SetModelAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-protocol/SetModelAction.Variable.KIND.md
new file mode 100644
index 0000000..c857754
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/SetModelAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [SetModelAction](../Namespace.SetModelAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"setModel"` = `'setModel'`
+
+Defined in: [actions.ts:150](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L150)
diff --git a/hugo/content/docs/ref/sprotty-protocol/SetPopupModelAction.Function.create.md b/hugo/content/docs/ref/sprotty-protocol/SetPopupModelAction.Function.create.md
new file mode 100644
index 0000000..44d1a83
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/SetPopupModelAction.Function.create.md
@@ -0,0 +1,22 @@
+
+[sprotty-protocol](../globals) / [SetPopupModelAction](../Namespace.SetPopupModelAction) / create
+
+# Function: create()
+
+> **create**(`newRoot`, `requestId`): [`SetPopupModelAction`](../Interface.SetPopupModelAction)
+
+Defined in: [actions.ts:235](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L235)
+
+## Parameters
+
+### newRoot
+
+[`SModelRoot`](../Interface.SModelRoot)
+
+### requestId
+
+`string` = `''`
+
+## Returns
+
+[`SetPopupModelAction`](../Interface.SetPopupModelAction)
diff --git a/hugo/content/docs/ref/sprotty-protocol/SetPopupModelAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-protocol/SetPopupModelAction.Variable.KIND.md
new file mode 100644
index 0000000..bb8c4c4
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/SetPopupModelAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [SetPopupModelAction](../Namespace.SetPopupModelAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"setPopupModel"` = `'setPopupModel'`
+
+Defined in: [actions.ts:233](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L233)
diff --git a/hugo/content/docs/ref/sprotty-protocol/SetViewportAction.Function.create.md b/hugo/content/docs/ref/sprotty-protocol/SetViewportAction.Function.create.md
new file mode 100644
index 0000000..0b8293d
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/SetViewportAction.Function.create.md
@@ -0,0 +1,28 @@
+
+[sprotty-protocol](../globals) / [SetViewportAction](../Namespace.SetViewportAction) / create
+
+# Function: create()
+
+> **create**(`elementId`, `newViewport`, `options`): [`SetViewportAction`](../Interface.SetViewportAction)
+
+Defined in: [actions.ts:573](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L573)
+
+## Parameters
+
+### elementId
+
+`string`
+
+### newViewport
+
+[`Viewport`](../Interface.Viewport)
+
+### options
+
+#### animate?
+
+`boolean`
+
+## Returns
+
+[`SetViewportAction`](../Interface.SetViewportAction)
diff --git a/hugo/content/docs/ref/sprotty-protocol/SetViewportAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-protocol/SetViewportAction.Variable.KIND.md
new file mode 100644
index 0000000..dd064fa
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/SetViewportAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [SetViewportAction](../Namespace.SetViewportAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"viewport"` = `'viewport'`
+
+Defined in: [actions.ts:571](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L571)
diff --git a/hugo/content/docs/ref/sprotty-protocol/TypeAlias.DeferredState.md b/hugo/content/docs/ref/sprotty-protocol/TypeAlias.DeferredState.md
new file mode 100644
index 0000000..c22e834
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/TypeAlias.DeferredState.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / DeferredState
+
+# Type Alias: DeferredState
+
+> **DeferredState** = `"resolved"` \| `"rejected"` \| `"unresolved"`
+
+Defined in: [utils/async.ts:50](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/async.ts#L50)
diff --git a/hugo/content/docs/ref/sprotty-protocol/TypeAlias.DiagramOptions.md b/hugo/content/docs/ref/sprotty-protocol/TypeAlias.DiagramOptions.md
new file mode 100644
index 0000000..584ef42
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/TypeAlias.DiagramOptions.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / DiagramOptions
+
+# Type Alias: DiagramOptions
+
+> **DiagramOptions** = [`JsonMap`](../Interface.JsonMap)
+
+Defined in: [diagram-services.ts:22](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/diagram-services.ts#L22)
diff --git a/hugo/content/docs/ref/sprotty-protocol/TypeAlias.EdgeSide.md b/hugo/content/docs/ref/sprotty-protocol/TypeAlias.EdgeSide.md
new file mode 100644
index 0000000..c8d9109
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/TypeAlias.EdgeSide.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / EdgeSide
+
+# Type Alias: EdgeSide
+
+> **EdgeSide** = `"left"` \| `"right"` \| `"top"` \| `"bottom"` \| `"on"`
+
+Defined in: [model.ts:246](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L246)
diff --git a/hugo/content/docs/ref/sprotty-protocol/TypeAlias.HAlignment.md b/hugo/content/docs/ref/sprotty-protocol/TypeAlias.HAlignment.md
new file mode 100644
index 0000000..a6da430
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/TypeAlias.HAlignment.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / HAlignment
+
+# Type Alias: HAlignment
+
+> **HAlignment** = `"left"` \| `"center"` \| `"right"`
+
+Defined in: [model.ts:172](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L172)
diff --git a/hugo/content/docs/ref/sprotty-protocol/TypeAlias.JsonAny.md b/hugo/content/docs/ref/sprotty-protocol/TypeAlias.JsonAny.md
new file mode 100644
index 0000000..8780fb7
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/TypeAlias.JsonAny.md
@@ -0,0 +1,24 @@
+
+[sprotty-protocol](../globals) / JsonAny
+
+# Type Alias: JsonAny
+
+> **JsonAny** = [`JsonPrimitive`](../TypeAlias.JsonPrimitive) \| [`JsonMap`](../Interface.JsonMap) \| [`JsonArray`](../TypeAlias.JsonArray) \| `null`
+
+Defined in: [utils/json.ts:17](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/json.ts#L17)
+
+*****************************************************************************
+Copyright (c) 2020-2021 TypeFox and others.
+
+This program and the accompanying materials are made available under the
+terms of the Eclipse Public License v. 2.0 which is available at
+http://www.eclipse.org/legal/epl-2.0.
+
+This Source Code may also be made available under the following Secondary
+Licenses when the conditions for such availability set forth in the Eclipse
+Public License v. 2.0 are satisfied: GNU General Public License, version 2
+with the GNU Classpath Exception which is available at
+https://www.gnu.org/software/classpath/license.html.
+
+SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
+******************************************************************************
diff --git a/hugo/content/docs/ref/sprotty-protocol/TypeAlias.JsonArray.md b/hugo/content/docs/ref/sprotty-protocol/TypeAlias.JsonArray.md
new file mode 100644
index 0000000..68cf5cc
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/TypeAlias.JsonArray.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / JsonArray
+
+# Type Alias: JsonArray
+
+> **JsonArray** = [`JsonAny`](../TypeAlias.JsonAny)[]
+
+Defined in: [utils/json.ts:25](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/json.ts#L25)
diff --git a/hugo/content/docs/ref/sprotty-protocol/TypeAlias.JsonPrimitive.md b/hugo/content/docs/ref/sprotty-protocol/TypeAlias.JsonPrimitive.md
new file mode 100644
index 0000000..a25cccf
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/TypeAlias.JsonPrimitive.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / JsonPrimitive
+
+# Type Alias: JsonPrimitive
+
+> **JsonPrimitive** = `string` \| `number` \| `boolean`
+
+Defined in: [utils/json.ts:19](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/json.ts#L19)
diff --git a/hugo/content/docs/ref/sprotty-protocol/TypeAlias.LayoutKind.md b/hugo/content/docs/ref/sprotty-protocol/TypeAlias.LayoutKind.md
new file mode 100644
index 0000000..a17f888
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/TypeAlias.LayoutKind.md
@@ -0,0 +1,10 @@
+
+[sprotty-protocol](../globals) / LayoutKind
+
+# Type Alias: LayoutKind
+
+> **LayoutKind** = `"stack"` \| `"vbox"` \| `"hbox"` \| `string` & `object`
+
+Defined in: [model.ts:185](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L185)
+
+Type for the layout property of a `LayoutContainer`.
diff --git a/hugo/content/docs/ref/sprotty-protocol/TypeAlias.SIssueSeverity.md b/hugo/content/docs/ref/sprotty-protocol/TypeAlias.SIssueSeverity.md
new file mode 100644
index 0000000..977a460
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/TypeAlias.SIssueSeverity.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / SIssueSeverity
+
+# Type Alias: SIssueSeverity
+
+> **SIssueSeverity** = `"error"` \| `"warning"` \| `"info"`
+
+Defined in: [model.ts:296](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L296)
diff --git a/hugo/content/docs/ref/sprotty-protocol/TypeAlias.ServerActionHandler.md b/hugo/content/docs/ref/sprotty-protocol/TypeAlias.ServerActionHandler.md
new file mode 100644
index 0000000..3fe3d30
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/TypeAlias.ServerActionHandler.md
@@ -0,0 +1,32 @@
+
+[sprotty-protocol](../globals) / ServerActionHandler
+
+# Type Alias: ServerActionHandler()\
+
+> **ServerActionHandler**\<`A`\> = (`action`, `state`, `server`) => `void` \| `Promise`\<`void`\>
+
+Defined in: [action-handler.ts:21](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/action-handler.ts#L21)
+
+## Type Parameters
+
+### A
+
+`A` *extends* [`Action`](../Interface.Action) = [`Action`](../Interface.Action)
+
+## Parameters
+
+### action
+
+`A`
+
+### state
+
+[`DiagramState`](../Interface.DiagramState)
+
+### server
+
+[`DiagramServer`](../Class.DiagramServer)
+
+## Returns
+
+`void` \| `Promise`\<`void`\>
diff --git a/hugo/content/docs/ref/sprotty-protocol/TypeAlias.TypeOf.md b/hugo/content/docs/ref/sprotty-protocol/TypeAlias.TypeOf.md
new file mode 100644
index 0000000..e8990e6
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/TypeAlias.TypeOf.md
@@ -0,0 +1,14 @@
+
+[sprotty-protocol](../globals) / TypeOf
+
+# Type Alias: TypeOf\
+
+> **TypeOf**\<`T`\> = `T` *extends* `number` ? `"number"` : `T` *extends* `string` ? `"string"` : `T` *extends* `boolean` ? `"boolean"` : `T` *extends* `bigint` ? `"bigint"` : `T` *extends* `symbol` ? `"symbol"` : `T` *extends* `Function` ? `"function"` : `T` *extends* `object` ? `"object"` : `"undefined"`
+
+Defined in: [utils/object.ts:21](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/utils/object.ts#L21)
+
+## Type Parameters
+
+### T
+
+`T`
diff --git a/hugo/content/docs/ref/sprotty-protocol/TypeAlias.VAlignment.md b/hugo/content/docs/ref/sprotty-protocol/TypeAlias.VAlignment.md
new file mode 100644
index 0000000..7e1e346
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/TypeAlias.VAlignment.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / VAlignment
+
+# Type Alias: VAlignment
+
+> **VAlignment** = `"top"` \| `"center"` \| `"bottom"`
+
+Defined in: [model.ts:173](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/model.ts#L173)
diff --git a/hugo/content/docs/ref/sprotty-protocol/UndoAction.Function.create.md b/hugo/content/docs/ref/sprotty-protocol/UndoAction.Function.create.md
new file mode 100644
index 0000000..06d79d6
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/UndoAction.Function.create.md
@@ -0,0 +1,12 @@
+
+[sprotty-protocol](../globals) / [UndoAction](../Namespace.UndoAction) / create
+
+# Function: create()
+
+> **create**(): [`UndoAction`](../Interface.UndoAction)
+
+Defined in: [actions.ts:648](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L648)
+
+## Returns
+
+[`UndoAction`](../Interface.UndoAction)
diff --git a/hugo/content/docs/ref/sprotty-protocol/UndoAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-protocol/UndoAction.Variable.KIND.md
new file mode 100644
index 0000000..094603c
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/UndoAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [UndoAction](../Namespace.UndoAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"undo"` = `'undo'`
+
+Defined in: [actions.ts:646](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L646)
diff --git a/hugo/content/docs/ref/sprotty-protocol/UpdateModelAction.Function.create.md b/hugo/content/docs/ref/sprotty-protocol/UpdateModelAction.Function.create.md
new file mode 100644
index 0000000..b8ab955
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/UpdateModelAction.Function.create.md
@@ -0,0 +1,28 @@
+
+[sprotty-protocol](../globals) / [UpdateModelAction](../Namespace.UpdateModelAction) / create
+
+# Function: create()
+
+> **create**(`input`, `options`): [`UpdateModelAction`](../Interface.UpdateModelAction)
+
+Defined in: [actions.ts:175](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L175)
+
+## Parameters
+
+### input
+
+[`SModelRoot`](../Interface.SModelRoot) | [`Match`](../Interface.Match)[]
+
+### options
+
+#### animate?
+
+`boolean`
+
+#### cause?
+
+[`Action`](../Interface.Action)
+
+## Returns
+
+[`UpdateModelAction`](../Interface.UpdateModelAction)
diff --git a/hugo/content/docs/ref/sprotty-protocol/UpdateModelAction.Variable.KIND.md b/hugo/content/docs/ref/sprotty-protocol/UpdateModelAction.Variable.KIND.md
new file mode 100644
index 0000000..a94d4b2
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/UpdateModelAction.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [UpdateModelAction](../Namespace.UpdateModelAction) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"updateModel"` = `'updateModel'`
+
+Defined in: [actions.ts:173](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L173)
diff --git a/hugo/content/docs/ref/sprotty-protocol/ViewportResult.Function.create.md b/hugo/content/docs/ref/sprotty-protocol/ViewportResult.Function.create.md
new file mode 100644
index 0000000..43be4a4
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/ViewportResult.Function.create.md
@@ -0,0 +1,26 @@
+
+[sprotty-protocol](../globals) / [ViewportResult](../Namespace.ViewportResult) / create
+
+# Function: create()
+
+> **create**(`viewport`, `canvasBounds`, `requestId`): [`ViewportResult`](../Interface.ViewportResult)
+
+Defined in: [actions.ts:611](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L611)
+
+## Parameters
+
+### viewport
+
+[`Viewport`](../Interface.Viewport)
+
+### canvasBounds
+
+[`Bounds`](../Interface.Bounds)
+
+### requestId
+
+`string`
+
+## Returns
+
+[`ViewportResult`](../Interface.ViewportResult)
diff --git a/hugo/content/docs/ref/sprotty-protocol/ViewportResult.Variable.KIND.md b/hugo/content/docs/ref/sprotty-protocol/ViewportResult.Variable.KIND.md
new file mode 100644
index 0000000..87fbd56
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/ViewportResult.Variable.KIND.md
@@ -0,0 +1,8 @@
+
+[sprotty-protocol](../globals) / [ViewportResult](../Namespace.ViewportResult) / KIND
+
+# Variable: KIND
+
+> `const` **KIND**: `"viewportResult"` = `'viewportResult'`
+
+Defined in: [actions.ts:609](https://github.com/eclipse-sprotty/sprotty/blob/f9b2433481cc27a1ac0c92d525a92039ae7f6c76/packages/sprotty-protocol/src/actions.ts#L609)
diff --git a/hugo/content/docs/ref/sprotty-protocol/_index.md b/hugo/content/docs/ref/sprotty-protocol/_index.md
new file mode 100644
index 0000000..f77c95b
--- /dev/null
+++ b/hugo/content/docs/ref/sprotty-protocol/_index.md
@@ -0,0 +1,178 @@
+
+# sprotty-protocol
+
+## Namespaces
+
+- [ApplyLabelEditAction](Namespace.ApplyLabelEditAction)
+- [Bounds](Namespace.Bounds)
+- [BringToFrontAction](Namespace.BringToFrontAction)
+- [CenterAction](Namespace.CenterAction)
+- [CollapseExpandAction](Namespace.CollapseExpandAction)
+- [CollapseExpandAllAction](Namespace.CollapseExpandAllAction)
+- [ComputedBoundsAction](Namespace.ComputedBoundsAction)
+- [CreateElementAction](Namespace.CreateElementAction)
+- [DeleteElementAction](Namespace.DeleteElementAction)
+- [Dimension](Namespace.Dimension)
+- [ExportSvgAction](Namespace.ExportSvgAction)
+- [FitToScreenAction](Namespace.FitToScreenAction)
+- [GetSelectionAction](Namespace.GetSelectionAction)
+- [GetViewportAction](Namespace.GetViewportAction)
+- [HoverFeedbackAction](Namespace.HoverFeedbackAction)
+- [LayoutAction](Namespace.LayoutAction)
+- [LoggingAction](Namespace.LoggingAction)
+- [MoveAction](Namespace.MoveAction)
+- [OpenAction](Namespace.OpenAction)
+- [Point](Namespace.Point)
+- [ReconnectAction](Namespace.ReconnectAction)
+- [RedoAction](Namespace.RedoAction)
+- [RejectAction](Namespace.RejectAction)
+- [RequestBoundsAction](Namespace.RequestBoundsAction)
+- [RequestExportSvgAction](Namespace.RequestExportSvgAction)
+- [RequestModelAction](Namespace.RequestModelAction)
+- [RequestPopupModelAction](Namespace.RequestPopupModelAction)
+- [SelectAction](Namespace.SelectAction)
+- [SelectAllAction](Namespace.SelectAllAction)
+- [SelectionResult](Namespace.SelectionResult)
+- [SetBoundsAction](Namespace.SetBoundsAction)
+- [SetModelAction](Namespace.SetModelAction)
+- [SetPopupModelAction](Namespace.SetPopupModelAction)
+- [SetViewportAction](Namespace.SetViewportAction)
+- [UndoAction](Namespace.UndoAction)
+- [UpdateModelAction](Namespace.UpdateModelAction)
+- [ViewportResult](Namespace.ViewportResult)
+
+## Classes
+
+- [Deferred](Class.Deferred)
+- [DiagramServer](Class.DiagramServer)
+- [ServerActionHandlerRegistry](Class.ServerActionHandlerRegistry)
+- [SModelIndex](Class.SModelIndex)
+
+## Interfaces
+
+- [Action](Interface.Action)
+- [ActionMessage](Interface.ActionMessage)
+- [Alignable](Interface.Alignable)
+- [ApplyLabelEditAction](Interface.ApplyLabelEditAction)
+- [Bounds](Interface.Bounds)
+- [BoundsAware](Interface.BoundsAware)
+- [BringToFrontAction](Interface.BringToFrontAction)
+- [CenterAction](Interface.CenterAction)
+- [CollapseExpandAction](Interface.CollapseExpandAction)
+- [CollapseExpandAllAction](Interface.CollapseExpandAllAction)
+- [ComputedBoundsAction](Interface.ComputedBoundsAction)
+- [CreateElementAction](Interface.CreateElementAction)
+- [DeleteElementAction](Interface.DeleteElementAction)
+- [DiagramServices](Interface.DiagramServices)
+- [DiagramState](Interface.DiagramState)
+- [Dimension](Interface.Dimension)
+- [EdgeLayoutable](Interface.EdgeLayoutable)
+- [EdgePlacement](Interface.EdgePlacement)
+- [ElementAndAlignment](Interface.ElementAndAlignment)
+- [ElementAndBounds](Interface.ElementAndBounds)
+- [ElementMove](Interface.ElementMove)
+- [Expandable](Interface.Expandable)
+- [ExportSvgAction](Interface.ExportSvgAction)
+- [ExportSvgOptions](Interface.ExportSvgOptions)
+- [Fadeable](Interface.Fadeable)
+- [FitToScreenAction](Interface.FitToScreenAction)
+- [ForeignObjectElement](Interface.ForeignObjectElement)
+- [GeneratorArguments](Interface.GeneratorArguments)
+- [GetSelectionAction](Interface.GetSelectionAction)
+- [GetViewportAction](Interface.GetViewportAction)
+- [Hoverable](Interface.Hoverable)
+- [HoverFeedbackAction](Interface.HoverFeedbackAction)
+- [HtmlRoot](Interface.HtmlRoot)
+- [IDiagramGenerator](Interface.IDiagramGenerator)
+- [IModelLayoutEngine](Interface.IModelLayoutEngine)
+- [JsonMap](Interface.JsonMap)
+- [LayoutableChild](Interface.LayoutableChild)
+- [LayoutAction](Interface.LayoutAction)
+- [LayoutContainer](Interface.LayoutContainer)
+- [Locateable](Interface.Locateable)
+- [LoggingAction](Interface.LoggingAction)
+- [Match](Interface.Match)
+- [ModelLayoutOptions](Interface.ModelLayoutOptions)
+- [MoveAction](Interface.MoveAction)
+- [OpenAction](Interface.OpenAction)
+- [Point](Interface.Point)
+- [PreRenderedElement](Interface.PreRenderedElement)
+- [Projectable](Interface.Projectable)
+- [ReconnectAction](Interface.ReconnectAction)
+- [RedoAction](Interface.RedoAction)
+- [RejectAction](Interface.RejectAction)
+- [RequestAction](Interface.RequestAction)
+- [RequestBoundsAction](Interface.RequestBoundsAction)
+- [RequestExportSvgAction](Interface.RequestExportSvgAction)
+- [RequestModelAction](Interface.RequestModelAction)
+- [RequestPopupModelAction](Interface.RequestPopupModelAction)
+- [ResponseAction](Interface.ResponseAction)
+- [SButton](Interface.SButton)
+- [SCompartment](Interface.SCompartment)
+- [Scrollable](Interface.Scrollable)
+- [SEdge](Interface.SEdge)
+- [Selectable](Interface.Selectable)
+- [SelectAction](Interface.SelectAction)
+- [SelectAllAction](Interface.SelectAllAction)
+- [SelectionResult](Interface.SelectionResult)
+- [SetBoundsAction](Interface.SetBoundsAction)
+- [SetModelAction](Interface.SetModelAction)
+- [SetPopupModelAction](Interface.SetPopupModelAction)
+- [SetViewportAction](Interface.SetViewportAction)
+- [SGraph](Interface.SGraph)
+- [ShapedPreRenderedElement](Interface.ShapedPreRenderedElement)
+- [SIssue](Interface.SIssue)
+- [SIssueMarker](Interface.SIssueMarker)
+- [SLabel](Interface.SLabel)
+- [SModelElement](Interface.SModelElement)
+- [SModelRoot](Interface.SModelRoot)
+- [SNode](Interface.SNode)
+- [SPort](Interface.SPort)
+- [SShapeElement](Interface.SShapeElement)
+- [UndoAction](Interface.UndoAction)
+- [UpdateModelAction](Interface.UpdateModelAction)
+- [Viewport](Interface.Viewport)
+- [ViewportResult](Interface.ViewportResult)
+- [ViewportRootElement](Interface.ViewportRootElement)
+- [Zoomable](Interface.Zoomable)
+
+## Type Aliases
+
+- [DeferredState](TypeAlias.DeferredState)
+- [DiagramOptions](TypeAlias.DiagramOptions)
+- [EdgeSide](TypeAlias.EdgeSide)
+- [HAlignment](TypeAlias.HAlignment)
+- [JsonAny](TypeAlias.JsonAny)
+- [JsonArray](TypeAlias.JsonArray)
+- [JsonPrimitive](TypeAlias.JsonPrimitive)
+- [LayoutKind](TypeAlias.LayoutKind)
+- [ServerActionHandler](TypeAlias.ServerActionHandler)
+- [SIssueSeverity](TypeAlias.SIssueSeverity)
+- [TypeOf](TypeAlias.TypeOf)
+- [VAlignment](TypeAlias.VAlignment)
+
+## Functions
+
+- [almostEquals](Function.almostEquals)
+- [angleBetweenPoints](Function.angleBetweenPoints)
+- [angleOfPoint](Function.angleOfPoint)
+- [applyBounds](Function.applyBounds)
+- [centerOfLine](Function.centerOfLine)
+- [cloneModel](Function.cloneModel)
+- [findElement](Function.findElement)
+- [generateRequestId](Function.generateRequestId)
+- [getBasicType](Function.getBasicType)
+- [getSubType](Function.getSubType)
+- [hasOwnProperty](Function.hasOwnProperty)
+- [isAction](Function.isAction)
+- [isActionMessage](Function.isActionMessage)
+- [isBounds](Function.isBounds)
+- [isObject](Function.isObject)
+- [isRequestAction](Function.isRequestAction)
+- [isResponseAction](Function.isResponseAction)
+- [isScrollable](Function.isScrollable)
+- [isZoomable](Function.isZoomable)
+- [safeAssign](Function.safeAssign)
+- [setRequestContext](Function.setRequestContext)
+- [toDegrees](Function.toDegrees)
+- [toRadians](Function.toRadians)
diff --git a/hugo/data/menu/main.yaml b/hugo/data/menu/main.yaml
index 84367ab..34cb6d9 100644
--- a/hugo/data/menu/main.yaml
+++ b/hugo/data/menu/main.yaml
@@ -45,9 +45,13 @@ main:
ref: "docs/sprotty-elk/introduction"
- name: Reference
sub:
+ - name: User Interaction
+ ref: "docs/ref/user-interaction"
- name: SModel
ref: "docs/ref/smodel"
- name: Features
ref: "docs/ref/features"
- - name: User Interaction
- ref: "docs/ref/user-interaction"
+ - name: Sprotty Core
+ ref: "docs/ref/sprotty-core"
+ - name: Sprotty Protocol
+ ref: "docs/ref/sprotty-protocol"
diff --git a/package.json b/package.json
index 4f6bee4..b6b3f45 100644
--- a/package.json
+++ b/package.json
@@ -14,7 +14,8 @@
"build": "npm run build --workspaces",
"watch": "concurrently -c gray,blue -n tailwind,hugo \"npm run watch --workspace tailwind\" \"npm run watch --workspace hugo\"",
"watch:gitpod": "concurrently -c gray,blue -k -n hugo \"npm run watch:gitpod --workspace hugo\" \"npm run watch --workspace tailwind\"",
- "start:dev": "http-server ./static-dev"
+ "start:dev": "http-server ./static-dev",
+ "process-docs": "node scripts/process-docs.js"
},
"workspaces": [
"showcase",
diff --git a/scripts/process-docs.js b/scripts/process-docs.js
new file mode 100755
index 0000000..0ed626b
--- /dev/null
+++ b/scripts/process-docs.js
@@ -0,0 +1,221 @@
+#!/usr/bin/env node
+
+const fs = require('fs');
+const path = require('path');
+
+/**
+ * JavaScript script to process documentation files in hugo/content/docs/ref
+ *
+ * This script:
+ * 1. Recursively finds all files in hugo/content/docs/ref
+ * 2. Renames globals.md files to _index.md
+ * 3. For all .md files:
+ * - Removes content from start until (and including) "***"
+ * - Changes links with .md extension to have no extension
+ */
+
+const REF_DIR = path.join(__dirname, '..', 'hugo', 'content', 'docs', 'ref');
+
+function getAllMarkdownFiles(dir) {
+ const files = [];
+
+ function walkDir(currentDir) {
+ const entries = fs.readdirSync(currentDir, { withFileTypes: true });
+
+ for (const entry of entries) {
+ const fullPath = path.join(currentDir, entry.name);
+
+ if (entry.isDirectory()) {
+ walkDir(fullPath);
+ } else if (entry.isFile() && entry.name.endsWith('.md')) {
+ files.push(fullPath);
+ }
+ }
+ }
+
+ walkDir(dir);
+ return files;
+}
+
+function renameGlobalsFiles(files) {
+ let renamedCount = 0;
+
+ const globalsFiles = files.filter(file => path.basename(file) === 'globals.md');
+
+ for (const globalsFile of globalsFiles) {
+ const dir = path.dirname(globalsFile);
+ const newPath = path.join(dir, '_index.md');
+
+ try {
+ fs.renameSync(globalsFile, newPath);
+ console.log(`Renamed: ${globalsFile} -> ${newPath}`);
+ renamedCount++;
+ } catch (error) {
+ console.error(`Error renaming ${globalsFile}:`, error);
+ }
+ }
+
+ return renamedCount;
+}
+
+function removeReadmeFiles(files) {
+ let removedCount = 0;
+
+ const readmeFiles = files.filter(file => path.basename(file) === 'README.md');
+
+ for (const readmeFile of readmeFiles) {
+ try {
+ fs.unlinkSync(readmeFile);
+ console.log(`Removed: ${readmeFile}`);
+ removedCount++;
+ } catch (error) {
+ console.error(`Error removing ${readmeFile}:`, error);
+ }
+ }
+
+ return removedCount;
+}
+
+function processFileContent(filePath) {
+ try {
+ const content = fs.readFileSync(filePath, 'utf-8');
+ let processedContent = content;
+ let linksUpdated = 0;
+
+ // Check if this is an _index.md file
+ const fileName = path.basename(filePath);
+ const isIndexFile = fileName === '_index.md';
+
+ // Remove content from start until (and including) "***"
+ const tripleStarIndex = processedContent.indexOf('***');
+ if (tripleStarIndex !== -1) {
+ // Find the end of the line containing "***"
+ const lineEndIndex = processedContent.indexOf('\n', tripleStarIndex);
+ if (lineEndIndex !== -1) {
+ processedContent = processedContent.substring(lineEndIndex + 1);
+ } else {
+ // If no newline found after ***, remove everything including ***
+ processedContent = '';
+ }
+ }
+
+ // Replace markdown links with .md extension to have no extension
+ // Pattern: [text](filename.md) -> [text](filename)
+ // Also handles [text](path/filename.md) -> [text](path/filename)
+ const linkPattern = /\[([^\]]*)\]\(([^)]*?)\.md\)/g;
+ processedContent = processedContent.replace(linkPattern, (match, text, link) => {
+ linksUpdated++;
+ return `[${text}](${link})`;
+ });
+
+ // For non-index files, prepend relative links with "../" if not already present
+ if (!isIndexFile) {
+ // Pattern to match markdown links that are relative (not absolute URLs, not already starting with ../, not anchors)
+ const relativeLinkPattern = /\[([^\]]*)\]\(([^)]*?)\)/g;
+ processedContent = processedContent.replace(relativeLinkPattern, (match, text, link) => {
+ // Skip if it's already an absolute URL (starts with http:// or https://)
+ if (link.startsWith('http://') || link.startsWith('https://')) {
+ return match;
+ }
+ // Skip if it's already starts with ../
+ if (link.startsWith('../')) {
+ return match;
+ }
+ // Skip if it's an anchor link (starts with #)
+ if (link.startsWith('#')) {
+ return match;
+ }
+ // Skip if it's an absolute path (starts with /)
+ if (link.startsWith('/')) {
+ return match;
+ }
+ // Skip if it's empty
+ if (!link.trim()) {
+ return match;
+ }
+
+ // Prepend with ../
+ linksUpdated++;
+ return `[${text}](../${link})`;
+ });
+ }
+
+ const contentChanged = content !== processedContent;
+
+ if (contentChanged) {
+ fs.writeFileSync(filePath, processedContent, 'utf-8');
+ console.log(`Processed: ${filePath} (${linksUpdated} links updated)`);
+ }
+
+ return { contentChanged, linksUpdated };
+ } catch (error) {
+ console.error(`Error processing ${filePath}:`, error);
+ return { contentChanged: false, linksUpdated: 0 };
+ }
+}
+
+function main() {
+ console.log('Starting documentation processing...');
+ console.log(`Processing directory: ${REF_DIR}`);
+
+ if (!fs.existsSync(REF_DIR)) {
+ console.error(`Directory does not exist: ${REF_DIR}`);
+ process.exit(1);
+ }
+
+ const stats = {
+ filesProcessed: 0,
+ filesRenamed: 0,
+ filesRemoved: 0,
+ linksUpdated: 0,
+ errors: []
+ };
+
+ try {
+ // Get all markdown files
+ const markdownFiles = getAllMarkdownFiles(REF_DIR);
+ console.log(`Found ${markdownFiles.length} markdown files`);
+
+ // Rename globals.md files to _index.md
+ stats.filesRenamed = renameGlobalsFiles(markdownFiles);
+
+ // Remove README.md files
+ stats.filesRemoved = removeReadmeFiles(markdownFiles);
+
+ // Get updated file list after renaming and removing files
+ const updatedFiles = getAllMarkdownFiles(REF_DIR);
+
+ // Process each file
+ for (const filePath of updatedFiles) {
+ const result = processFileContent(filePath);
+ if (result.contentChanged) {
+ stats.filesProcessed++;
+ }
+ stats.linksUpdated += result.linksUpdated;
+ }
+
+ // Print summary
+ console.log('\n=== Processing Summary ===');
+ console.log(`Files renamed: ${stats.filesRenamed}`);
+ console.log(`Files removed: ${stats.filesRemoved}`);
+ console.log(`Files processed: ${stats.filesProcessed}`);
+ console.log(`Links updated: ${stats.linksUpdated}`);
+
+ if (stats.errors.length > 0) {
+ console.log('\nErrors encountered:');
+ stats.errors.forEach(error => console.log(` - ${error}`));
+ }
+
+ console.log('\nDocumentation processing completed!');
+
+ } catch (error) {
+ console.error('Failed to process documentation:', error);
+ process.exit(1);
+ }
+}
+
+if (require.main === module) {
+ main();
+}
+
+module.exports = { main, processFileContent, renameGlobalsFiles, removeReadmeFiles, getAllMarkdownFiles };
\ No newline at end of file