@miragon/wardley-renderer 0.6.3 → 0.8.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 (169) hide show
  1. package/README.md +131 -1
  2. package/dist/Modeler.d.ts +5 -0
  3. package/dist/Modeler.d.ts.map +1 -1
  4. package/dist/NavigatedViewer.d.ts.map +1 -1
  5. package/dist/WardleyBaseViewer.d.ts +90 -12
  6. package/dist/WardleyBaseViewer.d.ts.map +1 -1
  7. package/dist/a11y/canvasFocus.d.ts +17 -0
  8. package/dist/a11y/canvasFocus.d.ts.map +1 -0
  9. package/dist/a11y/describeCanvas.d.ts +8 -0
  10. package/dist/a11y/describeCanvas.d.ts.map +1 -0
  11. package/dist/a11y/index.d.ts +5 -0
  12. package/dist/a11y/index.d.ts.map +1 -0
  13. package/dist/append/WardleyAppendBehavior.d.ts +7 -6
  14. package/dist/append/WardleyAppendBehavior.d.ts.map +1 -1
  15. package/dist/collaborative/CollaborativeWardley.d.ts +27 -0
  16. package/dist/collaborative/CollaborativeWardley.d.ts.map +1 -0
  17. package/dist/collaborative/index.d.ts +2 -0
  18. package/dist/collaborative/index.d.ts.map +1 -0
  19. package/dist/color-picker/WardleyColorPicker.d.ts +10 -3
  20. package/dist/color-picker/WardleyColorPicker.d.ts.map +1 -1
  21. package/dist/context-pad/WardleyContextPad.d.ts +30 -0
  22. package/dist/context-pad/WardleyContextPad.d.ts.map +1 -0
  23. package/dist/context-pad/WardleyContextPadProvider.d.ts +23 -1
  24. package/dist/context-pad/WardleyContextPadProvider.d.ts.map +1 -1
  25. package/dist/context-pad/index.d.ts +1 -0
  26. package/dist/context-pad/index.d.ts.map +1 -1
  27. package/dist/draw/WardleyRenderer.d.ts +8 -0
  28. package/dist/draw/WardleyRenderer.d.ts.map +1 -1
  29. package/dist/draw/deprecated-icons.d.ts +35 -0
  30. package/dist/draw/deprecated-icons.d.ts.map +1 -0
  31. package/dist/draw/icons.d.ts +9 -26
  32. package/dist/draw/icons.d.ts.map +1 -1
  33. package/dist/draw/index.d.ts +2 -1
  34. package/dist/draw/index.d.ts.map +1 -1
  35. package/dist/draw/label-layout.d.ts +59 -0
  36. package/dist/draw/label-layout.d.ts.map +1 -0
  37. package/dist/draw/palette-icons.d.ts +1 -0
  38. package/dist/draw/palette-icons.d.ts.map +1 -1
  39. package/dist/draw/styles.d.ts +16 -17
  40. package/dist/draw/styles.d.ts.map +1 -1
  41. package/dist/draw-tool/WardleyDrawTool.d.ts +14 -1
  42. package/dist/draw-tool/WardleyDrawTool.d.ts.map +1 -1
  43. package/dist/draw-tool/WardleyDrawingHandles.d.ts +4 -1
  44. package/dist/draw-tool/WardleyDrawingHandles.d.ts.map +1 -1
  45. package/dist/editor-state.d.ts +56 -0
  46. package/dist/editor-state.d.ts.map +1 -0
  47. package/dist/evolution-grid/EvolutionConstraintBehavior.d.ts +58 -24
  48. package/dist/evolution-grid/EvolutionConstraintBehavior.d.ts.map +1 -1
  49. package/dist/evolution-grid/EvolutionGrid.d.ts +2 -0
  50. package/dist/evolution-grid/EvolutionGrid.d.ts.map +1 -1
  51. package/dist/evolution-grid/index.d.ts.map +1 -1
  52. package/dist/evolve/WardleyEvolveDragging.d.ts +3 -1
  53. package/dist/evolve/WardleyEvolveDragging.d.ts.map +1 -1
  54. package/dist/evolve/constants.d.ts +3 -0
  55. package/dist/evolve/constants.d.ts.map +1 -0
  56. package/dist/evolve/index.d.ts +1 -0
  57. package/dist/evolve/index.d.ts.map +1 -1
  58. package/dist/free-rect/FreeRect.d.ts +34 -0
  59. package/dist/free-rect/FreeRect.d.ts.map +1 -0
  60. package/dist/free-rect/index.d.ts +6 -0
  61. package/dist/free-rect/index.d.ts.map +1 -0
  62. package/dist/index.d.ts +28 -4
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +4967 -1941
  65. package/dist/index.js.map +1 -1
  66. package/dist/io/WardleyExporter.d.ts +3 -1
  67. package/dist/io/WardleyExporter.d.ts.map +1 -1
  68. package/dist/io/WardleyImporter.d.ts.map +1 -1
  69. package/dist/io/WardleySourceOrder.d.ts +23 -0
  70. package/dist/io/WardleySourceOrder.d.ts.map +1 -0
  71. package/dist/io/exportBounds.d.ts +15 -0
  72. package/dist/io/exportBounds.d.ts.map +1 -0
  73. package/dist/io/index.d.ts +5 -0
  74. package/dist/io/index.d.ts.map +1 -1
  75. package/dist/io/rasterize.d.ts +25 -0
  76. package/dist/io/rasterize.d.ts.map +1 -0
  77. package/dist/io/saveSvg.d.ts +1 -1
  78. package/dist/io/saveSvg.d.ts.map +1 -1
  79. package/dist/io/types.d.ts +5 -0
  80. package/dist/io/types.d.ts.map +1 -1
  81. package/dist/keyboard/WardleyKeyboard.d.ts +47 -4
  82. package/dist/keyboard/WardleyKeyboard.d.ts.map +1 -1
  83. package/dist/label-drag/WardleyLabelDragging.d.ts +58 -0
  84. package/dist/label-drag/WardleyLabelDragging.d.ts.map +1 -0
  85. package/dist/label-drag/index.d.ts +5 -0
  86. package/dist/label-drag/index.d.ts.map +1 -0
  87. package/dist/label-editing/WardleyLabelEditing.d.ts +63 -6
  88. package/dist/label-editing/WardleyLabelEditing.d.ts.map +1 -1
  89. package/dist/label-editing/fieldError.d.ts +13 -0
  90. package/dist/label-editing/fieldError.d.ts.map +1 -0
  91. package/dist/label-editing/index.d.ts +1 -0
  92. package/dist/label-editing/index.d.ts.map +1 -1
  93. package/dist/link-editing/WardleyLinkEditing.d.ts +40 -0
  94. package/dist/link-editing/WardleyLinkEditing.d.ts.map +1 -0
  95. package/dist/link-editing/index.d.ts +6 -0
  96. package/dist/link-editing/index.d.ts.map +1 -0
  97. package/dist/link-editing/link-url.d.ts +14 -0
  98. package/dist/link-editing/link-url.d.ts.map +1 -0
  99. package/dist/map-menu/AxisLabelsPopover.d.ts +10 -0
  100. package/dist/map-menu/AxisLabelsPopover.d.ts.map +1 -0
  101. package/dist/map-menu/MapSizePopover.d.ts +10 -0
  102. package/dist/map-menu/MapSizePopover.d.ts.map +1 -0
  103. package/dist/map-menu/ShortcutsDialog.d.ts +14 -0
  104. package/dist/map-menu/ShortcutsDialog.d.ts.map +1 -0
  105. package/dist/map-menu/TitleDialog.d.ts +12 -0
  106. package/dist/map-menu/TitleDialog.d.ts.map +1 -0
  107. package/dist/map-menu/dialog.d.ts +41 -0
  108. package/dist/map-menu/dialog.d.ts.map +1 -0
  109. package/dist/map-menu/dom.d.ts +9 -0
  110. package/dist/map-menu/dom.d.ts.map +1 -0
  111. package/dist/map-menu/index.d.ts +14 -0
  112. package/dist/map-menu/index.d.ts.map +1 -0
  113. package/dist/map-menu/menu.d.ts +68 -0
  114. package/dist/map-menu/menu.d.ts.map +1 -0
  115. package/dist/map-menu/popover.d.ts +52 -0
  116. package/dist/map-menu/popover.d.ts.map +1 -0
  117. package/dist/map-menu/shortcuts.d.ts +48 -0
  118. package/dist/map-menu/shortcuts.d.ts.map +1 -0
  119. package/dist/map-resize/MapProjection.d.ts +84 -0
  120. package/dist/map-resize/MapProjection.d.ts.map +1 -0
  121. package/dist/map-resize/MapResizeHandles.d.ts +59 -0
  122. package/dist/map-resize/MapResizeHandles.d.ts.map +1 -0
  123. package/dist/map-resize/ResizeAwareAutoScroll.d.ts +15 -0
  124. package/dist/map-resize/ResizeAwareAutoScroll.d.ts.map +1 -0
  125. package/dist/map-resize/index.d.ts +14 -0
  126. package/dist/map-resize/index.d.ts.map +1 -0
  127. package/dist/model/WardleyElementFactory.d.ts +36 -2
  128. package/dist/model/WardleyElementFactory.d.ts.map +1 -1
  129. package/dist/modeling/WardleyCopyPaste.d.ts +9 -5
  130. package/dist/modeling/WardleyCopyPaste.d.ts.map +1 -1
  131. package/dist/modeling/WardleyModeling.d.ts +16 -2
  132. package/dist/modeling/WardleyModeling.d.ts.map +1 -1
  133. package/dist/modeling/cmd/ResizeMapHandler.d.ts +24 -0
  134. package/dist/modeling/cmd/ResizeMapHandler.d.ts.map +1 -0
  135. package/dist/modeling/cmd/UpdateConfigHandler.d.ts +42 -0
  136. package/dist/modeling/cmd/UpdateConfigHandler.d.ts.map +1 -0
  137. package/dist/modeling/index.d.ts +2 -0
  138. package/dist/modeling/index.d.ts.map +1 -1
  139. package/dist/ordering/WardleyOrderingProvider.d.ts +1 -1
  140. package/dist/ordering/WardleyOrderingProvider.d.ts.map +1 -1
  141. package/dist/palette/WardleyPaletteKeyboard.d.ts +26 -0
  142. package/dist/palette/WardleyPaletteKeyboard.d.ts.map +1 -0
  143. package/dist/palette/WardleyPaletteProvider.d.ts +20 -1
  144. package/dist/palette/WardleyPaletteProvider.d.ts.map +1 -1
  145. package/dist/palette/index.d.ts +2 -1
  146. package/dist/palette/index.d.ts.map +1 -1
  147. package/dist/pan-constraint/PanConstraint.d.ts +24 -2
  148. package/dist/pan-constraint/PanConstraint.d.ts.map +1 -1
  149. package/dist/pipeline/PipelineGroupBehavior.d.ts +24 -0
  150. package/dist/pipeline/PipelineGroupBehavior.d.ts.map +1 -0
  151. package/dist/pipeline/index.d.ts +6 -0
  152. package/dist/pipeline/index.d.ts.map +1 -0
  153. package/dist/pipeline/pipelineMembership.d.ts +23 -0
  154. package/dist/pipeline/pipelineMembership.d.ts.map +1 -0
  155. package/dist/popup/WardleyElementSettingsProvider.d.ts +2 -1
  156. package/dist/popup/WardleyElementSettingsProvider.d.ts.map +1 -1
  157. package/dist/read-only/WardleyReadOnly.d.ts +27 -0
  158. package/dist/read-only/WardleyReadOnly.d.ts.map +1 -0
  159. package/dist/read-only/index.d.ts +7 -0
  160. package/dist/read-only/index.d.ts.map +1 -0
  161. package/dist/rules/WardleyRules.d.ts.map +1 -1
  162. package/dist/snapping/StageSnapping.d.ts +6 -2
  163. package/dist/snapping/StageSnapping.d.ts.map +1 -1
  164. package/dist/theme/index.d.ts +1 -1
  165. package/dist/theme/index.d.ts.map +1 -1
  166. package/dist/theme/palette.d.ts +28 -29
  167. package/dist/theme/palette.d.ts.map +1 -1
  168. package/dist/wardley.css +1 -1
  169. package/package.json +10 -9
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  [diagram-js](https://github.com/bpmn-io/diagram-js)-based renderer for
7
7
  [Wardley Maps](https://learnwardleymapping.com/): `Viewer`, `NavigatedViewer`, and a full editable
8
- `Modeler`, plus OWM / JSON / SVG / PNG import and export. Browser/DOM only.
8
+ `Modeler`, plus OWM / JSON import and OWM / JSON / SVG / PNG export. Browser/DOM only.
9
9
 
10
10
  ## Install
11
11
 
@@ -34,6 +34,88 @@ const { svg } = await viewer.saveSVG();
34
34
 
35
35
  Swap `NavigatedViewer` for `Modeler` to get the editable map (palette, context pad, undo/redo).
36
36
 
37
+ ## API
38
+
39
+ | Member | What it does |
40
+ | -------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
41
+ | `importDSL(text)` / `importMap(map)` | Loads a map (replaces the content, clears the undo history). Resolves to `{ warnings }`. |
42
+ | `exportDSL()` / `exportMap()` / `saveSVG()` | The map as canonical OWM text, as the JSON model, or as a standalone SVG (never shows selection or hover state). |
43
+ | `setTitle(title)` | Sets the map title (one undo step in the `Modeler`). |
44
+ | `getMapSize()` | The plot size as drawn, whether the map writes it (`size [w, h]`) and the matching preset. |
45
+ | `setMapSize(width, height, { transient })` / `resetMapSize({ transient })` | Changes the plot size (rounded and clamped to 480–5000 × 320–5000). In the `Modeler` one undo step, no re-import; `transient` previews without one. |
46
+ | `setEvolutionLabels(labels, { transient })` | Sets the four X-axis stage labels (normalized, see below); `transient` previews without an undo step. |
47
+ | `undo()` / `redo()` / `canUndo()` / `canRedo()` | `Modeler` only: the canvas command stack. |
48
+ | `commitPendingEdits()` | `Modeler` only: saves an open inline editor, e.g. before a save shortcut. |
49
+ | `on(event, callback)` / `off(event, callback)` | diagram-js events, see below. |
50
+ | `svgToPng(svg, { scale, transparent })` / `blobToBase64` | Rasterizes an exported SVG (default 2×, paper background). |
51
+ | `setAsideEditorState(modeler)` / `restoreEditorState(…)` | Keeps the selection and an open inline editor across a re-import of an externally changed map. |
52
+
53
+ `setEvolutionLabels` turns an empty stage into its default label and `->` into `→`, so the labels
54
+ always write a valid `evolution` line; the default set is stored as `undefined`.
55
+
56
+ An import validates the whole map first: a map that is not importable rejects before the canvas
57
+ changes, and a rendering failure puts the previous map back.
58
+
59
+ Options: `new Modeler({ container, keyboard: { undoRedo: false } })` leaves Cmd/Ctrl+Z/Y to the
60
+ host (VS Code owns its document's undo stack). `freeRectInsets: () => ({ top, right, bottom, left })`
61
+ names the canvas edges a host's chrome covers, so fitting, panning and keyboard creation keep to
62
+ the free rectangle. `additionalModules` adds diagram-js modules; every Wardley feature module is
63
+ exported for custom editors.
64
+
65
+ The `wardleyReadOnly` service (`modeler.get<WardleyReadOnly>('wardleyReadOnly').setReadOnly(true)`)
66
+ locks the canvas while its host cannot save an edit, e.g. while the document is invalid: every edit
67
+ rule is vetoed, an open editor, popup or drag ends without saving, the handles hide, and selection,
68
+ zoom, pan, select all and export stay. It fires `wardley.readOnly.changed`.
69
+
70
+ ## Collaborative hosts
71
+
72
+ `createCollaborativeModeler()` and `createCollaborativeViewer()` implement the
73
+ [`@miragon/modeler-api`](https://www.npmjs.com/package/@miragon/modeler-api) collaborative-modeler
74
+ contract (notation `wardley`), for hosts that keep the map text in a shared document:
75
+
76
+ ```ts
77
+ import { createCollaborativeModeler } from '@miragon/wardley-renderer';
78
+ import '@miragon/wardley-renderer/assets/wardley.css';
79
+
80
+ const modeler = createCollaborativeModeler();
81
+ modeler.attachTo(document.querySelector('#canvas')!);
82
+ await modeler.importText(documentText);
83
+ modeler.onContentChanged(() => save(modeler.exportText()));
84
+ ```
85
+
86
+ An import is silent (no content change is reported back) and keeps the selection, the viewbox and
87
+ an open label editor. `elements` names components, anchors, pipelines, submaps and accelerators by
88
+ the id the document gives them (`cmp_kettle`), also right after a canvas edit; `getViewState` and
89
+ `setViewState` carry the viewbox. `diagram` is the wrapped `Modeler` or `NavigatedViewer` for
90
+ host-specific wiring. The modeler takes `additionalModules`, `keyboard` and `freeRectInsets` as
91
+ above; the viewer never edits. Both pass the contract's conformance kit without skips.
92
+
93
+ ### Menu entries and dialogs for a host's chrome
94
+
95
+ The map's entries of a chrome menu (Model: "Map title…" where the host passes `mapTitle`, "Map
96
+ size…" and "X-axis labels…"; Export; Help) come from `mapMenu(actions)`, in the shape the menu
97
+ groups of [`@miragon/modeler-shell`](https://www.npmjs.com/package/@miragon/modeler-shell) take.
98
+ `createMapSizePopover(chrome, modeler)` and `createAxisLabelsPopover(chrome, modeler)` build the two
99
+ popovers (a live preview, one undo step when done), `createTitleDialog(chrome, modeler)` the "Map
100
+ title…" dialog (one undo step on Apply, nothing for an unchanged title),
101
+ `createShortcutsDialog(chrome, options)` the "Keyboard shortcuts…" dialog and
102
+ `mapShortcuts(chrome, options)` its table. A web app that binds Cmd/Ctrl+O, Cmd/Ctrl+S, Cmd/Ctrl+V
103
+ on the canvas and `?` itself passes `{ fileKeys: true, shortcutsKey: '?' }`, so the dialog lists
104
+ them too.
105
+ `createMapDialog(chrome, parts)` is the modal dialog all of them share (guide §8: header with Close,
106
+ scrolling body, footer), for a host's own dialogs in the same look; `dialogButton(label, variant)`
107
+ gives its buttons. `chrome` is the shell handle or anything of the same shape; the renderer never
108
+ imports the shell itself.
109
+
110
+ ## Events
111
+
112
+ | Event | Payload | Notes |
113
+ | ---------------------------- | --------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
114
+ | `import.done` | `{ warnings }` | After every import. |
115
+ | `commandStack.changed` | `{ trigger }` | `Modeler`: after every committed edit, undo and redo, including size, title and label changes. |
116
+ | `wardley.config.changed` | `WardleyConfigChangedEvent` | Title, size or axis labels changed. `transient` events are live previews (typing, dragging the plot corner): do not persist them. |
117
+ | `wardley.label.deduplicated` | `{ element, requested, applied }` | A typed name was taken and a free variant (`Tea 2`) was used instead. |
118
+
37
119
  ### Fonts
38
120
 
39
121
  The package ships no fonts and uses no CDN. The canvas typeface is **Geist** (Miragon corporate
@@ -44,8 +126,56 @@ identity); provide it yourself — recommended self-hosted via [`@fontsource`](h
44
126
  import '@fontsource-variable/geist/wght.css';
45
127
  ```
46
128
 
129
+ That package registers the family as `'Geist Variable'`; the renderer's font stack starts with
130
+ `'Geist Variable', 'Geist', …` so it matches either that package or a locally installed Geist. Use
131
+ `'Geist Variable'` in your own CSS too — `'Geist'` alone never matches the self-hosted face.
132
+
47
133
  Part of the [Wardley Maps](https://github.com/Miragon/wardley-maps-modeler) monorepo.
48
134
 
49
135
  ## License
50
136
 
51
137
  MIT
138
+
139
+ The tool icons of the palette (`square-dashed-mouse-pointer`, and for Draw `spline` with a
140
+ straight segment) and the Close icon of the dialogs (`x`) are copied from
141
+ [Lucide](https://lucide.dev) (`lucide-static` 1.59.0):
142
+
143
+ > ISC License
144
+ >
145
+ > Copyright (c) 2026 Lucide Icons and Contributors
146
+ >
147
+ > Permission to use, copy, modify, and/or distribute this software for any purpose with or without
148
+ > fee is hereby granted, provided that the above copyright notice and this permission notice
149
+ > appear in all copies.
150
+ >
151
+ > THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
152
+ > SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
153
+ > AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
154
+ > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
155
+ > NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
156
+ > PERFORMANCE OF THIS SOFTWARE.
157
+
158
+ `x` is derived from [Feather](https://feathericons.com):
159
+
160
+ > The MIT License (MIT)
161
+ >
162
+ > Copyright (c) 2013-present Cole Bemis
163
+ >
164
+ > Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
165
+ > associated documentation files (the "Software"), to deal in the Software without restriction,
166
+ > including without limitation the rights to use, copy, modify, merge, publish, distribute,
167
+ > sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
168
+ > furnished to do so, subject to the following conditions:
169
+ >
170
+ > The above copyright notice and this permission notice shall be included in all copies or
171
+ > substantial portions of the Software.
172
+ >
173
+ > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
174
+ > BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
175
+ > NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
176
+ > DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
177
+ > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
178
+
179
+ The other icons (the context pad, and the `ICON_*` exports with `iconMarkup`, which are deprecated
180
+ since the chrome's icons come from `@miragon/modeler-shell` and go in a later minor) are
181
+ [Material Icons](https://fonts.google.com/icons) by Google, under the Apache License 2.0.
package/dist/Modeler.d.ts CHANGED
@@ -6,6 +6,11 @@ import { NavigatedViewer } from './NavigatedViewer.js';
6
6
  */
7
7
  export declare class Modeler extends NavigatedViewer {
8
8
  protected _getModules(): ModuleDeclaration[];
9
+ /**
10
+ * Saves any open inline editor (name, note, link annotation, flow value, link address). Call it
11
+ * before saving or exporting from a keyboard shortcut, which does not take focus off the editor.
12
+ */
13
+ commitPendingEdits(): void;
9
14
  undo(): void;
10
15
  redo(): void;
11
16
  canUndo(): boolean;
@@ -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;AAc9C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAkBvD;;;GAGG;AACH,qBAAa,OAAQ,SAAQ,eAAe;cACvB,WAAW,IAAI,iBAAiB,EAAE;IAgCrD,IAAI,IAAI,IAAI;IAIZ,IAAI,IAAI,IAAI;IAIZ,OAAO,IAAI,OAAO;IAIlB,OAAO,IAAI,OAAO;CAGnB"}
1
+ {"version":3,"file":"Modeler.d.ts","sourceRoot":"","sources":["../src/Modeler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAiB9C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AA6BvD;;;GAGG;AACH,qBAAa,OAAQ,SAAQ,eAAe;cACvB,WAAW,IAAI,iBAAiB,EAAE;IA0CrD;;;OAGG;IACH,kBAAkB,IAAI,IAAI;IAK1B,IAAI,IAAI,IAAI;IAIZ,IAAI,IAAI,IAAI;IAIZ,OAAO,IAAI,OAAO;IAIlB,OAAO,IAAI,OAAO;CAGnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"NavigatedViewer.d.ts","sourceRoot":"","sources":["../src/NavigatedViewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAK9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,MAAM;cACtB,WAAW,IAAI,iBAAiB,EAAE;CAUtD"}
1
+ {"version":3,"file":"NavigatedViewer.d.ts","sourceRoot":"","sources":["../src/NavigatedViewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAK9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAIrC;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,MAAM;cACtB,WAAW,IAAI,iBAAiB,EAAE;CAWtD"}
@@ -1,6 +1,7 @@
1
1
  import { ModuleDeclaration } from 'didi';
2
- import { WardleyMap } from '@miragon/wardley-schema-model';
2
+ import { MapConfig, MapSizePresetId, WardleyMap } from '@miragon/wardley-schema-model';
3
3
  import { ImportWarning } from './io/types.js';
4
+ import { FreeRectInsets } from './free-rect/index.js';
4
5
  export interface WardleyViewerOptions {
5
6
  /** Host element. If missing, a detached <div> is created (can be attached later via attachTo). */
6
7
  container?: HTMLElement;
@@ -8,8 +9,43 @@ export interface WardleyViewerOptions {
8
9
  height?: number | string;
9
10
  /** Concatenated to the end of the module list (extension point, §12). */
10
11
  additionalModules?: ModuleDeclaration[];
12
+ /**
13
+ * Modeler keyboard behaviour. `undoRedo: false` leaves Cmd/Ctrl+Z/Y to the host (e.g. VS Code,
14
+ * which owns the document's undo stack). Default: the canvas handles undo/redo.
15
+ */
16
+ keyboard?: {
17
+ undoRedo?: boolean;
18
+ };
19
+ /**
20
+ * What the host's chrome covers along the container's edges, in px, read whenever it is needed
21
+ * (e.g. `() => shell.fitInsets()` of the Miragon modeler shell). Keyboard creation then places
22
+ * elements in the centre of the free rectangle, and panning keeps the map reachable around it.
23
+ * Without it the whole container counts.
24
+ */
25
+ freeRectInsets?: () => FreeRectInsets;
11
26
  }
12
27
  export type EventCallback<T = unknown> = (event: T) => void;
28
+ /** The plot size as drawn, plus whether the map writes it explicitly (`size [w, h]`). */
29
+ export interface MapSizeInfo {
30
+ width: number;
31
+ height: number;
32
+ isExplicit: boolean;
33
+ presetId?: MapSizePresetId;
34
+ }
35
+ /** Payload of `wardley.config.changed`: title, size or axis labels changed. */
36
+ export interface WardleyConfigChangedEvent {
37
+ config: MapConfig;
38
+ /** A live preview (typing, dragging the plot corner): not a change to persist. */
39
+ transient?: true;
40
+ }
41
+ export interface SetEvolutionLabelsOptions {
42
+ /** Live preview: applied directly, without an undo step (commit later without this flag). */
43
+ transient?: boolean;
44
+ }
45
+ export interface SetMapSizeOptions {
46
+ /** Live preview: drawn at once, without an undo step (commit later without this flag). */
47
+ transient?: boolean;
48
+ }
13
49
  /**
14
50
  * Shared lifecycle & DI bootstrap for all Wardley viewers (analogous to bpmn-js BaseViewer, but OUR
15
51
  * OWN code — no bpmn-js as a dependency, §3.3). Subclasses only override `_getModules()` (a method
@@ -21,18 +57,24 @@ export declare abstract class WardleyBaseViewer {
21
57
  private _diagram;
22
58
  private readonly _container;
23
59
  private readonly _options;
60
+ /** Labels before the first transient preview, so the commit becomes one undo step from there. */
61
+ private _labelsBeforePreview;
62
+ /** The map before the first transient size preview, put back before the size is committed. */
63
+ private _sizePreview;
24
64
  constructor(options?: WardleyViewerOptions);
25
65
  private _createContainer;
26
66
  private _ensureDiagram;
27
67
  get<T>(name: string): T;
28
68
  on<T = unknown>(event: string, callback: EventCallback<T>, priority?: number): void;
29
69
  off(event: string, callback: EventCallback): void;
30
- /** Load a model into the canvas (replaces existing content). */
70
+ /**
71
+ * Load a model into the canvas (replaces existing content). Rejects a map the canvas cannot
72
+ * hold (invalid, or ids the canvas reserves for itself) before anything changes, so the current
73
+ * map, its rendering and its undo history stay as they were.
74
+ */
31
75
  importMap(map: WardleyMap): Promise<{
32
76
  warnings: ImportWarning[];
33
77
  }>;
34
- /** DSL `style` directive as a CSS class on the container (`wardley-dark` etc., concept §8.1). */
35
- private _applyStyleClass;
36
78
  /** Load OWM DSL text (internally parse -> importMap). Parser findings land in the warnings. */
37
79
  importDSL(text: string): Promise<{
38
80
  warnings: ImportWarning[];
@@ -40,21 +82,57 @@ export declare abstract class WardleyBaseViewer {
40
82
  /** Current state as the canonical model (from the DI properties). */
41
83
  exportMap(): WardleyMap;
42
84
  /**
43
- * Changes the map's logical plot size (in diagram-px) and re-projects all elements.
44
- * Sets `config.size` and re-imports the current state (normalized coordinates stay the truth).
85
+ * Sets the plot size in diagram-px. The size is normalized first (whole pixels, clamped to
86
+ * PLOT_MIN..PLOT_MAX); non-finite input throws a RangeError before anything changes. In the
87
+ * Modeler this is one undoable step that re-projects the shapes in place (selection, viewport and
88
+ * history survive); the read-only viewers re-import. An explicit size line is written even for
89
+ * the default size — only `resetMapSize` removes it. In the Modeler `{ transient: true }` shows
90
+ * a live preview without an undo step, and the next call without it commits ONE step from the
91
+ * size before the preview (none when the size ends where the preview started), like
92
+ * `setEvolutionLabels`.
45
93
  */
46
- setMapSize(width: number, height: number): Promise<{
94
+ setMapSize(width: number, height: number, options?: SetMapSizeOptions): Promise<{
95
+ warnings: ImportWarning[];
96
+ }>;
97
+ /** Removes the `size` line: the map is drawn at the default plot size again. */
98
+ resetMapSize(options?: SetMapSizeOptions): Promise<{
47
99
  warnings: ImportWarning[];
48
100
  }>;
101
+ private _resizeMap;
102
+ getMapSize(): MapSizeInfo;
103
+ private _reimportWithSize;
104
+ /**
105
+ * Sets the map title (one undoable step in the Modeler). Line breaks become spaces so the DSL
106
+ * `title` line stays one line; an empty title falls back to the default.
107
+ */
108
+ setTitle(title: string): void;
49
109
  /**
50
110
  * Sets the four X-axis stage labels (`undefined` = default Genesis/Custom/Product/Commodity).
51
- * Changes only the labeling, not the geometry: updates the map config in-place and re-renders only
52
- * the axis background (no re-import -> no view jump, no selection loss). Fires
53
- * `wardley.config.changed` for consumers' URL/persistence sync.
111
+ * Empty stages fall back to their default and a `->` becomes `→`, so the labels always write a
112
+ * valid `evolution` line; the default set is stored as `undefined`.
113
+ * Changes only the labeling, not the geometry (no re-import -> no view jump, no selection loss).
114
+ * In the Modeler this is one undoable step; `{ transient: true }` applies a live preview without
115
+ * an undo step, and the next non-transient call commits it as ONE step from the state before the
116
+ * preview (no step at all when the labels end where the preview started). Fires
117
+ * `wardley.config.changed` (`{ config, transient? }`): transient events are live previews and
118
+ * must not be persisted; in the Modeler every committed change is followed by
119
+ * `commandStack.changed`.
54
120
  */
55
- setEvolutionLabels(labels: readonly [string, string, string, string] | undefined): void;
121
+ setEvolutionLabels(requested: readonly string[] | undefined, options?: SetEvolutionLabelsOptions): void;
122
+ /**
123
+ * Config change without the command stack (read-only viewers, live previews): updates the root
124
+ * config in place and re-renders only the axis background.
125
+ */
126
+ private _applyConfigDirectly;
127
+ /** The Modeler's command API, or null in the read-only viewers. */
128
+ private _wardleyModeling;
129
+ private _root;
130
+ private _rootBusinessObject;
56
131
  exportDSL(): string;
57
- /** Static, standalone SVG. */
132
+ /**
133
+ * Static, standalone SVG covering the whole plot (at its actual `config.size`) plus any content
134
+ * drawn beyond it, such as long labels of commodity components.
135
+ */
58
136
  saveSVG(): Promise<{
59
137
  svg: string;
60
138
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"WardleyBaseViewer.d.ts","sourceRoot":"","sources":["../src/WardleyBaseViewer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAK9C,OAAO,KAAK,EAAa,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAM3E,OAAO,EAAW,KAAK,aAAa,EAA2B,MAAM,eAAe,CAAC;AAErF,MAAM,WAAW,oBAAoB;IACnC,kGAAkG;IAClG,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,yEAAyE;IACzE,iBAAiB,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACzC;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;AAM5D;;;;;GAKG;AACH,8BAAsB,iBAAiB;IACrC,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,CAAuB;gBAEpC,OAAO,GAAE,oBAAyB;IAK9C,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,cAAc;IAQtB,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,gEAAgE;IAC1D,SAAS,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,aAAa,EAAE,CAAA;KAAE,CAAC;IAcxE,iGAAiG;IACjG,OAAO,CAAC,gBAAgB;IAMxB,+FAA+F;IACzF,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,aAAa,EAAE,CAAA;KAAE,CAAC;IAcrE,qEAAqE;IACrE,SAAS,IAAI,UAAU;IAIvB;;;OAGG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,aAAa,EAAE,CAAA;KAAE,CAAC;IAKvF;;;;;OAKG;IACH,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAAG,IAAI;IAqBvF,SAAS,IAAI,MAAM;IAInB,8BAA8B;IACxB,OAAO,IAAI,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IASzC,yFAAyF;IACzF,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAKnC,4EAA4E;IAC5E,MAAM,IAAI,IAAI;IAId,KAAK,IAAI,IAAI;IAIb,OAAO,IAAI,IAAI;IAQf,IAAI,SAAS,IAAI,WAAW,CAE3B;CACF"}
1
+ {"version":3,"file":"WardleyBaseViewer.d.ts","sourceRoot":"","sources":["../src/WardleyBaseViewer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { default as Canvas } from 'diagram-js/lib/core/Canvas';
2
+ /** The focusable canvas svg diagram-js renders into its container. */
3
+ export declare function canvasSvg(canvas: Canvas): SVGElement | null;
4
+ /**
5
+ * Moves keyboard focus to the canvas after a pointer gesture or an editor commit. Pointer work
6
+ * must not light up the keyboard focus ring around the whole viewport, and a press that suppressed
7
+ * the browser's own focus change must still take focus away from host inputs (title, size
8
+ * fields), or Delete/Undo would edit those instead of the map.
9
+ */
10
+ export declare function focusCanvasWithoutRing(canvas: Canvas): void;
11
+ /**
12
+ * Starts following whether the user last used the pointer or the keyboard (idempotent). Editors
13
+ * opened with the pointer hand focus back without the keyboard focus ring.
14
+ */
15
+ export declare function trackInputModality(): void;
16
+ export declare function lastInteractionWasPointer(): boolean;
17
+ //# sourceMappingURL=canvasFocus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvasFocus.d.ts","sourceRoot":"","sources":["../../src/a11y/canvasFocus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AAErD,sEAAsE;AACtE,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAK3D;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAO3D;AAKD;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAezC;AAED,wBAAgB,yBAAyB,IAAI,OAAO,CAEnD"}
@@ -0,0 +1,8 @@
1
+ import { default as Canvas } from 'diagram-js/lib/core/Canvas';
2
+ /** Names the focusable canvas for assistive technology (it is otherwise an anonymous svg). */
3
+ declare function describeCanvas(canvas: Canvas): void;
4
+ declare namespace describeCanvas {
5
+ var $inject: string[];
6
+ }
7
+ export default describeCanvas;
8
+ //# sourceMappingURL=describeCanvas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"describeCanvas.d.ts","sourceRoot":"","sources":["../../src/a11y/describeCanvas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AAGrD,8FAA8F;AAC9F,iBAAwB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAM3D;kBANuB,cAAc;;;eAAd,cAAc"}
@@ -0,0 +1,5 @@
1
+ import { ModuleDeclaration } from 'didi';
2
+ /** Names the canvas for assistive technology (role, role description, label). */
3
+ export declare const canvasAccessibilityModule: ModuleDeclaration;
4
+ export { canvasSvg, focusCanvasWithoutRing, lastInteractionWasPointer, trackInputModality, } from './canvasFocus.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/a11y/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAG9C,iFAAiF;AACjF,eAAO,MAAM,yBAAyB,EAAE,iBAEvC,CAAC;AAEF,OAAO,EACL,SAAS,EACT,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC"}
@@ -1,12 +1,13 @@
1
1
  import { default as EventBus } from 'diagram-js/lib/core/EventBus';
2
2
  import { Injector } from 'didi';
3
3
  /**
4
- * Behavior for "append component" (`create.start` with `context.source`):
5
- * 1. LIVE arrow preview from the source to the cursor (analogous to diagram-js ConnectPreview, but
6
- * in the create flow) — requires the `connectionPreview` service (ConnectionPreviewModule).
7
- * 2. After creation, automatically opens the new component's label editor so it can be named
8
- * (uniquely) right away.
9
- * Both only when `context.source` is set; ordinary palette-create stays untouched.
4
+ * Create behavior for palette, keyboard and "append component" (`create.start`, the latter with
5
+ * `context.source`):
6
+ * 1. Append only: LIVE arrow preview from the source to the cursor (analogous to diagram-js
7
+ * ConnectPreview, but in the create flow) — requires the `connectionPreview` service.
8
+ * 2. After placing a single named element (component, user, submap, pipeline, accelerator, note)
9
+ * the label editor opens with the placeholder selected, so typing names it right away.
10
+ * Regions, drawings and pasted copies are left alone.
10
11
  */
11
12
  export default class WardleyAppendBehavior {
12
13
  static $inject: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"WardleyAppendBehavior.d.ts","sourceRoot":"","sources":["../../src/append/WardleyAppendBehavior.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAgCrC;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,OAAO,qBAAqB;IACxC,MAAM,CAAC,OAAO,WAA4B;gBAE9B,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;CAyCnD"}
1
+ {"version":3,"file":"WardleyAppendBehavior.d.ts","sourceRoot":"","sources":["../../src/append/WardleyAppendBehavior.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AA6CrC;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,qBAAqB;IACxC,MAAM,CAAC,OAAO,WAA4B;gBAE9B,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;CA0CnD"}
@@ -0,0 +1,27 @@
1
+ import { CollaborativeModeler, ElementsSurface } from '@miragon/modeler-api';
2
+ import { ModuleDeclaration } from 'didi';
3
+ import { Modeler } from '../Modeler.js';
4
+ import { NavigatedViewer } from '../NavigatedViewer.js';
5
+ import { FreeRectInsets } from '../free-rect/index.js';
6
+ /** Stable notation id in `meta.notation` of the collaborative-modeler contract. */
7
+ export declare const WARDLEY_NOTATION = "wardley";
8
+ export interface CollaborativeWardleyOptions {
9
+ /** Appended to the renderer's own modules (e.g. a host's chrome module). */
10
+ additionalModules?: ModuleDeclaration[] | undefined;
11
+ /** See `WardleyViewerOptions.keyboard` (default: the canvas handles undo and redo). */
12
+ keyboard?: {
13
+ undoRedo?: boolean;
14
+ } | undefined;
15
+ /** See `WardleyViewerOptions.freeRectInsets`. */
16
+ freeRectInsets?: (() => FreeRectInsets) | undefined;
17
+ }
18
+ /** The contract surface plus the wrapped diagram for host-specific wiring. */
19
+ export interface CollaborativeWardleyModeler extends CollaborativeModeler {
20
+ readonly elements: ElementsSurface;
21
+ readonly diagram: Modeler | NavigatedViewer;
22
+ }
23
+ /** The editing mount (`meta.editable: true`) of the collaborative-modeler contract. */
24
+ export declare function createCollaborativeModeler(options?: CollaborativeWardleyOptions): CollaborativeWardleyModeler;
25
+ /** The read-only mount (`meta.editable: false`): imports, exports and reveals, never edits. */
26
+ export declare function createCollaborativeViewer(options?: Pick<CollaborativeWardleyOptions, 'additionalModules'>): CollaborativeWardleyModeler;
27
+ //# sourceMappingURL=CollaborativeWardley.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollaborativeWardley.d.ts","sourceRoot":"","sources":["../../src/collaborative/CollaborativeWardley.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,oBAAoB,EAEzB,KAAK,eAAe,EAGrB,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;AAGxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,mFAAmF;AACnF,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAE1C,MAAM,WAAW,2BAA2B;IAC1C,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,iBAAiB,EAAE,GAAG,SAAS,CAAC;IACpD,uFAAuF;IACvF,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,SAAS,CAAC;IAC9C,iDAAiD;IACjD,cAAc,CAAC,EAAE,CAAC,MAAM,cAAc,CAAC,GAAG,SAAS,CAAC;CACrD;AAED,8EAA8E;AAC9E,MAAM,WAAW,2BAA4B,SAAQ,oBAAoB;IACvE,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,eAAe,CAAC;CAC7C;AA2BD,uFAAuF;AACvF,wBAAgB,0BAA0B,CACxC,OAAO,GAAE,2BAAgC,GACxC,2BAA2B,CAS7B;AAED,+FAA+F;AAC/F,wBAAgB,yBAAyB,CACvC,OAAO,GAAE,IAAI,CAAC,2BAA2B,EAAE,mBAAmB,CAAM,GACnE,2BAA2B,CAE7B"}
@@ -0,0 +1,2 @@
1
+ export { WARDLEY_NOTATION, createCollaborativeModeler, createCollaborativeViewer, type CollaborativeWardleyModeler, type CollaborativeWardleyOptions, } from './CollaborativeWardley.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/collaborative/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,yBAAyB,EACzB,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,GACjC,MAAM,2BAA2B,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { default as Canvas } from 'diagram-js/lib/core/Canvas';
2
+ import { Injector } from 'didi';
2
3
  import { default as EventBus } from 'diagram-js/lib/core/EventBus';
3
4
  import { default as WardleyModeling } from '../modeling/WardleyModeling.js';
4
5
  import { WardleyShape } from '../model/di-types.js';
@@ -6,18 +7,24 @@ import { WardleyShape } from '../model/di-types.js';
6
7
  * Compact color picker (bpmn.io-style): a 3x3 grid of small color squares (no text), opened from a
7
8
  * note's context pad. Uses its own popover (instead of diagram-js PopupMenu) so the swatch grid can
8
9
  * be rendered exactly and without text. Sets the color via `wardleyModeling` (undo/redo). First
9
- * cell = "no color".
10
+ * cell = "no color". Keyboard: focus starts on the active swatch, arrow keys move through the grid,
11
+ * Enter/Space picks, Escape closes; focus then returns to the canvas.
10
12
  */
11
13
  export default class WardleyColorPicker {
12
14
  private readonly canvas;
13
15
  private readonly modeling;
16
+ private readonly injector;
14
17
  static $inject: string[];
15
18
  private popover;
16
19
  private readonly onDocPointer;
17
20
  private readonly onKey;
18
- constructor(canvas: Canvas, eventBus: EventBus, modeling: WardleyModeling);
21
+ constructor(canvas: Canvas, eventBus: EventBus, modeling: WardleyModeling, injector: Injector);
19
22
  /** Opens the swatch grid for `shape` at the click position (viewport coordinates). */
20
23
  open(shape: WardleyShape, clientX: number, clientY: number): void;
21
- close(): void;
24
+ isOpen(): boolean;
25
+ close(options?: {
26
+ restoreFocus?: boolean;
27
+ }): void;
28
+ private onGridKeydown;
22
29
  }
23
30
  //# sourceMappingURL=WardleyColorPicker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WardleyColorPicker.d.ts","sourceRoot":"","sources":["../../src/color-picker/WardleyColorPicker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,eAAe,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAkB;IAanC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAd3B,MAAM,CAAC,OAAO,WAA6C;IAE3D,OAAO,CAAC,OAAO,CAA0B;IAEzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAE3B;IACF,OAAO,CAAC,QAAQ,CAAC,KAAK,CAEpB;gBAGiB,MAAM,EAAE,MAAM,EAC/B,QAAQ,EAAE,QAAQ,EACD,QAAQ,EAAE,eAAe;IAM5C,sFAAsF;IACtF,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IA+CjE,KAAK,IAAI,IAAI;CAOd"}
1
+ {"version":3,"file":"WardleyColorPicker.d.ts","sourceRoot":"","sources":["../../src/color-picker/WardleyColorPicker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAErC,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,eAAe,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAazD;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAkB;IAiBnC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAnB3B,MAAM,CAAC,OAAO,WAAyD;IAEvE,OAAO,CAAC,OAAO,CAA0B;IAEzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAE3B;IACF,OAAO,CAAC,QAAQ,CAAC,KAAK,CAMpB;gBAGiB,MAAM,EAAE,MAAM,EAC/B,QAAQ,EAAE,QAAQ,EACD,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,QAAQ;IAMrC,sFAAsF;IACtF,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IA6DjE,MAAM,IAAI,OAAO;IAIjB,KAAK,CAAC,OAAO,GAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,IAAI;IAUrD,OAAO,CAAC,aAAa;CAkBtB"}
@@ -0,0 +1,30 @@
1
+ import { default as ContextPad } from 'diagram-js/lib/features/context-pad/ContextPad';
2
+ import { Element } from 'diagram-js/lib/model/Types';
3
+ interface TargetBounds {
4
+ left: number;
5
+ top: number;
6
+ right: number;
7
+ bottom: number;
8
+ x: number;
9
+ y: number;
10
+ width: number;
11
+ height: number;
12
+ }
13
+ /**
14
+ * Anchors the pad to a node and its own label instead of the whole graphics group: an evolving
15
+ * component's group also holds the evolve arrow, target circle and target name, which would push the
16
+ * pad hundreds of pixels away from the node the user selected. When the evolve target lies where
17
+ * the pad would open, the pad clears the whole movement instead — otherwise it would hide the target
18
+ * circle, which is the evolve's drag handle.
19
+ *
20
+ * Overrides diagram-js's private `_getTargetBounds` (guarded by a browser test).
21
+ */
22
+ export default class WardleyContextPad extends ContextPad {
23
+ _getTargetBounds(target: Element | Element[]): TargetBounds;
24
+ private internals;
25
+ private padWidth;
26
+ private movementTargetRects;
27
+ private visualRects;
28
+ }
29
+ export {};
30
+ //# sourceMappingURL=WardleyContextPad.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WardleyContextPad.d.ts","sourceRoot":"","sources":["../../src/context-pad/WardleyContextPad.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,gDAAgD,CAAC;AAExE,OAAO,KAAK,EAAE,OAAO,EAAa,MAAM,4BAA4B,CAAC;AAGrE,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAcD;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,UAAU;IACvD,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,EAAE,GAAG,YAAY;IAkB3D,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,WAAW;CAgBpB"}
@@ -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';
@@ -5,6 +7,7 @@ import { default as Create } from 'diagram-js/lib/features/create/Create';
5
7
  import { default as PopupMenu } from 'diagram-js/lib/features/popup-menu/PopupMenu';
6
8
  import { ContextPadEntries, default as ContextPadProvider } from 'diagram-js/lib/features/context-pad/ContextPadProvider';
7
9
  import { Element } from 'diagram-js/lib/model/Types';
10
+ import { Injector } from 'didi';
8
11
  import { default as WardleyModeling } from '../modeling/WardleyModeling.js';
9
12
  import { default as WardleyLabelEditing } from '../label-editing/WardleyLabelEditing.js';
10
13
  import { default as WardleyEvolveDragging } from '../evolve/WardleyEvolveDragging.js';
@@ -12,6 +15,7 @@ import { default as WardleyElementFactory } from '../model/WardleyElementFactory
12
15
  import { default as WardleyColorPicker } from '../color-picker/WardleyColorPicker.js';
13
16
  /** Context actions per element (concept doc §5.5). */
14
17
  export default class WardleyContextPadProvider implements ContextPadProvider {
18
+ private readonly contextPad;
15
19
  private readonly modeling;
16
20
  private readonly connect;
17
21
  private readonly create;
@@ -21,8 +25,26 @@ export default class WardleyContextPadProvider implements ContextPadProvider {
21
25
  private readonly evolveDragging;
22
26
  private readonly factory;
23
27
  private readonly colorPicker;
28
+ private readonly canvas;
29
+ private readonly injector;
24
30
  static $inject: string[];
25
- constructor(contextPad: ContextPad, modeling: Modeling, connect: Connect, create: Create, popupMenu: PopupMenu, wardleyModeling: WardleyModeling, labelEditing: WardleyLabelEditing, evolveDragging: WardleyEvolveDragging, factory: WardleyElementFactory, colorPicker: WardleyColorPicker);
31
+ /** Synthetic clicks created for Enter/Space, so actions can pick a pointer-free variant. */
32
+ 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);
26
34
  getContextPadEntries(element: Element): ContextPadEntries;
35
+ /** Connections: edit the annotation (or the flow value of an imported flow link) + delete. */
36
+ private connectionEntries;
37
+ /** Row 1: edit label, append, connect, evolve. */
38
+ private addPrimaryEntries;
39
+ /** Row 2: settings, line style, colour, link. */
40
+ private addPropertyEntries;
41
+ /** Enter/Space on a focused entry = a click at the element's centre. */
42
+ private onPadKeydown;
43
+ private clientCenterOf;
44
+ /**
45
+ * Keyboard append: there is no pointer to drag the new component to, so it is placed one step
46
+ * further down the value chain, connected, selected and opened for naming.
47
+ */
48
+ private appendBelow;
27
49
  }
28
50
  //# sourceMappingURL=WardleyContextPadProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WardleyContextPadProvider.d.ts","sourceRoot":"","sources":["../../src/context-pad/WardleyContextPadProvider.ts"],"names":[],"mappings":"AAAA,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,EAAE,MAAM,4BAA4B,CAAC;AAQ1D,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;AAuB5E,sDAAsD;AACtD,MAAM,CAAC,OAAO,OAAO,yBAA0B,YAAW,kBAAkB;IAgBxE,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;IAvB9B,MAAM,CAAC,OAAO,WAWZ;gBAGA,UAAU,EAAE,UAAU,EACL,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;IAKlD,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,iBAAiB;CA+J1D"}
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;AA6C5E,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;IAkBzD,8FAA8F;IAC9F,OAAO,CAAC,iBAAiB;IAmBzB,kDAAkD;IAClD,OAAO,CAAC,iBAAiB;IA4EzB,iDAAiD;IACjD,OAAO,CAAC,kBAAkB;IA0E1B,wEAAwE;IACxE,OAAO,CAAC,YAAY;IAwCpB,OAAO,CAAC,cAAc;IAiBtB;;;OAGG;IACH,OAAO,CAAC,WAAW;CAuBpB"}
@@ -2,4 +2,5 @@ import { ModuleDeclaration } from 'didi';
2
2
  /** Context actions per element. */
3
3
  export declare const wardleyContextPadModule: ModuleDeclaration;
4
4
  export { default as WardleyContextPadProvider } from './WardleyContextPadProvider.js';
5
+ export { default as WardleyContextPad } from './WardleyContextPad.js';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context-pad/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAG9C,mCAAmC;AACnC,eAAO,MAAM,uBAAuB,EAAE,iBAGrC,CAAC;AAEF,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context-pad/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAK9C,mCAAmC;AACnC,eAAO,MAAM,uBAAuB,EAAE,iBAMrC,CAAC;AAEF,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}