@miragon/wardley-renderer 0.14.0 → 0.16.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.
Files changed (61) hide show
  1. package/README.md +69 -30
  2. package/dist/WardleyBaseViewer.d.ts +19 -0
  3. package/dist/WardleyBaseViewer.d.ts.map +1 -1
  4. package/dist/collaborative/CollaborativeWardley.d.ts +8 -1
  5. package/dist/collaborative/CollaborativeWardley.d.ts.map +1 -1
  6. package/dist/context-pad/WardleyContextPadProvider.d.ts +10 -1
  7. package/dist/context-pad/WardleyContextPadProvider.d.ts.map +1 -1
  8. package/dist/draw/WardleyRenderer.d.ts +9 -1
  9. package/dist/draw/WardleyRenderer.d.ts.map +1 -1
  10. package/dist/draw/lucide.d.ts +2 -1
  11. package/dist/draw/lucide.d.ts.map +1 -1
  12. package/dist/draw/styles.d.ts +7 -0
  13. package/dist/draw/styles.d.ts.map +1 -1
  14. package/dist/draw-tool/WardleyDrawTool.d.ts +8 -1
  15. package/dist/draw-tool/WardleyDrawTool.d.ts.map +1 -1
  16. package/dist/index.d.ts +5 -4
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +1269 -1071
  19. package/dist/index.js.map +1 -1
  20. package/dist/io/blobToBase64.d.ts +3 -0
  21. package/dist/io/blobToBase64.d.ts.map +1 -0
  22. package/dist/io/index.d.ts +1 -2
  23. package/dist/io/index.d.ts.map +1 -1
  24. package/dist/io/saveSvg.d.ts.map +1 -1
  25. package/dist/keyboard/WardleyKeyboard.d.ts +2 -1
  26. package/dist/keyboard/WardleyKeyboard.d.ts.map +1 -1
  27. package/dist/lasso/WardleyLassoBehavior.d.ts +5 -1
  28. package/dist/lasso/WardleyLassoBehavior.d.ts.map +1 -1
  29. package/dist/lasso/index.d.ts +1 -1
  30. package/dist/lasso/index.d.ts.map +1 -1
  31. package/dist/link-editing/WardleyLinkOpener.d.ts +24 -0
  32. package/dist/link-editing/WardleyLinkOpener.d.ts.map +1 -0
  33. package/dist/link-editing/index.d.ts +4 -2
  34. package/dist/link-editing/index.d.ts.map +1 -1
  35. package/dist/link-editing/link-url.d.ts +14 -0
  36. package/dist/link-editing/link-url.d.ts.map +1 -1
  37. package/dist/map-menu/index.d.ts +0 -2
  38. package/dist/map-menu/index.d.ts.map +1 -1
  39. package/dist/map-menu/popover.d.ts.map +1 -1
  40. package/dist/palette/WardleyHoverTooltipTeardown.d.ts +6 -5
  41. package/dist/palette/WardleyHoverTooltipTeardown.d.ts.map +1 -1
  42. package/dist/palette/WardleyPaletteKeyboard.d.ts +4 -2
  43. package/dist/palette/WardleyPaletteKeyboard.d.ts.map +1 -1
  44. package/dist/palette/WardleyPaletteProvider.d.ts +8 -3
  45. package/dist/palette/WardleyPaletteProvider.d.ts.map +1 -1
  46. package/dist/palette/WardleyPaletteReadOnly.d.ts +26 -0
  47. package/dist/palette/WardleyPaletteReadOnly.d.ts.map +1 -0
  48. package/dist/palette/WardleyPaletteTooltip.d.ts +40 -16
  49. package/dist/palette/WardleyPaletteTooltip.d.ts.map +1 -1
  50. package/dist/palette/index.d.ts +1 -0
  51. package/dist/palette/index.d.ts.map +1 -1
  52. package/dist/read-only/WardleyReadOnly.d.ts +26 -4
  53. package/dist/read-only/WardleyReadOnly.d.ts.map +1 -1
  54. package/dist/read-only/index.d.ts +3 -0
  55. package/dist/read-only/index.d.ts.map +1 -1
  56. package/dist/wardley.css +1 -1
  57. package/package.json +2 -2
  58. package/dist/io/rasterize.d.ts +0 -31
  59. package/dist/io/rasterize.d.ts.map +0 -1
  60. package/dist/map-menu/ShortcutsDialog.d.ts +0 -24
  61. package/dist/map-menu/ShortcutsDialog.d.ts.map +0 -1
package/README.md CHANGED
@@ -35,6 +35,27 @@ const { svg } = await viewer.saveSVG();
35
35
 
36
36
  Swap `NavigatedViewer` for `Modeler` to get the editable map (palette, context pad, undo/redo).
37
37
 
38
+ For a host without the Miragon modeler shell, the `Modeler`'s palette is the toolbar of the Miragon
39
+ design guide: a glass island at the top centre of the container (opaque in high contrast), in the
40
+ second row, 64px from the top, in a container at most 760px wide, and ahead of the canvas in the
41
+ tab order, with one tab stop that the arrow keys, Home and End move. Its tooltip names the entry
42
+ and its key 8px below the palette, centred on the entry and at least 12px from the container's
43
+ sides; it shows after 300ms of hover, at once on keyboard focus or for a neighbour, never for a
44
+ tap, and hides on a press, on Escape and when the pointer or the focus leaves. Where the palette
45
+ scrolls sideways, the tooltip moves with its entry and hides once the entry has left the view. The
46
+ palette lies before the canvas `<svg>` in the container, so a host finds the canvas with
47
+ `canvas.getContainer().querySelector(":scope > svg")`, not as the first `svg`. A palette a chrome
48
+ skins (`data-chrome="palette"`) is left to that chrome.
49
+
50
+ The lasso is pressed (`aria-pressed="true"`) only while it is armed, in every host: Enter or Space
51
+ on the armed lasso puts it down, as Escape does, and so does arming the draw tool; a pointer's click
52
+ on the lasso arms it again. One tool is armed at a time: arming the lasso (a click, Enter or Space
53
+ on its entry, or L) puts the armed draw tool down, and a click, Enter or Space on the lasso's entry
54
+ saves a line the draw tool holds, as Escape does; L does nothing while it holds one. While the
55
+ read-only lock shows (below), the palette without the shell marks every entry but the lasso
56
+ `aria-disabled="true"` and mutes it (guide §13.5): it stays focusable, and a click, drag, Enter or
57
+ Space on it does nothing from the lock on.
58
+
38
59
  ## API
39
60
 
40
61
  | Member | What it does |
@@ -48,7 +69,7 @@ Swap `NavigatedViewer` for `Modeler` to get the editable map (palette, context p
48
69
  | `undo()` / `redo()` / `canUndo()` / `canRedo()` | `Modeler` only: the canvas command stack. |
49
70
  | `commitPendingEdits()` | `Modeler` only: saves an open inline editor, e.g. before a save shortcut. |
50
71
  | `on(event, callback)` / `off(event, callback)` | diagram-js events, see below. |
51
- | `svgToPng(svg, { scale, transparent })` (deprecated) / `blobToBase64` | Deprecated, see below: rasterizes an exported SVG (default 2×, paper background). `blobToBase64` encodes a Blob. |
72
+ | `blobToBase64(blob)` | Encodes a Blob, such as the PNG of the shell's `svgToPng` (see below), as Base64 without the data-URL prefix. |
52
73
  | `setAsideEditorState(modeler)` / `restoreEditorState(…)` | Keeps the selection and an open inline editor across a re-import of an externally changed map. |
53
74
 
54
75
  `setEvolutionLabels` turns an empty stage into its default label and `->` into `→`, so the labels
@@ -78,11 +99,31 @@ Options (the names of the `@miragon/modeler-api` 1.2 factory options):
78
99
  - `fitOnImport: false` leaves the view after an import to the host, whose chrome fits it.
79
100
  - `additionalModules` adds diagram-js modules; every Wardley feature module is exported for custom
80
101
  editors.
102
+ - `openRelativeLink: (address) => …` follows a link without a scheme (`details/payment.wmap`) from
103
+ the context pad: only the host knows where the map's file lies, so it resolves the address or says
104
+ why it can't. Without this option the pad offers no "Open link" on such an address. No scheme but
105
+ http(s) and `mailto:` ever opens.
106
+ - `openExternalLink: (address) => …` opens an http(s) or `mailto:` address from the context pad;
107
+ without it a new browser tab opens. A host whose page can't open windows, such as a VS Code
108
+ webview, hands the address to its own opener.
109
+ - `chooseLinkTarget: () => Promise<string | undefined>` adds "Link to map…" to the context pad of a
110
+ component or submap: the host lets the user choose another map and resolves with its address
111
+ relative to the current map (`undefined` when the user cancels), which becomes the element's link
112
+ in one undoable step.
113
+
114
+ A component or submap whose link the editor can open, the cases where its context pad offers "Open
115
+ link", carries a small link mark at its lower left (Lucide `link` in the `--cd-ui-link` role). It
116
+ takes no pointer, the viewer shows none, and the export leaves it out, as the selection outline.
81
117
 
82
118
  The `wardleyReadOnly` service (`modeler.get<WardleyReadOnly>('wardleyReadOnly').setReadOnly(true)`)
83
119
  locks the canvas while its host cannot save an edit, e.g. while the document is invalid: every edit
84
120
  rule is vetoed, an open editor, popup or drag ends without saving, the handles hide, and selection,
85
- zoom, pan, select all and export stay. It fires `wardley.readOnly.changed`.
121
+ zoom, pan, select all and export stay. `setReadOnly(true, { delayMs: 800 })` locks at once but marks
122
+ the palette only once the delay has passed without `setReadOnly(false)`, so typing an invalid file
123
+ in an editor beside the canvas does not flicker (guide §13.5); a call while the delay runs keeps
124
+ its timer, `setReadOnly(false)` takes the marks off at once, and `isReadOnlyShown()` tells whether
125
+ they show. It fires `wardley.readOnly.changed` with `{ readOnly, shown }` when the lock changes and
126
+ once more when delayed marks show.
86
127
 
87
128
  The canvas's keys (undo and redo, delete, copy, paste and duplicate, select all, the arrows, Escape
88
129
  and the single-key tools C, U, N, P, L and A) act only while the canvas `<svg>` has the focus, as
@@ -106,9 +147,10 @@ drag, the point drag of a drawing (the drawing stays selected) and the drag of a
106
147
  evolve target. These drags and the colour picker take only an Escape aimed at the canvas (the
107
148
  picker also one on its swatches); one aimed at the palette, the context pad, a name editor or a
108
149
  host's field, menu, dialog or overlay, inside the canvas container or next to it, stays with that
109
- control. While the draw tool holds the points of a line, the single-key tools do nothing until the
110
- line is finished or cancelled, and the canvas takes them with `preventDefault()`. Enter and Space
111
- on the Draw entry save the line, as Enter on the canvas does. While a point of a drawing is dragged,
150
+ control. While the draw tool holds the points of a line, the single-key tools and Cmd/Ctrl+V (the
151
+ paste attaches to the pointer) do nothing until the line is finished or cancelled, and the canvas
152
+ takes them with `preventDefault()`. Enter and Space on the Draw entry save the line, as Enter on
153
+ the canvas does. While a point of a drawing is dragged,
112
154
  the keys that would change the drawing under the drag or start a second gesture next to it do
113
155
  nothing until the release, and the canvas takes them with `preventDefault()`: the single-key tools,
114
156
  the arrow keys, paste and duplicate. Delete still removes the drawing, which ends the drag without a
@@ -197,8 +239,9 @@ edit at once and stays the same across zoom and scroll. A map without elements s
197
239
  so it is never `undefined` while the modeler lives (before the first import it is the default plot);
198
240
  tell an empty map by its elements. `diagram` is the wrapped `Modeler` or `NavigatedViewer` for
199
241
  host-specific wiring. Both factories take the options above (`additionalModules`, `freeArea`,
200
- `fitOnImport` and `undoRedoKeys`); the viewer never edits and ignores the undo keys. Both pass the
201
- contract's conformance kit (1.3) without skips.
242
+ `fitOnImport`, `undoRedoKeys` and the link handlers); the viewer never edits and has no context
243
+ pad, so it ignores the undo keys and the link handlers. Both pass the contract's conformance kit
244
+ (1.3) without skips.
202
245
 
203
246
  `interaction` (contract 1.5) tells a host whether the user holds a gesture, so it can defer a remote
204
247
  re-import until the gesture ends: `active()` is true from the moment a move, resize, connect or
@@ -227,7 +270,8 @@ The map's entries of a chrome menu (Model: "Map title…" where the host passes
227
270
  size…" and "X-axis labels…"; Export; Help) come from `mapMenu(actions)`, in the shape the menu
228
271
  groups of [`@miragon/modeler-shell`](https://www.npmjs.com/package/@miragon/modeler-shell) take.
229
272
  `createMapSizePopover(chrome, modeler)` and `createAxisLabelsPopover(chrome, modeler)` build the two
230
- popovers (a live preview, one undo step when done), `createTitleDialog(chrome, modeler)` the "Map
273
+ popovers (a live preview, one undo step when done; an Escape that closes one keeps a tool armed from
274
+ the palette, as the shell's own layers do), `createTitleDialog(chrome, modeler)` the "Map
231
275
  title…" dialog (one undo step on Apply, nothing for an unchanged title),
232
276
  `mapShortcuts(chrome, options)` the groups of its "Keyboard shortcuts…" dialog as data. A web app
233
277
  that binds Cmd/Ctrl+O, Cmd/Ctrl+S, Cmd/Ctrl+V on the canvas and `?` itself passes
@@ -241,28 +285,23 @@ scrolling body, footer), for a host's own dialogs in the same look; `dialogButto
241
285
  gives its buttons. `chrome` is the shell handle or anything of the same shape; the renderer never
242
286
  imports the shell itself.
243
287
 
244
- ### Deprecated: `createShortcutsDialog` and `svgToPng`
288
+ ### PNG export
245
289
 
246
- Both are deprecated since 0.14.0 and removed in 0.15.0
247
- ([#258](https://github.com/Miragon/modeler-suite/issues/258)); the web app and the VS Code webview
248
- of this repository no longer use them.
290
+ The package draws no PNG itself: `svgToPng` of `@miragon/modeler-shell/export` rasterizes the SVG of
291
+ `saveSVG()`, embeds Geist, loads the SVG as a data: URL and fills the background the caller names. A
292
+ map has a plot, so its PNG lies on `--cd-ui-plot` (guide §10.7), which is `COLORS.plotBackground`:
249
293
 
250
- - `createShortcutsDialog(chrome, options)` (with `ShortcutsDialog` and `ShortcutsDialogChrome`) is
251
- replaced by the shell's dialog, which takes the groups of `mapShortcuts` and fills the View group
252
- with the chrome's zoom and fit keys (see above).
253
- - `svgToPng(svg, { scale, transparent })` (with `SvgToPngOptions`) is replaced by `svgToPng` of
254
- `@miragon/modeler-shell/export`, which embeds Geist, loads the SVG as a data: URL and fills the
255
- background the caller names. A map has a plot, so its PNG lies on `--cd-ui-plot` (guide §10.7), not
256
- on the paper this one fills:
294
+ ```ts
295
+ import { COLORS } from "@miragon/wardley-renderer";
296
+ import { svgToPng } from "@miragon/modeler-shell/export";
257
297
 
258
- ```ts
259
- import { COLORS } from "@miragon/wardley-renderer";
260
- import { svgToPng } from "@miragon/modeler-shell/export";
298
+ const { svg } = await modeler.saveSVG();
299
+ const png = await svgToPng(svg, { background: COLORS.plotBackground }); // 2×
300
+ const forSlides = await svgToPng(svg, { background: "transparent", scale: 4 });
301
+ ```
261
302
 
262
- const { svg } = await modeler.saveSVG();
263
- const png = await svgToPng(svg, { background: COLORS.plotBackground }); // 2×
264
- const forSlides = await svgToPng(svg, { background: "transparent", scale: 4 });
265
- ```
303
+ `blobToBase64(png)` gives the picture as Base64 without the data-URL prefix, e.g. to post it to a VS
304
+ Code extension host.
266
305
 
267
306
  ## Events
268
307
 
@@ -296,8 +335,8 @@ MIT
296
335
  The tool icons of the palette (`square-dashed-mouse-pointer`, and for Draw `spline` with a
297
336
  straight segment), the Close icon of the dialogs (`x`) and the icons of the context pad (`pencil`,
298
337
  `trash`, `circle-plus`, `arrow-right`, `chevrons-right`, `sliders-horizontal`, `line-style`,
299
- `palette`, `link`, `external-link`, and for Remove evolve `chevrons-right` with the corner `x` of
300
- `calendar-x-2`) are copied from [Lucide](https://lucide.dev) (`lucide-static` 1.59.0):
338
+ `palette`, `link`, `map`, `external-link`, and for Remove evolve `chevrons-right` with the corner
339
+ `x` of `calendar-x-2`) are copied from [Lucide](https://lucide.dev) (`lucide-static` 1.59.0):
301
340
 
302
341
  > ISC License
303
342
  >
@@ -314,8 +353,8 @@ straight segment), the Close icon of the dialogs (`x`) and the icons of the cont
314
353
  > NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
315
354
  > PERFORMANCE OF THIS SOFTWARE.
316
355
 
317
- `arrow-right`, `chevrons-right`, `circle-plus`, `external-link`, `link`, `trash` and `x` are derived
318
- from [Feather](https://feathericons.com):
356
+ `arrow-right`, `chevrons-right`, `circle-plus`, `external-link`, `link`, `map`, `trash` and `x` are
357
+ derived from [Feather](https://feathericons.com):
319
358
 
320
359
  > The MIT License (MIT)
321
360
  >
@@ -28,6 +28,25 @@ export interface WardleyViewerOptions {
28
28
  * `false` leaves them to the host (e.g. VS Code, which owns the document's undo stack).
29
29
  */
30
30
  undoRedoKeys?: boolean | undefined;
31
+ /**
32
+ * Follows a link without a scheme (`details/payment.wmap`) from the context pad. Only the host
33
+ * knows where the map's file lies, so it resolves the address or says why it can't. Without this
34
+ * option the pad offers no "Open link" on such an address; http(s) and `mailto:` addresses open
35
+ * in a new tab either way.
36
+ */
37
+ openRelativeLink?: ((address: string) => void) | undefined;
38
+ /**
39
+ * Opens an http(s) or `mailto:` address from the context pad. Default: a new browser tab. A host
40
+ * whose page can't open windows (a VS Code webview) hands the address to its own opener.
41
+ */
42
+ openExternalLink?: ((address: string) => void) | undefined;
43
+ /**
44
+ * Lets the user choose another map as the link of a component or submap, from the context pad's
45
+ * "Link to map…": resolves with its address relative to the current map, or `undefined` when the
46
+ * user cancels. Only the host knows the files around the map; without this option the pad offers
47
+ * no "Link to map…".
48
+ */
49
+ chooseLinkTarget?: (() => Promise<string | undefined>) | undefined;
31
50
  }
32
51
  export type EventCallback<T = unknown> = (event: T) => void;
33
52
  /** The plot size as drawn, plus whether the map writes it explicitly (`size [w, h]`). */
@@ -1 +1 @@
1
- {"version":3,"file":"WardleyBaseViewer.d.ts","sourceRoot":"","sources":["../src/WardleyBaseViewer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WardleyBaseViewer.d.ts","sourceRoot":"","sources":["../src/WardleyBaseViewer.ts"],"names":[],"mappings":"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"}
@@ -6,11 +6,18 @@ import { NavigatedViewer } from '../NavigatedViewer.js';
6
6
  export declare const WARDLEY_NOTATION = "wardley";
7
7
  /**
8
8
  * The contract's factory options (`freeArea`, `fitOnImport`, `undoRedoKeys`, see
9
- * `WardleyViewerOptions`) plus the renderer's own. The viewer ignores `undoRedoKeys`.
9
+ * `WardleyViewerOptions`) plus the renderer's own. The viewer ignores `undoRedoKeys` and the link
10
+ * handlers, as it has no context pad.
10
11
  */
11
12
  export interface CollaborativeWardleyOptions extends CollaborativeModelerOptions {
12
13
  /** Appended to the renderer's own modules (e.g. a host's chrome module). */
13
14
  additionalModules?: ModuleDeclaration[] | undefined;
15
+ /** Follows a link without a scheme, see `WardleyViewerOptions`. */
16
+ openRelativeLink?: ((address: string) => void) | undefined;
17
+ /** Opens an http(s) or `mailto:` link, see `WardleyViewerOptions`. */
18
+ openExternalLink?: ((address: string) => void) | undefined;
19
+ /** Chooses another map as a link, see `WardleyViewerOptions`. */
20
+ chooseLinkTarget?: (() => Promise<string | undefined>) | undefined;
14
21
  }
15
22
  /** The contract's element surface, with the optional `bounds` of contract 1.2 always present. */
16
23
  export interface WardleyElementsSurface extends ElementsSurface {
@@ -1 +1 @@
1
- {"version":3,"file":"CollaborativeWardley.d.ts","sourceRoot":"","sources":["../../src/collaborative/CollaborativeWardley.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,2BAA2B,EAChC,KAAK,aAAa,EAElB,KAAK,eAAe,EAEpB,KAAK,kBAAkB,EAExB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAM9C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAaxD,mFAAmF;AACnF,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAE1C;;;GAGG;AACH,MAAM,WAAW,2BAA4B,SAAQ,2BAA2B;IAC9E,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,iBAAiB,EAAE,GAAG,SAAS,CAAC;CACrD;AAED,iGAAiG;AACjG,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAC7D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;CAC/C;AAED;;;GAGG;AACH,MAAM,WAAW,2BAA4B,SAAQ,oBAAoB;IACvE,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,eAAe,CAAC;IAC5C,aAAa,IAAI,aAAa,GAAG,SAAS,CAAC;CAC5C;AA2BD,uFAAuF;AACvF,wBAAgB,0BAA0B,CACxC,OAAO,GAAE,2BAAgC,GACxC,2BAA2B,CAQ7B;AAED,+FAA+F;AAC/F,wBAAgB,yBAAyB,CACvC,OAAO,GAAE,2BAAgC,GACxC,2BAA2B,CAE7B"}
1
+ {"version":3,"file":"CollaborativeWardley.d.ts","sourceRoot":"","sources":["../../src/collaborative/CollaborativeWardley.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,2BAA2B,EAChC,KAAK,aAAa,EAElB,KAAK,eAAe,EAEpB,KAAK,kBAAkB,EAExB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAM9C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAaxD,mFAAmF;AACnF,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAE1C;;;;GAIG;AACH,MAAM,WAAW,2BAA4B,SAAQ,2BAA2B;IAC9E,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,iBAAiB,EAAE,GAAG,SAAS,CAAC;IACpD,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC3D,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC3D,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC;CACpE;AAED,iGAAiG;AACjG,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAC7D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;CAC/C;AAED;;;GAGG;AACH,MAAM,WAAW,2BAA4B,SAAQ,oBAAoB;IACvE,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,eAAe,CAAC;IAC5C,aAAa,IAAI,aAAa,GAAG,SAAS,CAAC;CAC5C;AA2BD,uFAAuF;AACvF,wBAAgB,0BAA0B,CACxC,OAAO,GAAE,2BAAgC,GACxC,2BAA2B,CAW7B;AAED,+FAA+F;AAC/F,wBAAgB,yBAAyB,CACvC,OAAO,GAAE,2BAAgC,GACxC,2BAA2B,CAE7B"}
@@ -13,6 +13,7 @@ import { default as WardleyLabelEditing } from '../label-editing/WardleyLabelEdi
13
13
  import { default as WardleyEvolveDragging } from '../evolve/WardleyEvolveDragging.js';
14
14
  import { default as WardleyElementFactory } from '../model/WardleyElementFactory.js';
15
15
  import { default as WardleyColorPicker } from '../color-picker/WardleyColorPicker.js';
16
+ import { WardleyLinksConfig } from '../link-editing/index.js';
16
17
  /** Context actions per element (concept doc §5.5). */
17
18
  export default class WardleyContextPadProvider implements ContextPadProvider {
18
19
  private readonly contextPad;
@@ -27,10 +28,11 @@ export default class WardleyContextPadProvider implements ContextPadProvider {
27
28
  private readonly colorPicker;
28
29
  private readonly canvas;
29
30
  private readonly injector;
31
+ private readonly linksConfig;
30
32
  static $inject: string[];
31
33
  /** Synthetic clicks created for Enter/Space, so actions can pick a pointer-free variant. */
32
34
  private readonly keyboardEvents;
33
- constructor(contextPad: ContextPad, modeling: Modeling, connect: Connect, create: Create, popupMenu: PopupMenu, wardleyModeling: WardleyModeling, labelEditing: WardleyLabelEditing, evolveDragging: WardleyEvolveDragging, factory: WardleyElementFactory, colorPicker: WardleyColorPicker, eventBus: EventBus, canvas: Canvas, injector: Injector);
35
+ constructor(contextPad: ContextPad, modeling: Modeling, connect: Connect, create: Create, popupMenu: PopupMenu, wardleyModeling: WardleyModeling, labelEditing: WardleyLabelEditing, evolveDragging: WardleyEvolveDragging, factory: WardleyElementFactory, colorPicker: WardleyColorPicker, eventBus: EventBus, canvas: Canvas, injector: Injector, linksConfig: WardleyLinksConfig | undefined);
34
36
  getContextPadEntries(element: Element): ContextPadEntries;
35
37
  /** Connections: edit the annotation (or the flow value of an imported flow link) + delete. */
36
38
  private connectionEntries;
@@ -38,6 +40,13 @@ export default class WardleyContextPadProvider implements ContextPadProvider {
38
40
  private addPrimaryEntries;
39
41
  /** Row 2: settings, line style, colour, link. */
40
42
  private addPropertyEntries;
43
+ /**
44
+ * Links the element to the map the user chooses in the host. While the host's picker is open, an
45
+ * import may replace the element or lock the canvas, so the element is looked up again after it.
46
+ * The link re-renders the pad, which takes a focused entry with it: as after a synchronous
47
+ * action (`onPadKeydown`), the canvas then takes the focus instead of `<body>`.
48
+ */
49
+ private linkChosenMap;
41
50
  /**
42
51
  * For an entry that opens no editor or popup: after a pointer click or drag it hands the focus to
43
52
  * the canvas (guide §5.8), whose keys act only while it has the focus. The clicked entry took the
@@ -1 +1 @@
1
- {"version":3,"file":"WardleyContextPadProvider.d.ts","sourceRoot":"","sources":["../../src/context-pad/WardleyContextPadProvider.ts"],"names":[],"mappings":"AAAA,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,MAAM,MAAM,uCAAuC,CAAC;AAChE,OAAO,KAAK,SAAS,MAAM,8CAA8C,CAAC;AAC1E,OAAO,KAAK,EACV,iBAAiB,EACjB,OAAO,IAAI,kBAAkB,EAC9B,MAAM,wDAAwD,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAS,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAOrC,OAAO,KAAK,eAAe,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,mBAAmB,MAAM,yCAAyC,CAAC;AAC/E,OAAO,KAAK,qBAAqB,MAAM,oCAAoC,CAAC;AAC5E,OAAO,KAAK,qBAAqB,MAAM,mCAAmC,CAAC;AAC3E,OAAO,KAAK,kBAAkB,MAAM,uCAAuC,CAAC;AAiC5E,sDAAsD;AACtD,MAAM,CAAC,OAAO,OAAO,yBAA0B,YAAW,kBAAkB;IAqBxE,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAhC3B,MAAM,CAAC,OAAO,WAcZ;IAEF,4FAA4F;IAC5F,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;gBAGpC,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,mBAAmB,EACjC,cAAc,EAAE,qBAAqB,EACrC,OAAO,EAAE,qBAAqB,EAC9B,WAAW,EAAE,kBAAkB,EAChD,QAAQ,EAAE,QAAQ,EACD,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ;IAUrC,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,iBAAiB;IAsBzD,8FAA8F;IAC9F,OAAO,CAAC,iBAAiB;IAuBzB,kDAAkD;IAClD,OAAO,CAAC,iBAAiB;IA8EzB,iDAAiD;IACjD,OAAO,CAAC,kBAAkB;IAgF1B;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAOtB,wEAAwE;IACxE,OAAO,CAAC,YAAY;IAuCpB,OAAO,CAAC,cAAc;IAiBtB;;;OAGG;IACH,OAAO,CAAC,WAAW;CAuBpB"}
1
+ {"version":3,"file":"WardleyContextPadProvider.d.ts","sourceRoot":"","sources":["../../src/context-pad/WardleyContextPadProvider.ts"],"names":[],"mappings":"AAAA,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,MAAM,MAAM,uCAAuC,CAAC;AAChE,OAAO,KAAK,SAAS,MAAM,8CAA8C,CAAC;AAC1E,OAAO,KAAK,EACV,iBAAiB,EACjB,OAAO,IAAI,kBAAkB,EAC9B,MAAM,wDAAwD,CAAC;AAEhE,OAAO,KAAK,EAAE,OAAO,EAAS,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAOrC,OAAO,KAAK,eAAe,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,mBAAmB,MAAM,yCAAyC,CAAC;AAC/E,OAAO,KAAK,qBAAqB,MAAM,oCAAoC,CAAC;AAC5E,OAAO,KAAK,qBAAqB,MAAM,mCAAmC,CAAC;AAC3E,OAAO,KAAK,kBAAkB,MAAM,uCAAuC,CAAC;AAI5E,OAAO,EAAuB,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AA8BxF,sDAAsD;AACtD,MAAM,CAAC,OAAO,OAAO,yBAA0B,YAAW,kBAAkB;IAsBxE,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAlC9B,MAAM,CAAC,OAAO,WAeZ;IAEF,4FAA4F;IAC5F,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;gBAGpC,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,mBAAmB,EACjC,cAAc,EAAE,qBAAqB,EACrC,OAAO,EAAE,qBAAqB,EAC9B,WAAW,EAAE,kBAAkB,EAChD,QAAQ,EAAE,QAAQ,EACD,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,kBAAkB,GAAG,SAAS;IAU9D,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,iBAAiB;IAsBzD,8FAA8F;IAC9F,OAAO,CAAC,iBAAiB;IAuBzB,kDAAkD;IAClD,OAAO,CAAC,iBAAiB;IA8EzB,iDAAiD;IACjD,OAAO,CAAC,kBAAkB;IAyF1B;;;;;OAKG;YACW,aAAa;IAc3B;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAOtB,wEAAwE;IACxE,OAAO,CAAC,YAAY;IAuCpB,OAAO,CAAC,cAAc;IAiBtB;;;OAGG;IACH,OAAO,CAAC,WAAW;CAuBpB"}
@@ -3,6 +3,7 @@ import { default as EventBus } from 'diagram-js/lib/core/EventBus';
3
3
  import { ElementLike, ShapeLike, ConnectionLike } from 'diagram-js/lib/model/Types';
4
4
  import { default as ElementRegistry } from 'diagram-js/lib/core/ElementRegistry';
5
5
  import { default as EvolutionGrid } from '../evolution-grid/EvolutionGrid.js';
6
+ import { Injector } from 'didi';
6
7
  /** Primary name text of a node (contract shared with other modules and consumers' CSS). */
7
8
  export declare const NAME_LABEL_CLASS = "wardley-name-label";
8
9
  /** Groups every evolve visual so tools (e.g. the context pad) can tell the node from its movement. */
@@ -14,8 +15,9 @@ export declare const LABEL_ROLE_ATTRIBUTE = "data-label-role";
14
15
  export default class WardleyRenderer extends BaseRenderer {
15
16
  private readonly grid;
16
17
  private readonly elementRegistry;
18
+ private readonly injector;
17
19
  static $inject: string[];
18
- constructor(eventBus: EventBus, grid: EvolutionGrid, elementRegistry: ElementRegistry);
20
+ constructor(eventBus: EventBus, grid: EvolutionGrid, elementRegistry: ElementRegistry, injector: Injector);
19
21
  canRender(element: ElementLike): boolean;
20
22
  drawShape(visuals: SVGElement, element: ShapeLike): SVGElement;
21
23
  /** Freeform drawing: polyline/polygon from relative points (see WardleyDrawTool). */
@@ -33,5 +35,11 @@ export default class WardleyRenderer extends BaseRenderer {
33
35
  private drawAnnotation;
34
36
  private drawAccelerator;
35
37
  private drawSubmap;
38
+ /**
39
+ * Marks the element at its lower left, where neither its name, its inertia nor its evolve sits,
40
+ * when the editor can open its link. Only the editing mount has the link opener: the viewer opens
41
+ * no links, so it shows no mark.
42
+ */
43
+ private drawLinkBadge;
36
44
  }
37
45
  //# sourceMappingURL=WardleyRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WardleyRenderer.d.ts","sourceRoot":"","sources":["../../src/draw/WardleyRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,kCAAkC,CAAC;AAE5D,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEzF,OAAO,KAAK,eAAe,MAAM,qCAAqC,CAAC;AAiCvE,OAAO,KAAK,aAAa,MAAM,oCAAoC,CAAC;AAMpE,2FAA2F;AAC3F,eAAO,MAAM,gBAAgB,uBAAuB,CAAC;AACrD,sGAAsG;AACtG,eAAO,MAAM,cAAc,qBAAqB,CAAC;AACjD,kGAAkG;AAClG,eAAO,MAAM,kBAAkB,yBAAyB,CAAC;AACzD,yFAAyF;AACzF,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AAKtD,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,YAAY;IAKrD,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,eAAe;IALlC,MAAM,CAAC,OAAO,WAAoD;gBAGhE,QAAQ,EAAE,QAAQ,EACD,IAAI,EAAE,aAAa,EACnB,eAAe,EAAE,eAAe;IAK1C,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO;IAIxC,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,GAAG,UAAU;IAyBvE,qFAAqF;IACrF,OAAO,CAAC,WAAW;IAiBV,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,GAAG,UAAU;IAkDxE,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM;IAKtC,iBAAiB,CAAC,UAAU,EAAE,cAAc,GAAG,MAAM;IAM9D,OAAO,CAAC,aAAa;IAsCrB,kFAAkF;IAClF,OAAO,CAAC,YAAY;IAmFpB,OAAO,CAAC,UAAU;IA0BlB,OAAO,CAAC,YAAY;IAyDpB,OAAO,CAAC,QAAQ;IAuBhB,OAAO,CAAC,YAAY;IAuCpB,OAAO,CAAC,cAAc;IAmCtB,OAAO,CAAC,eAAe;IA6BvB,OAAO,CAAC,UAAU;CA8CnB"}
1
+ {"version":3,"file":"WardleyRenderer.d.ts","sourceRoot":"","sources":["../../src/draw/WardleyRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,kCAAkC,CAAC;AAE5D,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEzF,OAAO,KAAK,eAAe,MAAM,qCAAqC,CAAC;AAqCvE,OAAO,KAAK,aAAa,MAAM,oCAAoC,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAMrC,2FAA2F;AAC3F,eAAO,MAAM,gBAAgB,uBAAuB,CAAC;AACrD,sGAAsG;AACtG,eAAO,MAAM,cAAc,qBAAqB,CAAC;AACjD,kGAAkG;AAClG,eAAO,MAAM,kBAAkB,yBAAyB,CAAC;AACzD,yFAAyF;AACzF,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AAatD,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,YAAY;IAKrD,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAN3B,MAAM,CAAC,OAAO,WAAgE;gBAG5E,QAAQ,EAAE,QAAQ,EACD,IAAI,EAAE,aAAa,EACnB,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAE,QAAQ;IAK5B,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO;IAIxC,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,GAAG,UAAU;IAyBvE,qFAAqF;IACrF,OAAO,CAAC,WAAW;IAiBV,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,GAAG,UAAU;IAkDxE,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM;IAKtC,iBAAiB,CAAC,UAAU,EAAE,cAAc,GAAG,MAAM;IAM9D,OAAO,CAAC,aAAa;IAwCrB,kFAAkF;IAClF,OAAO,CAAC,YAAY;IAmFpB,OAAO,CAAC,UAAU;IA0BlB,OAAO,CAAC,YAAY;IAyDpB,OAAO,CAAC,QAAQ;IAuBhB,OAAO,CAAC,YAAY;IAuCpB,OAAO,CAAC,cAAc;IAmCtB,OAAO,CAAC,eAAe;IA6BvB,OAAO,CAAC,UAAU;IAgDlB;;;;OAIG;IACH,OAAO,CAAC,aAAa;CAmBtB"}
@@ -1,6 +1,6 @@
1
1
  /*! @miragon/wardley-renderer icon geometry: the context pad icons. Lucide (lucide-static 1.59.0)
2
2
  * @license ISC Copyright (c) 2026 Lucide Icons and Contributors
3
- * arrow-right, chevrons-right, circle-plus, external-link, link and trash derive from Feather
3
+ * arrow-right, chevrons-right, circle-plus, external-link, link, map and trash derive from Feather
4
4
  * @license MIT, Copyright (c) 2013-present Cole Bemis
5
5
  * Full notices: README.md of @miragon/wardley-renderer */
6
6
  /**
@@ -20,6 +20,7 @@ export declare const LUCIDE: {
20
20
  readonly palette: "<path d=\"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z\"/><circle cx=\"13.5\" cy=\"6.5\" r=\".5\" fill=\"currentColor\"/><circle cx=\"17.5\" cy=\"10.5\" r=\".5\" fill=\"currentColor\"/><circle cx=\"6.5\" cy=\"12.5\" r=\".5\" fill=\"currentColor\"/><circle cx=\"8.5\" cy=\"7.5\" r=\".5\" fill=\"currentColor\"/>";
21
21
  readonly link: "<path d=\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"/><path d=\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"/>";
22
22
  readonly "external-link": "<path d=\"M15 3h6v6\"/><path d=\"M10 14 21 3\"/><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"/>";
23
+ readonly map: "<path d=\"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z\"/><path d=\"M15 5.764v15\"/><path d=\"M9 3.236v15\"/>";
23
24
  };
24
25
  export type LucideIconName = keyof typeof LUCIDE;
25
26
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"lucide.d.ts","sourceRoot":"","sources":["../../src/draw/lucide.ts"],"names":[],"mappings":"AAAA;;;;0DAI0D;AAE1D;;;;GAIG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;CAuBT,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,MAAM,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAEvD"}
1
+ {"version":3,"file":"lucide.d.ts","sourceRoot":"","sources":["../../src/draw/lucide.ts"],"names":[],"mappings":"AAAA;;;;0DAI0D;AAE1D;;;;GAIG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;CAwBT,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,MAAM,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAEvD"}
@@ -16,6 +16,13 @@ export { PLOT_MIN } from '@miragon/wardley-schema-model';
16
16
  export declare const NODE_SIZE = 34;
17
17
  export declare const COMPONENT_RADIUS = 15;
18
18
  export declare const COMPONENT_INNER_RADIUS = 12;
19
+ /**
20
+ * The mark on an element whose link the editor opens (its context pad's "Open link"): editor
21
+ * chrome in the `--cd-ui-*` roles of `wardley.css`, which the export leaves out.
22
+ */
23
+ export declare const LINK_BADGE_CLASS = "wardley-link-badge";
24
+ export declare const LINK_BADGE_RADIUS = 8;
25
+ export declare const LINK_BADGE_ICON_SIZE = 11;
19
26
  export declare const ANCHOR_ICON_SIZE = 26;
20
27
  export declare const PIPELINE_HEIGHT = 30;
21
28
  export declare const PIPELINE_ANCHOR_SIZE = 16;
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/draw/styles.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAK/F;;;GAGG;AACH,eAAO,MAAM,IAAI;;;;;;;CAOP,CAAC;AAEX,gGAAgG;AAChG,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAEzD,eAAO,MAAM,SAAS,KAAK,CAAC;AAC5B,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAKnC;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAQ7F;AAiBD;;;;;GAKG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;CAwBT,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYd,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAO5E,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIlD,CAAC;AAEF,eAAO,MAAM,IAAI;IACf;;;;;;OAMG;;;;;CAMK,CAAC"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/draw/styles.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAK/F;;;GAGG;AACH,eAAO,MAAM,IAAI;;;;;;;CAOP,CAAC;AAEX,gGAAgG;AAChG,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAEzD,eAAO,MAAM,SAAS,KAAK,CAAC;AAC5B,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC;;;GAGG;AACH,eAAO,MAAM,gBAAgB,uBAAuB,CAAC;AACrD,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAKnC;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAQ7F;AAiBD;;;;;GAKG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;CAwBT,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYd,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAO5E,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIlD,CAAC;AAEF,eAAO,MAAM,IAAI;IACf;;;;;;OAMG;;;;;CAMK,CAAC"}
@@ -11,7 +11,8 @@ import { default as EvolutionGrid } from '../evolution-grid/EvolutionGrid.js';
11
11
  * commits the open line, and so does Space on the tool's palette entry; clicking the FIRST point
12
12
  * closes the shape. Escape with fewer than two points cancels. The result is ONE undoable
13
13
  * `drawing` shape that moves as a whole. An import cancels a line in progress without committing
14
- * it and leaves a tool without points armed.
14
+ * it and leaves a tool without points armed. Arming another tool (the lasso) puts it down and saves
15
+ * a held line as Escape does, so one tool is armed at a time.
15
16
  */
16
17
  export default class WardleyDrawTool {
17
18
  private readonly canvas;
@@ -39,6 +40,12 @@ export default class WardleyDrawTool {
39
40
  activate(): void;
40
41
  /** Finishes the current polyline (>= 2 points) and deactivates the tool. */
41
42
  finish(): void;
43
+ /**
44
+ * Another tool took the press: the line is saved as Escape saves it, and the release is not
45
+ * reported, which would show that tool released while it is armed.
46
+ */
47
+ private giveWay;
48
+ private finishLine;
42
49
  /** Closes the shape (polygon) using the collected points. */
43
50
  private finishClosed;
44
51
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"WardleyDrawTool.d.ts","sourceRoot":"","sources":["../../src/draw-tool/WardleyDrawTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAQrC,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;AAGzE,OAAO,KAAK,qBAAqB,MAAM,mCAAmC,CAAC;AAC3E,OAAO,KAAK,aAAa,MAAM,oCAAoC,CAAC;AAcpE;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAiBhC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAtB3B,MAAM,CAAC,OAAO,WAQZ;IAEF,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,KAAK,CAA2B;gBAGrB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,qBAAqB,EAC9B,IAAI,EAAE,aAAa,EACnB,QAAQ,EAAE,QAAQ;IAYrC,QAAQ,IAAI,OAAO;IAInB,8EAA8E;IAC9E,SAAS,IAAI,OAAO;IAIpB,MAAM,IAAI,IAAI;IAKd;;;OAGG;IACH,OAAO,CAAC,cAAc;IAKtB,QAAQ,IAAI,IAAI;IAgBhB,4EAA4E;IAC5E,MAAM,IAAI,IAAI;IAOd,6DAA6D;IAC7D,OAAO,CAAC,YAAY;IAOpB;;;OAGG;IACH,OAAO,CAAC,MAAM;IAWd,MAAM,IAAI,IAAI;IAId,OAAO,CAAC,UAAU;IAelB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAYrB,sFAAsF;IACtF,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAsB1B;IAEF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAKzB;IAEF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAI1B;IAEF;;;;;;;OAOG;IACH,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,sBAAsB;IAQ9B;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAcxB;IAEF,OAAO,CAAC,aAAa;IAiDrB,OAAO,CAAC,YAAY;CAMrB"}
1
+ {"version":3,"file":"WardleyDrawTool.d.ts","sourceRoot":"","sources":["../../src/draw-tool/WardleyDrawTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAQrC,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;AAGzE,OAAO,KAAK,qBAAqB,MAAM,mCAAmC,CAAC;AAC3E,OAAO,KAAK,aAAa,MAAM,oCAAoC,CAAC;AAgBpE;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAiBhC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAtB3B,MAAM,CAAC,OAAO,WAQZ;IAEF,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,KAAK,CAA2B;gBAGrB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,qBAAqB,EAC9B,IAAI,EAAE,aAAa,EACnB,QAAQ,EAAE,QAAQ;IAkBrC,QAAQ,IAAI,OAAO;IAInB,8EAA8E;IAC9E,SAAS,IAAI,OAAO;IAIpB,MAAM,IAAI,IAAI;IAKd;;;OAGG;IACH,OAAO,CAAC,cAAc;IAKtB,QAAQ,IAAI,IAAI;IAgBhB,4EAA4E;IAC5E,MAAM,IAAI,IAAI;IAId;;;OAGG;IACH,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,UAAU;IAOlB,6DAA6D;IAC7D,OAAO,CAAC,YAAY;IAOpB;;;OAGG;IACH,OAAO,CAAC,MAAM;IAWd,MAAM,IAAI,IAAI;IAId,OAAO,CAAC,UAAU;IAelB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAYrB,sFAAsF;IACtF,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAsB1B;IAEF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAKzB;IAEF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAI1B;IAEF;;;;;;;OAOG;IACH,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,sBAAsB;IAQ9B;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAcxB;IAEF,OAAO,CAAC,aAAa;IAiDrB,OAAO,CAAC,YAAY;CAMrB"}
package/dist/index.d.ts CHANGED
@@ -10,8 +10,8 @@ export { COLORS, PLOT } from './draw/styles.js';
10
10
  export { PLOT_MIN, PLOT_MAX, MAP_SIZE_PRESETS, normalizeMapSize, presetIdForSize, } from '@miragon/wardley-schema-model';
11
11
  export type { MapSize, MapSizePreset, MapSizePresetId } from '@miragon/wardley-schema-model';
12
12
  export { MIRAGON } from './theme/index.js';
13
- export { ioModule, WardleyImporter, WardleyExporter, WardleySourceOrder, saveSVG, exportBounds, svgToPng, blobToBase64, ROOT_ID, } from './io/index.js';
14
- export type { SvgBounds, SvgToPngOptions } from './io/index.js';
13
+ export { ioModule, WardleyImporter, WardleyExporter, WardleySourceOrder, saveSVG, exportBounds, blobToBase64, ROOT_ID, } from './io/index.js';
14
+ export type { SvgBounds } from './io/index.js';
15
15
  export { wardleyModelingModule, WardleyModeling } from './modeling/index.js';
16
16
  export { wardleyLayoutModule, WardleyLayouter } from './layout/index.js';
17
17
  export type { EvolveOptions, MapConfigUpdate } from './modeling/index.js';
@@ -21,6 +21,7 @@ export { pipelineGroupModule, PipelineGroupBehavior } from './pipeline/index.js'
21
21
  export { linkEditingModule, WardleyLinkEditing, canHaveLink, linkOf, } from './link-editing/index.js';
22
22
  export { wardleyLabelDragModule, WardleyLabelDragging } from './label-drag/index.js';
23
23
  export { readOnlyModule, WardleyReadOnly, READ_ONLY_CHANGED } from './read-only/index.js';
24
+ export type { WardleyReadOnlyOptions } from './read-only/index.js';
24
25
  export type { LabelRole } from './label-drag/index.js';
25
26
  export { canvasAccessibilityModule } from './a11y/index.js';
26
27
  export { wardleyLassoModule, WardleyLassoBehavior } from './lasso/index.js';
@@ -41,8 +42,8 @@ export type { InteractionChangedEvent } from './interaction/index.js';
41
42
  export { WARDLEY_THEMES } from './appearance/index.js';
42
43
  export { WARDLEY_NOTATION, createCollaborativeModeler, createCollaborativeViewer, } from './collaborative/index.js';
43
44
  export type { CollaborativeWardleyModeler, CollaborativeWardleyOptions, WardleyElementsSurface, } from './collaborative/index.js';
44
- export { EXPORT_LABELS, createAxisLabelsPopover, createMapDialog, createMapSizePopover, createShortcutsDialog, createTitleDialog, dialogButton, mapMenu, mapShortcuts, } from './map-menu/index.js';
45
- export type { DialogChrome, MapDialog, MapDialogParts, MapShortcutOptions, TitleDialog, TitleDialogChrome, MapExport, MapExports, MapMenu, MapMenuAction, MapMenuActions, MapMenuDialog, MapMenuEntry, MapMenuIcon, PopoverChrome, PopoverHandle, ShortcutGroup, ShortcutKeyNames, ShortcutPlatform, ShortcutRow, ShortcutsChrome, ShortcutsDialog, ShortcutsDialogChrome, } from './map-menu/index.js';
45
+ export { EXPORT_LABELS, createAxisLabelsPopover, createMapDialog, createMapSizePopover, createTitleDialog, dialogButton, mapMenu, mapShortcuts, } from './map-menu/index.js';
46
+ export type { DialogChrome, MapDialog, MapDialogParts, MapShortcutOptions, TitleDialog, TitleDialogChrome, MapExport, MapExports, MapMenu, MapMenuAction, MapMenuActions, MapMenuDialog, MapMenuEntry, MapMenuIcon, PopoverChrome, PopoverHandle, ShortcutGroup, ShortcutKeyNames, ShortcutPlatform, ShortcutRow, ShortcutsChrome, } from './map-menu/index.js';
46
47
  export type { EditorState, RestoreOptions } from './editor-state.js';
47
48
  export { wardleyKeyboardModule } from './keyboard/index.js';
48
49
  export type { WardleyKeyboardConfig } from './keyboard/WardleyKeyboard.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}