@miragon/context-maps-renderer 0.5.0 → 0.6.1
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 +49 -27
- package/dist/connect-handles/CmConnectHandles.d.ts +3 -1
- package/dist/connect-handles/CmConnectHandles.d.ts.map +1 -1
- package/dist/context-maps.css +1 -1
- package/dist/context-pad/CmContextPadProvider.d.ts +4 -2
- package/dist/context-pad/CmContextPadProvider.d.ts.map +1 -1
- package/dist/draw/ContextMapsRenderer.d.ts +5 -3
- package/dist/draw/ContextMapsRenderer.d.ts.map +1 -1
- package/dist/draw/contextColours.d.ts +22 -0
- package/dist/draw/contextColours.d.ts.map +1 -0
- package/dist/draw/contextLayout.d.ts +1 -1
- package/dist/draw/contextLayout.d.ts.map +1 -1
- package/dist/draw/lucide.d.ts +10 -3
- package/dist/draw/lucide.d.ts.map +1 -1
- package/dist/draw/markup.d.ts +20 -0
- package/dist/draw/markup.d.ts.map +1 -0
- package/dist/draw/palette-icons.d.ts +4 -1
- package/dist/draw/palette-icons.d.ts.map +1 -1
- package/dist/draw/relationshipColours.d.ts +17 -0
- package/dist/draw/relationshipColours.d.ts.map +1 -0
- package/dist/draw/styles.d.ts +12 -6
- package/dist/draw/styles.d.ts.map +1 -1
- package/dist/draw/subdomainGlyphs.d.ts +12 -0
- package/dist/draw/subdomainGlyphs.d.ts.map +1 -0
- package/dist/index.js +746 -618
- package/dist/index.js.map +1 -1
- package/dist/keyboard/CmKeyboard.d.ts.map +1 -1
- package/dist/keyboard/canvasFocus.d.ts +11 -0
- package/dist/keyboard/canvasFocus.d.ts.map +1 -0
- package/dist/keyboard/index.d.ts +1 -1
- package/dist/keyboard/index.d.ts.map +1 -1
- package/dist/label-editing/CmLabelEditing.d.ts.map +1 -1
- package/dist/legend/CmLegend.d.ts +0 -4
- package/dist/legend/CmLegend.d.ts.map +1 -1
- package/dist/palette/CmPaletteProvider.d.ts.map +1 -1
- package/dist/theme/index.d.ts +0 -1
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/theme/palette.d.ts +4 -0
- package/dist/theme/palette.d.ts.map +1 -1
- package/package.json +7 -7
- package/dist/theme/sizes.d.ts +0 -13
- package/dist/theme/sizes.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# @miragon/context-maps-renderer
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/@miragon/context-maps-renderer)
|
|
4
|
-
[](https://github.com/Miragon/modeler-suite/blob/main/modelers/context-maps/LICENSE)
|
|
5
5
|
|
|
6
6
|
The **browser layer** of the [Context Maps Modeler](../../README.md): a framework-agnostic viewer
|
|
7
7
|
and full editor for strategic Domain-Driven Design [Context Maps](https://contextmapper.org/)
|
|
@@ -9,7 +9,7 @@ diagrams, built on [diagram-js](https://github.com/bpmn-io/diagram-js) (MIT).
|
|
|
9
9
|
|
|
10
10
|
It renders the canonical document from
|
|
11
11
|
[`@miragon/context-maps-schema-model`](../schema-model) and gives you palette, move,
|
|
12
|
-
connect-by-relationship, context pad, inline label editing and undo/redo
|
|
12
|
+
connect-by-relationship, context pad, inline label editing and undo/redo, with no UI framework
|
|
13
13
|
required. Mount it into any `<div>`; the web app and the VS Code extension both wrap this
|
|
14
14
|
exact package. It implements the collaborative-modeler contract of
|
|
15
15
|
[`@miragon/modeler-api`](https://www.npmjs.com/package/@miragon/modeler-api), and it hands a chrome
|
|
@@ -56,12 +56,12 @@ modeler.redo();
|
|
|
56
56
|
```
|
|
57
57
|
|
|
58
58
|
> **The CSS is required.** Import `@miragon/context-maps-renderer/assets/context-maps.css`
|
|
59
|
-
> (it also pulls in `diagram-js`'s own stylesheet)
|
|
59
|
+
> (it also pulls in `diagram-js`'s own stylesheet). Without it the palette, context pad and label
|
|
60
60
|
> editor are unstyled.
|
|
61
61
|
|
|
62
62
|
## API
|
|
63
63
|
|
|
64
|
-
### Constructor
|
|
64
|
+
### Constructor: `CmViewerOptions`
|
|
65
65
|
|
|
66
66
|
```ts
|
|
67
67
|
new Modeler({
|
|
@@ -102,7 +102,7 @@ new Modeler({
|
|
|
102
102
|
| `exportText()` | `string` | The canonical `.cm` text (ends in a line break). |
|
|
103
103
|
| `saveSVG()` | `{ svg: string }` | Self-contained SVG snapshot (fitted viewBox). |
|
|
104
104
|
| `contentBounds()` | `ElementBounds` or `undefined` | The content's box for a host's fit (see below). |
|
|
105
|
-
| `setMeta(partial)` / `getMeta()` |
|
|
105
|
+
| `setMeta(partial)` / `getMeta()` | `void` / `RootBusinessObject` | Rename the map (an undoable command) / read it. |
|
|
106
106
|
| `attachTo(el)` / `detach()` | `void` | Move the canvas in/out of the DOM (keeps state). |
|
|
107
107
|
| `clear()` / `destroy()` | `void` | Empty the canvas / tear it down. |
|
|
108
108
|
| `on(event, cb)` / `off(event, cb)` | `void` | Subscribe to diagram-js events. |
|
|
@@ -164,9 +164,9 @@ What a chrome around the canvas shows, typed structurally (a `@miragon/modeler-s
|
|
|
164
164
|
|
|
165
165
|
- `renderLegend(body, { tooltip })` renders the notation legend (subdomain types, integration roles,
|
|
166
166
|
relationship patterns) into a chrome's legend card, each row explained in the chrome's tooltip.
|
|
167
|
-
Hosts without such a chrome add `cmLegendModule`, a legend card on the canvas.
|
|
168
|
-
|
|
169
|
-
`cmLegend` service's `setOpen(open)` restores a state the host stored.
|
|
167
|
+
Hosts without such a chrome add `cmLegendModule`, a legend card on the canvas. It starts closed
|
|
168
|
+
on every canvas size, so it never covers the map unasked; the user opens it with its button, and
|
|
169
|
+
the `cmLegend` service's `setOpen(open)` restores a state the host stored.
|
|
170
170
|
- `contextMapMenu({ exports, showKeyboardShortcuts, editTitle })` builds the Model group's "Map
|
|
171
171
|
title…" (with `editTitle`), the Export group (PNG, SVG, JSON, CML; an export's `shortcut` shows as
|
|
172
172
|
its chip) and the Help group's "Keyboard shortcuts…". `createShortcutsDialog(chrome, { fileKeys })`
|
|
@@ -179,16 +179,29 @@ What a chrome around the canvas shows, typed structurally (a `@miragon/modeler-s
|
|
|
179
179
|
- `cmReadOnly` (part of the `Modeler`) locks every edit while a host cannot take edits from the
|
|
180
180
|
canvas, an invalid file in an IDE: no context pad, move, create, connect, delete or label editor;
|
|
181
181
|
selection, zoom, pan, select all and export stay.
|
|
182
|
-
- The keyboard
|
|
183
|
-
|
|
184
|
-
|
|
182
|
+
- The keyboard acts only while the canvas itself has the focus, as diagram-js 15's own keyboard
|
|
183
|
+
does: on keys whose target is the canvas `<svg>` or inside it. Keys with nothing focused
|
|
184
|
+
(`<body>`), on a host's chrome, on the palette, the context pad or an editor in the canvas
|
|
185
|
+
container pass, and so do keys someone already handled (`defaultPrevented`) and keys of an IME
|
|
186
|
+
composition. `Cmd/Ctrl+A` selects every element. A pointer on a palette entry, on the context
|
|
187
|
+
pad's connect, swap ends or delete, or on a connect handle of `cmConnectHandlesModule` hands the
|
|
188
|
+
focus to the canvas, so Delete and `Cmd/Ctrl+Z` act at once; Enter or Space leave it on the entry,
|
|
189
|
+
unless the entry goes away with its action. Append opens the subdomain-type menu, which takes the
|
|
190
|
+
focus and hands it to the canvas when it closes.
|
|
191
|
+
- A host that hides the canvas without destroying the modeler makes its container `inert` or
|
|
192
|
+
`display: none`, not only transparent: a hidden or inert canvas cannot hold the focus, so no key
|
|
193
|
+
reaches it. There is no separate switch to pause the keyboard.
|
|
185
194
|
|
|
186
195
|
### Helpers & types
|
|
187
196
|
|
|
188
197
|
- **Type guards:** `isCmElement`, `isCmContext`, `isCmRelationship`.
|
|
189
198
|
- **Runtime element types:** `CmContext`, `CmRelationship`, `CmElement`.
|
|
190
|
-
- **Palette icon generators:** `contextIconSvg(type)`, `
|
|
191
|
-
WYSIWYG SVG glyphs matching what the
|
|
199
|
+
- **Palette icon generators:** `contextIconSvg(type)`, `subdomainIconSvg(type, size)`,
|
|
200
|
+
`roleChipSvg(role)`, `relationshipIconSvg(pattern, size)`: WYSIWYG SVG glyphs matching what the
|
|
201
|
+
canvas draws, as markup for `innerHTML`. They take values read from an unvalidated document: an
|
|
202
|
+
unknown type draws the unclassified box (`contextIconSvg`) or the neutral dotted circle
|
|
203
|
+
(`subdomainIconSvg`), an unknown pattern the upstream-downstream line, a size that is not a finite
|
|
204
|
+
positive number the default size, and a role becomes escaped text.
|
|
192
205
|
- **Other:** `CmViewerOptions`, `ImportWarning`, `RootBusinessObject`, `ROOT_ID`, `saveSVG`.
|
|
193
206
|
|
|
194
207
|
## How it's built
|
|
@@ -202,9 +215,9 @@ viewer via `additionalModules`:
|
|
|
202
215
|
| `cmModelModule` | Element factory with notation defaults (`CmElementFactory`). |
|
|
203
216
|
| `cmDrawModule` | Custom SVG rendering of contexts and relationships (`ContextMapsRenderer`). |
|
|
204
217
|
| `ioModule` | Document ↔ canvas bridge (`CmImporter`, `CmExporter`, `saveSVG`). |
|
|
205
|
-
| `cmModelingModule` | High-level mutations
|
|
218
|
+
| `cmModelingModule` | High-level mutations: label, subdomain type, relationship pattern, roles, colours. |
|
|
206
219
|
| `cmRulesModule` | Editing rules (what can move / be created / connected; no resize). |
|
|
207
|
-
| `cmBehaviorsModule` | Keeps the model **flat
|
|
220
|
+
| `cmBehaviorsModule` | Keeps the model **flat**: shapes never nest. |
|
|
208
221
|
| `cmPaletteModule` | The tool palette: lasso tool + create contexts (drag, click, or Enter/Space into the free rectangle). |
|
|
209
222
|
| `cmConnectHandlesModule` | Opt-in (not in the default `Modeler`): four outward connect arrows around the selected context. |
|
|
210
223
|
| `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. |
|
|
@@ -212,7 +225,7 @@ viewer via `additionalModules`:
|
|
|
212
225
|
| `cmHoverTooltipModule` | An element's own data (description, team, technology) on hover, inside the canvas container. |
|
|
213
226
|
| `cmReadOnlyModule` | The canvas lock (`cmReadOnly`) every editing feature consults. |
|
|
214
227
|
| `cmLabelEditingModule` | In-place direct name editing (double-click / pad), bpmn.io style. |
|
|
215
|
-
| `cmKeyboardModule` | Select all / undo / redo / delete
|
|
228
|
+
| `cmKeyboardModule` | Select all / undo / redo / delete while the canvas has the focus (`undoRedoKeys` option). |
|
|
216
229
|
| `cmZOrderModule` | Fixed stacking order (relationships behind, contexts on top). |
|
|
217
230
|
|
|
218
231
|
### Rendering
|
|
@@ -223,7 +236,12 @@ coloured by subdomain type (core / supporting / generic) with their glyphs; and
|
|
|
223
236
|
as lines styled per context-mapping pattern (partnership, shared kernel, customer-supplier,
|
|
224
237
|
upstream-downstream, separate ways), carrying the pattern abbreviation, U/D end markers and the
|
|
225
238
|
OHS/PL/ACL/CF integration-role badges. Labels are word-wrapped and centred. Per-element `fill`/`stroke`
|
|
226
|
-
overrides win over the spec defaults.
|
|
239
|
+
overrides win over the spec defaults. Every text keeps 4.5:1 on what it sits on; the box outlines,
|
|
240
|
+
the relationship lines and the borders of the symmetric patterns' chips keep 3:1 on the canvas
|
|
241
|
+
ground. The subdomain badge and the team caption are `--cd-text-leise`, and a context's name, a role
|
|
242
|
+
badge's text and any text on a fill the author set are black or white, whichever has more contrast.
|
|
243
|
+
A role badge is one filled chip named by its text; the frame around the badges is the decorative
|
|
244
|
+
`--cd-linie`. A symmetric pattern's chip writes black on paper, bordered in the pattern's colour.
|
|
227
245
|
|
|
228
246
|
## Import / export
|
|
229
247
|
|
|
@@ -234,20 +252,24 @@ rasterisation those formats need.
|
|
|
234
252
|
|
|
235
253
|
## Development
|
|
236
254
|
|
|
237
|
-
Part of the [Context Maps Modeler](../../README.md)
|
|
238
|
-
|
|
255
|
+
Part of the [Context Maps Modeler](../../README.md) in the
|
|
256
|
+
[Miragon modeler suite](https://github.com/Miragon/modeler-suite); consumed from source by the
|
|
257
|
+
apps. From the suite's root:
|
|
239
258
|
|
|
240
259
|
```bash
|
|
241
|
-
npm run build -w
|
|
242
|
-
npm test
|
|
243
|
-
npm run test:browser # renderer integration tests in real Chromium
|
|
244
|
-
npm run typecheck
|
|
260
|
+
npm run build -w @miragon/context-maps-renderer # Vite library build → dist/ (publish build)
|
|
261
|
+
npm run context-maps test # Vitest unit tests
|
|
262
|
+
npm run context-maps test:browser # renderer integration tests in real Chromium
|
|
263
|
+
npm run context-maps typecheck
|
|
245
264
|
```
|
|
246
265
|
|
|
247
266
|
## License
|
|
248
267
|
|
|
249
268
|
[MIT](../../LICENSE). diagram-js and its dependencies are MIT / ISC / Apache-2.0. The icons of the
|
|
250
|
-
context pad, the connect handles, the validation markers, the lasso
|
|
251
|
-
[Lucide](https://lucide.dev) icons (lucide-static 1.59.0, ISC, © Lucide
|
|
252
|
-
copied into `src/draw/lucide.ts`; `arrow-right`, `circle-x`, `trash`,
|
|
253
|
-
from [Feather](https://feathericons.com) (MIT, © Cole Bemis).
|
|
269
|
+
context pad, the connect handles, the validation markers, the lasso, the shortcuts dialog and the
|
|
270
|
+
team glyph on the canvas are [Lucide](https://lucide.dev) icons (lucide-static 1.59.0, ISC, © Lucide
|
|
271
|
+
Icons and Contributors), copied into `src/draw/lucide.ts`; `arrow-right`, `circle-x`, `trash`,
|
|
272
|
+
`triangle-alert` and `x` derive from [Feather](https://feathericons.com) (MIT, © Cole Bemis). The
|
|
273
|
+
star and the open hand that mark core and supporting subdomains are notation glyphs, the paths of
|
|
274
|
+
[Material Icons](https://github.com/google/material-design-icons) `star` and `pan_tool` (Apache-2.0,
|
|
275
|
+
© Google LLC), copied into `src/draw/subdomainGlyphs.ts`.
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { default as Canvas } from 'diagram-js/lib/core/Canvas';
|
|
1
2
|
import { default as EventBus } from 'diagram-js/lib/core/EventBus';
|
|
2
3
|
import { default as Overlays } from 'diagram-js/lib/features/overlays/Overlays';
|
|
3
4
|
import { default as Selection } from 'diagram-js/lib/features/selection/Selection';
|
|
@@ -10,8 +11,9 @@ export default class CmConnectHandles {
|
|
|
10
11
|
private readonly overlays;
|
|
11
12
|
private readonly dragging;
|
|
12
13
|
private readonly readOnly;
|
|
14
|
+
private readonly canvas;
|
|
13
15
|
static $inject: string[];
|
|
14
|
-
constructor(eventBus: EventBus, selection: Selection, overlays: Overlays, connect: Connect, dragging: Dragging, readOnly: Pick<CmReadOnly, "isReadOnly"
|
|
16
|
+
constructor(eventBus: EventBus, selection: Selection, overlays: Overlays, connect: Connect, dragging: Dragging, readOnly: Pick<CmReadOnly, "isReadOnly">, canvas: Canvas);
|
|
15
17
|
private refresh;
|
|
16
18
|
}
|
|
17
19
|
//# sourceMappingURL=CmConnectHandles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CmConnectHandles.d.ts","sourceRoot":"","sources":["../../src/connect-handles/CmConnectHandles.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"CmConnectHandles.d.ts","sourceRoot":"","sources":["../../src/connect-handles/CmConnectHandles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,QAAQ,MAAM,2CAA2C,CAAC;AACtE,OAAO,KAAK,SAAS,MAAM,6CAA6C,CAAC;AACzE,OAAO,KAAK,OAAO,MAAM,yCAAyC,CAAC;AACnE,OAAO,KAAK,QAAQ,MAAM,2CAA2C,CAAC;AAKtE,OAAO,EAA2B,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAmCjF,MAAM,CAAC,OAAO,OAAO,gBAAgB;IAYjC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAEzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAjBzB,MAAM,CAAC,OAAO,WAQZ;gBAGiB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EACnC,OAAO,EAAE,OAAO,EACC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,EACxC,MAAM,EAAE,MAAM;IAajC,OAAO,CAAC,OAAO;CAuDhB"}
|
package/dist/context-maps.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
@layer context-maps-tokens{: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:#00e676;--cd-success-soft:#dafbeb;--cd-success-hell:#00e676;--cd-warning:#ffb000;--cd-warning-soft:#fff1d2;--cd-warning-hell:#ffb000;--cd-danger:#cd1839;--cd-danger-soft:#fbeef0;--cd-danger-hell:#fb6d73;--cd-info:#335de5;--cd-info-soft:#eef1fd;--cd-info-hell:#6b8aff;--cd-linie:#e6e2e2;--cd-kontur:#8f8a8a;--cd-text-leise:#6b6666;--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);--cd-shell-rand:12px;--cd-shell-luecke:8px;--cd-shell-zeile:40px;--cd-shell-ziel:32px;--cd-shell-eintrag:36px;--cd-shell-frei:64px;--cd-shell-menue-breite:248px;--cd-shell-inspector-breite:288px;--cd-shell-einpassen-oben:88px;--cd-shell-einpassen-oben-schmal:140px;--cd-shell-einpassen-seite:24px;--cd-shell-einpassen-unten:64px;--cd-shell-einpassen-unten-web:92px;--cd-shell-schmal:760px;--cd-shell-sehr-schmal:440px;--cd-shell-niedrig:820px;--cd-shell-ebene-inseln:20;--cd-shell-ebene-inspector:25;--cd-shell-ebene-reihe:30;--cd-shell-ebene-aufklapper:40;--cd-shell-ebene-dialog:50;--cd-shell-ebene-toast:60;--cd-ui-grund:#f9f7f7;--cd-ui-flaeche:#fff;--cd-ui-flaeche-hoch:#fff;--cd-ui-hover:#eef1fd;--cd-ui-plot:#fff;--cd-ui-seite:#fff;--cd-ui-abschnitt:#f9f7f7;--cd-ui-linie:#e6e2e2;--cd-ui-kontur:#8f8a8a;--cd-ui-text:#1d1d1d;--cd-ui-text-leise:#6b6666;--cd-ui-link:#2b50d4;--cd-ui-icon-akzent:#335de5;--cd-ui-fokus:#2b50d4;--cd-ui-interaktion:#335de5;--cd-ui-success:#00e676;--cd-ui-warning:#ffb000;--cd-ui-danger:#cd1839;--cd-ui-info:#335de5;--cd-ui-success-flaeche:#dafbeb;--cd-ui-warning-flaeche:#fff1d2;--cd-ui-danger-flaeche:#fbeef0;--cd-ui-info-flaeche:#eef1fd;--cd-ui-wortmarke:#00e676;--cd-ui-backdrop:#1d1d1d6b;--cd-ui-chrome-deckkraft:84%}[data-cd-theme=light],[data-cd-theme=system]{--cd-ui-grund:#f9f7f7;--cd-ui-flaeche:#fff;--cd-ui-flaeche-hoch:#fff;--cd-ui-hover:#eef1fd;--cd-ui-plot:#fff;--cd-ui-seite:#fff;--cd-ui-abschnitt:#f9f7f7;--cd-ui-linie:#e6e2e2;--cd-ui-kontur:#8f8a8a;--cd-ui-text:#1d1d1d;--cd-ui-text-leise:#6b6666;--cd-ui-link:#2b50d4;--cd-ui-icon-akzent:#335de5;--cd-ui-fokus:#2b50d4;--cd-ui-interaktion:#335de5;--cd-ui-success:#00e676;--cd-ui-warning:#ffb000;--cd-ui-danger:#cd1839;--cd-ui-info:#335de5;--cd-ui-success-flaeche:#dafbeb;--cd-ui-warning-flaeche:#fff1d2;--cd-ui-danger-flaeche:#fbeef0;--cd-ui-info-flaeche:#eef1fd;--cd-ui-wortmarke:#00e676;--cd-ui-backdrop:#1d1d1d6b;--cd-ui-chrome-deckkraft:84%;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media screen{[data-cd-theme=dark]{--cd-ui-grund:#1d1d1d;--cd-ui-flaeche:#282828;--cd-ui-flaeche-hoch:#2f2f2f;--cd-ui-hover:#383838;--cd-ui-plot:#1d1d1d;--cd-ui-seite:#1d1d1d;--cd-ui-abschnitt:#282828;--cd-ui-linie:#464646;--cd-ui-kontur:#8f8a8a;--cd-ui-text:#fff;--cd-ui-text-leise:#bbb;--cd-ui-link:#00e676;--cd-ui-icon-akzent:#00e676;--cd-ui-fokus:#6b8aff;--cd-ui-interaktion:#6b8aff;--cd-ui-success:#00e676;--cd-ui-warning:#ffb000;--cd-ui-danger:#fb6d73;--cd-ui-info:#6b8aff;--cd-ui-success-flaeche:#282828;--cd-ui-warning-flaeche:#282828;--cd-ui-danger-flaeche:#282828;--cd-ui-info-flaeche:#282828;--cd-ui-wortmarke:#fff;--cd-ui-backdrop:#1d1d1d99;--cd-ui-chrome-deckkraft:100%;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-cd-theme=dark] ::selection{color:#fff;background-color:#383838}}@media screen and (prefers-color-scheme:dark){[data-cd-theme=system]{--cd-ui-grund:#1d1d1d;--cd-ui-flaeche:#282828;--cd-ui-flaeche-hoch:#2f2f2f;--cd-ui-hover:#383838;--cd-ui-plot:#1d1d1d;--cd-ui-seite:#1d1d1d;--cd-ui-abschnitt:#282828;--cd-ui-linie:#464646;--cd-ui-kontur:#8f8a8a;--cd-ui-text:#fff;--cd-ui-text-leise:#bbb;--cd-ui-link:#00e676;--cd-ui-icon-akzent:#00e676;--cd-ui-fokus:#6b8aff;--cd-ui-interaktion:#6b8aff;--cd-ui-success:#00e676;--cd-ui-warning:#ffb000;--cd-ui-danger:#fb6d73;--cd-ui-info:#6b8aff;--cd-ui-success-flaeche:#282828;--cd-ui-warning-flaeche:#282828;--cd-ui-danger-flaeche:#282828;--cd-ui-info-flaeche:#282828;--cd-ui-wortmarke:#fff;--cd-ui-backdrop:#1d1d1d99;--cd-ui-chrome-deckkraft:100%;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-cd-theme=system] ::selection{color:#fff;background-color:#383838}}:root:not([data-cd-theme=dark]):not([data-cd-theme=system]) .cd-nur-dunkel{display:none!important}@media print{:root .cd-nur-dunkel{display:none!important}}@media (prefers-color-scheme:light){:root[data-cd-theme=system] .cd-nur-dunkel{display:none!important}}@media screen{:root[data-cd-theme=dark] .cd-nur-hell{display:none!important}}@media screen and (prefers-color-scheme:dark){:root[data-cd-theme=system] .cd-nur-hell{display:none!important}}[data-cd-kontrast=hoch]{--cd-ui-linie:#8f8a8a;--cd-ui-kontur:#1d1d1d;--cd-ui-text-leise:#1d1d1d;--cd-ui-chrome-deckkraft:100%}@media screen{[data-cd-theme=dark][data-cd-kontrast=hoch]{--cd-ui-linie:#8f8a8a;--cd-ui-kontur:#fff;--cd-ui-text-leise:#fff;--cd-ui-chrome-deckkraft:100%}}@media screen and (prefers-color-scheme:dark){[data-cd-theme=system][data-cd-kontrast=hoch]{--cd-ui-linie:#8f8a8a;--cd-ui-kontur:#fff;--cd-ui-text-leise:#fff;--cd-ui-chrome-deckkraft:100%}}@media (forced-colors:active){[data-cd-theme],[data-cd-theme][data-cd-kontrast=hoch]{--cd-ui-grund:Canvas;--cd-ui-flaeche:Canvas;--cd-ui-flaeche-hoch:Canvas;--cd-ui-hover:Canvas;--cd-ui-plot:Canvas;--cd-ui-seite:Canvas;--cd-ui-abschnitt:Canvas;--cd-ui-linie:CanvasText;--cd-ui-kontur:CanvasText;--cd-ui-text:CanvasText;--cd-ui-text-leise:CanvasText;--cd-ui-link:LinkText;--cd-ui-icon-akzent:CanvasText;--cd-ui-fokus:Highlight;--cd-ui-interaktion:Highlight;--cd-ui-success:CanvasText;--cd-ui-warning:CanvasText;--cd-ui-danger:CanvasText;--cd-ui-info:CanvasText;--cd-ui-success-flaeche:Canvas;--cd-ui-warning-flaeche:Canvas;--cd-ui-danger-flaeche:Canvas;--cd-ui-info-flaeche:Canvas;--cd-ui-wortmarke:CanvasText;--cd-ui-chrome-deckkraft:100%}}}.bio-theme-parent{--bio-surface:#fff;--bio-surface-overlay:#fff;--bio-surface-subtle:#f7f7f8;--bio-surface-medium:#f1f2f4;--bio-surface-inverted:#383838;--bio-surface-inverted-subtle:#505562;--bio-text:#22242a;--bio-text-subtle:#505562;--bio-text-subtlest:#818798;--bio-text-on-inverted:#fff;--bio-border:#b9bcc6;--bio-border-disabled:#e3e4e8;--bio-primary:#07c;--bio-primary-surface:#e6f4ff;--bio-danger:#e60000;--bio-danger-surface-subtle:#fff0f0;--bio-selected-surface:var(--bio-surface-medium);--bio-selected-text:var(--bio-text);--bio-focus:#07c;--bio-focus-surface:#e6f4ff;--bio-canvas-accent:#07c;--bio-canvas-accent-subtle:#80caff;--bio-shadow:#0000004d;--bio-shadow-subtle:#0000001a;--bio-radius-sm:2px;--bio-radius-md:3px;--bio-radius-lg:4px}.djs-parent{--button-border-radius:var(--bio-radius-md);--input-border-radius:var(--bio-radius-sm);--surface-border-radius:var(--bio-radius-lg);--canvas-fill-color:var(--bio-surface);--accent-color:var(--bio-canvas-accent);--bendpoint-fill-color:var(--bio-canvas-accent);--bendpoint-stroke-color:var(--canvas-fill-color);--context-pad-entry-background-color:var(--bio-surface);--context-pad-entry-hover-background-color:var(--bio-surface-medium);--element-dragger-color:var(--accent-color);--element-selected-outline-stroke-color:var(--accent-color);--element-selected-outline-secondary-stroke-color:var(--bio-canvas-accent-subtle);--lasso-fill-color:color-mix(in srgb, var(--bio-canvas-accent) 15%, transparent);--lasso-stroke-color:var(--element-selected-outline-stroke-color);--palette-entry-color:var(--bio-text);--palette-entry-hover-color:var(--bio-primary);--palette-entry-selected-color:var(--bio-primary);--palette-separator-color:var(--bio-border);--palette-toggle-hover-background-color:var(--bio-surface-medium);--palette-background-color:var(--bio-surface-subtle);--palette-border-color:var(--bio-border);--popup-font-family:"IBM Plex Sans", sans-serif;--popup-font-size:14px;--popup-secondary-font-size:.9em;--popup-header-entry-selected-color:var(--bio-primary);--popup-header-font-weight:bolder;--popup-header-group-divider-color:var(--bio-border);--popup-background-color:var(--bio-surface-overlay);--popup-border-color:transparent;--popup-shadow-color:var(--bio-shadow);--popup-scrollbar-thumb-color:#0003;--popup-button-background-color:var(--bio-surface-overlay);--popup-button-hover-background-color:var(--bio-surface-medium);--popup-disabled-color:var(--bio-text-subtle);--popup-description-color:var(--bio-text-subtle);--popup-no-results-color:var(--bio-text-subtlest);--popup-entry-title-color:var(--bio-text-subtlest);--popup-entry-selected-background-color:var(--bio-selected-surface);--popup-entry-selected-color:var(--bio-selected-text);--popup-search-border-color:var(--bio-border);--popup-search-focus-border-color:var(--bio-focus);--popup-search-focus-background-color:var(--bio-focus-surface);--popup-tab-color:var(--bio-text-subtlest);--popup-tab-hover-color:var(--bio-text);--popup-tab-active-color:var(--bio-text);--popup-tab-active-border-color:var(--bio-primary);--popup-tab-strip-border-color:var(--bio-border-disabled);--popup-tab-focus-border-color:var(--bio-focus);--resizer-fill-color:var(--bio-canvas-accent);--resizer-stroke-color:var(--canvas-fill-color);--search-font-family:"IBM Plex Sans", sans-serif;--search-font-size:14px;--search-container-background-color:var(--bio-surface-overlay);--search-shadow-color:var(--bio-shadow);--search-input-border-color:var(--bio-border);--search-input-focus-border-color:var(--bio-focus);--search-input-focus-background-color:var(--bio-primary-surface);--search-result-hover-background-color:var(--bio-surface-medium);--search-result-secondary-color:var(--bio-text-subtlest);--search-preselected-background-color:color-mix(in srgb, var(--bio-canvas-accent) 15%, transparent);--shape-attach-allowed-stroke-color:var(--accent-color);--shape-connect-allowed-fill-color:var(--bio-surface-subtle);--shape-drop-allowed-fill-color:var(--bio-surface-subtle);--shape-drop-not-allowed-fill-color:var(--bio-danger-surface-subtle);--shape-resize-preview-stroke-color:var(--accent-color);--snap-line-stroke-color:color-mix(in srgb, var(--bio-canvas-accent) 30%, transparent);--space-tool-crosshair-stroke-color:var(--bio-text);--tooltip-error-background-color:var(--bio-danger-surface-subtle);--tooltip-error-border-color:var(--bio-danger);--tooltip-error-color:var(--bio-danger);--hover-tooltip-font-family:"IBM Plex Sans", sans-serif;--hover-tooltip-font-size:12px;--hover-tooltip-secondary-font-size:11px;--hover-tooltip-background-color:var(--bio-surface-inverted);--hover-tooltip-color:var(--bio-text-on-inverted);--hover-tooltip-shadow-color:var(--bio-shadow-subtle);--palette-tooltip-shortcut-background-color:var(--bio-surface-inverted-subtle)}.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-hover-tooltip{z-index:1000;border-radius:var(--surface-border-radius);background-color:var(--hover-tooltip-background-color);color:var(--hover-tooltip-color);font-family:var(--hover-tooltip-font-family);font-size:var(--hover-tooltip-font-size);white-space:nowrap;pointer-events:none;box-shadow:0 1px 4px var(--hover-tooltip-shadow-color);align-items:center;gap:6px;padding:6px 10px;line-height:1.2;display:flex;position:fixed}.djs-hover-tooltip--right{transform:translateY(-50%)}.djs-hover-tooltip--top{transform:translate(-50%,-100%)}.djs-palette-tooltip-shortcut{border-radius:var(--button-border-radius);background-color:var(--palette-tooltip-shortcut-background-color);font-family:monospace;font-size:var(--hover-tooltip-secondary-font-size);padding:1px 5px;line-height:1.2}.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-radius:var(--input-border-radius);border:solid 1px var(--popup-search-border-color);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:var(--popup-button-hover-background-color)}.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{color:var(--popup-entry-selected-color);background-color:var(--popup-entry-selected-background-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:var(--popup-scrollbar-thumb-color);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--pointer .djs-popup-footer{display:none}.djs-popup-entry-docs{visibility:hidden;color:var(--popup-description-color);background:var(--popup-button-background-color);border:1px solid var(--popup-search-border-color);cursor:pointer;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--pointer .djs-popup-body .entry:hover .djs-popup-entry-docs{visibility:visible}.djs-popup-body .entry .djs-popup-entry-docs:hover{background:var(--popup-button-hover-background-color)}.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:var(--surface-border-radius)}.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);border-radius:var(--surface-border-radius);width:160px;color:var(--tooltip-error-color);opacity:.75;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);border-radius:var(--surface-border-radius);box-shadow:0px 2px 6px var(--search-shadow-color);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);border-radius:var(--input-border-radius);box-sizing:border-box;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}.cd-c-fill-grund{fill:var(--cd-ui-grund)!important}.cd-c-fill-plot{fill:var(--cd-ui-plot)!important}.cd-c-stroke-plot{stroke:var(--cd-ui-plot)!important}.cd-c-stroke-grund{stroke:var(--cd-ui-grund)!important}.cd-c-fill-flaeche-hoch{fill:var(--cd-ui-flaeche-hoch)!important}.cd-c-stroke-text{stroke:var(--cd-ui-text)!important}.cd-c-fill-text{fill:var(--cd-ui-text)!important}.cd-c-fill-text-leise{fill:var(--cd-ui-text-leise)!important}.cd-c-stroke-kontur{stroke:var(--cd-ui-kontur)!important}.cd-c-stroke-linie{stroke:var(--cd-ui-linie)!important}.cd-c-fill-linie{fill:var(--cd-ui-linie)!important}.cd-c-stroke-interaktion{stroke:var(--cd-ui-interaktion)!important}.cd-c-stroke-danger{stroke:var(--cd-ui-danger)!important}.cd-c-fill-danger{fill:var(--cd-ui-danger)!important}.cd-c-stroke-info{stroke:var(--cd-ui-info)!important}@media screen{[data-cd-theme=dark] .cd-c-bereich{fill:none!important}[data-cd-theme=dark] .cd-c-bereich-success{stroke:var(--cd-ui-success)!important}[data-cd-theme=dark] .cd-c-bereich-warning{stroke:var(--cd-ui-warning)!important}[data-cd-theme=dark] .cd-c-bereich-info{stroke:var(--cd-ui-info)!important}[data-cd-theme=dark] .cd-c-unterleger{stroke:var(--cd-ui-kontur)!important}}@media screen and (prefers-color-scheme:dark){[data-cd-theme=system] .cd-c-bereich{fill:none!important}[data-cd-theme=system] .cd-c-bereich-success{stroke:var(--cd-ui-success)!important}[data-cd-theme=system] .cd-c-bereich-warning{stroke:var(--cd-ui-warning)!important}[data-cd-theme=system] .cd-c-bereich-info{stroke:var(--cd-ui-info)!important}[data-cd-theme=system] .cd-c-unterleger{stroke:var(--cd-ui-kontur)!important}}:root,[data-cd-theme],.bio-theme-parent.bio-theme-parent{--bio-surface:var(--cd-ui-flaeche-hoch);--bio-surface-overlay:var(--cd-ui-flaeche-hoch);--bio-surface-subtle:var(--cd-ui-flaeche-hoch);--bio-surface-medium:var(--cd-ui-hover);--bio-surface-inverted:var(--cd-ui-flaeche-hoch);--bio-surface-inverted-subtle:var(--cd-ui-hover);--bio-text:var(--cd-ui-text);--bio-text-subtle:var(--cd-ui-text-leise);--bio-text-subtlest:var(--cd-ui-text-leise);--bio-text-on-inverted:var(--cd-ui-text);--bio-border:var(--cd-ui-linie);--bio-border-disabled:var(--cd-ui-linie);--bio-primary:var(--cd-ui-interaktion);--bio-primary-surface:var(--cd-ui-hover);--bio-text-on-primary:var(--cd-weiss);--bio-danger:var(--cd-ui-danger);--bio-danger-surface-subtle:var(--cd-ui-danger-flaeche);--bio-selected-surface:var(--cd-ui-hover);--bio-selected-text:var(--cd-ui-text);--bio-focus:var(--cd-ui-fokus);--bio-focus-surface:var(--cd-ui-hover);--bio-canvas-accent:var(--cd-ui-interaktion);--bio-canvas-accent-subtle:var(--cd-ui-interaktion);--bio-shadow:color-mix(in srgb, var(--cd-schwarz) 30%, transparent);--bio-shadow-subtle:color-mix(in srgb, var(--cd-schwarz) 10%, transparent);--bio-radius-sm:var(--cd-radius-sm);--bio-radius-md:var(--cd-radius-md);--bio-radius-lg:var(--cd-radius-lg)}.djs-parent.djs-parent{--canvas-fill-color:var(--cd-ui-grund);--lasso-fill-color:transparent;--search-preselected-background-color:var(--cd-ui-hover);--snap-line-stroke-color:var(--cd-ui-kontur);--resizer-fill-color:var(--cd-ui-plot);--resizer-stroke-color:var(--cd-ui-interaktion);--bendpoint-fill-color:var(--cd-ui-plot);--bendpoint-stroke-color:var(--cd-ui-interaktion);--shape-connect-allowed-fill-color:var(--cd-ui-hover);--shape-drop-allowed-fill-color:var(--cd-ui-hover);--popup-border-color:var(--cd-ui-linie);--popup-scrollbar-thumb-color:var(--cd-ui-linie);--popup-font-family:"Geist Variable", "Geist", ui-sans-serif, system-ui, sans-serif;--search-font-family:var(--popup-font-family);--hover-tooltip-font-family:var(--popup-font-family)}.djs-parent.djs-parent .djs-shape.drop-not-ok .djs-visual>:first-child,.djs-parent.djs-parent .djs-shape.connect-not-ok .djs-visual>:first-child{stroke:var(--cd-ui-danger)!important;stroke-dasharray:6 4!important}.djs-parent.djs-parent svg.drop-not-ok{outline:2px dashed var(--cd-ui-danger);outline-offset:-2px}.djs-parent.djs-parent .djs-tooltip-error{opacity:1}.bjs-container.bjs-container{--accent-color:var(--cd-ui-interaktion);--breadcrumbs-item-color:var(--cd-ui-link);--breadcrumbs-background-color:var(--cd-ui-flaeche-hoch);--breadcrumbs-border-color:var(--cd-ui-linie);--drilldown-background-color:var(--cd-blau);--drilldown-fill-color:var(--cd-weiss)}.cm-djs-container{background-color:var(--cd-ui-grund);background-image:radial-gradient(var(--cd-ui-linie) 1px, transparent 1px);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 svg:focus:not(:focus-visible){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(--cd-ui-interaktion)!important}.cm-djs-container .djs-outline{stroke:var(--cd-ui-interaktion);stroke-dasharray:3 3}.djs-palette:not([data-chrome=palette]){z-index:110;background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-md);width:auto;box-shadow:var(--cd-shadow-1);align-items:center;padding:3px;display:flex;top:12px;left:50%;transform:translate(-50%)}.djs-palette:not([data-chrome=palette]) .djs-palette-entries,.djs-palette:not([data-chrome=palette]) .group{flex-direction:row;align-items:center;gap:2px;display:flex}.djs-palette:not([data-chrome=palette]) .entry{float:none;border-radius:var(--cd-radius-sm);width:32px;height:32px;color:var(--cd-ui-text);transition:background-color var(--cd-motion-fast) var(--cd-ease), color var(--cd-motion-fast) var(--cd-ease), box-shadow var(--cd-motion-fast) var(--cd-ease);line-height:normal;position:relative}.djs-palette:not([data-chrome=palette]) .entry:hover{background:var(--cd-ui-hover);color:var(--cd-ui-interaktion)}.djs-palette:not([data-chrome=palette]) .group+.group{margin-left:8px;padding-left:9px;position:relative}.djs-palette:not([data-chrome=palette]) .group+.group:before{content:"";background:var(--cd-ui-linie);width:1px;position:absolute;top:4px;bottom:4px;left:0}.djs-palette:not([data-chrome=palette]) .cm-palette-entry{justify-content:center;align-items:center;display:flex}.djs-palette:not([data-chrome=palette]) .entry.highlighted-entry{background:var(--cd-ui-hover);box-shadow:inset 0 0 0 2px var(--cd-ui-interaktion);color:var(--cd-ui-text)!important}.cm-palette-svg{pointer-events:none;display:block}.cm-connect-handle{box-sizing:border-box;background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-sm);width:28px;height:28px;box-shadow:var(--cd-shadow-1);color:var(--cd-ui-text);cursor:pointer;transition:background-color var(--cd-motion-fast) var(--cd-ease), color var(--cd-motion-fast) var(--cd-ease);justify-content:center;align-items:center;display:flex}.cm-connect-handle:hover{background:var(--cd-ui-hover);color:var(--cd-ui-interaktion)}.cm-connect-handle__arrow{display:flex}.djs-context-pad.open{box-sizing:border-box;background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-md);width:auto;box-shadow:var(--cd-shadow-2);flex-direction:column;align-items:stretch;gap:2px;padding:3px;display:flex}.djs-context-pad.open:not(:has(.entry)){display:none}.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:2px;display:flex}.djs-context-pad .group+.group{border-top:1px solid var(--cd-ui-linie);margin-top:1px;padding-top:3px}.djs-context-pad .entry.cm-pad-entry{box-sizing:border-box;border-radius:var(--cd-radius-sm);width:28px;height:28px;box-shadow:none;color:var(--cd-ui-text);cursor:pointer;transition:background-color var(--cd-motion-fast) var(--cd-ease), color var(--cd-motion-fast) var(--cd-ease);background:0 0;border:0;justify-content:center;align-items:center;margin:0;display:flex}.djs-context-pad .entry.cm-pad-entry:hover{background:var(--cd-ui-hover);color:var(--cd-ui-interaktion)}.djs-context-pad .entry.cm-pad-entry--danger:hover{background:var(--cd-ui-danger-flaeche);color:var(--cd-ui-danger)}.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{border-radius:var(--cd-radius-md);box-shadow:var(--cd-shadow-3);animation:cm-popup-in var(--cd-motion-fast) var(--cd-ease-out)}.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{color:var(--cd-ui-text-leise)}.djs-popup .djs-popup-entry-name.cm-popup-active{color:var(--cd-ui-interaktion);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{background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-md);max-height:calc(100% - 32px);box-shadow:var(--cd-shadow-2);z-index:20;min-width:184px;color:var(--cd-ui-text);flex-direction:column;padding:8px 12px 12px 16px;display:flex;position:absolute;bottom:12px;left:12px}.cm-legend__body{min-height:0;overflow-y:auto}.cm-legend__head{flex:none;justify-content:space-between;align-items:center;margin-bottom:4px;font-size:13px;display:flex}.cm-legend__close{border-radius:var(--cd-radius-sm);width:28px;height:28px;color:var(--cd-ui-text);font:inherit;cursor:pointer;background:0 0;border:none;place-items:center;padding:0;display:grid}.cm-legend__close:hover{background:var(--cd-ui-hover);color:var(--cd-ui-interaktion)}.cm-legend__group{flex-direction:column;gap:4px;display:flex}.cm-legend__row{min-height:24px;color:var(--cd-ui-text);align-items:center;gap:8px;font-size:13px;display:flex}.cm-legend__divider{background:var(--cd-ui-linie);height:1px;margin:8px 0}.cm-legend__icon{place-items:center;width:24px;height:24px;display:inline-grid}.cm-legend-toggle{z-index:20;background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-md);height:40px;box-shadow:var(--cd-shadow-1);font:inherit;color:var(--cd-ui-text);cursor:pointer;transition:background-color var(--cd-motion-fast) var(--cd-ease), color var(--cd-motion-fast) var(--cd-ease);align-items:center;gap:8px;padding:0 16px;font-size:13px;font-weight:600;line-height:1;display:inline-flex;position:absolute;bottom:12px;left:12px}.cm-legend-toggle:hover{background:var(--cd-ui-hover);color:var(--cd-ui-interaktion)}.cm-legend-item{white-space:nowrap;cursor:help;position:relative}.cm-legend-tip{background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-sm);width:max-content;max-width:280px;box-shadow:var(--cd-shadow-2);color:var(--cd-ui-text);white-space:normal;pointer-events:none;padding:3px 8px;font-size:13px;font-weight:400;line-height:20px;display:none;position:fixed;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(--cd-ui-fokus);outline-offset:2px}.cm-dragging .cm-legend,.cm-dragging .cm-legend-toggle{pointer-events:none}.cm-legend-group{flex-direction:column;gap:4px;display:flex}:has(>.cm-djs-container>.cm-dragging)>[data-chrome=legend]{pointer-events:none}.cm-visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.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:100;color:var(--cd-ui-text)}.cm-djs-container .djs-direct-editing-content{caret-color:var(--cd-ui-interaktion);overflow-wrap:break-word}.cm-pad-prompt{z-index:210;background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-md);min-width:240px;box-shadow:var(--cd-shadow-3);color:var(--cd-ui-text);padding:8px;position:fixed}.cm-pad-prompt__field{box-sizing:border-box;width:100%;color:var(--cd-ui-text);border:1px solid var(--cd-ui-kontur);border-radius:var(--cd-radius-sm);background:var(--cd-ui-flaeche);resize:vertical;outline:none;padding:6px 8px;font-family:inherit;font-size:13px;display:block}.cm-pad-prompt__field:focus-visible,.cm-pad-prompt__field:focus{border-color:var(--cd-ui-interaktion);outline:2px solid var(--cd-ui-fokus);outline-offset:2px}.cm-pad-prompt__hint{color:var(--cd-ui-text-leise);margin-top:6px;font-size:12px}.cm-validation-marker{box-sizing:border-box;background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-pill);width:22px;height:22px;box-shadow:var(--cd-shadow-1);cursor:help;place-items:center;display:grid;position:relative}.cm-validation-marker[data-severity=error]{color:var(--cd-ui-danger)}.cm-validation-marker[data-severity=warning]{color:var(--cd-ui-warning)}.cm-validation-tooltip{background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-sm);width:max-content;max-width:280px;box-shadow:var(--cd-shadow-2);color:var(--cd-ui-text);pointer-events:none;z-index:200;padding:3px 8px;font-family:Geist Variable,Geist,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:13px;line-height:20px;display:none;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%)}.cm-validation-marker:hover .cm-validation-tooltip{display:block}.cm-validation-tooltip__message+.cm-validation-tooltip__message{border-top:1px solid var(--cd-ui-linie);margin-top:4px;padding-top:4px}.cm-hover-tooltip{z-index:200;box-sizing:border-box;background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-sm);max-width:min(280px,100% - 24px);box-shadow:var(--cd-shadow-2);color:var(--cd-ui-text);pointer-events:none;flex-direction:column;gap:2px;padding:3px 8px;font-size:13px;line-height:20px;display:flex;position:absolute}.cm-hover-tooltip[hidden]{display:none}.cm-hover-tooltip strong{font-weight:600}.cm-hover-tooltip span{color:var(--cd-ui-text-leise)}.cm-hover-tooltip span[hidden]{display:none}.cm-dialog{box-sizing:border-box;width:min(560px,100cqw - 32px);max-width:none;max-height:calc(100cqh - 32px);color:var(--cd-ui-text);background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-md);box-shadow:var(--cd-shadow-3);margin:auto;padding:0;overflow:hidden}.cm-dialog[open]{display:flex}.cm-dialog::backdrop{background:var(--cd-ui-backdrop);-webkit-backdrop-filter:blur(3px)grayscale();backdrop-filter:blur(3px)grayscale()}.cm-dialog-panel,.cm-dialog-form{flex-direction:column;flex:1;min-height:0;display:flex}.cm-dialog-header{justify-content:space-between;align-items:center;gap:8px;padding:16px 16px 8px 24px;display:flex}.cm-dialog-title{margin:0;font-size:21px;font-weight:600;line-height:1.3}.cm-dialog-close{width:32px;height:32px;color:var(--cd-ui-text);cursor:pointer;border-radius:var(--cd-radius-sm);background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.cm-dialog-close:hover{color:var(--cd-ui-interaktion);background:var(--cd-ui-hover)}.cm-dialog-close svg{display:block}.cm-dialog-body{flex-direction:column;min-height:0;padding:8px 24px 24px;font-size:13px;line-height:1.5;display:flex;overflow:auto}.cm-dialog-footer{border-top:1px solid var(--cd-ui-linie);justify-content:flex-end;gap:8px;padding:16px 24px;display:flex}.cm-dialog-label{margin-bottom:4px;font-size:13px;font-weight:600}.cm-dialog-input{box-sizing:border-box;width:100%;min-height:36px;font:inherit;color:var(--cd-ui-text);background:var(--cd-ui-grund);border:1px solid var(--cd-ui-kontur);border-radius:var(--cd-radius-sm);padding:8px 12px;font-size:13px;line-height:1.5}.cm-dialog-input::placeholder{color:var(--cd-ui-text-leise)}.cm-dialog-input:focus{border-color:var(--cd-ui-interaktion)}.cm-dialog-button{box-sizing:border-box;min-height:36px;font:inherit;cursor:pointer;border-radius:var(--cd-radius-md);transition:background-color var(--cd-motion-fast) var(--cd-ease), box-shadow var(--cd-motion-fast) var(--cd-ease), transform var(--cd-motion-fast) var(--cd-ease);padding:0 16px;font-size:13px;font-weight:600;line-height:1}.cm-dialog-button[data-variant=secondary]{color:var(--cd-ui-text);background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie)}.cm-dialog-button[data-variant=secondary]:hover{color:var(--cd-ui-link);background:var(--cd-ui-hover);border-color:var(--cd-ui-interaktion)}.cm-dialog-button[data-variant=primary]{color:var(--cd-weiss);background:var(--cd-blau);box-shadow:var(--cd-shadow-1);border:1px solid #0000}.cm-dialog-button[data-variant=primary]:hover,.cm-dialog-button[data-variant=primary]:active{background:var(--cd-blau-link);box-shadow:var(--cd-shadow-2);transform:translateY(-1px)}.cm-dialog-close:focus-visible,.cm-dialog-button:focus-visible,.cm-dialog-input:focus-visible{outline:2px solid var(--cd-ui-fokus);outline-offset:2px}@media (prefers-reduced-motion:reduce){.cm-dialog-button{transition:none}.cm-dialog-button[data-variant=primary]:hover,.cm-dialog-button[data-variant=primary]:active{transform:none}}.cm-title-dialog{width:min(440px,100cqw - 32px)}.cm-shortcuts-body{gap:16px}.cm-shortcuts-group-title{color:var(--cd-ui-text-leise);margin:0 0 4px;font-size:13px;font-weight:600}.cm-shortcuts-table{border-collapse:collapse;width:100%}.cm-shortcuts-table tr+tr{border-top:1px solid var(--cd-ui-linie)}.cm-shortcuts-action{text-align:left;padding:6px 12px 6px 0;font-weight:400}.cm-shortcuts-keys{text-align:right;white-space:nowrap;padding:6px 0}.cm-shortcuts-key{color:var(--cd-ui-text-leise);background:var(--cd-ui-grund);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-sm);box-shadow:none;vertical-align:baseline;padding:1px 6px;font-family:Geist Mono Variable,Geist Mono,ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:13px;font-weight:400;line-height:18px;display:inline-block}.cm-shortcuts-key+.cm-shortcuts-key{margin-left:6px}:root[data-cd-kontrast=hoch] .cm-dialog{border-color:var(--cd-ui-kontur);box-shadow:none}:root[data-cd-kontrast=hoch] .cm-dialog-button{box-shadow:none}:root[data-cd-kontrast=hoch] .cm-dialog-close:focus-visible,:root[data-cd-kontrast=hoch] .cm-dialog-button:focus-visible,:root[data-cd-kontrast=hoch] .cm-dialog-input:focus-visible{outline-width:3px}@media (forced-colors:active){.cm-dialog{border-color:canvastext}.cm-dialog-button{border-color:buttontext}.cm-dialog-close:focus-visible,.cm-dialog-button:focus-visible,.cm-dialog-input:focus-visible{outline-color:highlight}}.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
|
+
@layer context-maps-tokens{: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:#00e676;--cd-success-soft:#dafbeb;--cd-success-hell:#00e676;--cd-warning:#ffb000;--cd-warning-soft:#fff1d2;--cd-warning-hell:#ffb000;--cd-danger:#cd1839;--cd-danger-soft:#fbeef0;--cd-danger-hell:#fb6d73;--cd-info:#335de5;--cd-info-soft:#eef1fd;--cd-info-hell:#6b8aff;--cd-linie:#e6e2e2;--cd-kontur:#8f8a8a;--cd-text-leise:#6b6666;--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);--cd-shell-rand:12px;--cd-shell-luecke:8px;--cd-shell-zeile:40px;--cd-shell-ziel:32px;--cd-shell-eintrag:36px;--cd-shell-frei:64px;--cd-shell-menue-breite:248px;--cd-shell-inspector-breite:288px;--cd-shell-einpassen-oben:88px;--cd-shell-einpassen-oben-schmal:140px;--cd-shell-einpassen-seite:24px;--cd-shell-einpassen-unten:64px;--cd-shell-einpassen-unten-web:92px;--cd-shell-schmal:760px;--cd-shell-sehr-schmal:440px;--cd-shell-niedrig:820px;--cd-shell-ebene-inseln:20;--cd-shell-ebene-inspector:25;--cd-shell-ebene-reihe:30;--cd-shell-ebene-aufklapper:40;--cd-shell-ebene-dialog:50;--cd-shell-ebene-toast:60;--cd-ui-grund:#f9f7f7;--cd-ui-flaeche:#fff;--cd-ui-flaeche-hoch:#fff;--cd-ui-hover:#eef1fd;--cd-ui-plot:#fff;--cd-ui-seite:#fff;--cd-ui-abschnitt:#f9f7f7;--cd-ui-linie:#e6e2e2;--cd-ui-kontur:#8f8a8a;--cd-ui-text:#1d1d1d;--cd-ui-text-leise:#6b6666;--cd-ui-link:#2b50d4;--cd-ui-icon-akzent:#335de5;--cd-ui-fokus:#2b50d4;--cd-ui-interaktion:#335de5;--cd-ui-success:#00e676;--cd-ui-warning:#ffb000;--cd-ui-danger:#cd1839;--cd-ui-info:#335de5;--cd-ui-success-flaeche:#dafbeb;--cd-ui-warning-flaeche:#fff1d2;--cd-ui-danger-flaeche:#fbeef0;--cd-ui-info-flaeche:#eef1fd;--cd-ui-wortmarke:#00e676;--cd-ui-backdrop:#1d1d1d6b;--cd-ui-chrome-deckkraft:84%}[data-cd-theme=light],[data-cd-theme=system]{--cd-ui-grund:#f9f7f7;--cd-ui-flaeche:#fff;--cd-ui-flaeche-hoch:#fff;--cd-ui-hover:#eef1fd;--cd-ui-plot:#fff;--cd-ui-seite:#fff;--cd-ui-abschnitt:#f9f7f7;--cd-ui-linie:#e6e2e2;--cd-ui-kontur:#8f8a8a;--cd-ui-text:#1d1d1d;--cd-ui-text-leise:#6b6666;--cd-ui-link:#2b50d4;--cd-ui-icon-akzent:#335de5;--cd-ui-fokus:#2b50d4;--cd-ui-interaktion:#335de5;--cd-ui-success:#00e676;--cd-ui-warning:#ffb000;--cd-ui-danger:#cd1839;--cd-ui-info:#335de5;--cd-ui-success-flaeche:#dafbeb;--cd-ui-warning-flaeche:#fff1d2;--cd-ui-danger-flaeche:#fbeef0;--cd-ui-info-flaeche:#eef1fd;--cd-ui-wortmarke:#00e676;--cd-ui-backdrop:#1d1d1d6b;--cd-ui-chrome-deckkraft:84%;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media screen{[data-cd-theme=dark]{--cd-ui-grund:#1d1d1d;--cd-ui-flaeche:#282828;--cd-ui-flaeche-hoch:#2f2f2f;--cd-ui-hover:#383838;--cd-ui-plot:#1d1d1d;--cd-ui-seite:#1d1d1d;--cd-ui-abschnitt:#282828;--cd-ui-linie:#464646;--cd-ui-kontur:#8f8a8a;--cd-ui-text:#fff;--cd-ui-text-leise:#bbb;--cd-ui-link:#00e676;--cd-ui-icon-akzent:#00e676;--cd-ui-fokus:#6b8aff;--cd-ui-interaktion:#6b8aff;--cd-ui-success:#00e676;--cd-ui-warning:#ffb000;--cd-ui-danger:#fb6d73;--cd-ui-info:#6b8aff;--cd-ui-success-flaeche:#282828;--cd-ui-warning-flaeche:#282828;--cd-ui-danger-flaeche:#282828;--cd-ui-info-flaeche:#282828;--cd-ui-wortmarke:#fff;--cd-ui-backdrop:#1d1d1d99;--cd-ui-chrome-deckkraft:100%;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-cd-theme=dark] ::selection{color:#fff;background-color:#383838}}@media screen and (prefers-color-scheme:dark){[data-cd-theme=system]{--cd-ui-grund:#1d1d1d;--cd-ui-flaeche:#282828;--cd-ui-flaeche-hoch:#2f2f2f;--cd-ui-hover:#383838;--cd-ui-plot:#1d1d1d;--cd-ui-seite:#1d1d1d;--cd-ui-abschnitt:#282828;--cd-ui-linie:#464646;--cd-ui-kontur:#8f8a8a;--cd-ui-text:#fff;--cd-ui-text-leise:#bbb;--cd-ui-link:#00e676;--cd-ui-icon-akzent:#00e676;--cd-ui-fokus:#6b8aff;--cd-ui-interaktion:#6b8aff;--cd-ui-success:#00e676;--cd-ui-warning:#ffb000;--cd-ui-danger:#fb6d73;--cd-ui-info:#6b8aff;--cd-ui-success-flaeche:#282828;--cd-ui-warning-flaeche:#282828;--cd-ui-danger-flaeche:#282828;--cd-ui-info-flaeche:#282828;--cd-ui-wortmarke:#fff;--cd-ui-backdrop:#1d1d1d99;--cd-ui-chrome-deckkraft:100%;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-cd-theme=system] ::selection{color:#fff;background-color:#383838}}:root:not([data-cd-theme=dark]):not([data-cd-theme=system]) .cd-nur-dunkel{display:none!important}@media print{:root .cd-nur-dunkel{display:none!important}}@media (prefers-color-scheme:light){:root[data-cd-theme=system] .cd-nur-dunkel{display:none!important}}@media screen{:root[data-cd-theme=dark] .cd-nur-hell{display:none!important}}@media screen and (prefers-color-scheme:dark){:root[data-cd-theme=system] .cd-nur-hell{display:none!important}}[data-cd-kontrast=hoch]{--cd-ui-linie:#8f8a8a;--cd-ui-kontur:#1d1d1d;--cd-ui-text-leise:#1d1d1d;--cd-ui-chrome-deckkraft:100%}@media screen{[data-cd-theme=dark][data-cd-kontrast=hoch]{--cd-ui-linie:#8f8a8a;--cd-ui-kontur:#fff;--cd-ui-text-leise:#fff;--cd-ui-chrome-deckkraft:100%}}@media screen and (prefers-color-scheme:dark){[data-cd-theme=system][data-cd-kontrast=hoch]{--cd-ui-linie:#8f8a8a;--cd-ui-kontur:#fff;--cd-ui-text-leise:#fff;--cd-ui-chrome-deckkraft:100%}}@media (forced-colors:active){[data-cd-theme],[data-cd-theme][data-cd-kontrast=hoch]{--cd-ui-grund:Canvas;--cd-ui-flaeche:Canvas;--cd-ui-flaeche-hoch:Canvas;--cd-ui-hover:Canvas;--cd-ui-plot:Canvas;--cd-ui-seite:Canvas;--cd-ui-abschnitt:Canvas;--cd-ui-linie:CanvasText;--cd-ui-kontur:CanvasText;--cd-ui-text:CanvasText;--cd-ui-text-leise:CanvasText;--cd-ui-link:LinkText;--cd-ui-icon-akzent:CanvasText;--cd-ui-fokus:Highlight;--cd-ui-interaktion:Highlight;--cd-ui-success:CanvasText;--cd-ui-warning:CanvasText;--cd-ui-danger:CanvasText;--cd-ui-info:CanvasText;--cd-ui-success-flaeche:Canvas;--cd-ui-warning-flaeche:Canvas;--cd-ui-danger-flaeche:Canvas;--cd-ui-info-flaeche:Canvas;--cd-ui-wortmarke:CanvasText;--cd-ui-chrome-deckkraft:100%}}}.bio-theme-parent{--bio-surface:#fff;--bio-surface-overlay:#fff;--bio-surface-subtle:#f7f7f8;--bio-surface-medium:#f1f2f4;--bio-surface-inverted:#383838;--bio-surface-inverted-subtle:#505562;--bio-text:#22242a;--bio-text-subtle:#505562;--bio-text-subtlest:#818798;--bio-text-on-inverted:#fff;--bio-border:#b9bcc6;--bio-border-disabled:#e3e4e8;--bio-primary:#07c;--bio-primary-surface:#e6f4ff;--bio-danger:#e60000;--bio-danger-surface-subtle:#fff0f0;--bio-selected-surface:var(--bio-surface-medium);--bio-selected-text:var(--bio-text);--bio-focus:#07c;--bio-focus-surface:#e6f4ff;--bio-canvas-accent:#07c;--bio-canvas-accent-subtle:#80caff;--bio-shadow:#0000004d;--bio-shadow-subtle:#0000001a;--bio-radius-sm:2px;--bio-radius-md:3px;--bio-radius-lg:4px}.djs-parent{--button-border-radius:var(--bio-radius-md);--input-border-radius:var(--bio-radius-sm);--surface-border-radius:var(--bio-radius-lg);--canvas-fill-color:var(--bio-surface);--accent-color:var(--bio-canvas-accent);--bendpoint-fill-color:var(--bio-canvas-accent);--bendpoint-stroke-color:var(--canvas-fill-color);--context-pad-entry-background-color:var(--bio-surface);--context-pad-entry-hover-background-color:var(--bio-surface-medium);--element-dragger-color:var(--accent-color);--element-selected-outline-stroke-color:var(--accent-color);--element-selected-outline-secondary-stroke-color:var(--bio-canvas-accent-subtle);--lasso-fill-color:color-mix(in srgb, var(--bio-canvas-accent) 15%, transparent);--lasso-stroke-color:var(--element-selected-outline-stroke-color);--palette-entry-color:var(--bio-text);--palette-entry-hover-color:var(--bio-primary);--palette-entry-selected-color:var(--bio-primary);--palette-separator-color:var(--bio-border);--palette-toggle-hover-background-color:var(--bio-surface-medium);--palette-background-color:var(--bio-surface-subtle);--palette-border-color:var(--bio-border);--popup-font-family:"IBM Plex Sans", sans-serif;--popup-font-size:14px;--popup-secondary-font-size:.9em;--popup-header-entry-selected-color:var(--bio-primary);--popup-header-font-weight:bolder;--popup-header-group-divider-color:var(--bio-border);--popup-background-color:var(--bio-surface-overlay);--popup-border-color:transparent;--popup-shadow-color:var(--bio-shadow);--popup-scrollbar-thumb-color:#0003;--popup-button-background-color:var(--bio-surface-overlay);--popup-button-hover-background-color:var(--bio-surface-medium);--popup-disabled-color:var(--bio-text-subtle);--popup-description-color:var(--bio-text-subtle);--popup-no-results-color:var(--bio-text-subtlest);--popup-entry-title-color:var(--bio-text-subtlest);--popup-entry-selected-background-color:var(--bio-selected-surface);--popup-entry-selected-color:var(--bio-selected-text);--popup-search-border-color:var(--bio-border);--popup-search-focus-border-color:var(--bio-focus);--popup-search-focus-background-color:var(--bio-focus-surface);--popup-tab-color:var(--bio-text-subtlest);--popup-tab-hover-color:var(--bio-text);--popup-tab-active-color:var(--bio-text);--popup-tab-active-border-color:var(--bio-primary);--popup-tab-strip-border-color:var(--bio-border-disabled);--popup-tab-focus-border-color:var(--bio-focus);--resizer-fill-color:var(--bio-canvas-accent);--resizer-stroke-color:var(--canvas-fill-color);--search-font-family:"IBM Plex Sans", sans-serif;--search-font-size:14px;--search-container-background-color:var(--bio-surface-overlay);--search-shadow-color:var(--bio-shadow);--search-input-border-color:var(--bio-border);--search-input-focus-border-color:var(--bio-focus);--search-input-focus-background-color:var(--bio-primary-surface);--search-result-hover-background-color:var(--bio-surface-medium);--search-result-secondary-color:var(--bio-text-subtlest);--search-preselected-background-color:color-mix(in srgb, var(--bio-canvas-accent) 15%, transparent);--shape-attach-allowed-stroke-color:var(--accent-color);--shape-connect-allowed-fill-color:var(--bio-surface-subtle);--shape-drop-allowed-fill-color:var(--bio-surface-subtle);--shape-drop-not-allowed-fill-color:var(--bio-danger-surface-subtle);--shape-resize-preview-stroke-color:var(--accent-color);--snap-line-stroke-color:color-mix(in srgb, var(--bio-canvas-accent) 30%, transparent);--space-tool-crosshair-stroke-color:var(--bio-text);--tooltip-error-background-color:var(--bio-danger-surface-subtle);--tooltip-error-border-color:var(--bio-danger);--tooltip-error-color:var(--bio-danger);--hover-tooltip-font-family:"IBM Plex Sans", sans-serif;--hover-tooltip-font-size:12px;--hover-tooltip-secondary-font-size:11px;--hover-tooltip-background-color:var(--bio-surface-inverted);--hover-tooltip-color:var(--bio-text-on-inverted);--hover-tooltip-shadow-color:var(--bio-shadow-subtle);--palette-tooltip-shortcut-background-color:var(--bio-surface-inverted-subtle)}.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-hover-tooltip{z-index:1000;border-radius:var(--surface-border-radius);background-color:var(--hover-tooltip-background-color);color:var(--hover-tooltip-color);font-family:var(--hover-tooltip-font-family);font-size:var(--hover-tooltip-font-size);white-space:nowrap;pointer-events:none;box-shadow:0 1px 4px var(--hover-tooltip-shadow-color);align-items:center;gap:6px;padding:6px 10px;line-height:1.2;display:flex;position:fixed}.djs-hover-tooltip--right{transform:translateY(-50%)}.djs-hover-tooltip--top{transform:translate(-50%,-100%)}.djs-palette-tooltip-shortcut{border-radius:var(--button-border-radius);background-color:var(--palette-tooltip-shortcut-background-color);font-family:monospace;font-size:var(--hover-tooltip-secondary-font-size);padding:1px 5px;line-height:1.2}.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-radius:var(--input-border-radius);border:solid 1px var(--popup-search-border-color);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:var(--popup-button-hover-background-color)}.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{color:var(--popup-entry-selected-color);background-color:var(--popup-entry-selected-background-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:var(--popup-scrollbar-thumb-color);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--pointer .djs-popup-footer{display:none}.djs-popup-entry-docs{visibility:hidden;color:var(--popup-description-color);background:var(--popup-button-background-color);border:1px solid var(--popup-search-border-color);cursor:pointer;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--pointer .djs-popup-body .entry:hover .djs-popup-entry-docs{visibility:visible}.djs-popup-body .entry .djs-popup-entry-docs:hover{background:var(--popup-button-hover-background-color)}.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:var(--surface-border-radius)}.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);border-radius:var(--surface-border-radius);width:160px;color:var(--tooltip-error-color);opacity:.75;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);border-radius:var(--surface-border-radius);box-shadow:0px 2px 6px var(--search-shadow-color);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);border-radius:var(--input-border-radius);box-sizing:border-box;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}.cd-c-fill-grund{fill:var(--cd-ui-grund)!important}.cd-c-fill-plot{fill:var(--cd-ui-plot)!important}.cd-c-stroke-plot{stroke:var(--cd-ui-plot)!important}.cd-c-stroke-grund{stroke:var(--cd-ui-grund)!important}.cd-c-fill-flaeche-hoch{fill:var(--cd-ui-flaeche-hoch)!important}.cd-c-stroke-text{stroke:var(--cd-ui-text)!important}.cd-c-fill-text{fill:var(--cd-ui-text)!important}.cd-c-fill-text-leise{fill:var(--cd-ui-text-leise)!important}.cd-c-stroke-kontur{stroke:var(--cd-ui-kontur)!important}.cd-c-stroke-linie{stroke:var(--cd-ui-linie)!important}.cd-c-fill-linie{fill:var(--cd-ui-linie)!important}.cd-c-stroke-interaktion{stroke:var(--cd-ui-interaktion)!important}.cd-c-stroke-danger{stroke:var(--cd-ui-danger)!important}.cd-c-fill-danger{fill:var(--cd-ui-danger)!important}.cd-c-stroke-info{stroke:var(--cd-ui-info)!important}@media screen{[data-cd-theme=dark] .cd-c-bereich{fill:none!important}[data-cd-theme=dark] .cd-c-bereich-success{stroke:var(--cd-ui-success)!important}[data-cd-theme=dark] .cd-c-bereich-warning{stroke:var(--cd-ui-warning)!important}[data-cd-theme=dark] .cd-c-bereich-info{stroke:var(--cd-ui-info)!important}[data-cd-theme=dark] .cd-c-unterleger{stroke:var(--cd-ui-kontur)!important}}@media screen and (prefers-color-scheme:dark){[data-cd-theme=system] .cd-c-bereich{fill:none!important}[data-cd-theme=system] .cd-c-bereich-success{stroke:var(--cd-ui-success)!important}[data-cd-theme=system] .cd-c-bereich-warning{stroke:var(--cd-ui-warning)!important}[data-cd-theme=system] .cd-c-bereich-info{stroke:var(--cd-ui-info)!important}[data-cd-theme=system] .cd-c-unterleger{stroke:var(--cd-ui-kontur)!important}}:root,[data-cd-theme],.bio-theme-parent.bio-theme-parent{--bio-surface:var(--cd-ui-flaeche-hoch);--bio-surface-overlay:var(--cd-ui-flaeche-hoch);--bio-surface-subtle:var(--cd-ui-flaeche-hoch);--bio-surface-medium:var(--cd-ui-hover);--bio-surface-inverted:var(--cd-ui-flaeche-hoch);--bio-surface-inverted-subtle:var(--cd-ui-hover);--bio-text:var(--cd-ui-text);--bio-text-subtle:var(--cd-ui-text-leise);--bio-text-subtlest:var(--cd-ui-text-leise);--bio-text-on-inverted:var(--cd-ui-text);--bio-border:var(--cd-ui-linie);--bio-border-disabled:var(--cd-ui-linie);--bio-primary:var(--cd-ui-interaktion);--bio-primary-surface:var(--cd-ui-hover);--bio-text-on-primary:var(--cd-weiss);--bio-danger:var(--cd-ui-danger);--bio-danger-surface-subtle:var(--cd-ui-danger-flaeche);--bio-selected-surface:var(--cd-ui-hover);--bio-selected-text:var(--cd-ui-text);--bio-focus:var(--cd-ui-fokus);--bio-focus-surface:var(--cd-ui-hover);--bio-canvas-accent:var(--cd-ui-interaktion);--bio-canvas-accent-subtle:var(--cd-ui-interaktion);--bio-shadow:color-mix(in srgb, var(--cd-schwarz) 30%, transparent);--bio-shadow-subtle:color-mix(in srgb, var(--cd-schwarz) 10%, transparent);--bio-radius-sm:var(--cd-radius-sm);--bio-radius-md:var(--cd-radius-md);--bio-radius-lg:var(--cd-radius-lg)}.djs-parent.djs-parent{--canvas-fill-color:var(--cd-ui-grund);--lasso-fill-color:transparent;--search-preselected-background-color:var(--cd-ui-hover);--snap-line-stroke-color:var(--cd-ui-kontur);--resizer-fill-color:var(--cd-ui-plot);--resizer-stroke-color:var(--cd-ui-interaktion);--bendpoint-fill-color:var(--cd-ui-plot);--bendpoint-stroke-color:var(--cd-ui-interaktion);--shape-connect-allowed-fill-color:var(--cd-ui-hover);--shape-drop-allowed-fill-color:var(--cd-ui-hover);--popup-border-color:var(--cd-ui-linie);--popup-scrollbar-thumb-color:var(--cd-ui-linie);--popup-font-family:"Geist Variable", "Geist", ui-sans-serif, system-ui, sans-serif;--search-font-family:var(--popup-font-family);--hover-tooltip-font-family:var(--popup-font-family)}.djs-parent.djs-parent .djs-shape.drop-not-ok .djs-visual>:first-child,.djs-parent.djs-parent .djs-shape.connect-not-ok .djs-visual>:first-child{stroke:var(--cd-ui-danger)!important;stroke-dasharray:6 4!important}.djs-parent.djs-parent svg.drop-not-ok{outline:2px dashed var(--cd-ui-danger);outline-offset:-2px}.djs-parent.djs-parent .djs-tooltip-error{opacity:1}.bjs-container.bjs-container{--accent-color:var(--cd-ui-interaktion);--breadcrumbs-item-color:var(--cd-ui-link);--breadcrumbs-background-color:var(--cd-ui-flaeche-hoch);--breadcrumbs-border-color:var(--cd-ui-linie);--drilldown-background-color:var(--cd-blau);--drilldown-fill-color:var(--cd-weiss)}.cm-djs-container{background-color:var(--cd-ui-grund);background-image:radial-gradient(var(--cd-ui-linie) 1px, transparent 1px);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 svg:focus:not(:focus-visible){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(--cd-ui-interaktion)!important}.cm-djs-container .djs-outline{stroke:var(--cd-ui-interaktion);stroke-dasharray:3 3}.djs-palette:not([data-chrome=palette]){z-index:110;background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-md);width:auto;box-shadow:var(--cd-shadow-1);align-items:center;padding:3px;display:flex;top:12px;left:50%;transform:translate(-50%)}.djs-palette:not([data-chrome=palette]) .djs-palette-entries,.djs-palette:not([data-chrome=palette]) .group{flex-direction:row;align-items:center;gap:2px;display:flex}.djs-palette:not([data-chrome=palette]) .entry{float:none;border-radius:var(--cd-radius-sm);width:32px;height:32px;color:var(--cd-ui-text);transition:background-color var(--cd-motion-fast) var(--cd-ease), color var(--cd-motion-fast) var(--cd-ease), box-shadow var(--cd-motion-fast) var(--cd-ease);line-height:normal;position:relative}.djs-palette:not([data-chrome=palette]) .entry:hover{background:var(--cd-ui-hover);color:var(--cd-ui-interaktion)}.djs-palette:not([data-chrome=palette]) .group+.group{margin-left:8px;padding-left:9px;position:relative}.djs-palette:not([data-chrome=palette]) .group+.group:before{content:"";background:var(--cd-ui-linie);width:1px;position:absolute;top:4px;bottom:4px;left:0}.djs-palette:not([data-chrome=palette]) .cm-palette-entry{justify-content:center;align-items:center;display:flex}.djs-palette:not([data-chrome=palette]) .entry.highlighted-entry{background:var(--cd-ui-hover);box-shadow:inset 0 0 0 2px var(--cd-ui-interaktion);color:var(--cd-ui-text)!important}.cm-palette-svg{pointer-events:none;display:block}.cm-connect-handle{box-sizing:border-box;background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-sm);width:28px;height:28px;box-shadow:var(--cd-shadow-1);color:var(--cd-ui-text);cursor:pointer;transition:background-color var(--cd-motion-fast) var(--cd-ease), color var(--cd-motion-fast) var(--cd-ease);justify-content:center;align-items:center;display:flex}.cm-connect-handle:hover{background:var(--cd-ui-hover);color:var(--cd-ui-interaktion)}.cm-connect-handle__arrow{display:flex}.djs-context-pad.open{box-sizing:border-box;background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-md);width:auto;box-shadow:var(--cd-shadow-2);flex-direction:column;align-items:stretch;gap:2px;padding:3px;display:flex}.djs-context-pad.open:not(:has(.entry)){display:none}.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:2px;display:flex}.djs-context-pad .group+.group{border-top:1px solid var(--cd-ui-linie);margin-top:1px;padding-top:3px}.djs-context-pad .entry.cm-pad-entry{box-sizing:border-box;border-radius:var(--cd-radius-sm);width:28px;height:28px;box-shadow:none;color:var(--cd-ui-text);cursor:pointer;transition:background-color var(--cd-motion-fast) var(--cd-ease), color var(--cd-motion-fast) var(--cd-ease);background:0 0;border:0;justify-content:center;align-items:center;margin:0;display:flex}.djs-context-pad .entry.cm-pad-entry:hover{background:var(--cd-ui-hover);color:var(--cd-ui-interaktion)}.djs-context-pad .entry.cm-pad-entry--danger:hover{background:var(--cd-ui-danger-flaeche);color:var(--cd-ui-danger)}.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{border-radius:var(--cd-radius-md);box-shadow:var(--cd-shadow-3);animation:cm-popup-in var(--cd-motion-fast) var(--cd-ease-out)}.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{color:var(--cd-ui-text-leise)}.djs-popup .djs-popup-entry-name.cm-popup-active{color:var(--cd-ui-interaktion);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{background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-md);max-height:calc(100% - 32px);box-shadow:var(--cd-shadow-2);z-index:20;min-width:184px;color:var(--cd-ui-text);flex-direction:column;padding:8px 12px 12px 16px;display:flex;position:absolute;bottom:12px;left:12px}.cm-legend__body{min-height:0;overflow-y:auto}.cm-legend__head{flex:none;justify-content:space-between;align-items:center;margin-bottom:4px;font-size:13px;display:flex}.cm-legend__close{border-radius:var(--cd-radius-sm);width:28px;height:28px;color:var(--cd-ui-text);font:inherit;cursor:pointer;background:0 0;border:none;place-items:center;padding:0;display:grid}.cm-legend__close:hover{background:var(--cd-ui-hover);color:var(--cd-ui-interaktion)}.cm-legend__group{flex-direction:column;gap:4px;display:flex}.cm-legend__row{min-height:24px;color:var(--cd-ui-text);align-items:center;gap:8px;font-size:13px;display:flex}.cm-legend__divider{background:var(--cd-ui-linie);height:1px;margin:8px 0}.cm-legend__icon{place-items:center;width:24px;height:24px;display:inline-grid}.cm-legend-toggle{z-index:20;background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-md);height:40px;box-shadow:var(--cd-shadow-1);font:inherit;color:var(--cd-ui-text);cursor:pointer;transition:background-color var(--cd-motion-fast) var(--cd-ease), color var(--cd-motion-fast) var(--cd-ease);align-items:center;gap:8px;padding:0 16px;font-size:13px;font-weight:600;line-height:1;display:inline-flex;position:absolute;bottom:12px;left:12px}.cm-legend-toggle:hover{background:var(--cd-ui-hover);color:var(--cd-ui-interaktion)}.cm-legend-item{white-space:nowrap;cursor:help;position:relative}.cm-legend-tip{background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-sm);width:max-content;max-width:280px;box-shadow:var(--cd-shadow-2);color:var(--cd-ui-text);white-space:normal;pointer-events:none;padding:3px 8px;font-size:13px;font-weight:400;line-height:20px;display:none;position:fixed;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(--cd-ui-fokus);outline-offset:2px}.cm-dragging .cm-legend,.cm-dragging .cm-legend-toggle{pointer-events:none}.cm-legend-group{flex-direction:column;gap:4px;display:flex}:has(>.cm-djs-container>.cm-dragging)>[data-chrome=legend]{pointer-events:none}.cm-visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.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:100;color:var(--cd-ui-text)}.cm-djs-container .djs-direct-editing-content{caret-color:var(--cd-ui-interaktion);overflow-wrap:break-word}.cm-pad-prompt{z-index:100;background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-md);min-width:240px;box-shadow:var(--cd-shadow-3);color:var(--cd-ui-text);padding:8px;position:fixed}.cm-pad-prompt__field{box-sizing:border-box;width:100%;color:var(--cd-ui-text);border:1px solid var(--cd-ui-kontur);border-radius:var(--cd-radius-sm);background:var(--cd-ui-flaeche);resize:vertical;outline:none;padding:6px 8px;font-family:inherit;font-size:13px;display:block}.cm-pad-prompt__field:focus-visible,.cm-pad-prompt__field:focus{border-color:var(--cd-ui-interaktion);outline:2px solid var(--cd-ui-fokus);outline-offset:2px}.cm-pad-prompt__hint{color:var(--cd-ui-text-leise);margin-top:6px;font-size:12px}.cm-validation-marker{box-sizing:border-box;background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-pill);width:22px;height:22px;box-shadow:var(--cd-shadow-1);cursor:help;place-items:center;display:grid;position:relative}.cm-validation-marker[data-severity=error]{color:var(--cd-ui-danger)}.cm-validation-marker[data-severity=warning]{color:var(--cd-ui-warning)}.cm-validation-tooltip{background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-sm);width:max-content;max-width:280px;box-shadow:var(--cd-shadow-2);color:var(--cd-ui-text);pointer-events:none;z-index:200;padding:3px 8px;font-family:Geist Variable,Geist,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:13px;line-height:20px;display:none;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%)}.cm-validation-marker:hover .cm-validation-tooltip{display:block}.cm-validation-tooltip__message+.cm-validation-tooltip__message{border-top:1px solid var(--cd-ui-linie);margin-top:4px;padding-top:4px}.cm-hover-tooltip{z-index:200;box-sizing:border-box;background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-sm);max-width:min(280px,100% - 24px);box-shadow:var(--cd-shadow-2);color:var(--cd-ui-text);pointer-events:none;flex-direction:column;gap:2px;padding:3px 8px;font-size:13px;line-height:20px;display:flex;position:absolute}.cm-hover-tooltip[hidden]{display:none}.cm-hover-tooltip strong{font-weight:600}.cm-hover-tooltip span{color:var(--cd-ui-text-leise)}.cm-hover-tooltip span[hidden]{display:none}.cm-dialog{box-sizing:border-box;width:min(560px,100cqw - 32px);max-width:none;max-height:calc(100cqh - 32px);color:var(--cd-ui-text);background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-md);box-shadow:var(--cd-shadow-3);margin:auto;padding:0;overflow:hidden}.cm-dialog[open]{display:flex}.cm-dialog::backdrop{background:var(--cd-ui-backdrop);-webkit-backdrop-filter:blur(3px)grayscale();backdrop-filter:blur(3px)grayscale()}.cm-dialog-panel,.cm-dialog-form{flex-direction:column;flex:1;min-height:0;display:flex}.cm-dialog-header{justify-content:space-between;align-items:center;gap:8px;padding:16px 16px 8px 24px;display:flex}.cm-dialog-title{margin:0;font-size:21px;font-weight:600;line-height:1.3}.cm-dialog-close{width:32px;height:32px;color:var(--cd-ui-text);cursor:pointer;border-radius:var(--cd-radius-sm);background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.cm-dialog-close:hover{color:var(--cd-ui-interaktion);background:var(--cd-ui-hover)}.cm-dialog-close svg{display:block}.cm-dialog-body{flex-direction:column;min-height:0;padding:8px 24px 24px;font-size:13px;line-height:1.5;display:flex;overflow:auto}.cm-dialog-footer{border-top:1px solid var(--cd-ui-linie);justify-content:flex-end;gap:8px;padding:16px 24px;display:flex}.cm-dialog-label{margin-bottom:4px;font-size:13px;font-weight:600}.cm-dialog-input{box-sizing:border-box;width:100%;min-height:36px;font:inherit;color:var(--cd-ui-text);background:var(--cd-ui-grund);border:1px solid var(--cd-ui-kontur);border-radius:var(--cd-radius-sm);padding:8px 12px;font-size:13px;line-height:1.5}.cm-dialog-input::placeholder{color:var(--cd-ui-text-leise)}.cm-dialog-input:focus{border-color:var(--cd-ui-interaktion)}.cm-dialog-button{box-sizing:border-box;min-height:36px;font:inherit;cursor:pointer;border-radius:var(--cd-radius-md);transition:background-color var(--cd-motion-fast) var(--cd-ease), box-shadow var(--cd-motion-fast) var(--cd-ease), transform var(--cd-motion-fast) var(--cd-ease);padding:0 16px;font-size:13px;font-weight:600;line-height:1}.cm-dialog-button[data-variant=secondary]{color:var(--cd-ui-text);background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie)}.cm-dialog-button[data-variant=secondary]:hover{color:var(--cd-ui-link);background:var(--cd-ui-hover);border-color:var(--cd-ui-interaktion)}.cm-dialog-button[data-variant=primary]{color:var(--cd-weiss);background:var(--cd-blau);box-shadow:var(--cd-shadow-1);border:1px solid #0000}.cm-dialog-button[data-variant=primary]:hover,.cm-dialog-button[data-variant=primary]:active{background:var(--cd-blau-link);box-shadow:var(--cd-shadow-2);transform:translateY(-1px)}.cm-dialog-close:focus-visible,.cm-dialog-button:focus-visible,.cm-dialog-input:focus-visible{outline:2px solid var(--cd-ui-fokus);outline-offset:2px}@media (prefers-reduced-motion:reduce){.cm-dialog-button{transition:none}.cm-dialog-button[data-variant=primary]:hover,.cm-dialog-button[data-variant=primary]:active{transform:none}}.cm-title-dialog{width:min(440px,100cqw - 32px)}.cm-shortcuts-body{gap:16px}.cm-shortcuts-group-title{color:var(--cd-ui-text-leise);margin:0 0 4px;font-size:13px;font-weight:600}.cm-shortcuts-table{border-collapse:collapse;width:100%}.cm-shortcuts-table tr+tr{border-top:1px solid var(--cd-ui-linie)}.cm-shortcuts-action{text-align:left;padding:6px 12px 6px 0;font-weight:400}.cm-shortcuts-keys{text-align:right;white-space:nowrap;padding:6px 0}.cm-shortcuts-key{color:var(--cd-ui-text-leise);background:var(--cd-ui-grund);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-sm);box-shadow:none;vertical-align:baseline;padding:1px 6px;font-family:Geist Mono Variable,Geist Mono,ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:13px;font-weight:400;line-height:18px;display:inline-block}.cm-shortcuts-key+.cm-shortcuts-key{margin-left:6px}:root[data-cd-kontrast=hoch] .cm-dialog{border-color:var(--cd-ui-kontur);box-shadow:none}:root[data-cd-kontrast=hoch] .cm-dialog-button{box-shadow:none}:root[data-cd-kontrast=hoch] .cm-dialog-close:focus-visible,:root[data-cd-kontrast=hoch] .cm-dialog-button:focus-visible,:root[data-cd-kontrast=hoch] .cm-dialog-input:focus-visible{outline-width:3px}@media (forced-colors:active){.cm-dialog{border-color:canvastext}.cm-dialog-button{border-color:buttontext}.cm-dialog-close:focus-visible,.cm-dialog-button:focus-visible,.cm-dialog-input:focus-visible{outline-color:highlight}}.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*/
|
|
@@ -59,8 +59,10 @@ export default class CmContextPadProvider implements ContextPadProvider {
|
|
|
59
59
|
*/
|
|
60
60
|
private appendContext;
|
|
61
61
|
private startAppend;
|
|
62
|
-
/**
|
|
63
|
-
*
|
|
62
|
+
/**
|
|
63
|
+
* Open the subdomain-type menu for a freshly appended context, anchored to
|
|
64
|
+
* its pad entry — deferred one task so the pad has been positioned first.
|
|
65
|
+
*/
|
|
64
66
|
private openTypeMenu;
|
|
65
67
|
private relationshipEntries;
|
|
66
68
|
private editLabelEntry;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CmContextPadProvider.d.ts","sourceRoot":"","sources":["../../src/context-pad/CmContextPadProvider.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"CmContextPadProvider.d.ts","sourceRoot":"","sources":["../../src/context-pad/CmContextPadProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;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;AACjE,OAAO,EAA2B,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAiDjF,MAAM,CAAC,OAAO,OAAO,oBAAqB,YAAW,kBAAkB;IAwBnE,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;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAtC3B,MAAM,CAAC,OAAO,WAiBZ;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,EACpB,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC;IA8E3D,OAAO,CAAC,gBAAgB;IAgCxB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,iBAAiB;IAOzD,gCAAgC,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,iBAAiB;IASxE,OAAO,CAAC,cAAc;IAiDtB;;;;;;;;OAQG;IACH,OAAO,CAAC,YAAY;IAkCpB;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,WAAW;IAWnB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,mBAAmB;IAoD3B,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,gBAAgB;IAiBxB;;;;;;OAMG;IACH,OAAO,CAAC,YAAY,CAAC,CAAqB;IAE1C,4FAA4F;IAC5F,YAAY,IAAI,IAAI;IAIpB,OAAO,CAAC,UAAU;IAyFlB,OAAO,CAAC,WAAW;IAanB,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"}
|
|
@@ -17,14 +17,16 @@ export default class ContextMapsRenderer extends BaseRenderer {
|
|
|
17
17
|
* by side inside a single axis-aligned parent box.
|
|
18
18
|
*/
|
|
19
19
|
private endMarkers;
|
|
20
|
-
/** A fixed-size coloured sub-label
|
|
20
|
+
/** A fixed-size coloured sub-label inside a parent box. */
|
|
21
21
|
private miniChip;
|
|
22
22
|
/** A single small filled, bordered box (background, text colour, border colour). */
|
|
23
23
|
private chip;
|
|
24
|
-
/**
|
|
24
|
+
/**
|
|
25
|
+
* The name starts at the FIXED offset below the type header — the gap
|
|
25
26
|
* between header and name never varies with box size or line count. Lines
|
|
26
27
|
* that would run past the (fixed-size) box are dropped, the last kept line
|
|
27
|
-
* gets an ellipsis.
|
|
28
|
+
* gets an ellipsis.
|
|
29
|
+
*/
|
|
28
30
|
private appendLabel;
|
|
29
31
|
}
|
|
30
32
|
//# 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;AA4CzF,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;IAqEnB,OAAO,CAAC,gBAAgB;IAwCxB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IA8DlB,2DAA2D;IAC3D,OAAO,CAAC,QAAQ;IAoChB,oFAAoF;IACpF,OAAO,CAAC,IAAI;IA4CZ;;;;;OAKG;IACH,OAAO,CAAC,WAAW;CAsCpB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { CmContext } from '../model/di-types.js';
|
|
2
|
+
type ContextColouring = Pick<CmContext, "subdomainType" | "fill" | "stroke">;
|
|
3
|
+
/** The WCAG contrast ratio of two hex colours, or `undefined` when one is no hex colour. */
|
|
4
|
+
export declare function contrastRatio(first: string, second: string): number | undefined;
|
|
5
|
+
/** Text on `fill` is schwarz or weiss, whichever has more contrast (guide §10.6). */
|
|
6
|
+
export declare function readableTextColour(fill: string): string;
|
|
7
|
+
export declare function contextFill(context: ContextColouring): string;
|
|
8
|
+
export declare function contextStroke(context: ContextColouring): string;
|
|
9
|
+
/** The context's name, on whatever fill it has. */
|
|
10
|
+
export declare function contextNameColour(context: ContextColouring): string;
|
|
11
|
+
/**
|
|
12
|
+
* The team caption and its glyph: quiet text on the notation's own fills, where it keeps 4.5:1,
|
|
13
|
+
* and the name's black or white on a fill the author set, which may be any colour.
|
|
14
|
+
*/
|
|
15
|
+
export declare function contextTeamColour(context: ContextColouring): string;
|
|
16
|
+
/**
|
|
17
|
+
* The subdomain badge, its type name and glyph, reads like the team caption: the type's own stroke
|
|
18
|
+
* colour stays below 3:1 on its fill. The box keeps the type's fill and stroke as the colour cue.
|
|
19
|
+
*/
|
|
20
|
+
export declare function contextBadgeColour(context: ContextColouring): string;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=contextColours.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contextColours.d.ts","sourceRoot":"","sources":["../../src/draw/contextColours.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAKtD,KAAK,gBAAgB,GAAG,IAAI,CAAC,SAAS,EAAE,eAAe,GAAG,MAAM,GAAG,QAAQ,CAAC,CAAC;AAmB7E,4FAA4F;AAC5F,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQ/E;AAED,qFAAqF;AACrF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKvD;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAG7D;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAG/D;AAED,mDAAmD;AACnD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAEnE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAEnE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAEpE"}
|
|
@@ -8,7 +8,7 @@ export declare const TYPE_LABEL: {
|
|
|
8
8
|
readonly letterSpacingEm: 0.03;
|
|
9
9
|
};
|
|
10
10
|
export declare const TEAM_ICON_SIZE = 14;
|
|
11
|
-
/** The
|
|
11
|
+
/** The team glyph and the team's name at the bottom of a context, in context coordinates. */
|
|
12
12
|
export interface TeamRowLayout {
|
|
13
13
|
/** The icon's left edge, where the row starts. */
|
|
14
14
|
left: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contextLayout.d.ts","sourceRoot":"","sources":["../../src/draw/contextLayout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAC9F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAItD,gGAAgG;AAChG,eAAO,MAAM,UAAU;;;;;CAAsE,CAAC;AAE9F,eAAO,MAAM,cAAc,KAAK,CAAC;AAIjC,
|
|
1
|
+
{"version":3,"file":"contextLayout.d.ts","sourceRoot":"","sources":["../../src/draw/contextLayout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAC9F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAItD,gGAAgG;AAChG,eAAO,MAAM,UAAU;;;;;CAAsE,CAAC;AAE9F,eAAO,MAAM,cAAc,KAAK,CAAC;AAIjC,6FAA6F;AAC7F,MAAM,WAAW,aAAa;IAC5B,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,aAAa,CAC3B,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,GACX,aAAa,CAaf;AAED,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAQ1D;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,GAAG,eAAe,GAAG,MAAM,CAAC,GACjE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAYjC"}
|
package/dist/draw/lucide.d.ts
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
|
+
/*! @miragon/context-maps-renderer icon geometry
|
|
2
|
+
* Lucide (lucide-static 1.59.0) @license ISC
|
|
3
|
+
* Copyright (c) 2026 Lucide Icons and Contributors
|
|
4
|
+
* Derived from Feather, as Lucide's LICENSE lists them: arrow-right, circle-x, trash,
|
|
5
|
+
* triangle-alert and x. Feather @license MIT
|
|
6
|
+
* Copyright (c) 2013-present Cole Bemis */
|
|
1
7
|
/**
|
|
2
8
|
* The Lucide icons of the in-canvas chrome (context pad, connect handles, the lasso tool, the
|
|
3
|
-
* shortcuts dialog), inlined so the renderer has no icon
|
|
4
|
-
* lucide-static 1.59.0 (`icon-nodes.json
|
|
5
|
-
* `circle-x`, `trash`, `triangle-alert` and `x` derive from Feather, MIT, © Cole Bemis).
|
|
9
|
+
* shortcuts dialog) and of the team glyph on the canvas, inlined so the renderer has no icon
|
|
10
|
+
* runtime dependency. Copied unchanged from lucide-static 1.59.0 (`icon-nodes.json`).
|
|
6
11
|
*/
|
|
7
12
|
export declare const LUCIDE: {
|
|
8
13
|
readonly "arrow-left-right": "<path d=\"M8 3 4 7l4 4\"/><path d=\"M4 7h16\"/><path d=\"m16 21 4-4-4-4\"/><path d=\"M20 17H4\"/>";
|
|
@@ -19,6 +24,8 @@ export declare const LUCIDE: {
|
|
|
19
24
|
readonly x: "<path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/>";
|
|
20
25
|
};
|
|
21
26
|
export type LucideIconName = keyof typeof LUCIDE;
|
|
27
|
+
/** Guide §11: stroke 2.5 in units of the 24 grid, so the line grows with the icon's size. */
|
|
28
|
+
export declare const LUCIDE_STROKE_WIDTH = 2.5;
|
|
22
29
|
/**
|
|
23
30
|
* A chrome icon (guide §5.14, §11): 16px with stroke 2.5 on the 24 grid, so the stroke matches the
|
|
24
31
|
* shell's chrome icons; `currentColor`, so the surrounding role decides the colour.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucide.d.ts","sourceRoot":"","sources":["../../src/draw/lucide.ts"],"names":[],"mappings":"AAAA;;;;;
|
|
1
|
+
{"version":3,"file":"lucide.d.ts","sourceRoot":"","sources":["../../src/draw/lucide.ts"],"names":[],"mappings":"AAAA;;;;;2CAK2C;AAE3C;;;;GAIG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;CAqBT,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,MAAM,CAAC;AAEjD,6FAA6F;AAC7F,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAMvC;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAEvD;AAED,gGAAgG;AAChG,wBAAgB,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAErD"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Markup strings for the slots diagram-js and the hosts fill with `innerHTML` (palette and pad
|
|
3
|
+
* entries, popup menu images, legend previews). Every attribute value and every text passes
|
|
4
|
+
* `escapeMarkup`, so a value a host or a document hands in stays a value and never becomes markup.
|
|
5
|
+
*/
|
|
6
|
+
declare const markupBrand: unique symbol;
|
|
7
|
+
/** Markup built here: only escaped values, so it may be nested as it is. */
|
|
8
|
+
export type Markup = string & {
|
|
9
|
+
readonly [markupBrand]: true;
|
|
10
|
+
};
|
|
11
|
+
export type MarkupAttributes = Readonly<Record<string, string | number | undefined>>;
|
|
12
|
+
export declare function escapeMarkup(value: string): string;
|
|
13
|
+
export declare function markupText(text: string): Markup;
|
|
14
|
+
/**
|
|
15
|
+
* Skips `undefined` attributes, so an optional value such as a solid line's dash writes no
|
|
16
|
+
* attribute rather than "undefined".
|
|
17
|
+
*/
|
|
18
|
+
export declare function markupElement(name: string, attributes: MarkupAttributes, ...children: Markup[]): Markup;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=markup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markup.d.ts","sourceRoot":"","sources":["../../src/draw/markup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,CAAC,MAAM,WAAW,EAAE,OAAO,MAAM,CAAC;AAEzC,4EAA4E;AAC5E,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAE/D,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;AAUrF,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,gBAAgB,EAC5B,GAAG,QAAQ,EAAE,MAAM,EAAE,GACpB,MAAM,CAUR"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { DownstreamRole, RelationshipPattern, SubdomainType, UpstreamRole } from '@miragon/context-maps-schema-model';
|
|
2
2
|
/** No (or unknown) type → the neutral box an unclassified context gets on the canvas. */
|
|
3
3
|
export declare function contextIconSvg(type?: SubdomainType): string;
|
|
4
|
-
/**
|
|
4
|
+
/**
|
|
5
|
+
* The bare subdomain glyph (star / hand / dotted circle) without the box — legend rows. With no box
|
|
6
|
+
* around it, it keeps the type's outline colour as its colour cue; each outline holds 3:1.
|
|
7
|
+
*/
|
|
5
8
|
export declare function subdomainIconSvg(type: SubdomainType, size?: number): string;
|
|
6
9
|
/** The same coloured role chip (OHS/PL/ACL/CF) the canvas draws at relationship ends. */
|
|
7
10
|
export declare function roleChipSvg(role: UpstreamRole | DownstreamRole): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"palette-icons.d.ts","sourceRoot":"","sources":["../../src/draw/palette-icons.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"palette-icons.d.ts","sourceRoot":"","sources":["../../src/draw/palette-icons.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EAEnB,aAAa,EAEb,YAAY,EACb,MAAM,oCAAoC,CAAC;AA4E5C,yFAAyF;AACzF,wBAAgB,cAAc,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM,CAS3D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,SAAkB,GAAG,MAAM,CAkBpF;AAED,yFAAyF;AACzF,wBAAgB,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,cAAc,GAAG,MAAM,CAmBvE;AAED,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,mBAAqC,EAC9C,IAAI,SAAY,GACf,MAAM,CAyBR"}
|