@miragon/team-topologies-renderer 0.10.0 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +98 -31
- package/dist/Modeler.d.ts +2 -1
- package/dist/Modeler.d.ts.map +1 -1
- package/dist/TtBaseViewer.d.ts +47 -7
- package/dist/TtBaseViewer.d.ts.map +1 -1
- package/dist/collaborative/CollaborativeTeamTopologies.d.ts +36 -0
- package/dist/collaborative/CollaborativeTeamTopologies.d.ts.map +1 -0
- package/dist/collaborative/index.d.ts +2 -0
- package/dist/collaborative/index.d.ts.map +1 -0
- package/dist/context-pad/TtContextPadProvider.d.ts +9 -1
- package/dist/context-pad/TtContextPadProvider.d.ts.map +1 -1
- package/dist/copy-paste/TtCopyPasteProps.d.ts.map +1 -1
- package/dist/draw/icons.d.ts +51 -11
- package/dist/draw/icons.d.ts.map +1 -1
- package/dist/draw/label-layout.d.ts +5 -0
- package/dist/draw/label-layout.d.ts.map +1 -1
- package/dist/draw/palette-icons.d.ts +1 -1
- package/dist/draw/palette-icons.d.ts.map +1 -1
- package/dist/draw/styles.d.ts +4 -5
- package/dist/draw/styles.d.ts.map +1 -1
- package/dist/index.d.ts +11 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1019 -497
- package/dist/index.js.map +1 -1
- package/dist/io/TtExporter.d.ts.map +1 -1
- package/dist/io/TtImporter.d.ts +4 -1
- package/dist/io/TtImporter.d.ts.map +1 -1
- package/dist/io/TtViewport.d.ts +19 -0
- package/dist/io/TtViewport.d.ts.map +1 -0
- package/dist/io/fontEmbedding.d.ts +18 -0
- package/dist/io/fontEmbedding.d.ts.map +1 -0
- package/dist/io/index.d.ts +4 -1
- package/dist/io/index.d.ts.map +1 -1
- package/dist/io/saveSvg.d.ts.map +1 -1
- package/dist/io/types.d.ts +3 -0
- package/dist/io/types.d.ts.map +1 -1
- package/dist/keyboard/TtKeyboard.d.ts +9 -1
- package/dist/keyboard/TtKeyboard.d.ts.map +1 -1
- package/dist/keyboard/index.d.ts +2 -1
- package/dist/keyboard/index.d.ts.map +1 -1
- package/dist/label-editing/TtLabelEditing.d.ts +33 -2
- package/dist/label-editing/TtLabelEditing.d.ts.map +1 -1
- package/dist/model/TtElementFactory.d.ts +2 -0
- package/dist/model/TtElementFactory.d.ts.map +1 -1
- package/dist/model/di-types.d.ts +11 -5
- package/dist/model/di-types.d.ts.map +1 -1
- package/dist/modeling/TtModeling.d.ts +2 -0
- package/dist/modeling/TtModeling.d.ts.map +1 -1
- package/dist/modeling/cmd/UpdateTitleHandler.d.ts +16 -0
- package/dist/modeling/cmd/UpdateTitleHandler.d.ts.map +1 -0
- package/dist/palette/TtPaletteProvider.d.ts +28 -1
- package/dist/palette/TtPaletteProvider.d.ts.map +1 -1
- package/dist/read-only/TtReadOnly.d.ts +14 -0
- package/dist/read-only/TtReadOnly.d.ts.map +1 -0
- package/dist/read-only/index.d.ts +5 -0
- package/dist/read-only/index.d.ts.map +1 -0
- package/dist/team-topologies.css +1 -1
- package/dist/theme/palette.d.ts +29 -9
- package/dist/theme/palette.d.ts.map +1 -1
- package/package.json +10 -9
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@ It renders the canonical document from
|
|
|
11
11
|
[`@miragon/team-topologies-schema-model`](../schema-model) and gives you palette, move, resize,
|
|
12
12
|
connect-by-overlap, multi-selection (lasso, select all) with group move, text annotations, context
|
|
13
13
|
pad, in-place label editing and undo/redo — with no UI framework required.
|
|
14
|
-
Mount it into any `<div>`; the web app
|
|
14
|
+
Mount it into any `<div>`; the web app and the VS Code extension both wrap this exact package.
|
|
15
15
|
|
|
16
16
|
## Install
|
|
17
17
|
|
|
@@ -29,16 +29,35 @@ npm install @miragon/team-topologies-renderer @miragon/team-topologies-schema-mo
|
|
|
29
29
|
|
|
30
30
|
## Editing gestures (`Modeler`)
|
|
31
31
|
|
|
32
|
-
| Gesture
|
|
33
|
-
|
|
|
34
|
-
| Double-click an element
|
|
35
|
-
| `Ctrl/Cmd+A`
|
|
36
|
-
| Shift+drag on the canvas
|
|
37
|
-
| Shift+click
|
|
38
|
-
| Drag a selected element
|
|
39
|
-
| Arrow keys (Shift: ×10)
|
|
40
|
-
| `Ctrl/Cmd+C` / `V`, Delete
|
|
41
|
-
| `Ctrl/Cmd+Z`, `Ctrl/Cmd+Shift+Z/Y`
|
|
32
|
+
| Gesture | Effect |
|
|
33
|
+
| ------------------------------------ | ----------------------------------------------------------------------- |
|
|
34
|
+
| Double-click an element | Edit its label in place (Enter commits, Shift+Enter breaks, Esc aborts) |
|
|
35
|
+
| `Ctrl/Cmd+A` | Select every element |
|
|
36
|
+
| Shift+drag on the canvas | Lasso-select (also the first palette tool) |
|
|
37
|
+
| Shift+click | Add an element to / remove it from the selection |
|
|
38
|
+
| Drag a selected element | Move the whole selection as one undo step |
|
|
39
|
+
| Arrow keys (Shift: ×10) | Nudge the selection |
|
|
40
|
+
| `Ctrl/Cmd+C` / `V`, Delete | Copy, paste, delete the selection |
|
|
41
|
+
| `Ctrl/Cmd+Z`, `Ctrl/Cmd+Shift+Z/Y` | Undo / redo (off with `undoRedoKeys: false`) |
|
|
42
|
+
| Esc | Clear the selection |
|
|
43
|
+
| Enter / Space on a context-pad entry | Run it (rename, add annotation, delete) |
|
|
44
|
+
|
|
45
|
+
The shortcuts act only while the page itself or the canvas has focus, never inside host chrome,
|
|
46
|
+
form fields, the label editor or an open modal dialog, and never on a key a closer listener already
|
|
47
|
+
handled (`defaultPrevented`). Zoom and fit keys belong to the host's chrome (guide §5.8: only
|
|
48
|
+
Cmd/Ctrl + `+` `-` `0` and Shift+1, each acting exactly once), so the canvas binds none; the
|
|
49
|
+
[`@miragon/modeler-shell`](https://www.npmjs.com/package/@miragon/modeler-shell) chrome provides
|
|
50
|
+
them together with the zoom panel.
|
|
51
|
+
|
|
52
|
+
**Palette from the keyboard.** A host chrome that makes the palette a toolbar (the modeler shell)
|
|
53
|
+
triggers an entry with a click whose `detail` is 0. On a creating entry that click places the
|
|
54
|
+
element in the centre of the free part of the canvas (`freeRectCenter`, else the centre of the
|
|
55
|
+
view), 24px further diagonally while that spot is taken, selects it and opens its label editor.
|
|
56
|
+
|
|
57
|
+
**Read-only lock.** `modeler.get("ttReadOnly").setReadOnly(true)` locks the canvas while the
|
|
58
|
+
document behind it cannot be saved from it (an invalid file in an IDE host): no move, resize,
|
|
59
|
+
create, connect, delete, paste, context pad or label editor; selection, zoom, pan, copy and export
|
|
60
|
+
stay. It fires `READ_ONLY_CHANGED_EVENT` on every change.
|
|
42
61
|
|
|
43
62
|
All three share a common base (`TtBaseViewer`) with the same import/export and lifecycle API.
|
|
44
63
|
|
|
@@ -51,7 +70,7 @@ import { SAMPLE_DOCUMENT } from "@miragon/team-topologies-schema-model";
|
|
|
51
70
|
|
|
52
71
|
const modeler = new Modeler({ container: document.querySelector("#canvas")! });
|
|
53
72
|
|
|
54
|
-
// Load a document (
|
|
73
|
+
// Load a document (resets the undo history and fits the viewport)
|
|
55
74
|
const { warnings } = modeler.importDocument(SAMPLE_DOCUMENT);
|
|
56
75
|
|
|
57
76
|
// Read the live canvas back as the canonical model
|
|
@@ -66,12 +85,16 @@ modeler.redo();
|
|
|
66
85
|
```
|
|
67
86
|
|
|
68
87
|
> **The CSS is required.** Import `@miragon/team-topologies-renderer/assets/team-topologies.css`
|
|
69
|
-
> (it also pulls in `diagram-js`'s own stylesheet and
|
|
70
|
-
> the palette, context pad and label editor are unstyled.
|
|
88
|
+
> (it also pulls in the Miragon design tokens, `diagram-js`'s own stylesheet and `cd-canvas.css`, in
|
|
89
|
+
> that order) — without it the palette, context pad and label editor are unstyled. Every colour is a
|
|
90
|
+
> `--cd-ui-*` role of design system 1.13.0, vendored unchanged under `src/theme/`.
|
|
71
91
|
|
|
72
92
|
> **Typeface.** The canvas labels are drawn in the Miragon typeface **Geist**. The library does not
|
|
73
93
|
> ship the font; self-host it in the host app (e.g. `@fontsource-variable/geist`) so the on-screen
|
|
74
|
-
> canvas and exported SVG render in Geist. Without it, text falls back to a system sans.
|
|
94
|
+
> canvas and exported SVG render in Geist. Without it, text falls back to a system sans. An SVG drawn
|
|
95
|
+
> as an image (to rasterise a PNG) can't use the page's fonts, so embed them first:
|
|
96
|
+
> `embedSvgStyles(svg, geistFontFaceCss({ latin, latinExt }))`, with the two latin Geist WOFF2 files
|
|
97
|
+
> as `data:` URLs.
|
|
75
98
|
|
|
76
99
|
## API
|
|
77
100
|
|
|
@@ -83,21 +106,47 @@ new Modeler({
|
|
|
83
106
|
width?: number | string, // canvas width (default "100%")
|
|
84
107
|
height?: number | string, // canvas height (default "100%", or "600px" with no container)
|
|
85
108
|
additionalModules?: ModuleDeclaration[], // extra diagram-js modules
|
|
109
|
+
undoRedoKeys?: boolean, // bind Cmd/Ctrl+Z, Shift+Z, Y (default true; false: the host owns the history)
|
|
110
|
+
freeRectCenter?: () => Point | undefined, // where keyboard creation places an element (diagram coordinates)
|
|
86
111
|
});
|
|
87
112
|
```
|
|
88
113
|
|
|
114
|
+
### The collaborative-modeler contract
|
|
115
|
+
|
|
116
|
+
`createCollaborativeModeler(options?)` and `createCollaborativeViewer(options?)` wrap the editor and
|
|
117
|
+
the `NavigatedViewer` in the contract of [`@miragon/modeler-api`](https://www.npmjs.com/package/@miragon/modeler-api)
|
|
118
|
+
(notation `team-topologies`): `importText` / `exportText` of the canonical document text,
|
|
119
|
+
`onContentChanged`, view state and the `elements` surface (teams, interactions, flows and
|
|
120
|
+
annotations; their label or text as the name). Hosts that embed the modeler (designIQ, the VS Code
|
|
121
|
+
webview) work against it without knowing the renderer. The conformance kit of
|
|
122
|
+
`@miragon/modeler-api` runs in this package's browser tests (`npm run test:browser`).
|
|
123
|
+
|
|
124
|
+
```ts
|
|
125
|
+
import { createCollaborativeModeler } from "@miragon/team-topologies-renderer";
|
|
126
|
+
|
|
127
|
+
const modeler = createCollaborativeModeler();
|
|
128
|
+
modeler.attachTo(host);
|
|
129
|
+
await modeler.importText(text); // silent, fitted; rejects without a trace for an invalid text
|
|
130
|
+
modeler.onContentChanged(() => save(modeler.exportText()));
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Options: `additionalModules`, `undoRedoKeys`, `freeRectCenter` and `fitOnImport` (default true: a
|
|
134
|
+
fit of at most 100 % that keeps the palette's strip free; a host whose chrome fits the diagram
|
|
135
|
+
itself passes false). `modeler.diagram` is the wrapped `Modeler`.
|
|
136
|
+
|
|
89
137
|
### Shared methods (`Viewer` / `NavigatedViewer` / `Modeler`)
|
|
90
138
|
|
|
91
|
-
| Method | Returns | Purpose
|
|
92
|
-
| ---------------------------------- | ------------------------------- |
|
|
93
|
-
| `importDocument(doc)`
|
|
94
|
-
| `
|
|
95
|
-
| `
|
|
96
|
-
| `
|
|
97
|
-
| `
|
|
98
|
-
| `
|
|
99
|
-
| `
|
|
100
|
-
| `
|
|
139
|
+
| Method | Returns | Purpose |
|
|
140
|
+
| ---------------------------------- | ------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
|
|
141
|
+
| `importDocument(doc, { fit? })` | `{ warnings: ImportWarning[] }` | Replace canvas content, reset undo history; fit unless `fit: false`. Throws, before anything changes, for ids that would collide. |
|
|
142
|
+
| `fitToView()` | `void` | Deprecated: fit every element, keeping the strip under the palette free. |
|
|
143
|
+
| `exportDocument()` | `TtDocument` | Rebuild the canonical model from the live canvas. |
|
|
144
|
+
| `saveSVG()` | `{ svg: string }` | Self-contained SVG snapshot (fitted viewBox). |
|
|
145
|
+
| `setMeta(partial)` / `getMeta()` | — / `RootBusinessObject` | Read/write diagram-level metadata (`title`); `setMeta` is deprecated, rename with `get("ttModeling").setTitle(title)` (one undo step). |
|
|
146
|
+
| `attachTo(el)` / `detach()` | `void` | Move the canvas in/out of the DOM (keeps state). |
|
|
147
|
+
| `clear()` / `destroy()` | `void` | Empty the canvas / tear it down. |
|
|
148
|
+
| `on(event, cb)` / `off(event, cb)` | `void` | Subscribe to diagram-js events. |
|
|
149
|
+
| `get<T>(name)` | `T` | Resolve a diagram-js service (advanced). |
|
|
101
150
|
|
|
102
151
|
### Modeler-only
|
|
103
152
|
|
|
@@ -110,8 +159,21 @@ new Modeler({
|
|
|
110
159
|
- **Runtime element types:** `TtTeam`, `TtInteraction`, `TtFlow`, `TtAnnotation`, `TtElement`, and
|
|
111
160
|
`TtAssociation` (the connector from an annotation to the element it is attached to).
|
|
112
161
|
- **Palette icon generators:** `teamIconSvg(type)`, `interactionIconSvg(mode)`, `flowIconSvg()`,
|
|
113
|
-
`annotationIconSvg()` — WYSIWYG SVG glyphs matching what the canvas draws.
|
|
114
|
-
|
|
162
|
+
`annotationIconSvg()` — WYSIWYG SVG glyphs matching what the canvas draws. The annotation glyph
|
|
163
|
+
strokes in `currentColor`.
|
|
164
|
+
- **Functional icons:** `iconMarkup(icon, { size?, strokeWidth?, className? })` returns inline SVG
|
|
165
|
+
markup (Lucide style: 24 × 24 grid, stroke 2.5, `currentColor`) for the bundled `ICON_*` Lucide
|
|
166
|
+
nodes of the canvas chrome (context pad, lasso). `ICON_MENU`, `ICON_PLUS`, `ICON_MINUS`,
|
|
167
|
+
`ICON_MAXIMIZE`, `ICON_DOWNLOAD` and `ICON_X` served host chrome and are deprecated: hosts take
|
|
168
|
+
their chrome and its icons from `@miragon/modeler-shell`.
|
|
169
|
+
- **Design tokens:** `MIRAGON` (the Miragon colours by name) and `CD_TOKENS` (the same values keyed
|
|
170
|
+
by their `--cd-*` CSS name), for host code that paints outside CSS, e.g. a PNG background.
|
|
171
|
+
- **Fonts in exports:** `geistFontFaceCss({ latin, latinExt })` builds the Geist `@font-face` rules
|
|
172
|
+
from two `data:` URLs (`GEIST_UNICODE_RANGES` holds their subsets), and `embedSvgStyles(svg, css)`
|
|
173
|
+
puts CSS at the top of a `saveSVG()` result, so a rasterised PNG keeps the canvas typeface.
|
|
174
|
+
- **Other:** `TtViewerOptions`, `ImportOptions`, `ImportWarning`, `RootBusinessObject`, `ROOT_ID`,
|
|
175
|
+
`saveSVG`, `TtReadOnly` and `READ_ONLY_CHANGED_EVENT` (the lock, DI name `ttReadOnly`), and the
|
|
176
|
+
deprecated `TtViewport` (the palette-aware fit behind `fitToView()`, DI name `ttViewport`).
|
|
115
177
|
|
|
116
178
|
## How it's built
|
|
117
179
|
|
|
@@ -123,14 +185,15 @@ viewer via `additionalModules`:
|
|
|
123
185
|
| ---------------------- | -------------------------------------------------------------------------------------- |
|
|
124
186
|
| `ttModelModule` | Element factory with notation defaults (`TtElementFactory`). |
|
|
125
187
|
| `ttDrawModule` | SVG rendering of teams, interactions, flow and annotations (`TeamTopologiesRenderer`). |
|
|
126
|
-
| `ioModule` | Document ↔ canvas bridge (`TtImporter`, `TtExporter`, `saveSVG`).
|
|
188
|
+
| `ioModule` | Document ↔ canvas bridge (`TtImporter`, `TtExporter`, `saveSVG`, `TtViewport`). |
|
|
127
189
|
| `ttModelingModule` | High-level mutations — label, type, mode, colours, description, annotations. |
|
|
128
190
|
| `ttRulesModule` | Editing rules (what can move / resize / be created / be attached). |
|
|
129
191
|
| `ttBehaviorsModule` | Keeps the model **flat** and annotation connectors cropped, one per annotation. |
|
|
130
192
|
| `ttPaletteModule` | The lasso tool and the drag-to-create palette. |
|
|
131
193
|
| `ttContextPadModule` | Per-element actions (rename, add/attach annotation, delete; delete a multi-selection). |
|
|
132
194
|
| `ttLabelEditingModule` | Double-click in-place label editing. |
|
|
133
|
-
| `ttKeyboardModule` | Undo / redo / select all / delete / copy / paste / nudge shortcuts.
|
|
195
|
+
| `ttKeyboardModule` | Undo / redo / select all / delete / copy / paste / nudge / Esc shortcuts. |
|
|
196
|
+
| `ttReadOnlyModule` | The edit lock for a document the canvas cannot save (`ttReadOnly`). |
|
|
134
197
|
| `ttZOrderModule` | Fixed stacking order (flow behind, teams, interactions, annotations on top). |
|
|
135
198
|
|
|
136
199
|
### Rendering
|
|
@@ -141,11 +204,15 @@ from the spec in [`@miragon/team-topologies-schema-model`](../schema-model): the
|
|
|
141
204
|
interaction glyphs (parallelogram, triangle, circle) drawn dashed and translucent; the flow-of-change
|
|
142
205
|
as a dashed left-to-right band; an annotation as a BPMN-style open bracket with left-aligned text,
|
|
143
206
|
tied to its element by a dashed connector. Labels are word-wrapped (explicit line breaks are kept)
|
|
144
|
-
and centred. Per-element `fill`/`stroke` overrides win over the spec defaults
|
|
207
|
+
and centred. Per-element `fill`/`stroke` overrides win over the spec defaults, and stay visible
|
|
208
|
+
while an element is selected or hovered (the selection is a separate blue outline). On a dark custom
|
|
209
|
+
fill, team and interaction labels switch to white.
|
|
145
210
|
|
|
146
211
|
## Import / export
|
|
147
212
|
|
|
148
|
-
The package reads and writes the canonical `TtDocument` (JSON) and exports a standalone **SVG**.
|
|
213
|
+
The package reads and writes the canonical `TtDocument` (JSON) and exports a standalone **SVG**. The
|
|
214
|
+
export leaves out selection, hover and resize chrome and puts a white sheet behind the diagram, so
|
|
215
|
+
it looks the same wherever it is opened.
|
|
149
216
|
PNG export and the embedded-scene round-trip (storing the document inside the exported image) live in
|
|
150
217
|
the [web app](../../apps/webapp) and the [VS Code extension](../../apps/vscode), which add the canvas
|
|
151
218
|
rasterisation those formats need.
|
package/dist/Modeler.d.ts
CHANGED
|
@@ -3,7 +3,8 @@ import { NavigatedViewer } from './NavigatedViewer.js';
|
|
|
3
3
|
/**
|
|
4
4
|
* Full Team Topologies editor: palette/create, multi-selection (lasso, select
|
|
5
5
|
* all) and group move, resize, annotations with connectors, context pad,
|
|
6
|
-
* in-place label editing, undo/redo
|
|
6
|
+
* in-place label editing, undo/redo, and the edit lock for a document the
|
|
7
|
+
* canvas cannot save (`ttReadOnly`).
|
|
7
8
|
*/
|
|
8
9
|
export declare class Modeler extends NavigatedViewer {
|
|
9
10
|
protected _getModules(): ModuleDeclaration[];
|
package/dist/Modeler.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modeler.d.ts","sourceRoot":"","sources":["../src/Modeler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAS9C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"Modeler.d.ts","sourceRoot":"","sources":["../src/Modeler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAS9C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAYvD;;;;;GAKG;AACH,qBAAa,OAAQ,SAAQ,eAAe;cACvB,WAAW,IAAI,iBAAiB,EAAE;IAuBrD,IAAI,IAAI,IAAI;IAIZ,IAAI,IAAI,IAAI;IAIZ,OAAO,IAAI,OAAO;IAIlB,OAAO,IAAI,OAAO;CAGnB"}
|
package/dist/TtBaseViewer.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ModuleDeclaration } from 'didi';
|
|
2
2
|
import { TtDocument } from '@miragon/team-topologies-schema-model';
|
|
3
3
|
import { ImportWarning, RootBusinessObject } from './io/types.js';
|
|
4
|
+
import { Point } from './palette/TtPaletteProvider.js';
|
|
4
5
|
export interface TtViewerOptions {
|
|
5
6
|
/** Host element. When absent, a detached <div> is created (attach later). */
|
|
6
7
|
container?: HTMLElement;
|
|
@@ -8,6 +9,21 @@ export interface TtViewerOptions {
|
|
|
8
9
|
height?: number | string;
|
|
9
10
|
/** Appended to the module list (extension point). */
|
|
10
11
|
additionalModules?: ModuleDeclaration[];
|
|
12
|
+
/**
|
|
13
|
+
* Bind Cmd/Ctrl+Z, Cmd/Ctrl+Shift+Z and Cmd/Ctrl+Y to the canvas history (default true). Pass
|
|
14
|
+
* false when the host owns the history (the VS Code document), so the keys reach it.
|
|
15
|
+
*/
|
|
16
|
+
undoRedoKeys?: boolean | undefined;
|
|
17
|
+
/**
|
|
18
|
+
* Where Enter or Space on a creating palette entry places the element (guide §5.5): the centre
|
|
19
|
+
* of the part of the canvas no chrome covers, in diagram coordinates. Without it, the centre of
|
|
20
|
+
* the visible canvas.
|
|
21
|
+
*/
|
|
22
|
+
freeRectCenter?: (() => Point | undefined) | undefined;
|
|
23
|
+
}
|
|
24
|
+
export interface ImportOptions {
|
|
25
|
+
/** Fit the diagram into view after the import (default true); hosts with own chrome fit it. */
|
|
26
|
+
fit?: boolean | undefined;
|
|
11
27
|
}
|
|
12
28
|
export type EventCallback<T = unknown> = (event: T) => void;
|
|
13
29
|
export declare abstract class TtBaseViewer {
|
|
@@ -18,28 +34,52 @@ export declare abstract class TtBaseViewer {
|
|
|
18
34
|
constructor(options?: TtViewerOptions);
|
|
19
35
|
private _createContainer;
|
|
20
36
|
private _ensureDiagram;
|
|
37
|
+
/**
|
|
38
|
+
* Names the canvas. Its role stays the host's to give: the modeler shell makes it an
|
|
39
|
+
* `application`, so screen readers pass the single-key commands through.
|
|
40
|
+
*/
|
|
41
|
+
private _describeCanvas;
|
|
21
42
|
/** Resolve a diagram-js service from the didi injector. */
|
|
22
43
|
get<T>(name: string): T;
|
|
23
44
|
on<T = unknown>(event: string, callback: EventCallback<T>, priority?: number): void;
|
|
24
45
|
off(event: string, callback: EventCallback): void;
|
|
25
|
-
/**
|
|
26
|
-
|
|
46
|
+
/**
|
|
47
|
+
* Load a document into the canvas (replaces existing content) and, unless `fit: false`, fit it
|
|
48
|
+
* into view. Clears the undo history without a change event: its commands point at the replaced
|
|
49
|
+
* elements and would bring them back, and an import is no edit.
|
|
50
|
+
*
|
|
51
|
+
* Throws, before anything changes, for a document whose ids would collide on the canvas (see
|
|
52
|
+
* `documentIdProblems`), so a rejected document leaves the previous one in place.
|
|
53
|
+
*/
|
|
54
|
+
importDocument(doc: TtDocument, options?: ImportOptions): {
|
|
27
55
|
warnings: ImportWarning[];
|
|
28
56
|
};
|
|
57
|
+
/**
|
|
58
|
+
* Fit the whole diagram into the viewport, keeping the strip under the floating palette free
|
|
59
|
+
* (88px at the top, 120px when the container is 760px wide or narrower).
|
|
60
|
+
*
|
|
61
|
+
* @deprecated Host chrome fits the diagram (the modeler shell's viewport, with the insets of the
|
|
62
|
+
* chrome that is open); kept for hosts without it.
|
|
63
|
+
*/
|
|
64
|
+
fitToView(): void;
|
|
65
|
+
private _fit;
|
|
29
66
|
/** Current canvas state as a canonical document. */
|
|
30
67
|
exportDocument(): TtDocument;
|
|
31
|
-
/**
|
|
68
|
+
/**
|
|
69
|
+
* Update diagram-level metadata (the title) on the root, outside the undo history.
|
|
70
|
+
*
|
|
71
|
+
* @deprecated Rename through `ttModeling.setTitle(title)`: one undo step that hosts see as a
|
|
72
|
+
* change like any other.
|
|
73
|
+
*/
|
|
32
74
|
setMeta(partial: Partial<RootBusinessObject>): void;
|
|
33
|
-
/** Read diagram-level metadata (title
|
|
75
|
+
/** Read diagram-level metadata (the title) from the root. */
|
|
34
76
|
getMeta(): RootBusinessObject | undefined;
|
|
35
77
|
/** Standalone, self-contained SVG snapshot. */
|
|
36
78
|
saveSVG(): {
|
|
37
79
|
svg: string;
|
|
38
80
|
};
|
|
39
|
-
/** Fit the content into the viewport, leaving room at the top for the palette. */
|
|
40
|
-
private _fit;
|
|
41
81
|
/** Attach the container into `target`. */
|
|
42
|
-
attachTo(target:
|
|
82
|
+
attachTo(target: Element): void;
|
|
43
83
|
/** Detach the container from the DOM, preserving state. */
|
|
44
84
|
detach(): void;
|
|
45
85
|
clear(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TtBaseViewer.d.ts","sourceRoot":"","sources":["../src/TtBaseViewer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"TtBaseViewer.d.ts","sourceRoot":"","sources":["../src/TtBaseViewer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAM9C,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAK5F,OAAO,EAAW,KAAK,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAErF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAQ5D,MAAM,WAAW,eAAe;IAC9B,6EAA6E;IAC7E,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACxC;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACnC;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;CACxD;AAED,MAAM,WAAW,aAAa;IAC5B,+FAA+F;IAC/F,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC3B;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;AAQ5D,8BAAsB,YAAY;IAChC,SAAS,CAAC,QAAQ,CAAC,WAAW,IAAI,iBAAiB,EAAE;IAErD,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;gBAE/B,OAAO,GAAE,eAAoB;IAKzC,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,cAAc;IActB;;;OAGG;IACH,OAAO,CAAC,eAAe;IA2BvB,2DAA2D;IAC3D,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;IAIvB,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,SAAO,GAAG,IAAI;IAIjF,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAIjD;;;;;;;OAOG;IACH,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,aAAkB,GAAG;QAAE,QAAQ,EAAE,aAAa,EAAE,CAAA;KAAE;IAsB3F;;;;;;OAMG;IACH,SAAS,IAAI,IAAI;IAIjB,OAAO,CAAC,IAAI;IAMZ,oDAAoD;IACpD,cAAc,IAAI,UAAU;IAI5B;;;;;OAKG;IACH,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI;IAanD,6DAA6D;IAC7D,OAAO,IAAI,kBAAkB,GAAG,SAAS;IASzC,+CAA+C;IAC/C,OAAO,IAAI;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE;IAI1B,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAK/B,2DAA2D;IAC3D,MAAM,IAAI,IAAI;IAId,KAAK,IAAI,IAAI;IAIb,OAAO,IAAI,IAAI;IAQf,IAAI,SAAS,IAAI,WAAW,CAE3B;CACF"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { CollaborativeModeler, ElementsSurface } from '@miragon/modeler-api';
|
|
2
|
+
import { TtDocument } from '@miragon/team-topologies-schema-model';
|
|
3
|
+
import { ModuleDeclaration } from 'didi';
|
|
4
|
+
import { Modeler } from '../Modeler.js';
|
|
5
|
+
import { NavigatedViewer } from '../NavigatedViewer.js';
|
|
6
|
+
import { Point } from '../palette/TtPaletteProvider.js';
|
|
7
|
+
/** Stable notation id in `meta.notation` of the collaborative-modeler contract. */
|
|
8
|
+
export declare const TEAM_TOPOLOGIES_NOTATION = "team-topologies";
|
|
9
|
+
export interface CollaborativeTeamTopologiesOptions {
|
|
10
|
+
/** Appended to the renderer's own modules (e.g. a host's chrome module). */
|
|
11
|
+
additionalModules?: ModuleDeclaration[] | undefined;
|
|
12
|
+
/** See `TtViewerOptions.undoRedoKeys` (default true). */
|
|
13
|
+
undoRedoKeys?: boolean | undefined;
|
|
14
|
+
/** See `TtViewerOptions.freeRectCenter`. */
|
|
15
|
+
freeRectCenter?: (() => Point | undefined) | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* Fit the diagram into view after every import (default true, contract law L5). A host whose
|
|
18
|
+
* chrome fits the diagram itself (the modeler shell's viewport) passes false.
|
|
19
|
+
*/
|
|
20
|
+
fitOnImport?: boolean | undefined;
|
|
21
|
+
}
|
|
22
|
+
/** The contract surface plus the wrapped diagram for host-specific wiring. */
|
|
23
|
+
export interface CollaborativeTeamTopologiesModeler extends CollaborativeModeler {
|
|
24
|
+
readonly elements: ElementsSurface;
|
|
25
|
+
readonly diagram: Modeler | NavigatedViewer;
|
|
26
|
+
}
|
|
27
|
+
/** The editing mount (`meta.editable: true`) of the collaborative-modeler contract. */
|
|
28
|
+
export declare function createCollaborativeModeler(options?: CollaborativeTeamTopologiesOptions): CollaborativeTeamTopologiesModeler;
|
|
29
|
+
/** The read-only mount (`meta.editable: false`): imports, exports and reveals, never edits. */
|
|
30
|
+
export declare function createCollaborativeViewer(options?: Pick<CollaborativeTeamTopologiesOptions, "additionalModules" | "fitOnImport">): CollaborativeTeamTopologiesModeler;
|
|
31
|
+
/**
|
|
32
|
+
* The document text as the contract reads it: blank text is a new, empty diagram (a file just
|
|
33
|
+
* created in an editor), anything else must be a valid document.
|
|
34
|
+
*/
|
|
35
|
+
export declare function parseDocumentText(text: string): TtDocument;
|
|
36
|
+
//# sourceMappingURL=CollaborativeTeamTopologies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CollaborativeTeamTopologies.d.ts","sourceRoot":"","sources":["../../src/collaborative/CollaborativeTeamTopologies.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAEL,KAAK,oBAAoB,EAEzB,KAAK,eAAe,EAGrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAK9C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAE7D,mFAAmF;AACnF,eAAO,MAAM,wBAAwB,oBAAoB,CAAC;AAE1D,MAAM,WAAW,kCAAkC;IACjD,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,iBAAiB,EAAE,GAAG,SAAS,CAAC;IACpD,yDAAyD;IACzD,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACnC,4CAA4C;IAC5C,cAAc,CAAC,EAAE,CAAC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IACvD;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACnC;AAED,8EAA8E;AAC9E,MAAM,WAAW,kCAAmC,SAAQ,oBAAoB;IAC9E,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,eAAe,CAAC;CAC7C;AASD,uFAAuF;AACvF,wBAAgB,0BAA0B,CACxC,OAAO,GAAE,kCAAuC,GAC/C,kCAAkC,CAUpC;AAED,+FAA+F;AAC/F,wBAAgB,yBAAyB,CACvC,OAAO,GAAE,IAAI,CAAC,kCAAkC,EAAE,mBAAmB,GAAG,aAAa,CAAM,GAC1F,kCAAkC,CAMpC;AAMD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAI1D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/collaborative/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,yBAAyB,EACzB,iBAAiB,EACjB,KAAK,kCAAkC,EACvC,KAAK,kCAAkC,GACxC,MAAM,kCAAkC,CAAC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { default as Canvas } from 'diagram-js/lib/core/Canvas';
|
|
2
|
+
import { default as EventBus } from 'diagram-js/lib/core/EventBus';
|
|
1
3
|
import { default as ContextPad } from 'diagram-js/lib/features/context-pad/ContextPad';
|
|
2
4
|
import { default as Modeling } from 'diagram-js/lib/features/modeling/Modeling';
|
|
3
5
|
import { default as Connect } from 'diagram-js/lib/features/connect/Connect';
|
|
@@ -7,15 +9,21 @@ import { Element } from 'diagram-js/lib/model/Types';
|
|
|
7
9
|
import { default as TtLabelEditing } from '../label-editing/TtLabelEditing.js';
|
|
8
10
|
import { default as TtModeling } from '../modeling/TtModeling.js';
|
|
9
11
|
export default class TtContextPadProvider implements ContextPadProvider {
|
|
12
|
+
private readonly contextPad;
|
|
10
13
|
private readonly modeling;
|
|
11
14
|
private readonly ttModeling;
|
|
12
15
|
private readonly labelEditing;
|
|
13
16
|
private readonly connect;
|
|
14
17
|
private readonly selection;
|
|
18
|
+
private readonly canvas;
|
|
15
19
|
static $inject: string[];
|
|
16
|
-
|
|
20
|
+
private readonly readOnly;
|
|
21
|
+
constructor(contextPad: ContextPad, modeling: Modeling, ttModeling: TtModeling, labelEditing: TtLabelEditing, connect: Connect, selection: Selection, canvas: Canvas, eventBus: EventBus, injector: {
|
|
22
|
+
get<T>(name: string, strict?: boolean): T | null;
|
|
23
|
+
});
|
|
17
24
|
getContextPadEntries(element: Element): ContextPadEntries;
|
|
18
25
|
getMultiElementContextPadEntries(elements: Element[]): ContextPadEntries;
|
|
26
|
+
private onEntryKeyDown;
|
|
19
27
|
private editEntry;
|
|
20
28
|
private deleteEntry;
|
|
21
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TtContextPadProvider.d.ts","sourceRoot":"","sources":["../../src/context-pad/TtContextPadProvider.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"TtContextPadProvider.d.ts","sourceRoot":"","sources":["../../src/context-pad/TtContextPadProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,UAAU,MAAM,gDAAgD,CAAC;AAC7E,OAAO,KAAK,QAAQ,MAAM,2CAA2C,CAAC;AACtE,OAAO,KAAK,OAAO,MAAM,yCAAyC,CAAC;AACnE,OAAO,KAAK,SAAS,MAAM,6CAA6C,CAAC;AACzE,OAAO,KAAK,EACV,iBAAiB,EAEjB,OAAO,IAAI,kBAAkB,EAC9B,MAAM,wDAAwD,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAS1D,OAAO,KAAK,cAAc,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,UAAU,MAAM,2BAA2B,CAAC;AAuBxD,MAAM,CAAC,OAAO,OAAO,oBAAqB,YAAW,kBAAkB;IAgBnE,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IArBzB,MAAM,CAAC,OAAO,WAUZ;IAEF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;gBAG1B,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,cAAc,EAC5B,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EAC/B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE;QAAE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,CAAC,GAAG,IAAI,CAAA;KAAE;IAahE,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,iBAAiB;IAqCzD,gCAAgC,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,iBAAiB;IAKxE,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,WAAW;CAcpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TtCopyPasteProps.d.ts","sourceRoot":"","sources":["../../src/copy-paste/TtCopyPasteProps.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"TtCopyPasteProps.d.ts","sourceRoot":"","sources":["../../src/copy-paste/TtCopyPasteProps.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AAezD,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACnC,MAAM,CAAC,OAAO,WAAgB;gBAElB,QAAQ,EAAE,QAAQ;CAa/B"}
|
package/dist/draw/icons.d.ts
CHANGED
|
@@ -1,13 +1,53 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export
|
|
11
|
-
|
|
12
|
-
|
|
2
|
+
* Functional icons for the canvas chrome (context pad, palette tools), returned as inline SVG
|
|
3
|
+
* markup.
|
|
4
|
+
*
|
|
5
|
+
* Lucide icons (ISC licence, © Lucide Icons and Contributors), copied unchanged from
|
|
6
|
+
* lucide-static 1.59.0 and inlined so the published renderer has no icon runtime dependency.
|
|
7
|
+
*/
|
|
8
|
+
/** One Lucide icon: its SVG child elements on the 24 × 24 grid. */
|
|
9
|
+
export type IconNode = ReadonlyArray<readonly [string, Readonly<Record<string, string>>]>;
|
|
10
|
+
export interface IconMarkupOptions {
|
|
11
|
+
/** Rendered width and height in px; the viewBox stays on the 24 × 24 grid. */
|
|
12
|
+
size?: number;
|
|
13
|
+
strokeWidth?: number;
|
|
14
|
+
className?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare const ICON_PENCIL: IconNode;
|
|
17
|
+
export declare const ICON_TRASH: IconNode;
|
|
18
|
+
export declare const ICON_LINK: IconNode;
|
|
19
|
+
export declare const ICON_MESSAGE_SQUARE_PLUS: IconNode;
|
|
20
|
+
export declare const ICON_SQUARE_DASHED_MOUSE_POINTER: IconNode;
|
|
21
|
+
/**
|
|
22
|
+
* @deprecated Host chrome only (menu, zoom panel, dialogs); hosts take their chrome and its icons
|
|
23
|
+
* from `@miragon/modeler-shell`. Kept for existing consumers, removed in a later release.
|
|
24
|
+
*/
|
|
25
|
+
export declare const ICON_MENU: IconNode;
|
|
26
|
+
/**
|
|
27
|
+
* @deprecated Host chrome only (menu, zoom panel, dialogs); hosts take their chrome and its icons
|
|
28
|
+
* from `@miragon/modeler-shell`. Kept for existing consumers, removed in a later release.
|
|
29
|
+
*/
|
|
30
|
+
export declare const ICON_MINUS: IconNode;
|
|
31
|
+
/**
|
|
32
|
+
* @deprecated Host chrome only (menu, zoom panel, dialogs); hosts take their chrome and its icons
|
|
33
|
+
* from `@miragon/modeler-shell`. Kept for existing consumers, removed in a later release.
|
|
34
|
+
*/
|
|
35
|
+
export declare const ICON_PLUS: IconNode;
|
|
36
|
+
/**
|
|
37
|
+
* @deprecated Host chrome only (menu, zoom panel, dialogs); hosts take their chrome and its icons
|
|
38
|
+
* from `@miragon/modeler-shell`. Kept for existing consumers, removed in a later release.
|
|
39
|
+
*/
|
|
40
|
+
export declare const ICON_MAXIMIZE: IconNode;
|
|
41
|
+
/**
|
|
42
|
+
* @deprecated Host chrome only (menu, zoom panel, dialogs); hosts take their chrome and its icons
|
|
43
|
+
* from `@miragon/modeler-shell`. Kept for existing consumers, removed in a later release.
|
|
44
|
+
*/
|
|
45
|
+
export declare const ICON_DOWNLOAD: IconNode;
|
|
46
|
+
/**
|
|
47
|
+
* @deprecated Host chrome only (menu, zoom panel, dialogs); hosts take their chrome and its icons
|
|
48
|
+
* from `@miragon/modeler-shell`. Kept for existing consumers, removed in a later release.
|
|
49
|
+
*/
|
|
50
|
+
export declare const ICON_X: IconNode;
|
|
51
|
+
/** Decorative (`aria-hidden`) inline SVG for a Lucide icon; the control around it carries the name. */
|
|
52
|
+
export declare function iconMarkup(icon: IconNode, options?: IconMarkupOptions): string;
|
|
13
53
|
//# sourceMappingURL=icons.d.ts.map
|
package/dist/draw/icons.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/draw/icons.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/draw/icons.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,mEAAmE;AACnE,MAAM,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAE1F,MAAM,WAAW,iBAAiB;IAChC,8EAA8E;IAC9E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,WAAW,EAAE,QAQzB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,QAMxB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,QAGvB,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,QAStC,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,QAgB9C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,QAIvB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,QAAwC,CAAC;AAElE;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,QAGvB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,QAK3B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,QAI3B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,QAGpB,CAAC;AA0CF,uGAAuG;AACvG,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,GAAE,iBAAsB,GAAG,MAAM,CAsBlF"}
|
|
@@ -16,6 +16,11 @@ export interface LabelLayout {
|
|
|
16
16
|
letterSpacing?: string;
|
|
17
17
|
fill: string;
|
|
18
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Label colour for text on a shape filled with `fill` at `opacity` over the white sheet:
|
|
21
|
+
* schwarz while it stays readable (every official notation fill), weiss on dark custom fills.
|
|
22
|
+
*/
|
|
23
|
+
export declare function readableTextColour(fill: string, opacity?: number): string;
|
|
19
24
|
/** Width of the flow arrow's head; the label stays on the shaft. */
|
|
20
25
|
export declare function flowHeadWidth(width: number, height: number): number;
|
|
21
26
|
export declare function labelLayout(element: TtElement): LabelLayout;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"label-layout.d.ts","sourceRoot":"","sources":["../../src/draw/label-layout.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"label-layout.d.ts","sourceRoot":"","sources":["../../src/draw/label-layout.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAIL,KAAK,SAAS,EAGf,MAAM,sBAAsB,CAAC;AAO9B,eAAO,MAAM,WAAW,MAAM,CAAC;AAE/B,MAAM,WAAW,QAAQ;IACvB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,mFAAmF;IACnF,GAAG,EAAE,QAAQ,CAAC;IACd,qGAAqG;IACrG,KAAK,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CACd;AAsCD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,SAAI,GAAG,MAAM,CASpE;AAWD,oEAAoE;AACpE,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,SAAS,GAAG,WAAW,CAsC3D;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAqBpF"}
|
|
@@ -2,7 +2,7 @@ import { InteractionMode, TeamType } from '@miragon/team-topologies-schema-model
|
|
|
2
2
|
export declare function teamIconSvg(type: TeamType): string;
|
|
3
3
|
export declare function flowIconSvg(): string;
|
|
4
4
|
export declare function annotationIconSvg(): string;
|
|
5
|
-
/**
|
|
5
|
+
/** The lasso (multi-select) tool: Lucide square-dashed-mouse-pointer. */
|
|
6
6
|
export declare function lassoIconSvg(): string;
|
|
7
7
|
export declare function interactionIconSvg(mode: InteractionMode): string;
|
|
8
8
|
//# sourceMappingURL=palette-icons.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"palette-icons.d.ts","sourceRoot":"","sources":["../../src/draw/palette-icons.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"palette-icons.d.ts","sourceRoot":"","sources":["../../src/draw/palette-icons.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAavF,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAgBlD;AAED,wBAAgB,WAAW,IAAI,MAAM,CAOpC;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAK1C;AAED,yEAAyE;AACzE,wBAAgB,YAAY,IAAI,MAAM,CAKrC;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAchE"}
|
package/dist/draw/styles.d.ts
CHANGED
|
@@ -5,10 +5,11 @@
|
|
|
5
5
|
*/
|
|
6
6
|
/** BaseRenderer default priority is 1000; 1500 wins the render.shape/connection event. */
|
|
7
7
|
export declare const TT_RENDER_PRIORITY = 1500;
|
|
8
|
-
/** Selection / hover accent (Miragon blue — kept in sync with the app theme via the shared palette). */
|
|
9
|
-
export declare const ACCENT: "#335DE5";
|
|
10
8
|
export declare const INK: "#1D1D1D";
|
|
11
|
-
|
|
9
|
+
/** Secondary canvas text (e.g. the flow-of-change label), ≥ 4.5:1 on the paper surround. */
|
|
10
|
+
export declare const INK_MUTED: "#6B6666";
|
|
11
|
+
/** Structural strokes that recede (annotation bracket, association connector), ≥ 3:1. */
|
|
12
|
+
export declare const STROKE_MUTED: "#8F8A8A";
|
|
12
13
|
export declare const FONT: {
|
|
13
14
|
/**
|
|
14
15
|
* Set directly as the `font-family` attribute on every SVG <text> (canvas
|
|
@@ -23,6 +24,4 @@ export declare const FONT: {
|
|
|
23
24
|
readonly small: 11;
|
|
24
25
|
readonly annotation: 12;
|
|
25
26
|
};
|
|
26
|
-
/** Paper colour used for the label halo so text stays legible over lines. */
|
|
27
|
-
export declare const PAPER: "#FFFFFF";
|
|
28
27
|
//# sourceMappingURL=styles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/draw/styles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,0FAA0F;AAC1F,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC,
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/draw/styles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,0FAA0F;AAC1F,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC,eAAO,MAAM,GAAG,WAAkB,CAAC;AACnC,4FAA4F;AAC5F,eAAO,MAAM,SAAS,WAAoB,CAAC;AAC3C,yFAAyF;AACzF,eAAO,MAAM,YAAY,WAAiB,CAAC;AAE3C,eAAO,MAAM,IAAI;IACf;;;;;;;OAOG;;;;;CAMK,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,20 +2,29 @@ export { Viewer } from './Viewer.js';
|
|
|
2
2
|
export { NavigatedViewer } from './NavigatedViewer.js';
|
|
3
3
|
export { Modeler } from './Modeler.js';
|
|
4
4
|
export { TtBaseViewer } from './TtBaseViewer.js';
|
|
5
|
-
export type { TtViewerOptions, EventCallback } from './TtBaseViewer.js';
|
|
5
|
+
export type { TtViewerOptions, ImportOptions, EventCallback } from './TtBaseViewer.js';
|
|
6
|
+
export { TEAM_TOPOLOGIES_NOTATION, createCollaborativeModeler, createCollaborativeViewer, parseDocumentText, } from './collaborative/index.js';
|
|
7
|
+
export type { CollaborativeTeamTopologiesModeler, CollaborativeTeamTopologiesOptions, } from './collaborative/index.js';
|
|
6
8
|
export { ttModelModule, TtElementFactory } from './model/index.js';
|
|
7
9
|
export { ttDrawModule, TeamTopologiesRenderer } from './draw/index.js';
|
|
8
|
-
export { ioModule, TtImporter, TtExporter, saveSVG, ROOT_ID } from './io/index.js';
|
|
10
|
+
export { ioModule, TtImporter, TtExporter, TtViewport, saveSVG, ROOT_ID } from './io/index.js';
|
|
9
11
|
export { ttModelingModule, TtModeling, TtLayouter } from './modeling/index.js';
|
|
10
12
|
export { ttRulesModule, TtRules } from './rules/index.js';
|
|
11
13
|
export { ttBehaviorsModule, TtFlatModelBehavior, TtAssociationBehavior, } from './behaviors/index.js';
|
|
12
14
|
export { ttPaletteModule, TtPaletteProvider } from './palette/index.js';
|
|
15
|
+
export type { TtPaletteConfig, Point } from './palette/TtPaletteProvider.js';
|
|
13
16
|
export { ttContextPadModule, TtContextPadProvider } from './context-pad/index.js';
|
|
14
17
|
export { ttLabelEditingModule, TtLabelEditing } from './label-editing/index.js';
|
|
15
18
|
export { ttKeyboardModule, TtKeyboard } from './keyboard/index.js';
|
|
19
|
+
export type { TtKeyboardConfig } from './keyboard/index.js';
|
|
20
|
+
export { ttReadOnlyModule, TtReadOnly, READ_ONLY_CHANGED_EVENT } from './read-only/index.js';
|
|
16
21
|
export { ttZOrderModule, TtZOrder } from './zorder/index.js';
|
|
17
22
|
export { isTtElement, isTtTeam, isTtInteraction, isTtFlow, isTtAnnotation, isTtAssociation, } from './model/di-types.js';
|
|
18
23
|
export type { TtElement, TtTeam, TtInteraction, TtFlow, TtAnnotation, TtAssociation, } from './model/di-types.js';
|
|
19
24
|
export type { ImportWarning, RootBusinessObject } from './io/index.js';
|
|
25
|
+
export { GEIST_UNICODE_RANGES, embedSvgStyles, geistFontFaceCss } from './io/index.js';
|
|
26
|
+
export type { GeistFontDataUrls } from './io/index.js';
|
|
27
|
+
export { MIRAGON, CD_TOKENS } from './theme/index.js';
|
|
28
|
+
export * from './draw/icons.js';
|
|
20
29
|
export { teamIconSvg, interactionIconSvg, flowIconSvg, annotationIconSvg, } from './draw/palette-icons.js';
|
|
21
30
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,8BAA8B,CAAC;AAGtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,8BAA8B,CAAC;AAGtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvF,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,kCAAkC,EAClC,kCAAkC,GACnC,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACxE,YAAY,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACnE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC7F,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7D,OAAO,EACL,WAAW,EACX,QAAQ,EACR,eAAe,EACf,QAAQ,EACR,cAAc,EACd,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,SAAS,EACT,MAAM,EACN,aAAa,EACb,MAAM,EACN,YAAY,EACZ,aAAa,GACd,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGvE,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACvF,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGvD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGtD,cAAc,iBAAiB,CAAC;AAGhC,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,iBAAiB,GAClB,MAAM,yBAAyB,CAAC"}
|