@miragon/context-maps-renderer 0.0.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -21
- package/dist/CmBaseViewer.d.ts.map +1 -1
- package/dist/Modeler.d.ts +3 -2
- package/dist/Modeler.d.ts.map +1 -1
- package/dist/behaviors/CmFlatModelBehavior.d.ts.map +1 -1
- package/dist/context-maps.css +1 -1
- package/dist/context-pad/CmContextPadProvider.d.ts +96 -0
- package/dist/context-pad/CmContextPadProvider.d.ts.map +1 -0
- package/dist/context-pad/index.d.ts +4 -0
- package/dist/context-pad/index.d.ts.map +1 -0
- package/dist/draw/ContextMapsRenderer.d.ts +4 -0
- package/dist/draw/ContextMapsRenderer.d.ts.map +1 -1
- package/dist/draw/icons.d.ts +6 -0
- package/dist/draw/icons.d.ts.map +1 -1
- package/dist/draw/palette-icons.d.ts +8 -3
- package/dist/draw/palette-icons.d.ts.map +1 -1
- package/dist/draw/styles.d.ts +11 -0
- package/dist/draw/styles.d.ts.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1017 -447
- package/dist/index.js.map +1 -1
- package/dist/label-editing/CmLabelEditing.d.ts +39 -3
- package/dist/label-editing/CmLabelEditing.d.ts.map +1 -1
- package/dist/label-editing/index.d.ts +1 -1
- package/dist/label-editing/index.d.ts.map +1 -1
- package/dist/legend/CmLegend.d.ts +15 -0
- package/dist/legend/CmLegend.d.ts.map +1 -0
- package/dist/legend/index.d.ts +4 -0
- package/dist/legend/index.d.ts.map +1 -0
- package/dist/model/CmElementFactory.d.ts +2 -1
- package/dist/model/CmElementFactory.d.ts.map +1 -1
- package/dist/palette/CmPaletteProvider.d.ts +3 -1
- package/dist/palette/CmPaletteProvider.d.ts.map +1 -1
- package/dist/palette/index.d.ts +1 -1
- package/dist/palette/index.d.ts.map +1 -1
- package/dist/rules/CmRules.d.ts.map +1 -1
- package/dist/rules/index.d.ts +1 -1
- package/dist/rules/index.d.ts.map +1 -1
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -8,9 +8,9 @@ and full editor for strategic Domain-Driven Design [Context Maps](https://contex
|
|
|
8
8
|
diagrams, built on [diagram-js](https://github.com/bpmn-io/diagram-js) (MIT).
|
|
9
9
|
|
|
10
10
|
It renders the canonical document from
|
|
11
|
-
[`@miragon/context-maps-schema-model`](../schema-model) and gives you palette, move,
|
|
12
|
-
connect-by-relationship, context pad, inline label editing and
|
|
13
|
-
required. Mount it into any `<div>`; the web app (React) and the VS Code extension both wrap this
|
|
11
|
+
[`@miragon/context-maps-schema-model`](../schema-model) and gives you palette, move,
|
|
12
|
+
connect-by-relationship, context pad, a collapsible notation legend, inline label editing and
|
|
13
|
+
undo/redo — with no UI framework required. Mount it into any `<div>`; the web app (React) and the VS Code extension both wrap this
|
|
14
14
|
exact package.
|
|
15
15
|
|
|
16
16
|
## Install
|
|
@@ -21,11 +21,11 @@ npm install @miragon/context-maps-renderer @miragon/context-maps-schema-model
|
|
|
21
21
|
|
|
22
22
|
## Three entry points
|
|
23
23
|
|
|
24
|
-
| Class | Use it for
|
|
25
|
-
| ----------------- |
|
|
26
|
-
| `Viewer` | Read-only rendering, no interaction (thumbnails, static embeds).
|
|
27
|
-
| `NavigatedViewer` | Read-only + zoom (scroll), pan (drag) and selection.
|
|
28
|
-
| `Modeler` | The full editor: palette, move,
|
|
24
|
+
| Class | Use it for |
|
|
25
|
+
| ----------------- | ---------------------------------------------------------------------- |
|
|
26
|
+
| `Viewer` | Read-only rendering, no interaction (thumbnails, static embeds). |
|
|
27
|
+
| `NavigatedViewer` | Read-only + zoom (scroll), pan (drag) and selection. |
|
|
28
|
+
| `Modeler` | The full editor: palette, move, context pad, label editing, undo/redo. |
|
|
29
29
|
|
|
30
30
|
All three share a common base (`CmBaseViewer`) with the same import/export and lifecycle API.
|
|
31
31
|
|
|
@@ -100,19 +100,21 @@ The package is a set of [didi](https://github.com/nikku/didi) modules layered on
|
|
|
100
100
|
exported (e.g. `cmDrawModule`, `cmPaletteModule`, `cmModelingModule`) so you can compose your own
|
|
101
101
|
viewer via `additionalModules`:
|
|
102
102
|
|
|
103
|
-
| Module
|
|
104
|
-
|
|
|
105
|
-
| `cmModelModule`
|
|
106
|
-
| `cmDrawModule`
|
|
107
|
-
| `ioModule`
|
|
108
|
-
| `cmModelingModule`
|
|
109
|
-
| `cmRulesModule`
|
|
110
|
-
| `cmBehaviorsModule`
|
|
111
|
-
| `cmPaletteModule`
|
|
112
|
-
| `
|
|
113
|
-
| `
|
|
114
|
-
| `
|
|
115
|
-
| `
|
|
103
|
+
| Module | Responsibility |
|
|
104
|
+
| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
105
|
+
| `cmModelModule` | Element factory with notation defaults (`CmElementFactory`). |
|
|
106
|
+
| `cmDrawModule` | Custom SVG rendering of contexts and relationships (`ContextMapsRenderer`). |
|
|
107
|
+
| `ioModule` | Document ↔ canvas bridge (`CmImporter`, `CmExporter`, `saveSVG`). |
|
|
108
|
+
| `cmModelingModule` | High-level mutations — label, subdomain type, relationship pattern, roles, colours. |
|
|
109
|
+
| `cmRulesModule` | Editing rules (what can move / be created / connected; no resize). |
|
|
110
|
+
| `cmBehaviorsModule` | Keeps the model **flat** — shapes never nest. |
|
|
111
|
+
| `cmPaletteModule` | The floating tool palette (top-centre): lasso tool + drag-to-create contexts. |
|
|
112
|
+
| `cmConnectHandlesModule` | Opt-in (not in the default `Modeler`): four outward connect arrows around the selected context. |
|
|
113
|
+
| `cmContextPadModule` | Per-element quick actions: append a connected context, connect, subdomain-type / pattern / integration-role menus, owning team, description, in-place rename, swap ends, delete. |
|
|
114
|
+
| `cmLegendModule` | Collapsible notation legend (bottom-left): subdomain types, integration roles, patterns. |
|
|
115
|
+
| `cmLabelEditingModule` | In-place direct name editing (double-click / pad), bpmn.io style. |
|
|
116
|
+
| `cmKeyboardModule` | Undo / redo / delete shortcuts. |
|
|
117
|
+
| `cmZOrderModule` | Fixed stacking order (relationships behind, contexts on top). |
|
|
116
118
|
|
|
117
119
|
### Rendering
|
|
118
120
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CmBaseViewer.d.ts","sourceRoot":"","sources":["../src/CmBaseViewer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAK9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAIrE,OAAO,EAAW,KAAK,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAErF,MAAM,WAAW,eAAe;IAC9B,6EAA6E;IAC7E,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACzC;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;AAQ5D,8BAAsB,YAAY;IAChC,SAAS,CAAC,QAAQ,CAAC,WAAW,IAAI,iBAAiB,EAAE;IAErD,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;gBAE/B,OAAO,GAAE,eAAoB;IAKzC,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,cAAc;IAQtB,2DAA2D;IAC3D,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;IAIvB,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,SAAO,GAAG,IAAI;IAIjF,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAIjD,mEAAmE;IACnE,cAAc,CAAC,GAAG,EAAE,UAAU,GAAG;QAAE,QAAQ,EAAE,aAAa,EAAE,CAAA;KAAE;IAW9D,oDAAoD;IACpD,cAAc,IAAI,UAAU;IAI5B,0EAA0E;IAC1E,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI;IAanD,0EAA0E;IAC1E,OAAO,IAAI,kBAAkB,GAAG,SAAS;IASzC,+CAA+C;IAC/C,OAAO,IAAI;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE;IAI1B,kFAAkF;IAClF,OAAO,CAAC,IAAI;
|
|
1
|
+
{"version":3,"file":"CmBaseViewer.d.ts","sourceRoot":"","sources":["../src/CmBaseViewer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAK9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAIrE,OAAO,EAAW,KAAK,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAErF,MAAM,WAAW,eAAe;IAC9B,6EAA6E;IAC7E,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACzC;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;AAQ5D,8BAAsB,YAAY;IAChC,SAAS,CAAC,QAAQ,CAAC,WAAW,IAAI,iBAAiB,EAAE;IAErD,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;gBAE/B,OAAO,GAAE,eAAoB;IAKzC,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,cAAc;IAQtB,2DAA2D;IAC3D,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;IAIvB,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,SAAO,GAAG,IAAI;IAIjF,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAIjD,mEAAmE;IACnE,cAAc,CAAC,GAAG,EAAE,UAAU,GAAG;QAAE,QAAQ,EAAE,aAAa,EAAE,CAAA;KAAE;IAW9D,oDAAoD;IACpD,cAAc,IAAI,UAAU;IAI5B,0EAA0E;IAC1E,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI;IAanD,0EAA0E;IAC1E,OAAO,IAAI,kBAAkB,GAAG,SAAS;IASzC,+CAA+C;IAC/C,OAAO,IAAI;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE;IAI1B,kFAAkF;IAClF,OAAO,CAAC,IAAI;IA4CZ,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAKnC,2DAA2D;IAC3D,MAAM,IAAI,IAAI;IAId,KAAK,IAAI,IAAI;IAIb,OAAO,IAAI,IAAI;IAQf,IAAI,SAAS,IAAI,WAAW,CAE3B;CACF"}
|
package/dist/Modeler.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { ModuleDeclaration } from 'didi';
|
|
2
2
|
import { NavigatedViewer } from './NavigatedViewer.js';
|
|
3
3
|
/**
|
|
4
|
-
* Full Context Maps editor: palette/create, move,
|
|
5
|
-
*
|
|
4
|
+
* Full Context Maps editor: palette/create, move, connect with rules,
|
|
5
|
+
* context pad, inline label editing, undo/redo. Boxes are fixed-size —
|
|
6
|
+
* no resize feature.
|
|
6
7
|
*/
|
|
7
8
|
export declare class Modeler extends NavigatedViewer {
|
|
8
9
|
protected _getModules(): ModuleDeclaration[];
|
package/dist/Modeler.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modeler.d.ts","sourceRoot":"","sources":["../src/Modeler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"Modeler.d.ts","sourceRoot":"","sources":["../src/Modeler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAQ9C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAYvD;;;;GAIG;AACH,qBAAa,OAAQ,SAAQ,eAAe;cACvB,WAAW,IAAI,iBAAiB,EAAE;IAsBrD,IAAI,IAAI,IAAI;IAIZ,IAAI,IAAI,IAAI;IAIZ,OAAO,IAAI,OAAO;IAIlB,OAAO,IAAI,OAAO;CAGnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CmFlatModelBehavior.d.ts","sourceRoot":"","sources":["../../src/behaviors/CmFlatModelBehavior.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,kBAAkB,MAAM,2CAA2C,CAAC;AAC3E,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,QAAQ,MAAM,2CAA2C,CAAC;AAQtE,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,kBAAkB;IACjE,OAAgB,OAAO,WAAsC;gBAEjD,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;
|
|
1
|
+
{"version":3,"file":"CmFlatModelBehavior.d.ts","sourceRoot":"","sources":["../../src/behaviors/CmFlatModelBehavior.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,kBAAkB,MAAM,2CAA2C,CAAC;AAC3E,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,QAAQ,MAAM,2CAA2C,CAAC;AAQtE,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,kBAAkB;IACjE,OAAgB,OAAO,WAAsC;gBAEjD,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;CAwDnE"}
|
package/dist/context-maps.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
.djs-parent{--color-grey-225-10-15:#22242a;--color-grey-225-10-35:#505562;--color-grey-225-10-55:#818798;--color-grey-225-10-75:#b9bcc6;--color-grey-225-10-80:#c7c9d1;--color-grey-225-10-85:#d5d7dd;--color-grey-225-10-90:#e3e4e8;--color-grey-225-10-95:#f1f2f4;--color-grey-225-10-97:#f7f7f8;--color-blue-205-100-45:#0086e6;--color-blue-205-100-45-opacity-30:#0086e64d;--color-blue-205-100-50:#0095ff;--color-blue-205-100-50-opacity-15:#0095ff26;--color-blue-205-100-70:#80caff;--color-blue-205-100-95:#e6f4ff;--color-green-150-86-44:#10d170;--color-red-360-100-40:#c00;--color-red-360-100-45:#e60000;--color-red-360-100-92:#ffd6d6;--color-red-360-100-97:#fff0f0;--color-white:#fff;--color-black:#000;--color-black-opacity-10:#0000001a;--color-black-opacity-30:#0000004d;--canvas-fill-color:var(--color-white);--bendpoint-fill-color:var(--color-blue-205-100-45);--bendpoint-stroke-color:var(--canvas-fill-color);--context-pad-entry-background-color:var(--color-white);--context-pad-entry-hover-background-color:var(--color-grey-225-10-95);--element-dragger-color:var(--color-blue-205-100-50);--element-hover-outline-fill-color:var(--color-blue-205-100-45);--element-selected-outline-stroke-color:var(--color-blue-205-100-50);--element-selected-outline-secondary-stroke-color:var(--color-blue-205-100-70);--lasso-fill-color:var(--color-blue-205-100-50-opacity-15);--lasso-stroke-color:var(--element-selected-outline-stroke-color);--palette-entry-color:var(--color-grey-225-10-15);--palette-entry-hover-color:var(--color-blue-205-100-45);--palette-entry-selected-color:var(--color-blue-205-100-50);--palette-separator-color:var(--color-grey-225-10-75);--palette-toggle-hover-background-color:var(--color-grey-225-10-55);--palette-background-color:var(--color-grey-225-10-97);--palette-border-color:var(--color-grey-225-10-75);--popup-font-family:"IBM Plex Sans", sans-serif;--popup-font-size:14px;--popup-secondary-font-size:.9em;--popup-header-entry-selected-color:var(--color-blue-205-100-50);--popup-header-font-weight:bolder;--popup-header-group-divider-color:var(--color-grey-225-10-75);--popup-background-color:var(--color-white);--popup-border-color:transparent;--popup-shadow-color:var(--color-black-opacity-30);--popup-disabled-color:var(--color-grey-225-10-35);--popup-description-color:var(--color-grey-225-10-35);--popup-no-results-color:var(--color-grey-225-10-55);--popup-entry-title-color:var(--color-grey-225-10-55);--popup-entry-hover-color:var(--color-grey-225-10-95);--popup-search-border-color:var(--color-grey-225-10-75);--popup-search-focus-border-color:var(--color-blue-205-100-50);--popup-search-focus-background-color:var(--color-blue-205-100-95);--resizer-fill-color:var(--color-blue-205-100-45);--resizer-stroke-color:var(--canvas-fill-color);--search-font-family:"IBM Plex Sans", sans-serif;--search-font-size:14px;--search-container-background-color:var(--color-white);--search-shadow-color:var(--color-black-opacity-30);--search-input-border-color:var(--color-grey-225-10-75);--search-input-focus-border-color:var(--color-blue-205-100-50);--search-input-focus-background-color:var(--color-blue-205-100-95);--search-result-hover-background-color:var(--color-grey-225-10-95);--search-result-secondary-color:var(--color-grey-225-10-55);--search-preselected-background-color:var(--color-blue-205-100-50-opacity-15);--shape-attach-allowed-stroke-color:var(--color-blue-205-100-50);--shape-connect-allowed-fill-color:var(--color-grey-225-10-97);--shape-drop-allowed-fill-color:var(--color-grey-225-10-97);--shape-drop-not-allowed-fill-color:var(--color-red-360-100-97);--shape-resize-preview-stroke-color:var(--color-blue-205-100-50);--snap-line-stroke-color:var(--color-blue-205-100-45-opacity-30);--space-tool-crosshair-stroke-color:var(--color-black);--tooltip-error-background-color:var(--color-red-360-100-97);--tooltip-error-border-color:var(--color-red-360-100-45);--tooltip-error-color:var(--color-red-360-100-45)}.djs-container svg.drop-not-ok{background:var(--shape-drop-not-allowed-fill-color)!important}.djs-container svg.new-parent{background:var(--shape-drop-allowed-fill-color)!important}.djs-container svg:focus{outline-offset:-1px}.djs-outline,.djs-selection-outline{fill:none;shape-rendering:geometricprecision;stroke-width:2px}.djs-outline{visibility:hidden}.djs-selection-outline{stroke:var(--element-selected-outline-stroke-color)}.djs-element.selected .djs-outline{visibility:visible;stroke:var(--element-selected-outline-stroke-color)}.djs-connection.selected .djs-outline{display:none}.djs-multi-select .djs-element.selected .djs-outline,.djs-dragging-active-lasso .djs-element.selected .djs-outline{stroke:var(--element-selected-outline-secondary-stroke-color);display:block}.djs-shape.connect-ok .djs-visual>:first-child{fill:var(--shape-connect-allowed-fill-color)!important}.djs-shape.connect-not-ok .djs-visual>:first-child,.djs-shape.drop-not-ok .djs-visual>:first-child{fill:var(--shape-drop-not-allowed-fill-color)!important}.djs-shape.new-parent .djs-visual>:first-child{fill:var(--shape-drop-allowed-fill-color)!important}.drop-not-ok,.connect-not-ok,.drop-not-ok *,.connect-not-ok *{cursor:not-allowed!important}.drop-ok,.connect-ok,.drop-ok *,.connect-ok *{cursor:default!important}.djs-element.attach-ok .djs-visual>:first-child{stroke-width:5px!important;stroke:var(--shape-attach-allowed-stroke-color)!important}.djs-frame.connect-not-ok .djs-visual>:first-child,.djs-frame.drop-not-ok .djs-visual>:first-child{stroke-width:3px!important;stroke:var(--shape-drop-not-allowed-fill-color)!important;fill:none!important}.djs-lasso-overlay{fill:var(--lasso-fill-color);stroke:var(--lasso-stroke-color);stroke-width:2px;shape-rendering:geometricprecision;pointer-events:none}.djs-resize-overlay{fill:none;stroke-dasharray:5 1 3 1;stroke:var(--shape-resize-preview-stroke-color);pointer-events:none}.djs-resizer-hit{fill:none;pointer-events:all}.djs-resizer-visual{fill:var(--resizer-fill-color);stroke-width:1px;stroke:var(--resizer-stroke-color);shape-rendering:geometricprecision}.djs-resizer:hover .djs-resizer-visual{stroke:var(--resizer-stroke-color);stroke-opacity:1}.djs-cursor-resize-ns,.djs-resizer-n,.djs-resizer-s{cursor:ns-resize}.djs-cursor-resize-ew,.djs-resizer-e,.djs-resizer-w{cursor:ew-resize}.djs-cursor-resize-nwse,.djs-resizer-nw,.djs-resizer-se{cursor:nwse-resize}.djs-cursor-resize-nesw,.djs-resizer-ne,.djs-resizer-sw{cursor:nesw-resize}.djs-shape.djs-resizing>.djs-outline{visibility:hidden!important}.djs-shape.djs-resizing>.djs-resizer,.djs-dragger>.djs-resizer{visibility:hidden}.djs-dragger *{fill:none!important;stroke:var(--element-dragger-color)!important}.djs-dragger tspan,.djs-dragger text,.djs-dragger marker circle,.djs-dragger marker path,.djs-dragger marker polygon,.djs-dragger marker polyline,.djs-dragger marker rect{fill:var(--element-dragger-color)!important;stroke:none!important}.djs-dragger marker text,.djs-dragger marker tspan{fill:none!important;stroke:var(--element-dragger-color)!important}.djs-dragging,.djs-dragging>*{opacity:.3!important;pointer-events:none!important}.djs-visual,.djs-outline{pointer-events:none}.djs-element.attach-ok .djs-hit{stroke-width:60px!important}.djs-element>.djs-hit-all,.djs-element>.djs-hit-no-move{pointer-events:all}.djs-element>.djs-hit-stroke,.djs-element>.djs-hit-click-stroke{pointer-events:stroke}.djs-connection .djs-visual{stroke-width:2px;fill:none}.djs-cursor-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.djs-cursor-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.djs-cursor-crosshair{cursor:crosshair}.djs-cursor-move{cursor:move}.djs-cursor-resize-ns{cursor:ns-resize}.djs-cursor-resize-ew{cursor:ew-resize}.djs-snap-line{stroke:var(--snap-line-stroke-color);stroke-linecap:round;stroke-width:2px;pointer-events:none}.djs-crosshair{stroke:var(--space-tool-crosshair-stroke-color);stroke-linecap:round;stroke-width:1px;pointer-events:none;shape-rendering:geometricprecision;stroke-dasharray:5 5}.djs-palette{box-sizing:border-box;width:48px;position:absolute;top:20px;left:20px}.djs-palette .separator{border:none;border-bottom:solid 1px var(--palette-separator-color);clear:both;margin:5px;padding-top:5px}.djs-palette .entry:before{vertical-align:initial}.djs-palette .djs-palette-toggle{cursor:pointer}.djs-palette .entry,.djs-palette .djs-palette-toggle{color:var(--palette-entry-color);text-align:center;font-size:30px}.djs-palette .entry{float:left}.djs-palette .entry img{max-width:100%}.djs-palette .djs-palette-entries:after{content:"";clear:both;display:table}.djs-palette .djs-palette-toggle:hover{background:var(--palette-toggle-hover-background-color)}.djs-palette .entry:hover{color:var(--palette-entry-hover-color)}.djs-palette .highlighted-entry{color:var(--palette-entry-selected-color)!important}.djs-palette .entry,.djs-palette .djs-palette-toggle{cursor:default;width:46px;height:46px;line-height:46px}.djs-palette.two-column.open{width:94px}.djs-palette:not(.open) .djs-palette-entries{display:none}.djs-palette:not(.open){overflow:hidden}.djs-palette.open .djs-palette-toggle{display:none}.djs-context-pad{pointer-events:none;z-index:100;width:72px;line-height:1;display:none;position:absolute}.djs-context-pad .entry{text-align:center;cursor:default;background-color:var(--context-pad-entry-background-color);width:22px;height:22px;box-shadow:0 0 2px 1px var(--context-pad-entry-background-color);pointer-events:all;vertical-align:middle;border-radius:3px;margin:0 2px 2px 0;font-size:22px;display:inline-block}.djs-context-pad .entry:hover{background:var(--context-pad-entry-hover-background-color)}.djs-context-pad.open{display:block}.djs-popup{box-sizing:border-box;background:var(--popup-background-color);z-index:200;box-shadow:0px 2px 6px var(--popup-shadow-color);border:solid 1px var(--popup-border-color);min-width:120px;max-width:300px;line-height:1;font-size:var(--popup-font-size);font-family:var(--popup-font-family);outline:none;position:fixed;overflow:hidden}.djs-popup-search input{box-sizing:border-box;width:100%;font-size:var(--popup-font-size);border:solid 1px var(--popup-search-border-color);border-radius:2px;padding:3px 6px 3px 28px;line-height:21px}.djs-popup-search input:focus{background-color:var(--popup-search-focus-background-color);border:solid 1px var(--popup-search-focus-border-color);outline:none}.djs-popup-header{align-items:stretch;margin:10px 12px;line-height:20px;display:flex}.djs-popup-header .entry{border-radius:2px}.djs-popup button.entry{background:0 0;border:0;padding:0}.djs-popup-header .entry.active{color:var(--popup-header-entry-selected-color)}.djs-popup-header .entry.disabled{color:inherit}.djs-popup-header-group{flex-direction:row;align-items:center;margin:0;padding:0;list-style:none;display:flex}.djs-popup-header-group .entry{flex-direction:row;align-items:center;display:flex}.djs-popup-header-group+.djs-popup-header-group:before{content:"";background:var(--popup-header-group-divider-color);width:1px;height:20px;margin:0 5px}.djs-popup-search{width:auto;margin:10px 12px;position:relative}.djs-popup-title{font-size:var(--popup-font-size);font-weight:var(--popup-header-font-weight);flex:1;margin:0}.djs-popup-breadcrumbs{margin:10px 12px;line-height:20px;display:flex}.djs-popup-breadcrumbs-item{appearance:none;min-width:0;color:var(--popup-description-color);font:inherit;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;outline:none;margin:0;padding:0;display:inline-flex;overflow:hidden}.djs-popup-breadcrumbs-item--separator:before{content:"/";color:var(--popup-description-color);margin:0 4px;display:inline-block}.djs-popup-breadcrumbs-item:hover{color:inherit;text-decoration:underline}.djs-popup-breadcrumbs-item:focus-visible{outline:1px solid var(--popup-search-focus-border-color);outline-offset:2px}.djs-popup-breadcrumbs-item--back{border:1px solid var(--popup-search-border-color);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;margin-right:6px;padding:2px 3px}.djs-popup-breadcrumbs-item--back:hover{background:#f2f3f5}.djs-popup-breadcrumbs-item--current{font-weight:var(--popup-header-font-weight);color:inherit;cursor:default}.djs-popup-breadcrumbs-item--current:hover{text-decoration:none}.djs-popup-entry-chevron{color:var(--popup-description-color);align-items:center;margin-left:6px;display:flex}.djs-popup-search-icon{position:absolute;top:7px;left:8px}.djs-popup-search-count{font-size:var(--popup-secondary-font-size);color:var(--popup-description-color);margin:0 12px}.djs-popup-results{max-height:280px;margin:7px 3px 7px 12px;padding-right:9px;list-style:none;overflow:auto}.djs-popup-results:focus{outline:none}.djs-popup-group{width:100%;margin:0;padding:0}.djs-popup-body .entry,.djs-popup-body .entry-header{cursor:default;border-radius:4px;padding:5px 7px}.djs-popup-body .entry-header{font-weight:var(--popup-header-font-weight);color:var(--popup-entry-title-color);padding-left:0}.djs-popup [class*=icon] .djs-popup-label,.djs-popup-label:not(:first-child){margin-left:.5em}.djs-popup [class*=icon]:before,.djs-popup-entry-icon{vertical-align:middle;width:1em;height:1em;font-size:1.4em;display:inline-block}.djs-popup-body .entry-header:not(:first-child){margin-top:8px;margin-bottom:2px}.djs-popup-body .entry{flex-direction:row;align-items:stretch;height:min-content;display:flex}.djs-popup .entry.selected{background-color:var(--popup-entry-hover-color)}.djs-popup .entry.disabled{color:var(--popup-disabled-color);cursor:not-allowed}.djs-popup-body .entry:not(:first-child){margin-top:2px}.djs-popup-entry-content{flex-direction:column;flex:1;display:flex}.djs-popup-entry-description{font-size:var(--popup-secondary-font-size);color:var(--popup-description-color);margin-top:.25em}.djs-popup-label,.djs-popup-entry-description{line-height:1.4em}.djs-popup .entry,.djs-popup .entry-header{margin:1px}.djs-popup-body{flex-direction:column;width:auto}.djs-popup ::-webkit-scrollbar{width:6px}.djs-popup ::-webkit-scrollbar-thumb{background-color:#0003;border-radius:3px}.djs-popup ::-webkit-scrollbar-track{box-shadow:none;background:0 0;margin:0;padding:5px}.djs-popup-no-results{color:var(--popup-no-results-color);padding:0 12px 12px}.djs-popup-footer{border-top:solid 1px var(--popup-border-color);padding:5px 12px 7px;display:flex}.djs-popup-results:hover~.djs-popup-footer{display:none}.djs-popup-entry-docs{color:var(--popup-description-color);margin-left:3px;display:none}.djs-popup-body .entry:hover .djs-popup-entry-docs{display:inline}.djs-popup-entry-docs svg{vertical-align:middle;margin:2px}.djs-popup-footer-docs{font-size:var(--popup-secondary-font-size);color:var(--popup-description-color);align-items:center;gap:3px;text-decoration:none;display:inline-flex}.djs-popup-footer-docs:hover{text-decoration:underline}.djs-popup-footer-docs svg{vertical-align:middle;margin:2px}.djs-palette{background:var(--palette-background-color);border:solid 1px var(--palette-border-color);border-radius:2px}.djs-segment-dragger,.djs-bendpoint{display:none}.djs-segment-dragger .djs-visual{fill:var(--bendpoint-fill-color);stroke:var(--bendpoint-stroke-color);stroke-width:1px;stroke-opacity:1;display:none}.djs-segment-dragger:hover .djs-visual{display:block}.djs-bendpoint .djs-visual{fill:var(--bendpoint-fill-color);stroke:var(--bendpoint-stroke-color);stroke-width:1px}.djs-segment-dragger:hover,.djs-bendpoints.hover .djs-segment-dragger,.djs-bendpoints.selected .djs-segment-dragger,.djs-bendpoint:hover,.djs-bendpoints.hover .djs-bendpoint,.djs-bendpoints.selected .djs-bendpoint{display:block}.djs-drag-active .djs-bendpoints *,.djs-bendpoints:not(.hover) .floating,.djs-bendpoint.floating:not(.positioned){display:none}.djs-segment-dragger:hover .djs-visual,.djs-segment-dragger.djs-dragging .djs-visual,.djs-bendpoint:hover .djs-visual,.djs-bendpoint.floating .djs-visual{fill:var(--bendpoint-fill-color);stroke:var(--bendpoint-stroke-color);stroke-opacity:1}.djs-bendpoint.floating .djs-hit{pointer-events:none}.djs-segment-dragger .djs-hit,.djs-bendpoint .djs-hit{fill:none;pointer-events:all}.djs-segment-dragger.horizontal .djs-hit{cursor:ns-resize}.djs-segment-dragger.vertical .djs-hit{cursor:ew-resize}.djs-segment-dragger.djs-dragging .djs-hit{pointer-events:none}.djs-updating,.djs-updating>*{pointer-events:none!important}.djs-updating .djs-context-pad,.djs-updating .djs-outline,.djs-updating .djs-bendpoint,.djs-multi-select .djs-bendpoint,.djs-multi-select .djs-segment-dragger,.connect-ok .djs-bendpoint,.connect-not-ok .djs-bendpoint,.drop-ok .djs-bendpoint,.drop-not-ok .djs-bendpoint{display:none!important}.djs-segment-dragger.djs-dragging,.djs-bendpoint.djs-dragging{opacity:1;display:block}.djs-tooltip-error{background:var(--tooltip-error-background-color);border:solid 1px var(--tooltip-error-border-color);width:160px;color:var(--tooltip-error-color);opacity:.75;border-radius:2px;padding:6px;font-size:12px;line-height:16px}.djs-tooltip-error:hover{opacity:1}.djs-search-open .djs-context-pad{display:none}.djs-search-open .djs-connection.selected .djs-outline{display:block}.djs-search-container{z-index:10;width:25%;min-width:300px;max-width:400px;font-family:var(--search-font-family);font-size:var(--search-font-size);box-shadow:0px 2px 6px var(--search-shadow-color);border-radius:2px;margin-left:auto;margin-right:auto;position:absolute;top:20px;left:0;right:0}.djs-search-container:not(.open){display:none}.djs-search-input{position:relative}.djs-search-input svg{position:absolute;top:7px;left:8px}.djs-search-input input{font-size:var(--search-font-size);border:1px solid var(--search-input-border-color);box-sizing:border-box;border-radius:2px;width:100%;padding:3px 6px 3px 28px;line-height:21px}.djs-search-input input:focus{background-color:var(--search-input-focus-background-color);border:solid 1px var(--search-input-focus-border-color);outline:none}.djs-search-results{background:var(--search-container-background-color);max-height:200px;position:relative;overflow-y:auto}.djs-search-result{padding:6px 8px}.djs-search-result-primary{text-overflow:ellipsis;white-space:nowrap;margin:0 0 3px;overflow:hidden}.djs-search-result-secondary{text-overflow:ellipsis;white-space:nowrap;color:var(--search-result-secondary-color);margin:0;font-family:monospace;overflow:hidden}.djs-search-result:hover,.djs-search-result-selected,.djs-search-result-selected:hover{background:var(--search-result-hover-background-color)}.djs-search-open .djs-element .djs-outline{fill:var(--search-preselected-background-color)!important}.djs-element-hidden,.djs-element-hidden .djs-hit,.djs-element-hidden .djs-outline,.djs-label-hidden .djs-label{display:none!important}.djs-element .djs-hit-stroke,.djs-element .djs-hit-click-stroke,.djs-element .djs-hit-all{cursor:move}:root{--cd-blau:#335de5;--cd-gruen:#00e676;--cd-grau:#f9f7f7;--cd-schwarz:#1d1d1d;--cd-weiss:#fff;--cd-blau-link:#2b50d4;--cd-blau-hell:#6b8aff;--cd-success:#0b7a55;--cd-success-soft:#0b7a551f;--cd-warning:#92610a;--cd-warning-soft:#92610a1f;--cd-danger:#c92a2a;--cd-danger-soft:#c92a2a1f;--cd-info:#2b50d4;--cd-info-soft:#2b50d41f;--cd-gradient-brand:linear-gradient(120deg, #335de5 30%, #00e676);--cd-gradient-format:linear-gradient(135deg, #335de5 0%, #00e676 140%);--cd-space-1:4px;--cd-space-2:8px;--cd-space-3:16px;--cd-space-4:24px;--cd-space-5:32px;--cd-space-6:48px;--cd-space-7:64px;--cd-space-8:96px;--cd-radius-sm:6px;--cd-radius-md:12px;--cd-radius-lg:16px;--cd-radius-pill:999px;--cd-shadow-1:0 1px 2px #1d1d1d0f, 0 1px 3px #1d1d1d1a;--cd-shadow-2:0 4px 12px #1d1d1d1a;--cd-shadow-3:0 12px 32px #1d1d1d29;--cd-motion-fast:.15s;--cd-motion-base:.25s;--cd-motion-slow:.4s;--cd-ease:cubic-bezier(.4, 0, .2, 1);--cd-ease-out:cubic-bezier(0, 0, .2, 1)}.cm-djs-container{--cm-accent:var(--cd-blau);--cm-accent-soft:#335de51f;--cm-line:#e6e2e2;--cm-ink:var(--cd-schwarz);background-color:var(--cd-grau);background-image:radial-gradient(#1d1d1d0f .6px,#0000 .6px);background-size:22px 22px;width:100%;height:100%;font-family:Geist Variable,Geist,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;position:relative;overflow:hidden}.cm-djs-container:focus,.cm-djs-container:focus-visible,.cm-djs-container svg:focus{outline:none}.cm-djs-container .djs-element text{-webkit-user-select:none;user-select:none}.cm-djs-container .djs-element.hover .djs-visual>:first-child:not(text),.cm-djs-container .djs-element.selected .djs-visual>:first-child:not(text){stroke:var(--cm-accent)!important}.cm-djs-container .djs-outline{stroke:var(--cm-accent);stroke-dasharray:3 3}.cm-djs-container .djs-resizer-visual{fill:var(--cd-weiss);stroke:var(--cm-accent)}.cm-djs-container .djs-resizer-hit{fill:none}.djs-palette{background:var(--cd-weiss);border:1px solid var(--cm-line,#e6e2e2);border-radius:var(--cd-radius-md);width:auto;box-shadow:var(--cd-shadow-2);align-items:center;padding:5px 6px;display:flex;top:12px;left:50%;transform:translate(-50%)}.djs-palette .djs-palette-entries,.djs-palette .group{flex-direction:row;align-items:center;gap:2px;display:flex}.djs-palette .entry{float:none;border-radius:var(--cd-radius-sm);width:40px;height:40px;color:var(--cd-schwarz);line-height:normal;transition:background .12s,color .12s,box-shadow .12s;position:relative}.djs-palette .entry:hover{color:var(--cd-blau);background:#335de51f}.djs-palette .group+.group{margin-left:9px;padding-left:9px;position:relative}.djs-palette .group+.group:before{content:"";background:var(--cm-line,#e6e2e2);width:1px;position:absolute;top:6px;bottom:6px;left:0}.cm-palette-entry{justify-content:center;align-items:center;width:100%;min-width:24px;height:100%;min-height:24px;line-height:1;display:flex}.cm-palette-svg{pointer-events:none;display:block}.cm-mode-entry.is-active{background:var(--cm-accent-soft);box-shadow:inset 0 0 0 1.5px var(--cm-accent)}.cm-connect-handle{border-radius:var(--cd-radius-sm);width:28px;height:28px;box-shadow:var(--cd-shadow-1);background:var(--cd-weiss);color:var(--cd-schwarz);cursor:pointer;justify-content:center;align-items:center;transition:background .12s,color .12s;display:flex}.cm-connect-handle:hover{background:var(--cm-accent-soft);color:var(--cm-accent)}.cm-djs-container .cm-label-input{text-align:center;border:1.5px solid var(--cm-accent);border-radius:var(--cd-radius-sm);background:var(--cd-weiss);color:var(--cm-ink);z-index:100;outline:none;padding:3px 6px;font-family:inherit;font-size:13.5px;font-weight:600;box-shadow:0 4px 14px #335de533}.cm-validation-marker{cursor:help;filter:drop-shadow(0 1px 1px #00000040);width:20px;height:20px;position:relative}.cm-validation-tooltip{width:max-content;max-width:280px;color:var(--cm-ink,#1d1d1d);pointer-events:none;z-index:200;background:#fff;border:1px solid #d9d5cc;border-radius:8px;padding:8px 10px;font-family:Geist Variable,Geist,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:12px;line-height:1.45;display:none;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 6px 18px #0000002e}.cm-validation-marker:hover .cm-validation-tooltip{display:block}.cm-validation-tooltip__message+.cm-validation-tooltip__message{border-top:1px solid #eceae4;margin-top:6px;padding-top:6px}.cm-dragging .djs-overlay-container,.cm-dragging .djs-overlay-container *{pointer-events:none!important}.cm-djs-container .djs-element.connect-ok,.cm-djs-container svg.connect-ok{cursor:crosshair}.cm-djs-container .djs-element.connect-not-ok,.cm-djs-container svg.connect-not-ok{cursor:not-allowed}
|
|
1
|
+
.djs-parent{--color-grey-225-10-15:#22242a;--color-grey-225-10-35:#505562;--color-grey-225-10-55:#818798;--color-grey-225-10-75:#b9bcc6;--color-grey-225-10-80:#c7c9d1;--color-grey-225-10-85:#d5d7dd;--color-grey-225-10-90:#e3e4e8;--color-grey-225-10-95:#f1f2f4;--color-grey-225-10-97:#f7f7f8;--color-blue-205-100-45:#0086e6;--color-blue-205-100-45-opacity-30:#0086e64d;--color-blue-205-100-50:#0095ff;--color-blue-205-100-50-opacity-15:#0095ff26;--color-blue-205-100-70:#80caff;--color-blue-205-100-95:#e6f4ff;--color-green-150-86-44:#10d170;--color-red-360-100-40:#c00;--color-red-360-100-45:#e60000;--color-red-360-100-92:#ffd6d6;--color-red-360-100-97:#fff0f0;--color-white:#fff;--color-black:#000;--color-black-opacity-10:#0000001a;--color-black-opacity-30:#0000004d;--canvas-fill-color:var(--color-white);--bendpoint-fill-color:var(--color-blue-205-100-45);--bendpoint-stroke-color:var(--canvas-fill-color);--context-pad-entry-background-color:var(--color-white);--context-pad-entry-hover-background-color:var(--color-grey-225-10-95);--element-dragger-color:var(--color-blue-205-100-50);--element-hover-outline-fill-color:var(--color-blue-205-100-45);--element-selected-outline-stroke-color:var(--color-blue-205-100-50);--element-selected-outline-secondary-stroke-color:var(--color-blue-205-100-70);--lasso-fill-color:var(--color-blue-205-100-50-opacity-15);--lasso-stroke-color:var(--element-selected-outline-stroke-color);--palette-entry-color:var(--color-grey-225-10-15);--palette-entry-hover-color:var(--color-blue-205-100-45);--palette-entry-selected-color:var(--color-blue-205-100-50);--palette-separator-color:var(--color-grey-225-10-75);--palette-toggle-hover-background-color:var(--color-grey-225-10-55);--palette-background-color:var(--color-grey-225-10-97);--palette-border-color:var(--color-grey-225-10-75);--popup-font-family:"IBM Plex Sans", sans-serif;--popup-font-size:14px;--popup-secondary-font-size:.9em;--popup-header-entry-selected-color:var(--color-blue-205-100-50);--popup-header-font-weight:bolder;--popup-header-group-divider-color:var(--color-grey-225-10-75);--popup-background-color:var(--color-white);--popup-border-color:transparent;--popup-shadow-color:var(--color-black-opacity-30);--popup-disabled-color:var(--color-grey-225-10-35);--popup-description-color:var(--color-grey-225-10-35);--popup-no-results-color:var(--color-grey-225-10-55);--popup-entry-title-color:var(--color-grey-225-10-55);--popup-entry-hover-color:var(--color-grey-225-10-95);--popup-search-border-color:var(--color-grey-225-10-75);--popup-search-focus-border-color:var(--color-blue-205-100-50);--popup-search-focus-background-color:var(--color-blue-205-100-95);--popup-tab-color:var(--color-grey-225-10-55);--popup-tab-hover-color:var(--color-grey-225-10-15);--popup-tab-active-color:var(--color-grey-225-10-15);--popup-tab-active-border-color:var(--color-blue-205-100-50);--popup-tab-strip-border-color:var(--color-grey-225-10-90);--popup-tab-focus-border-color:var(--color-blue-205-100-50);--resizer-fill-color:var(--color-blue-205-100-45);--resizer-stroke-color:var(--canvas-fill-color);--search-font-family:"IBM Plex Sans", sans-serif;--search-font-size:14px;--search-container-background-color:var(--color-white);--search-shadow-color:var(--color-black-opacity-30);--search-input-border-color:var(--color-grey-225-10-75);--search-input-focus-border-color:var(--color-blue-205-100-50);--search-input-focus-background-color:var(--color-blue-205-100-95);--search-result-hover-background-color:var(--color-grey-225-10-95);--search-result-secondary-color:var(--color-grey-225-10-55);--search-preselected-background-color:var(--color-blue-205-100-50-opacity-15);--shape-attach-allowed-stroke-color:var(--color-blue-205-100-50);--shape-connect-allowed-fill-color:var(--color-grey-225-10-97);--shape-drop-allowed-fill-color:var(--color-grey-225-10-97);--shape-drop-not-allowed-fill-color:var(--color-red-360-100-97);--shape-resize-preview-stroke-color:var(--color-blue-205-100-50);--snap-line-stroke-color:var(--color-blue-205-100-45-opacity-30);--space-tool-crosshair-stroke-color:var(--color-black);--tooltip-error-background-color:var(--color-red-360-100-97);--tooltip-error-border-color:var(--color-red-360-100-45);--tooltip-error-color:var(--color-red-360-100-45)}.djs-container svg.drop-not-ok{background:var(--shape-drop-not-allowed-fill-color)!important}.djs-container svg.new-parent{background:var(--shape-drop-allowed-fill-color)!important}.djs-container svg:focus{outline-offset:-1px}.djs-outline,.djs-selection-outline{fill:none;shape-rendering:geometricprecision;stroke-width:2px}.djs-outline{visibility:hidden}.djs-selection-outline{stroke:var(--element-selected-outline-stroke-color)}.djs-element.selected .djs-outline{visibility:visible;stroke:var(--element-selected-outline-stroke-color)}.djs-connection.selected .djs-outline{display:none}.djs-multi-select .djs-element.selected .djs-outline,.djs-dragging-active-lasso .djs-element.selected .djs-outline{stroke:var(--element-selected-outline-secondary-stroke-color);display:block}.djs-outline-hidden .djs-outline{display:none!important}.djs-shape.connect-ok .djs-visual>:first-child{fill:var(--shape-connect-allowed-fill-color)!important}.djs-shape.connect-not-ok .djs-visual>:first-child,.djs-shape.drop-not-ok .djs-visual>:first-child{fill:var(--shape-drop-not-allowed-fill-color)!important}.djs-shape.new-parent .djs-visual>:first-child{fill:var(--shape-drop-allowed-fill-color)!important}.drop-not-ok,.connect-not-ok,.drop-not-ok *,.connect-not-ok *{cursor:not-allowed!important}.drop-ok,.connect-ok,.drop-ok *,.connect-ok *{cursor:default!important}.djs-element.attach-ok .djs-visual>:first-child{stroke-width:5px!important;stroke:var(--shape-attach-allowed-stroke-color)!important}.djs-frame.connect-not-ok .djs-visual>:first-child,.djs-frame.drop-not-ok .djs-visual>:first-child{stroke-width:3px!important;stroke:var(--shape-drop-not-allowed-fill-color)!important;fill:none!important}.djs-lasso-overlay{fill:var(--lasso-fill-color);stroke:var(--lasso-stroke-color);stroke-width:2px;shape-rendering:geometricprecision;pointer-events:none}.djs-resize-overlay{fill:none;stroke-dasharray:5 1 3 1;stroke:var(--shape-resize-preview-stroke-color);pointer-events:none}.djs-resizer-hit{fill:none;pointer-events:all}.djs-resizer-visual{fill:var(--resizer-fill-color);stroke-width:1px;stroke:var(--resizer-stroke-color);shape-rendering:geometricprecision}.djs-resizer:hover .djs-resizer-visual{stroke:var(--resizer-stroke-color);stroke-opacity:1}.djs-cursor-resize-ns,.djs-resizer-n,.djs-resizer-s{cursor:ns-resize}.djs-cursor-resize-ew,.djs-resizer-e,.djs-resizer-w{cursor:ew-resize}.djs-cursor-resize-nwse,.djs-resizer-nw,.djs-resizer-se{cursor:nwse-resize}.djs-cursor-resize-nesw,.djs-resizer-ne,.djs-resizer-sw{cursor:nesw-resize}.djs-shape.djs-resizing>.djs-outline{visibility:hidden!important}.djs-shape.djs-resizing>.djs-resizer,.djs-dragger>.djs-resizer{visibility:hidden}.djs-dragger *{fill:none!important;stroke:var(--element-dragger-color)!important}.djs-dragger tspan,.djs-dragger text,.djs-dragger marker circle,.djs-dragger marker path,.djs-dragger marker polygon,.djs-dragger marker polyline,.djs-dragger marker rect{fill:var(--element-dragger-color)!important;stroke:none!important}.djs-dragger marker text,.djs-dragger marker tspan{fill:none!important;stroke:var(--element-dragger-color)!important}.djs-dragging,.djs-dragging>*{opacity:.3!important;pointer-events:none!important}.djs-visual,.djs-outline{pointer-events:none}.djs-element.attach-ok .djs-hit{stroke-width:60px!important}.djs-element>.djs-hit-all,.djs-element>.djs-hit-no-move{pointer-events:all}.djs-element>.djs-hit-stroke,.djs-element>.djs-hit-click-stroke{pointer-events:stroke}.djs-connection .djs-visual{stroke-width:2px;fill:none}.djs-cursor-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.djs-cursor-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.djs-cursor-crosshair{cursor:crosshair}.djs-cursor-move{cursor:move}.djs-cursor-resize-ns{cursor:ns-resize}.djs-cursor-resize-ew{cursor:ew-resize}.djs-snap-line{stroke:var(--snap-line-stroke-color);stroke-linecap:round;stroke-width:2px;pointer-events:none}.djs-crosshair{stroke:var(--space-tool-crosshair-stroke-color);stroke-linecap:round;stroke-width:1px;pointer-events:none;shape-rendering:geometricprecision;stroke-dasharray:5 5}.djs-palette{box-sizing:border-box;width:48px;position:absolute;top:20px;left:20px}.djs-palette .separator{border:none;border-bottom:solid 1px var(--palette-separator-color);clear:both;margin:5px;padding-top:5px}.djs-palette .entry:before{vertical-align:initial}.djs-palette .djs-palette-toggle{cursor:pointer}.djs-palette .entry,.djs-palette .djs-palette-toggle{color:var(--palette-entry-color);text-align:center;font-size:30px}.djs-palette .entry{float:left}.djs-palette .entry img{max-width:100%}.djs-palette .djs-palette-entries:after{content:"";clear:both;display:table}.djs-palette .djs-palette-toggle:hover{background:var(--palette-toggle-hover-background-color)}.djs-palette .entry:hover{color:var(--palette-entry-hover-color)}.djs-palette .highlighted-entry{color:var(--palette-entry-selected-color)!important}.djs-palette .entry,.djs-palette .djs-palette-toggle{cursor:default;width:46px;height:46px;line-height:46px}.djs-palette.two-column.open{width:94px}.djs-palette:not(.open) .djs-palette-entries{display:none}.djs-palette:not(.open){overflow:hidden}.djs-palette.open .djs-palette-toggle{display:none}.djs-context-pad{pointer-events:none;z-index:100;width:72px;line-height:1;display:none;position:absolute}.djs-context-pad .entry{text-align:center;cursor:default;background-color:var(--context-pad-entry-background-color);width:22px;height:22px;box-shadow:0 0 2px 1px var(--context-pad-entry-background-color);pointer-events:all;vertical-align:middle;border-radius:3px;margin:0 2px 2px 0;font-size:22px;display:inline-block}.djs-context-pad .entry:hover{background:var(--context-pad-entry-hover-background-color)}.djs-context-pad.open{display:block}.djs-popup{box-sizing:border-box;background:var(--popup-background-color);z-index:200;box-shadow:0px 2px 6px var(--popup-shadow-color);border:solid 1px var(--popup-border-color);min-width:120px;max-width:300px;line-height:1;font-size:var(--popup-font-size);font-family:var(--popup-font-family);outline:none;position:fixed;overflow:hidden}.djs-popup-search input{box-sizing:border-box;width:100%;font-size:var(--popup-font-size);border:solid 1px var(--popup-search-border-color);border-radius:2px;padding:3px 6px 3px 28px;line-height:21px}.djs-popup-search input:focus{background-color:var(--popup-search-focus-background-color);border:solid 1px var(--popup-search-focus-border-color);outline:none}.djs-popup-header{align-items:stretch;margin:10px 12px;line-height:20px;display:flex}.djs-popup-header .entry{border-radius:2px}.djs-popup button.entry{background:0 0;border:0;padding:0}.djs-popup-header .entry.active{color:var(--popup-header-entry-selected-color)}.djs-popup-header .entry.disabled{color:inherit}.djs-popup-header-group{flex-direction:row;align-items:center;margin:0;padding:0;list-style:none;display:flex}.djs-popup-header-group .entry{flex-direction:row;align-items:center;display:flex}.djs-popup-header-group+.djs-popup-header-group:before{content:"";background:var(--popup-header-group-divider-color);width:1px;height:20px;margin:0 5px}.djs-popup-search{width:auto;margin:10px 12px;position:relative}.djs-popup-tabs-container{border-bottom:solid 1px var(--popup-tab-strip-border-color);position:relative}.djs-popup-tabs-scroll{appearance:none;width:28px;color:var(--popup-tab-color);cursor:pointer;border:none;border-radius:0;align-items:center;padding:0;display:flex;position:absolute;top:0;bottom:1px}.djs-popup-tabs-scroll:hover{color:var(--popup-tab-hover-color)}.djs-popup-tabs-scroll-start{background:linear-gradient(to left, transparent, var(--popup-background-color) 60%);justify-content:flex-start;left:0}.djs-popup-tabs-scroll-end{background:linear-gradient(to right, transparent, var(--popup-background-color) 60%);justify-content:flex-end;right:0}.djs-popup-tabs-scroll-start svg{transform:rotate(180deg)}.djs-popup-tabs{scrollbar-width:none;flex-wrap:nowrap;gap:2px;padding:0 12px;scroll-padding:0 28px;display:flex;overflow:auto hidden}.djs-popup-tabs::-webkit-scrollbar{display:none}.djs-popup-tab{appearance:none;font:inherit;font-size:var(--popup-font-size);color:var(--popup-tab-color);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;flex:none;padding:6px 10px}.djs-popup-tab:hover{color:var(--popup-tab-hover-color)}.djs-popup-tab:focus-visible{outline:solid 1px var(--popup-tab-focus-border-color);outline-offset:-2px}.djs-popup-tab[aria-selected=true]{color:var(--popup-tab-active-color);border-bottom-color:var(--popup-tab-active-border-color);font-weight:var(--popup-header-font-weight)}.djs-popup-title{font-size:var(--popup-font-size);font-weight:var(--popup-header-font-weight);flex:1;margin:0}.djs-popup-breadcrumbs{margin:10px 12px;line-height:20px;display:flex}.djs-popup-breadcrumbs-item{appearance:none;min-width:0;color:var(--popup-description-color);font:inherit;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;outline:none;margin:0;padding:0;display:inline-flex;overflow:hidden}.djs-popup-breadcrumbs-item--separator:before{content:"/";color:var(--popup-description-color);margin:0 4px;display:inline-block}.djs-popup-breadcrumbs-item:hover{color:inherit;text-decoration:underline}.djs-popup-breadcrumbs-item:focus-visible{outline:1px solid var(--popup-search-focus-border-color);outline-offset:2px}.djs-popup-breadcrumbs-item--back{border:1px solid var(--popup-search-border-color);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;margin-right:6px;padding:2px 3px}.djs-popup-breadcrumbs-item--back:hover{background:#f2f3f5}.djs-popup-breadcrumbs-item--current{font-weight:var(--popup-header-font-weight);color:inherit;cursor:default}.djs-popup-breadcrumbs-item--current:hover{text-decoration:none}.djs-popup-entry-actions{flex-shrink:0;align-items:center;gap:6px;margin-left:6px;display:flex}.djs-popup-entry-chevron{color:var(--popup-description-color);align-items:center;display:flex}.djs-popup-search-icon{position:absolute;top:7px;left:8px}.djs-popup-search-count{font-size:var(--popup-secondary-font-size);color:var(--popup-description-color);margin:0 12px}.djs-popup-results{max-height:280px;margin:7px 3px 7px 12px;padding-right:9px;list-style:none;overflow:auto}.djs-popup-results:focus{outline:none}.djs-popup-group{width:100%;margin:0;padding:0}.djs-popup-body .entry,.djs-popup-body .entry-header{cursor:default;border-radius:4px;padding:5px 7px}.djs-popup-body .entry-header{font-weight:var(--popup-header-font-weight);color:var(--popup-entry-title-color);padding-left:0}.djs-popup [class*=icon] .djs-popup-label,.djs-popup-label:not(:first-child){margin-left:.5em}.djs-popup [class*=icon]:before,.djs-popup-entry-icon{vertical-align:middle;width:1em;height:1em;font-size:1.4em;display:inline-block}.djs-popup-body .entry-header:not(:first-child){margin-top:8px;margin-bottom:2px}.djs-popup-body .entry{flex-direction:row;align-items:stretch;height:min-content;display:flex}.djs-popup .entry.selected{background-color:var(--popup-entry-hover-color)}.djs-popup .entry.disabled{color:var(--popup-disabled-color);cursor:not-allowed}.djs-popup-body .entry:not(:first-child){margin-top:2px}.djs-popup-entry-content{flex-direction:column;flex:1;display:flex}.djs-popup-entry-description{font-size:var(--popup-secondary-font-size);color:var(--popup-description-color);margin-top:.25em}.djs-popup-label,.djs-popup-entry-description{line-height:1.4em}.djs-popup .entry,.djs-popup .entry-header{margin:1px}.djs-popup-body{flex-direction:column;width:auto}.djs-popup ::-webkit-scrollbar{width:6px}.djs-popup ::-webkit-scrollbar-thumb{background-color:#0003;border-radius:3px}.djs-popup ::-webkit-scrollbar-track{box-shadow:none;background:0 0;margin:0;padding:5px}.djs-popup-no-results{color:var(--popup-no-results-color);padding:0 12px 12px}.djs-popup-footer{border-top:solid 1px var(--popup-border-color);padding:5px 12px 7px;display:flex}.djs-popup-results:hover~.djs-popup-footer{display:none}.djs-popup-entry-docs{visibility:hidden;color:var(--popup-description-color);border:1px solid var(--popup-search-border-color);cursor:pointer;background:#fff;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:2px 3px;transition:background-color .12s,border-color .12s,color .12s;display:flex}.djs-popup-body .entry:hover .djs-popup-entry-docs{visibility:visible}.djs-popup-body .entry .djs-popup-entry-docs:hover{background:#f2f3f5}.djs-popup-entry-docs svg{vertical-align:middle}.djs-popup-footer-docs{font-size:var(--popup-secondary-font-size);color:var(--popup-description-color);align-items:center;gap:3px;text-decoration:none;display:inline-flex}.djs-popup-footer-docs:hover{text-decoration:underline}.djs-popup-footer-docs svg{vertical-align:middle;margin:2px}.djs-palette{background:var(--palette-background-color);border:solid 1px var(--palette-border-color);border-radius:2px}.djs-segment-dragger,.djs-bendpoint{display:none}.djs-segment-dragger .djs-visual{fill:var(--bendpoint-fill-color);stroke:var(--bendpoint-stroke-color);stroke-width:1px;stroke-opacity:1;display:none}.djs-segment-dragger:hover .djs-visual{display:block}.djs-bendpoint .djs-visual{fill:var(--bendpoint-fill-color);stroke:var(--bendpoint-stroke-color);stroke-width:1px}.djs-segment-dragger:hover,.djs-bendpoints.hover .djs-segment-dragger,.djs-bendpoints.selected .djs-segment-dragger,.djs-bendpoint:hover,.djs-bendpoints.hover .djs-bendpoint,.djs-bendpoints.selected .djs-bendpoint{display:block}.djs-drag-active .djs-bendpoints *,.djs-bendpoints:not(.hover) .floating,.djs-bendpoint.floating:not(.positioned){display:none}.djs-segment-dragger:hover .djs-visual,.djs-segment-dragger.djs-dragging .djs-visual,.djs-bendpoint:hover .djs-visual,.djs-bendpoint.floating .djs-visual{fill:var(--bendpoint-fill-color);stroke:var(--bendpoint-stroke-color);stroke-opacity:1}.djs-bendpoint.floating .djs-hit{pointer-events:none}.djs-segment-dragger .djs-hit,.djs-bendpoint .djs-hit{fill:none;pointer-events:all}.djs-segment-dragger.horizontal .djs-hit{cursor:ns-resize}.djs-segment-dragger.vertical .djs-hit{cursor:ew-resize}.djs-segment-dragger.djs-dragging .djs-hit{pointer-events:none}.djs-updating,.djs-updating>*{pointer-events:none!important}.djs-updating .djs-context-pad,.djs-updating .djs-outline,.djs-updating .djs-bendpoint,.djs-multi-select .djs-bendpoint,.djs-multi-select .djs-segment-dragger,.connect-ok .djs-bendpoint,.connect-not-ok .djs-bendpoint,.drop-ok .djs-bendpoint,.drop-not-ok .djs-bendpoint{display:none!important}.djs-segment-dragger.djs-dragging,.djs-bendpoint.djs-dragging{opacity:1;display:block}.djs-tooltip-error{background:var(--tooltip-error-background-color);border:solid 1px var(--tooltip-error-border-color);width:160px;color:var(--tooltip-error-color);opacity:.75;border-radius:2px;padding:6px;font-size:12px;line-height:16px}.djs-tooltip-error:hover{opacity:1}.djs-search-open .djs-context-pad{display:none}.djs-search-open .djs-connection.selected .djs-outline{display:block}.djs-search-container{z-index:10;width:25%;min-width:300px;max-width:400px;font-family:var(--search-font-family);font-size:var(--search-font-size);box-shadow:0px 2px 6px var(--search-shadow-color);border-radius:2px;margin-left:auto;margin-right:auto;position:absolute;top:20px;left:0;right:0}.djs-search-container:not(.open){display:none}.djs-search-input{position:relative}.djs-search-input svg{position:absolute;top:7px;left:8px}.djs-search-input input{font-size:var(--search-font-size);border:1px solid var(--search-input-border-color);box-sizing:border-box;border-radius:2px;width:100%;padding:3px 6px 3px 28px;line-height:21px}.djs-search-input input:focus{background-color:var(--search-input-focus-background-color);border:solid 1px var(--search-input-focus-border-color);outline:none}.djs-search-results{background:var(--search-container-background-color);max-height:200px;position:relative;overflow-y:auto}.djs-search-result{padding:6px 8px}.djs-search-result-primary{text-overflow:ellipsis;white-space:nowrap;margin:0 0 3px;overflow:hidden}.djs-search-result-secondary{text-overflow:ellipsis;white-space:nowrap;color:var(--search-result-secondary-color);margin:0;font-family:monospace;overflow:hidden}.djs-search-result:hover,.djs-search-result-selected,.djs-search-result-selected:hover{background:var(--search-result-hover-background-color)}.djs-search-open .djs-element .djs-outline{fill:var(--search-preselected-background-color)!important}.djs-element-hidden,.djs-element-hidden .djs-hit,.djs-element-hidden .djs-outline,.djs-label-hidden .djs-label{display:none!important}.djs-element .djs-hit-stroke,.djs-element .djs-hit-click-stroke,.djs-element .djs-hit-all{cursor:move}:root{--cd-blau:#335de5;--cd-gruen:#00e676;--cd-grau:#f9f7f7;--cd-schwarz:#1d1d1d;--cd-weiss:#fff;--cd-blau-link:#2b50d4;--cd-blau-hell:#6b8aff;--cd-success:#0b7a55;--cd-success-soft:#0b7a551f;--cd-warning:#92610a;--cd-warning-soft:#92610a1f;--cd-danger:#c92a2a;--cd-danger-soft:#c92a2a1f;--cd-info:#2b50d4;--cd-info-soft:#2b50d41f;--cd-gradient-brand:linear-gradient(120deg, #335de5 30%, #00e676);--cd-gradient-format:linear-gradient(135deg, #335de5 0%, #00e676 140%);--cd-space-1:4px;--cd-space-2:8px;--cd-space-3:16px;--cd-space-4:24px;--cd-space-5:32px;--cd-space-6:48px;--cd-space-7:64px;--cd-space-8:96px;--cd-radius-sm:6px;--cd-radius-md:12px;--cd-radius-lg:16px;--cd-radius-pill:999px;--cd-shadow-1:0 1px 2px #1d1d1d0f, 0 1px 3px #1d1d1d1a;--cd-shadow-2:0 4px 12px #1d1d1d1a;--cd-shadow-3:0 12px 32px #1d1d1d29;--cd-motion-fast:.15s;--cd-motion-base:.25s;--cd-motion-slow:.4s;--cd-ease:cubic-bezier(.4, 0, .2, 1);--cd-ease-out:cubic-bezier(0, 0, .2, 1)}.cm-djs-container{--cm-accent:var(--cd-blau);--cm-accent-soft:#335de51f;--cm-line:#e6e2e2;--cm-ink:var(--cd-schwarz);background-color:var(--cd-grau);background-image:radial-gradient(#1d1d1d0f .6px,#0000 .6px);background-size:22px 22px;width:100%;height:100%;font-family:Geist Variable,Geist,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;position:relative;overflow:hidden}.cm-djs-container:focus,.cm-djs-container:focus-visible,.cm-djs-container svg:focus{outline:none}.cm-djs-container .djs-element text{-webkit-user-select:none;user-select:none}.cm-djs-container .djs-element.hover .djs-visual>:first-child:not(text),.cm-djs-container .djs-element.selected .djs-visual>:first-child:not(text){stroke:var(--cm-accent)!important}.cm-djs-container .djs-outline{stroke:var(--cm-accent);stroke-dasharray:3 3}.cm-djs-container .djs-resizer-visual{fill:var(--cd-weiss);stroke:var(--cm-accent)}.cm-djs-container .djs-resizer-hit{fill:none}.djs-palette{z-index:5;background:var(--cd-weiss);border:1px solid var(--cm-line,#e6e2e2);border-radius:var(--cd-radius-md);width:auto;box-shadow:var(--cd-shadow-2);align-items:center;padding:5px 6px;display:flex;top:12px;left:50%;transform:translate(-50%)}.djs-palette .djs-palette-entries,.djs-palette .group{flex-direction:row;align-items:center;gap:2px;display:flex}.djs-palette .entry{float:none;border-radius:var(--cd-radius-sm);width:40px;height:40px;color:var(--cd-schwarz);line-height:normal;transition:background .12s,color .12s,box-shadow .12s;position:relative}.djs-palette .entry:hover{color:var(--cd-blau);background:#335de51f}.djs-palette .group+.group{margin-left:9px;padding-left:9px;position:relative}.djs-palette .group+.group:before{content:"";background:var(--cm-line,#e6e2e2);width:1px;position:absolute;top:6px;bottom:6px;left:0}.cm-palette-entry{justify-content:center;align-items:center;width:100%;min-width:24px;height:100%;min-height:24px;line-height:1;display:flex}.cm-palette-svg{pointer-events:none;display:block}.djs-palette .entry.highlighted-entry{background:var(--cm-accent-soft,#335de51f);box-shadow:inset 0 0 0 1.5px var(--cm-accent,#335de5);color:var(--cm-accent,#335de5)!important}.cm-connect-handle{border-radius:var(--cd-radius-sm);width:28px;height:28px;box-shadow:var(--cd-shadow-1);background:var(--cd-weiss);color:var(--cd-schwarz);cursor:pointer;justify-content:center;align-items:center;transition:background .12s,color .12s;display:flex}.cm-connect-handle:hover{background:var(--cm-accent-soft);color:var(--cm-accent)}.djs-context-pad.open{flex-direction:column;align-items:stretch;gap:4px;display:flex}.djs-context-pad.cm-pad-flip-x{transform:translate(calc(-100% - 16px),14px)}.djs-context-pad.cm-pad-flip-y{transform:translateY(calc(-100% - 16px))}.djs-context-pad .group{flex-direction:column;align-items:stretch;gap:4px;display:flex}.djs-context-pad .entry.cm-pad-entry{background:var(--cd-weiss,#fff);border:1px solid var(--cm-line,#e6e2e2);border-radius:var(--cd-radius-md,12px);width:40px;height:30px;box-shadow:var(--cd-shadow-1,0 1px 3px #1d1d1d1a);color:var(--cd-schwarz,#1d1d1d);cursor:pointer;justify-content:center;align-items:center;margin:0;transition:background .12s,color .12s,border-color .12s;display:flex}.djs-context-pad .entry.cm-pad-entry:hover{background:var(--cm-accent-soft,#335de51f);border-color:var(--cm-accent,#335de5);color:var(--cm-accent,#335de5)}.djs-context-pad .entry.cm-pad-entry--danger:hover{background:var(--cd-danger-soft,#c92a2a1f);border-color:var(--cd-danger,#c92a2a);color:var(--cd-danger,#c92a2a)}.djs-context-pad .cm-palette-svg{pointer-events:none}.cm-dragging .djs-context-pad,.cm-dragging .djs-context-pad *{pointer-events:none!important}.djs-popup{--popup-font-family:"Geist Variable", "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--popup-background-color:var(--cd-weiss,#fff);--popup-border-color:#e6e2e2;--popup-entry-hover-color:#335de51f;--popup-header-entry-selected-color:var(--cd-blau,#335de5);--popup-search-focus-border-color:var(--cd-blau,#335de5);--popup-search-focus-background-color:#335de50f;--popup-tab-active-border-color:var(--cd-blau,#335de5);--popup-tab-focus-border-color:var(--cd-blau,#335de5);border-radius:var(--cd-radius-md,12px);box-shadow:var(--cd-shadow-3,0 12px 32px #1d1d1d29);animation:cm-popup-in var(--cd-motion-fast,.15s) var(--cd-ease-out,cubic-bezier(0, 0, .2, 1))}.djs-popup .djs-popup-results{padding:4px 6px 6px}.djs-popup .djs-popup-entry-icon{width:24px;height:24px;font-size:1em}.djs-popup .djs-popup-entry-icon .cm-palette-svg{width:100%;height:100%;display:block}.djs-popup .entry.disabled,.djs-popup .entry.disabled.selected{background-color:#0000}.djs-popup .entry.disabled .djs-popup-entry-name{opacity:.5}.djs-popup .djs-popup-entry-name.cm-popup-active{color:var(--cd-blau,#335de5);font-weight:600}.djs-popup .djs-popup-entry-name.cm-popup-active .djs-popup-label:after{content:" ✓"}@keyframes cm-popup-in{0%{opacity:0;transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){.djs-popup{animation:none}}.cm-legend{border:1px solid var(--cm-line,#e6e2e2);border-radius:var(--cd-radius-md,12px);max-height:calc(100% - 32px);box-shadow:var(--cd-shadow-2,0 4px 12px #1d1d1d1a);z-index:4;background:#fffffff5;flex-direction:column;min-width:172px;padding:12px 14px;display:flex;position:absolute;bottom:16px;left:16px}.cm-legend:has(.cm-legend-item:hover){z-index:120}.cm-legend__body{min-height:0;overflow-y:auto}.cm-legend__head{color:#5b5b5b;flex:none;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:12px;display:flex}.cm-legend__close{font:inherit;color:#8a8577;cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:17px;line-height:1}.cm-legend__close:hover{color:var(--cm-ink,#1d1d1d)}.cm-legend__group{flex-direction:column;gap:6px;display:flex}.cm-legend__row{color:var(--cm-ink,#1d1d1d);align-items:center;gap:9px;font-size:12.5px;display:flex}.cm-legend__divider{background:var(--cm-line,#e6e2e2);height:1px;margin:10px 0}.cm-legend__icon{display:inline-flex}.cm-legend__mark{color:#fff;border:1px solid #0003;border-radius:4px;justify-content:center;align-items:center;min-width:22px;height:20px;padding:0 6px;font-size:12px;font-weight:700;display:inline-flex}.cm-legend-toggle{z-index:4;background:var(--cd-weiss,#fff);border:1px solid var(--cm-line,#e6e2e2);border-radius:var(--cd-radius-md,12px);box-shadow:var(--cd-shadow-1,0 1px 3px #1d1d1d1a);font:inherit;color:var(--cm-ink,#1d1d1d);cursor:pointer;align-items:center;gap:6px;padding:6px 10px;font-size:12.5px;font-weight:600;line-height:1;transition:background .12s,border-color .12s,color .12s;display:inline-flex;position:absolute;bottom:16px;left:16px}.cm-legend-toggle:hover{background:var(--cm-accent-soft,#335de51f);border-color:var(--cm-accent,#335de5);color:var(--cm-accent,#335de5)}.cm-legend-item{white-space:nowrap;cursor:help;position:relative}.cm-legend-tip{color:#fff;white-space:normal;pointer-events:none;background:#1d1d1df5;border-radius:8px;width:max-content;max-width:280px;padding:8px 10px;font-size:12px;font-weight:400;line-height:1.4;display:none;position:fixed;transform:translateY(-50%);box-shadow:0 6px 20px #00000040}.cm-legend-tip:before{content:"";border:6px solid #0000;border-right-color:#1d1d1df5;position:absolute;top:50%;right:100%;transform:translateY(-50%)}.cm-legend-item:hover .cm-legend-tip{display:block}.cm-legend__close:focus-visible,.cm-legend-toggle:focus-visible{outline:2px solid var(--cm-accent,#335de5);outline-offset:2px}.cm-dragging .cm-legend,.cm-dragging .cm-legend-toggle{pointer-events:none}.cm-direct-editing .djs-visual text.cm-name,.cm-direct-editing-team .djs-visual .cm-team{display:none}.cm-djs-container .djs-direct-editing-parent{z-index:150;color:var(--cm-ink,#1d1d1d)}.cm-djs-container .djs-direct-editing-content{caret-color:var(--cm-accent,#335de5);overflow-wrap:break-word}.cm-pad-prompt{z-index:210;background:var(--cd-weiss,#fff);border:1px solid var(--cm-line,#e6e2e2);border-radius:var(--cd-radius-md,12px);min-width:240px;box-shadow:var(--cd-shadow-3,0 12px 32px #1d1d1d29);padding:8px;position:fixed}.cm-pad-prompt__field{width:100%;color:var(--cm-ink,#1d1d1d);border:1px solid var(--cm-line,#e6e2e2);border-radius:var(--cd-radius-sm,6px);resize:vertical;background:#f3f1f1;outline:none;padding:6px 8px;font-family:inherit;font-size:13px;display:block}.cm-pad-prompt__field:focus{border-color:var(--cm-accent,#335de5);background:var(--cd-weiss,#fff);box-shadow:0 0 0 2px #335de51f}.cm-pad-prompt__hint{color:#5b5b5b;margin-top:6px;font-size:11px}.cm-validation-marker{cursor:help;filter:drop-shadow(0 1px 1px #00000040);width:20px;height:20px;position:relative}.cm-validation-tooltip{width:max-content;max-width:280px;color:var(--cm-ink,#1d1d1d);pointer-events:none;z-index:200;background:#fff;border:1px solid #d9d5cc;border-radius:8px;padding:8px 10px;font-family:Geist Variable,Geist,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:12px;line-height:1.45;display:none;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 6px 18px #0000002e}.cm-validation-marker:hover .cm-validation-tooltip{display:block}.cm-validation-tooltip__message+.cm-validation-tooltip__message{border-top:1px solid #eceae4;margin-top:6px;padding-top:6px}.cm-dragging .djs-overlay-container,.cm-dragging .djs-overlay-container *{pointer-events:none!important}.cm-djs-container .djs-element.connect-ok,.cm-djs-container svg.connect-ok{cursor:crosshair}.cm-djs-container .djs-element.connect-not-ok,.cm-djs-container svg.connect-not-ok{cursor:not-allowed}
|
|
2
2
|
/*$vite$:1*/
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { default as ContextPad } from 'diagram-js/lib/features/context-pad/ContextPad';
|
|
2
|
+
import { ContextPadEntries, default as ContextPadProvider } from 'diagram-js/lib/features/context-pad/ContextPadProvider';
|
|
3
|
+
import { default as PopupMenu } from 'diagram-js/lib/features/popup-menu/PopupMenu';
|
|
4
|
+
import { default as Connect } from 'diagram-js/lib/features/connect/Connect';
|
|
5
|
+
import { default as Create } from 'diagram-js/lib/features/create/Create';
|
|
6
|
+
import { default as AutoPlace } from 'diagram-js/lib/features/auto-place/AutoPlace';
|
|
7
|
+
import { default as Dragging } from 'diagram-js/lib/features/dragging/Dragging';
|
|
8
|
+
import { default as Modeling } from 'diagram-js/lib/features/modeling/Modeling';
|
|
9
|
+
import { default as Rules } from 'diagram-js/lib/features/rules/Rules';
|
|
10
|
+
import { default as Selection } from 'diagram-js/lib/features/selection/Selection';
|
|
11
|
+
import { default as Scheduler } from 'diagram-js/lib/features/scheduler/Scheduler';
|
|
12
|
+
import { default as Canvas } from 'diagram-js/lib/core/Canvas';
|
|
13
|
+
import { default as EventBus } from 'diagram-js/lib/core/EventBus';
|
|
14
|
+
import { Element } from 'diagram-js/lib/model/Types';
|
|
15
|
+
import { default as CmModeling } from '../modeling/CmModeling.js';
|
|
16
|
+
import { default as CmLabelEditing } from '../label-editing/CmLabelEditing.js';
|
|
17
|
+
import { default as CmElementFactory } from '../model/CmElementFactory.js';
|
|
18
|
+
export default class CmContextPadProvider implements ContextPadProvider {
|
|
19
|
+
private readonly contextPad;
|
|
20
|
+
private readonly popupMenu;
|
|
21
|
+
private readonly eventBus;
|
|
22
|
+
private readonly create;
|
|
23
|
+
private readonly autoPlace;
|
|
24
|
+
private readonly rules;
|
|
25
|
+
private readonly dragging;
|
|
26
|
+
private readonly modeling;
|
|
27
|
+
private readonly cmModeling;
|
|
28
|
+
private readonly labelEditing;
|
|
29
|
+
private readonly elementFactory;
|
|
30
|
+
private readonly selection;
|
|
31
|
+
private readonly canvas;
|
|
32
|
+
private readonly scheduler;
|
|
33
|
+
static $inject: string[];
|
|
34
|
+
/** The last pad-opened menu, so a roles toggle can re-open it in place. */
|
|
35
|
+
private currentMenu?;
|
|
36
|
+
constructor(contextPad: ContextPad, popupMenu: PopupMenu, eventBus: EventBus, connect: Connect, create: Create, autoPlace: AutoPlace, rules: Rules, dragging: Dragging, modeling: Modeling, cmModeling: CmModeling, labelEditing: CmLabelEditing, elementFactory: CmElementFactory, selection: Selection, canvas: Canvas, scheduler: Scheduler);
|
|
37
|
+
private clampPadIntoView;
|
|
38
|
+
getContextPadEntries(element: Element): ContextPadEntries;
|
|
39
|
+
getMultiElementContextPadEntries(elements: Element[]): ContextPadEntries;
|
|
40
|
+
private contextEntries;
|
|
41
|
+
/**
|
|
42
|
+
* Same payload as Connect#start, mirroring CmConnectHandles, but with
|
|
43
|
+
* diagram-js' ghost-click trap OFF for both variants: the trap relies on the
|
|
44
|
+
* gesture-ending canvas click, which Chromium suppresses whenever the
|
|
45
|
+
* mousedown target was re-rendered by the connect command — the unconsumed
|
|
46
|
+
* trap would then swallow the user's NEXT click. The click variant instead
|
|
47
|
+
* blocks exactly one immediately-following element.click itself (when it
|
|
48
|
+
* does fire, it must not re-select the target over the fresh relationship).
|
|
49
|
+
*/
|
|
50
|
+
private startConnect;
|
|
51
|
+
/**
|
|
52
|
+
* Append a fresh, unclassified context connected to the source. The click
|
|
53
|
+
* variant auto-places it (diagram-js auto-place, which also selects it), the
|
|
54
|
+
* drag variant hands placement to the create tool with a `source` hint —
|
|
55
|
+
* both stamp the connection through the `connection.create` rule. After
|
|
56
|
+
* placement the subdomain-type menu opens so classifying is one click away.
|
|
57
|
+
*/
|
|
58
|
+
private appendContext;
|
|
59
|
+
private startAppend;
|
|
60
|
+
/** Open the subdomain-type menu for a freshly appended context, anchored to
|
|
61
|
+
* its pad entry — deferred one task so the pad has been positioned first. */
|
|
62
|
+
private openTypeMenu;
|
|
63
|
+
private relationshipEntries;
|
|
64
|
+
private editLabelEntry;
|
|
65
|
+
private descriptionEntry;
|
|
66
|
+
/**
|
|
67
|
+
* A small input card anchored beside the clicked pad entry (like the popup
|
|
68
|
+
* menus — below would cover the rest of the vertical stack) — for the
|
|
69
|
+
* free-text properties, which should not open centred over the element.
|
|
70
|
+
* Enter (Ctrl/Cmd+Enter in the multiline variant) and blur commit, Escape
|
|
71
|
+
* cancels.
|
|
72
|
+
*/
|
|
73
|
+
private activePrompt?;
|
|
74
|
+
private openPrompt;
|
|
75
|
+
private deleteEntry;
|
|
76
|
+
private openMenu;
|
|
77
|
+
/**
|
|
78
|
+
* Menus open beside the clicked entry — beneath it they would cover the
|
|
79
|
+
* rest of the vertical stack. At the viewport's right edge PopupMenu flips
|
|
80
|
+
* an overflowing menu back across its anchor (and the whole pad column), so
|
|
81
|
+
* a flipped menu is pushed fully left of the pad instead; the popup applies
|
|
82
|
+
* its initial position only once, so the correction sticks (and is saved
|
|
83
|
+
* for `reopenMenu`).
|
|
84
|
+
*/
|
|
85
|
+
private openMenuBeside;
|
|
86
|
+
/**
|
|
87
|
+
* Re-open a menu after a command: the command stack's `commandStack.changed`
|
|
88
|
+
* auto-closes any popup, but a multi-select menu (integration roles) should
|
|
89
|
+
* survive a toggle so combinations don't require re-opening the pad entry.
|
|
90
|
+
*/
|
|
91
|
+
private reopenMenu;
|
|
92
|
+
private subdomainMenuEntries;
|
|
93
|
+
private patternMenuEntries;
|
|
94
|
+
private rolesMenuEntries;
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=CmContextPadProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CmContextPadProvider.d.ts","sourceRoot":"","sources":["../../src/context-pad/CmContextPadProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,UAAU,MAAM,gDAAgD,CAAC;AAC7E,OAAO,KAAK,EACV,iBAAiB,EAEjB,OAAO,IAAI,kBAAkB,EAC9B,MAAM,wDAAwD,CAAC;AAChE,OAAO,KAAK,SAAS,MAAM,8CAA8C,CAAC;AAG1E,OAAO,KAAK,OAAO,MAAM,yCAAyC,CAAC;AACnE,OAAO,KAAK,MAAM,MAAM,uCAAuC,CAAC;AAChE,OAAO,KAAK,SAAS,MAAM,8CAA8C,CAAC;AAC1E,OAAO,KAAK,QAAQ,MAAM,2CAA2C,CAAC;AACtE,OAAO,KAAK,QAAQ,MAAM,2CAA2C,CAAC;AACtE,OAAO,KAAK,KAAK,MAAM,qCAAqC,CAAC;AAC7D,OAAO,KAAK,SAAS,MAAM,6CAA6C,CAAC;AACzE,OAAO,KAAK,SAAS,MAAM,6CAA6C,CAAC;AACzE,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAS,MAAM,4BAA4B,CAAC;AA+BjE,OAAO,KAAK,UAAU,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,cAAc,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,gBAAgB,MAAM,8BAA8B,CAAC;AAsCjE,MAAM,CAAC,OAAO,OAAO,oBAAqB,YAAW,kBAAkB;IAuBnE,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAEzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IApC5B,MAAM,CAAC,OAAO,WAgBZ;IAEF,2EAA2E;IAC3E,OAAO,CAAC,WAAW,CAAC,CAAyE;gBAG1E,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EACnC,OAAO,EAAE,OAAO,EACC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,cAAc,EAC5B,cAAc,EAAE,gBAAgB,EAChC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS;IA8DvC,OAAO,CAAC,gBAAgB;IAgCxB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,iBAAiB;IAMzD,gCAAgC,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,iBAAiB;IAQxE,OAAO,CAAC,cAAc;IAiDtB;;;;;;;;OAQG;IACH,OAAO,CAAC,YAAY;IAiCpB;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,WAAW;IAUnB;kFAC8E;IAC9E,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,mBAAmB;IA4C3B,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,gBAAgB;IAiBxB;;;;;;OAMG;IACH,OAAO,CAAC,YAAY,CAAC,CAAqB;IAE1C,OAAO,CAAC,UAAU;IA+FlB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,QAAQ;IAMhB;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc;IAiBtB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,oBAAoB;IA2B5B,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,gBAAgB;CA4DzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context-pad/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAa9C,eAAO,MAAM,kBAAkB,EAAE,iBAiBhC,CAAC;AAEF,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -21,6 +21,10 @@ export default class ContextMapsRenderer extends BaseRenderer {
|
|
|
21
21
|
private miniChip;
|
|
22
22
|
/** A single small filled, bordered box (background, text colour, border colour). */
|
|
23
23
|
private chip;
|
|
24
|
+
/** The name starts at the FIXED offset below the type header — the gap
|
|
25
|
+
* between header and name never varies with box size or line count. Lines
|
|
26
|
+
* that would run past the (fixed-size) box are dropped, the last kept line
|
|
27
|
+
* gets an ellipsis. */
|
|
24
28
|
private appendLabel;
|
|
25
29
|
}
|
|
26
30
|
//# sourceMappingURL=ContextMapsRenderer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContextMapsRenderer.d.ts","sourceRoot":"","sources":["../../src/draw/ContextMapsRenderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,YAAY,MAAM,kCAAkC,CAAC;AAO5D,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"ContextMapsRenderer.d.ts","sourceRoot":"","sources":["../../src/draw/ContextMapsRenderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,YAAY,MAAM,kCAAkC,CAAC;AAO5D,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AA+BzF,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,YAAY;IAC3D,MAAM,CAAC,OAAO,WAAgB;gBAElB,QAAQ,EAAE,QAAQ;IAIrB,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO;IAIxC,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,GAAG,UAAU;IAc9D,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,GAAG,UAAU;IAY3E,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM;IAKtC,iBAAiB,CAAC,UAAU,EAAE,cAAc,GAAG,MAAM;IAQ9D,OAAO,CAAC,WAAW;IAwEnB,OAAO,CAAC,gBAAgB;IAuCxB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IA8DlB,iFAAiF;IACjF,OAAO,CAAC,QAAQ;IAmChB,oFAAoF;IACpF,OAAO,CAAC,IAAI;IA2CZ;;;4BAGwB;IACxB,OAAO,CAAC,WAAW;CAsCpB"}
|
package/dist/draw/icons.d.ts
CHANGED
|
@@ -6,5 +6,11 @@ export declare const ICON_ARROW_FORWARD = "M12 4l-1.41 1.41L16.17 11H4v2h12.17l-
|
|
|
6
6
|
export declare const ICON_EDIT = "M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.9959.9959 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z";
|
|
7
7
|
export declare const ICON_DELETE = "M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z";
|
|
8
8
|
export declare const ICON_SWAP = "M6.99 11L3 15l3.99 4v-3H14v-2H6.99v-3zM21 9l-3.99-4v3H10v2h7.01v3L21 9z";
|
|
9
|
+
export declare const ICON_TUNE = "M3 17v2h6v-2H3zM3 5v2h10V5H3zm10 16v-2h8v-2h-8v-2h-2v6h2zM7 9v2H3v2h4v2h2V9H7zm14 4v-2H11v2h10zm-6-4h2V7h4V5h-4V3h-2v6z";
|
|
10
|
+
export declare const ICON_ADD_BOX = "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10h-4v4h-2v-4H7v-2h4V7h2v4h4v2z";
|
|
11
|
+
export declare const ICON_NOTES = "M3 18h12v-2H3v2zM3 6v2h18V6H3zm0 7h18v-2H3v2z";
|
|
12
|
+
export declare const ICON_TEAM = "M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z";
|
|
9
13
|
export declare function iconMarkup(path: string, size?: number): string;
|
|
14
|
+
/** A dashed marquee box — the lasso (rubber-band multi-select) glyph. */
|
|
15
|
+
export declare function lassoIconMarkup(size?: number): string;
|
|
10
16
|
//# sourceMappingURL=icons.d.ts.map
|
package/dist/draw/icons.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/draw/icons.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,kBAAkB,8DAA8D,CAAC;AAC9F,eAAO,MAAM,SAAS,yJACkI,CAAC;AACzJ,eAAO,MAAM,WAAW,kFACyD,CAAC;AAClF,eAAO,MAAM,SAAS,4EAA4E,CAAC;
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/draw/icons.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,kBAAkB,8DAA8D,CAAC;AAC9F,eAAO,MAAM,SAAS,yJACkI,CAAC;AACzJ,eAAO,MAAM,WAAW,kFACyD,CAAC;AAClF,eAAO,MAAM,SAAS,4EAA4E,CAAC;AACnG,eAAO,MAAM,SAAS,4HACqG,CAAC;AAC5H,eAAO,MAAM,YAAY,oHAC0F,CAAC;AAEpH,eAAO,MAAM,UAAU,kDAAkD,CAAC;AAC1E,eAAO,MAAM,SAAS,sSAC+Q,CAAC;AAEtS,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,SAAK,GAAG,MAAM,CAE1D;AAED,yEAAyE;AACzE,wBAAgB,eAAe,CAAC,IAAI,SAAK,GAAG,MAAM,CAEjD"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
import { RelationshipPattern, SubdomainType } from '@miragon/context-maps-schema-model';
|
|
2
|
-
|
|
3
|
-
export declare function
|
|
1
|
+
import { DownstreamRole, RelationshipPattern, SubdomainType, UpstreamRole } from '@miragon/context-maps-schema-model';
|
|
2
|
+
/** No (or unknown) type → the neutral box an unclassified context gets on the canvas. */
|
|
3
|
+
export declare function contextIconSvg(type?: SubdomainType): string;
|
|
4
|
+
/** The bare subdomain glyph (star / hand / dotted circle) without the box — legend rows. */
|
|
5
|
+
export declare function subdomainIconSvg(type: SubdomainType, size?: number): string;
|
|
6
|
+
/** The same coloured role chip (OHS/PL/ACL/CF) the canvas draws at relationship ends. */
|
|
7
|
+
export declare function roleChipSvg(role: UpstreamRole | DownstreamRole): string;
|
|
8
|
+
export declare function relationshipIconSvg(pattern?: RelationshipPattern, size?: number): string;
|
|
4
9
|
//# sourceMappingURL=palette-icons.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"palette-icons.d.ts","sourceRoot":"","sources":["../../src/draw/palette-icons.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"palette-icons.d.ts","sourceRoot":"","sources":["../../src/draw/palette-icons.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,aAAa,EAEb,YAAY,EACb,MAAM,oCAAoC,CAAC;AA6B5C,yFAAyF;AACzF,wBAAgB,cAAc,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM,CAW3D;AAED,4FAA4F;AAC5F,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,SAAK,GAAG,MAAM,CAQvE;AAED,yFAAyF;AACzF,wBAAgB,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,cAAc,GAAG,MAAM,CAKvE;AAED,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,mBAA2C,EACpD,IAAI,SAAK,GACR,MAAM,CAYR"}
|
package/dist/draw/styles.d.ts
CHANGED
|
@@ -20,6 +20,17 @@ export declare const FONT: {
|
|
|
20
20
|
readonly label: 13.5;
|
|
21
21
|
readonly small: 11;
|
|
22
22
|
};
|
|
23
|
+
/**
|
|
24
|
+
* Fixed top offset (px at zoom 1) of a context's name inside its box: the
|
|
25
|
+
* first line starts here, right below the subdomain-type header, so the gap
|
|
26
|
+
* between header and name never varies with box size or line count.
|
|
27
|
+
*/
|
|
28
|
+
export declare const CONTEXT_NAME_TOP = 36;
|
|
29
|
+
/** Height (px at zoom 1) reserved at the box bottom for the team caption. */
|
|
30
|
+
export declare const CONTEXT_TEAM_RESERVE = 18;
|
|
23
31
|
/** Paper colour used for the label halo so text stays legible over lines. */
|
|
24
32
|
export declare const PAPER: "#FFFFFF";
|
|
33
|
+
/** Box colours for contexts without a subdomain classification (canvas + icons). */
|
|
34
|
+
export declare const NEUTRAL_FILL = "#F1F1EE";
|
|
35
|
+
export declare const NEUTRAL_STROKE = "#8A8577";
|
|
25
36
|
//# sourceMappingURL=styles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/draw/styles.ts"],"names":[],"mappings":"AAAA;;kDAEkD;AAIlD,0FAA0F;AAC1F,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC,wGAAwG;AACxG,eAAO,MAAM,MAAM,WAAe,CAAC;AAEnC,eAAO,MAAM,GAAG,WAAkB,CAAC;AACnC,eAAO,MAAM,QAAQ,YAAY,CAAC;AAElC,eAAO,MAAM,IAAI;IACf;;;;;;;OAOG;;;;CAKK,CAAC;AAEX,6EAA6E;AAC7E,eAAO,MAAM,KAAK,WAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/draw/styles.ts"],"names":[],"mappings":"AAAA;;kDAEkD;AAIlD,0FAA0F;AAC1F,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC,wGAAwG;AACxG,eAAO,MAAM,MAAM,WAAe,CAAC;AAEnC,eAAO,MAAM,GAAG,WAAkB,CAAC;AACnC,eAAO,MAAM,QAAQ,YAAY,CAAC;AAElC,eAAO,MAAM,IAAI;IACf;;;;;;;OAOG;;;;CAKK,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,6EAA6E;AAC7E,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC,6EAA6E;AAC7E,eAAO,MAAM,KAAK,WAAgB,CAAC;AAEnC,oFAAoF;AACpF,eAAO,MAAM,YAAY,YAAY,CAAC;AACtC,eAAO,MAAM,cAAc,YAAY,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -11,12 +11,14 @@ export { cmRulesModule, CmRules } from './rules/index.js';
|
|
|
11
11
|
export { cmBehaviorsModule, CmFlatModelBehavior } from './behaviors/index.js';
|
|
12
12
|
export { cmPaletteModule, CmPaletteProvider } from './palette/index.js';
|
|
13
13
|
export { cmConnectHandlesModule, CmConnectHandles } from './connect-handles/index.js';
|
|
14
|
+
export { cmContextPadModule, CmContextPadProvider } from './context-pad/index.js';
|
|
15
|
+
export { cmLegendModule, CmLegend } from './legend/index.js';
|
|
14
16
|
export { cmLabelEditingModule, CmLabelEditing } from './label-editing/index.js';
|
|
15
17
|
export { cmKeyboardModule, CmKeyboard } from './keyboard/index.js';
|
|
16
18
|
export { cmZOrderModule, CmZOrder } from './zorder/index.js';
|
|
17
19
|
export { isCmElement, isCmContext, isCmRelationship } from './model/di-types.js';
|
|
18
20
|
export type { CmElement, CmContext, CmRelationship } from './model/di-types.js';
|
|
19
21
|
export type { ImportWarning, RootBusinessObject } from './io/index.js';
|
|
20
|
-
export { contextIconSvg, relationshipIconSvg } from './draw/palette-icons.js';
|
|
22
|
+
export { contextIconSvg, relationshipIconSvg, roleChipSvg, subdomainIconSvg, } from './draw/palette-icons.js';
|
|
21
23
|
export { MIRAGON, CD_TOKENS } from './theme/index.js';
|
|
22
24
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,2BAA2B,CAAC;AAGnC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGxE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACjF,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChF,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGvE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,2BAA2B,CAAC;AAGnC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGxE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACjF,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChF,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGvE,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC"}
|