@miragon/wardley-renderer 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/dist/Modeler.d.ts.map +1 -1
  2. package/dist/WardleyBaseViewer.d.ts +3 -0
  3. package/dist/WardleyBaseViewer.d.ts.map +1 -1
  4. package/dist/context-pad/WardleyContextPadProvider.d.ts.map +1 -1
  5. package/dist/draw/WardleyRenderer.d.ts +5 -1
  6. package/dist/draw/WardleyRenderer.d.ts.map +1 -1
  7. package/dist/draw/icons.d.ts +2 -0
  8. package/dist/draw/icons.d.ts.map +1 -1
  9. package/dist/draw/palette-icons.d.ts.map +1 -1
  10. package/dist/draw/styles.d.ts +12 -1
  11. package/dist/draw/styles.d.ts.map +1 -1
  12. package/dist/draw-tool/WardleyDrawTool.d.ts +46 -0
  13. package/dist/draw-tool/WardleyDrawTool.d.ts.map +1 -0
  14. package/dist/draw-tool/WardleyDrawingHandles.d.ts +31 -0
  15. package/dist/draw-tool/WardleyDrawingHandles.d.ts.map +1 -0
  16. package/dist/draw-tool/WardleyDrawingHitProvider.d.ts +13 -0
  17. package/dist/draw-tool/WardleyDrawingHitProvider.d.ts.map +1 -0
  18. package/dist/draw-tool/index.d.ts +6 -0
  19. package/dist/draw-tool/index.d.ts.map +1 -0
  20. package/dist/evolution-grid/EvolutionConstraintBehavior.d.ts +25 -1
  21. package/dist/evolution-grid/EvolutionConstraintBehavior.d.ts.map +1 -1
  22. package/dist/evolution-grid/EvolutionGrid.d.ts +1 -0
  23. package/dist/evolution-grid/EvolutionGrid.d.ts.map +1 -1
  24. package/dist/index.d.ts +1 -0
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +1354 -482
  27. package/dist/index.js.map +1 -1
  28. package/dist/io/WardleyExporter.d.ts +3 -1
  29. package/dist/io/WardleyExporter.d.ts.map +1 -1
  30. package/dist/io/WardleyImporter.d.ts.map +1 -1
  31. package/dist/io/saveSvg.d.ts +10 -3
  32. package/dist/io/saveSvg.d.ts.map +1 -1
  33. package/dist/keyboard/WardleyKeyboard.d.ts +10 -3
  34. package/dist/keyboard/WardleyKeyboard.d.ts.map +1 -1
  35. package/dist/label-editing/WardleyLabelEditing.d.ts +6 -1
  36. package/dist/label-editing/WardleyLabelEditing.d.ts.map +1 -1
  37. package/dist/lasso/WardleyLassoBehavior.d.ts +12 -0
  38. package/dist/lasso/WardleyLassoBehavior.d.ts.map +1 -0
  39. package/dist/lasso/index.d.ts +5 -0
  40. package/dist/lasso/index.d.ts.map +1 -0
  41. package/dist/model/WardleyElementFactory.d.ts +15 -1
  42. package/dist/model/WardleyElementFactory.d.ts.map +1 -1
  43. package/dist/model/di-types.d.ts +22 -3
  44. package/dist/model/di-types.d.ts.map +1 -1
  45. package/dist/modeling/WardleyCopyPaste.d.ts +44 -0
  46. package/dist/modeling/WardleyCopyPaste.d.ts.map +1 -0
  47. package/dist/modeling/WardleyModeling.d.ts +3 -3
  48. package/dist/modeling/WardleyModeling.d.ts.map +1 -1
  49. package/dist/modeling/index.d.ts +1 -0
  50. package/dist/modeling/index.d.ts.map +1 -1
  51. package/dist/ordering/WardleyOrderingProvider.d.ts +17 -0
  52. package/dist/ordering/WardleyOrderingProvider.d.ts.map +1 -0
  53. package/dist/ordering/index.d.ts +5 -0
  54. package/dist/ordering/index.d.ts.map +1 -0
  55. package/dist/palette/WardleyPaletteProvider.d.ts +5 -1
  56. package/dist/palette/WardleyPaletteProvider.d.ts.map +1 -1
  57. package/dist/rules/WardleyRules.d.ts +3 -3
  58. package/dist/rules/WardleyRules.d.ts.map +1 -1
  59. package/dist/snapping/StageSnapping.d.ts +3 -2
  60. package/dist/snapping/StageSnapping.d.ts.map +1 -1
  61. package/dist/wardley.css +1 -1
  62. package/package.json +3 -3
@@ -1,6 +1,7 @@
1
1
  import { default as Canvas } from 'diagram-js/lib/core/Canvas';
2
2
  import { default as ElementRegistry } from 'diagram-js/lib/core/ElementRegistry';
3
3
  import { WardleyMap } from '@miragon/wardley-schema-model';
4
+ import { default as EvolutionGrid } from '../evolution-grid/EvolutionGrid.js';
4
5
  /**
5
6
  * Reconstructs a WardleyMap from the diagram-js runtime model. The source of truth for positions are
6
7
  * the DI properties `evolution`/`visibility`; editable fields (label, decorators, movement,
@@ -10,8 +11,9 @@ import { WardleyMap } from '@miragon/wardley-schema-model';
10
11
  export default class WardleyExporter {
11
12
  private readonly elementRegistry;
12
13
  private readonly canvas;
14
+ private readonly grid;
13
15
  static $inject: string[];
14
- constructor(elementRegistry: ElementRegistry, canvas: Canvas);
16
+ constructor(elementRegistry: ElementRegistry, canvas: Canvas, grid: EvolutionGrid);
15
17
  export(): WardleyMap;
16
18
  /** Builds a MapElement from the DI properties (common types) or the businessObject (the rest). */
17
19
  private buildElement;
@@ -1 +1 @@
1
- {"version":3,"file":"WardleyExporter.d.ts","sourceRoot":"","sources":["../../src/io/WardleyExporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,eAAe,MAAM,qCAAqC,CAAC;AAEvE,OAAO,EAUL,KAAK,UAAU,EAChB,MAAM,+BAA+B,CAAC;AAUvC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAIhC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJzB,MAAM,CAAC,OAAO,WAAiC;gBAG5B,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,MAAM;IAGjC,MAAM,IAAI,UAAU;IAsCpB,kGAAkG;IAClG,OAAO,CAAC,YAAY;CA+ErB"}
1
+ {"version":3,"file":"WardleyExporter.d.ts","sourceRoot":"","sources":["../../src/io/WardleyExporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,eAAe,MAAM,qCAAqC,CAAC;AAEvE,OAAO,EAaL,KAAK,UAAU,EAChB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,aAAa,MAAM,oCAAoC,CAAC;AASpE;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAIhC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IALvB,MAAM,CAAC,OAAO,WAAkD;gBAG7C,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,aAAa;IAGtC,MAAM,IAAI,UAAU;IAyDpB,kGAAkG;IAClG,OAAO,CAAC,YAAY;CA2HrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"WardleyImporter.d.ts","sourceRoot":"","sources":["../../src/io/WardleyImporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,cAAc,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,eAAe,MAAM,qCAAqC,CAAC;AACvE,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AAEzD,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,KAAK,aAAa,MAAM,oCAAoC,CAAC;AACpE,OAAO,KAAK,qBAAqB,MAAM,mCAAmC,CAAC;AAE3E,OAAO,EAAW,KAAK,aAAa,EAA2B,MAAM,YAAY,CAAC;AAiBlF;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAWhC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAflC,MAAM,CAAC,OAAO,WAOZ;gBAGiB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,qBAAqB,EAC9B,IAAI,EAAE,aAAa,EACnB,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,eAAe;IAGnD,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,aAAa,EAAE;IA6ExC,OAAO,CAAC,WAAW;IA0BnB,KAAK,IAAI,IAAI;CAYd"}
1
+ {"version":3,"file":"WardleyImporter.d.ts","sourceRoot":"","sources":["../../src/io/WardleyImporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,cAAc,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,eAAe,MAAM,qCAAqC,CAAC;AACvE,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AAEzD,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,KAAK,aAAa,MAAM,oCAAoC,CAAC;AACpE,OAAO,KAAK,qBAAqB,MAAM,mCAAmC,CAAC;AAE3E,OAAO,EAAW,KAAK,aAAa,EAA2B,MAAM,YAAY,CAAC;AAiBlF;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAWhC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAflC,MAAM,CAAC,OAAO,WAOZ;gBAGiB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,qBAAqB,EAC9B,IAAI,EAAE,aAAa,EACnB,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,eAAe;IAGnD,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,aAAa,EAAE;IAsFxC,OAAO,CAAC,WAAW;IA4BnB,KAAK,IAAI,IAAI;CAYd"}
@@ -1,10 +1,17 @@
1
1
  import { default as Canvas } from 'diagram-js/lib/core/Canvas';
2
+ export interface SvgBounds {
3
+ x: number;
4
+ y: number;
5
+ width: number;
6
+ height: number;
7
+ }
2
8
  /**
3
9
  * Serializes the current canvas into standalone SVG (snapshot/export).
4
- * Sets a fixed viewBox to the outer plot bounds so the result is independent of the
5
- * current zoom/scroll.
10
+ * `bounds` is the outer plot boundary (typically `EvolutionGrid.outerBounds()`), so that
11
+ * maps enlarged via `config.size` are exported completely; if omitted, the default plot
12
+ * area is used. Independent of the current zoom/scroll.
6
13
  */
7
- export declare function saveSVG(canvas: Canvas): {
14
+ export declare function saveSVG(canvas: Canvas, bounds?: SvgBounds): {
8
15
  svg: string;
9
16
  };
10
17
  //# sourceMappingURL=saveSvg.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"saveSvg.d.ts","sourceRoot":"","sources":["../../src/io/saveSvg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AAGrD;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAqBvD"}
1
+ {"version":3,"file":"saveSvg.d.ts","sourceRoot":"","sources":["../../src/io/saveSvg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AAGrD,MAAM,WAAW,SAAS;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAyB3E"}
@@ -1,13 +1,20 @@
1
1
  import { default as Canvas } from 'diagram-js/lib/core/Canvas';
2
2
  import { default as CommandStack } from 'diagram-js/lib/command/CommandStack';
3
+ import { default as EventBus } from 'diagram-js/lib/core/EventBus';
4
+ import { default as Create } from 'diagram-js/lib/features/create/Create';
5
+ import { default as LassoTool } from 'diagram-js/lib/features/lasso-tool/LassoTool';
6
+ import { default as Mouse } from 'diagram-js/lib/features/mouse/Mouse';
3
7
  import { default as Selection } from 'diagram-js/lib/features/selection/Selection';
4
8
  import { default as Modeling } from 'diagram-js/lib/features/modeling/Modeling';
9
+ import { default as WardleyCopyPaste } from '../modeling/WardleyCopyPaste.js';
10
+ import { default as WardleyElementFactory } from '../model/WardleyElementFactory.js';
5
11
  /**
6
- * Minimal keyboard binding on the canvas container: undo/redo and deleting the selection.
7
- * Deliberately a DOM listener (no diagram-js keyboard-service binding needed).
12
+ * Minimal keyboard binding on the canvas container: undo/redo, delete, copy/paste/duplicate,
13
+ * arrow-key nudge of the selection, plus the single-key tools C (component), U (user) and
14
+ * L (lasso). Deliberately a DOM listener (no diagram-js keyboard-service binding needed).
8
15
  */
9
16
  export default class WardleyKeyboard {
10
17
  static $inject: string[];
11
- constructor(canvas: Canvas, commandStack: CommandStack, selection: Selection, modeling: Modeling);
18
+ constructor(canvas: Canvas, commandStack: CommandStack, selection: Selection, modeling: Modeling, copyPaste: WardleyCopyPaste, factory: WardleyElementFactory, create: Create, mouse: Mouse, lassoTool: LassoTool, eventBus: EventBus);
12
19
  }
13
20
  //# sourceMappingURL=WardleyKeyboard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WardleyKeyboard.d.ts","sourceRoot":"","sources":["../../src/keyboard/WardleyKeyboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,YAAY,MAAM,qCAAqC,CAAC;AACpE,OAAO,KAAK,SAAS,MAAM,6CAA6C,CAAC;AACzE,OAAO,KAAK,QAAQ,MAAM,2CAA2C,CAAC;AAGtE;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAClC,MAAM,CAAC,OAAO,WAAuD;gBAGnE,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ;CA8BrB"}
1
+ {"version":3,"file":"WardleyKeyboard.d.ts","sourceRoot":"","sources":["../../src/keyboard/WardleyKeyboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,YAAY,MAAM,qCAAqC,CAAC;AACpE,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,MAAM,MAAM,uCAAuC,CAAC;AAChE,OAAO,KAAK,SAAS,MAAM,8CAA8C,CAAC;AAC1E,OAAO,KAAK,KAAK,MAAM,qCAAqC,CAAC;AAC7D,OAAO,KAAK,SAAS,MAAM,6CAA6C,CAAC;AACzE,OAAO,KAAK,QAAQ,MAAM,2CAA2C,CAAC;AAEtE,OAAO,KAAK,gBAAgB,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,qBAAqB,MAAM,mCAAmC,CAAC;AAa3E;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAClC,MAAM,CAAC,OAAO,WAWZ;gBAGA,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,gBAAgB,EAC3B,OAAO,EAAE,qBAAqB,EAC9B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ;CAiErB"}
@@ -1,6 +1,6 @@
1
1
  import { default as Canvas } from 'diagram-js/lib/core/Canvas';
2
2
  import { default as EventBus } from 'diagram-js/lib/core/EventBus';
3
- import { WardleyShape } from '../model/di-types.js';
3
+ import { WardleyConnection, WardleyShape } from '../model/di-types.js';
4
4
  import { default as WardleyModeling } from '../modeling/WardleyModeling.js';
5
5
  import { default as WardleyElementFactory } from '../model/WardleyElementFactory.js';
6
6
  /**
@@ -17,6 +17,11 @@ export default class WardleyLabelEditing {
17
17
  private active;
18
18
  constructor(eventBus: EventBus, canvas: Canvas, modeling: WardleyModeling, factory: WardleyElementFactory);
19
19
  activate(element: WardleyShape): void;
20
+ /**
21
+ * Inline editing for connections: a flow edits its value (`+'value'>`), a dependency its
22
+ * `; annotation` text. An empty input clears the field. Undo-safe via updateProperties.
23
+ */
24
+ activateConnection(conn: WardleyConnection): void;
20
25
  cancel(): void;
21
26
  }
22
27
  //# sourceMappingURL=WardleyLabelEditing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WardleyLabelEditing.d.ts","sourceRoot":"","sources":["../../src/label-editing/WardleyLabelEditing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,KAAK,eAAe,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,qBAAqB,MAAM,mCAAmC,CAAC;AAU3E;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAmB;IAOpC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAR1B,MAAM,CAAC,OAAO,WAAsE;IAEpF,OAAO,CAAC,MAAM,CAA2B;gBAGvC,QAAQ,EAAE,QAAQ,EACD,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,qBAAqB;IAWjD,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAsErC,MAAM,IAAI,IAAI;CAGf"}
1
+ {"version":3,"file":"WardleyLabelEditing.d.ts","sourceRoot":"","sources":["../../src/label-editing/WardleyLabelEditing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,eAAe,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,qBAAqB,MAAM,mCAAmC,CAAC;AAuB3E;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAmB;IAOpC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAR1B,MAAM,CAAC,OAAO,WAAsE;IAEpF,OAAO,CAAC,MAAM,CAA2B;gBAGvC,QAAQ,EAAE,QAAQ,EACD,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,qBAAqB;IAYjD,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAwErC;;;OAGG;IACH,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAuEjD,MAAM,IAAI,IAAI;CAGf"}
@@ -0,0 +1,12 @@
1
+ import { default as EventBus } from 'diagram-js/lib/core/EventBus';
2
+ import { default as Canvas } from 'diagram-js/lib/core/Canvas';
3
+ import { default as LassoTool } from 'diagram-js/lib/features/lasso-tool/LassoTool';
4
+ /**
5
+ * Activates the diagram-js lasso via Shift+drag on the empty canvas.
6
+ * Plain drag stays canvas pan (MoveCanvas); Shift+click on elements stays multi-select.
7
+ */
8
+ export default class WardleyLassoBehavior {
9
+ static $inject: string[];
10
+ constructor(eventBus: EventBus, canvas: Canvas, lassoTool: LassoTool);
11
+ }
12
+ //# sourceMappingURL=WardleyLassoBehavior.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WardleyLassoBehavior.d.ts","sourceRoot":"","sources":["../../src/lasso/WardleyLassoBehavior.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,SAAS,MAAM,8CAA8C,CAAC;AAO1E;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACvC,MAAM,CAAC,OAAO,WAAuC;gBAEzC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;CAgBrE"}
@@ -0,0 +1,5 @@
1
+ import { ModuleDeclaration } from 'didi';
2
+ /** Lasso multi-select: diagram-js lasso-tool plus Shift+drag activation on an empty canvas. */
3
+ export declare const wardleyLassoModule: ModuleDeclaration;
4
+ export { default as WardleyLassoBehavior } from './WardleyLassoBehavior.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lasso/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAI9C,+FAA+F;AAC/F,eAAO,MAAM,kBAAkB,EAAE,iBAIhC,CAAC;AAEF,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { default as ElementFactory } from 'diagram-js/lib/core/ElementFactory';
2
2
  import { default as ElementRegistry } from 'diagram-js/lib/core/ElementRegistry';
3
- import { AcceleratorDirection, AcceleratorElement, AnchorElement, AnnotationElement, AttitudeElement, AttitudeKind, ComponentElement, MapEdge, NoteElement, PipelineElement, SubmapElement } from '@miragon/wardley-schema-model';
3
+ import { AcceleratorDirection, AcceleratorElement, AnchorElement, AnnotationElement, AttitudeElement, AttitudeKind, ComponentElement, DrawingElement, MapEdge, NoteElement, PipelineElement, SubmapElement } from '@miragon/wardley-schema-model';
4
4
  import { default as EvolutionGrid } from '../evolution-grid/EvolutionGrid.js';
5
5
  import { WardleyConnection, WardleyShape } from './di-types.js';
6
6
  export interface CreateNewExtra {
@@ -29,6 +29,8 @@ export default class WardleyElementFactory {
29
29
  * current name as a collision — otherwise every rename would add a suffix).
30
30
  */
31
31
  uniqueLabel(base: string, excludeId?: string): string;
32
+ /** Next free annotation number (max + 1) — palette annotations therefore never collide. */
33
+ private nextAnnotationNumber;
32
34
  createComponent(el: ComponentElement): WardleyShape;
33
35
  createAnchor(el: AnchorElement): WardleyShape;
34
36
  createNote(el: NoteElement): WardleyShape;
@@ -37,6 +39,18 @@ export default class WardleyElementFactory {
37
39
  createAccelerator(el: AcceleratorElement): WardleyShape;
38
40
  createAttitude(el: AttitudeElement): WardleyShape;
39
41
  createSubmap(el: SubmapElement): WardleyShape;
42
+ createDrawing(el: DrawingElement): WardleyShape;
43
+ /** Builds a drawing shape from ABSOLUTE canvas points (bbox shape + relative points). */
44
+ drawingFromCanvasPoints(canvasPoints: ReadonlyArray<{
45
+ x: number;
46
+ y: number;
47
+ }>, extra?: {
48
+ id?: string;
49
+ closed?: boolean;
50
+ strokeStyle?: DrawingElement['strokeStyle'];
51
+ color?: string;
52
+ businessObject?: DrawingElement;
53
+ }): WardleyShape;
40
54
  createNew(type: WardleyShape['wardleyType'], rawLabel: string, extra?: CreateNewExtra): WardleyShape;
41
55
  createDependency(edge: MapEdge, source: WardleyShape, target: WardleyShape): WardleyConnection;
42
56
  createFlow(edge: MapEdge, source: WardleyShape, target: WardleyShape): WardleyConnection;
@@ -1 +1 @@
1
- {"version":3,"file":"WardleyElementFactory.d.ts","sourceRoot":"","sources":["../../src/model/WardleyElementFactory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,eAAe,MAAM,qCAAqC,CAAC;AACvE,OAAO,KAAK,EACV,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,OAAO,EACP,WAAW,EACX,eAAe,EACf,aAAa,EACd,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,aAAa,MAAM,oCAAoC,CAAC;AAEpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAErE,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,qBAAqB;IAItC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,eAAe;IALlC,MAAM,CAAC,OAAO,WAA0D;gBAGrD,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE,aAAa,EACnB,eAAe,EAAE,eAAe;IAGnD;;;;;;;OAOG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;IAarD,eAAe,CAAC,EAAE,EAAE,gBAAgB,GAAG,YAAY;IAenD,YAAY,CAAC,EAAE,EAAE,aAAa,GAAG,YAAY;IAI7C,UAAU,CAAC,EAAE,EAAE,WAAW,GAAG,YAAY;IAqBzC,cAAc,CAAC,EAAE,EAAE,eAAe,GAAG,YAAY;IA6BjD,gBAAgB,CAAC,EAAE,EAAE,iBAAiB,GAAG,YAAY;IAOrD,iBAAiB,CAAC,EAAE,EAAE,kBAAkB,GAAG,YAAY;IAcvD,cAAc,CAAC,EAAE,EAAE,eAAe,GAAG,YAAY;IAoBjD,YAAY,CAAC,EAAE,EAAE,aAAa,GAAG,YAAY;IAI7C,SAAS,CACP,IAAI,EAAE,YAAY,CAAC,aAAa,CAAC,EACjC,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,cAAmB,GACzB,YAAY;IA6Df,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,GAAG,iBAAiB;IAI9F,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,GAAG,iBAAiB;IAKxF,OAAO,CAAC,IAAI;IA0BZ,OAAO,CAAC,UAAU;CAqBnB"}
1
+ {"version":3,"file":"WardleyElementFactory.d.ts","sourceRoot":"","sources":["../../src/model/WardleyElementFactory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,eAAe,MAAM,qCAAqC,CAAC;AACvE,OAAO,KAAK,EACV,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,OAAO,EACP,WAAW,EACX,eAAe,EACf,aAAa,EACd,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,aAAa,MAAM,oCAAoC,CAAC;AAEpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAErE,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,qBAAqB;IAItC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,eAAe;IALlC,MAAM,CAAC,OAAO,WAA0D;gBAGrD,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE,aAAa,EACnB,eAAe,EAAE,eAAe;IAGnD;;;;;;;OAOG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;IAarD,2FAA2F;IAC3F,OAAO,CAAC,oBAAoB;IAS5B,eAAe,CAAC,EAAE,EAAE,gBAAgB,GAAG,YAAY;IAqBnD,YAAY,CAAC,EAAE,EAAE,aAAa,GAAG,YAAY;IAM7C,UAAU,CAAC,EAAE,EAAE,WAAW,GAAG,YAAY;IAqBzC,cAAc,CAAC,EAAE,EAAE,eAAe,GAAG,YAAY;IA+BjD,gBAAgB,CAAC,EAAE,EAAE,iBAAiB,GAAG,YAAY;IAOrD,iBAAiB,CAAC,EAAE,EAAE,kBAAkB,GAAG,YAAY;IAcvD,cAAc,CAAC,EAAE,EAAE,eAAe,GAAG,YAAY;IAyBjD,YAAY,CAAC,EAAE,EAAE,aAAa,GAAG,YAAY;IAI7C,aAAa,CAAC,EAAE,EAAE,cAAc,GAAG,YAAY;IAW/C,yFAAyF;IACzF,uBAAuB,CACrB,YAAY,EAAE,aAAa,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,EACrD,KAAK,GAAE;QACL,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,WAAW,CAAC,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;QAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,cAAc,CAAC,EAAE,cAAc,CAAC;KAC5B,GACL,YAAY;IA4Bf,SAAS,CACP,IAAI,EAAE,YAAY,CAAC,aAAa,CAAC,EACjC,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,cAAmB,GACzB,YAAY;IAgEf,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,GAAG,iBAAiB;IAI9F,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,GAAG,iBAAiB;IAKxF,OAAO,CAAC,IAAI;IA4BZ,OAAO,CAAC,UAAU;CAqBnB"}
@@ -1,5 +1,5 @@
1
1
  import { Shape, Connection } from 'diagram-js/lib/model/Types';
2
- import { AcceleratorDirection, AttitudeKind, ComponentDecorators, MapEdge, MapElement, Movement } from '@miragon/wardley-schema-model';
2
+ import { AcceleratorDirection, AttitudeKind, ComponentDecorators, DrawingStrokeStyle, LabelOffset, MapEdge, MapElement, Movement } from '@miragon/wardley-schema-model';
3
3
  /**
4
4
  * diagram-js runtime model with Wardley extensions.
5
5
  *
@@ -7,7 +7,7 @@ import { AcceleratorDirection, AttitudeKind, ComponentDecorators, MapEdge, MapEl
7
7
  * and NOT the `businessObject` (concept doc §2.2, §5.6).
8
8
  * `businessObject` is the identity/metadata backref to the original model element.
9
9
  */
10
- export type WardleyShapeType = 'component' | 'anchor' | 'pipeline' | 'note' | 'annotation' | 'attitude' | 'submap' | 'accelerator';
10
+ export type WardleyShapeType = 'component' | 'anchor' | 'pipeline' | 'note' | 'annotation' | 'attitude' | 'submap' | 'accelerator' | 'drawing';
11
11
  export type WardleyConnectionType = 'dependency' | 'flow';
12
12
  export interface WardleyShape extends Shape {
13
13
  wardleyType: WardleyShapeType;
@@ -17,18 +17,36 @@ export interface WardleyShape extends Shape {
17
17
  visibility: number;
18
18
  /** Display text (separate from diagram-js `label`, which references a label element). */
19
19
  wardleyLabel: string;
20
+ /** OWM `label [dx, dy]` — px offset relative to the default label position. */
21
+ labelOffset?: LabelOffset;
20
22
  decorators?: ComponentDecorators;
21
23
  movement?: Movement;
22
24
  /** pipeline only: evolution range. */
23
25
  evolutionStart?: number;
24
26
  evolutionEnd?: number;
27
+ /** component only: membership in a pipeline (id) — runtime truth, maintained via drag. */
28
+ pipelineId?: string;
25
29
  /** annotation only. */
26
30
  annotationNumber?: number;
27
31
  /** attitude region only. */
28
32
  attitudeKind?: AttitudeKind;
33
+ /** attitude only: opposite corner (normalized), maintained by the EvolutionConstraintBehavior. */
34
+ corner2?: {
35
+ visibility: number;
36
+ evolution: number;
37
+ };
29
38
  /** accelerator only. */
30
39
  acceleratorDirection?: AcceleratorDirection;
31
- /** note only: optional color (CSS color/hex from NOTE_COLORS). */
40
+ /** drawing only: points in px RELATIVE to the shape's x/y (moving the shape moves them all). */
41
+ drawingPoints?: Array<{
42
+ x: number;
43
+ y: number;
44
+ }>;
45
+ /** drawing only: closed polygon vs. open polyline. */
46
+ closed?: boolean;
47
+ /** drawing only. */
48
+ strokeStyle?: DrawingStrokeStyle;
49
+ /** Optional element color (CSS color/hex from the swatch palette) — any element type. */
32
50
  color?: string;
33
51
  businessObject?: MapElement;
34
52
  }
@@ -44,4 +62,5 @@ export declare function isWardleyShape(el: unknown): el is WardleyShape;
44
62
  export declare function isWardleyConnection(el: unknown): el is WardleyConnection;
45
63
  export declare function isComponent(el: unknown): el is WardleyShape;
46
64
  export declare function isPipeline(el: unknown): el is WardleyShape;
65
+ export declare function isAttitude(el: unknown): el is WardleyShape;
47
66
  //# sourceMappingURL=di-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"di-types.d.ts","sourceRoot":"","sources":["../../src/model/di-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EACV,oBAAoB,EACpB,YAAY,EACZ,mBAAmB,EACnB,OAAO,EACP,UAAU,EACV,QAAQ,EACT,MAAM,+BAA+B,CAAC;AAEvC;;;;;;GAMG;AAEH,MAAM,MAAM,gBAAgB,GACxB,WAAW,GACX,QAAQ,GACR,UAAU,GACV,MAAM,GACN,YAAY,GACZ,UAAU,GACV,QAAQ,GACR,aAAa,CAAC;AAElB,MAAM,MAAM,qBAAqB,GAAG,YAAY,GAAG,MAAM,CAAC;AAE1D,MAAM,WAAW,YAAa,SAAQ,KAAK;IACzC,WAAW,EAAE,gBAAgB,CAAC;IAC9B,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,yFAAyF;IACzF,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,sCAAsC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uBAAuB;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4BAA4B;IAC5B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,wBAAwB;IACxB,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,UAAU,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACnD,WAAW,EAAE,qBAAqB,CAAC;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAMD,wBAAgB,cAAc,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,YAAY,CAE9D;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,iBAAiB,CAExE;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,YAAY,CAE3D;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,YAAY,CAE1D"}
1
+ {"version":3,"file":"di-types.d.ts","sourceRoot":"","sources":["../../src/model/di-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EACV,oBAAoB,EACpB,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,OAAO,EACP,UAAU,EACV,QAAQ,EACT,MAAM,+BAA+B,CAAC;AAEvC;;;;;;GAMG;AAEH,MAAM,MAAM,gBAAgB,GACxB,WAAW,GACX,QAAQ,GACR,UAAU,GACV,MAAM,GACN,YAAY,GACZ,UAAU,GACV,QAAQ,GACR,aAAa,GACb,SAAS,CAAC;AAEd,MAAM,MAAM,qBAAqB,GAAG,YAAY,GAAG,MAAM,CAAC;AAE1D,MAAM,WAAW,YAAa,SAAQ,KAAK;IACzC,WAAW,EAAE,gBAAgB,CAAC;IAC9B,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,yFAAyF;IACzF,YAAY,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,sCAAsC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0FAA0F;IAC1F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uBAAuB;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4BAA4B;IAC5B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,kGAAkG;IAClG,OAAO,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,wBAAwB;IACxB,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,gGAAgG;IAChG,aAAa,CAAC,EAAE,KAAK,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChD,sDAAsD;IACtD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oBAAoB;IACpB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,yFAAyF;IACzF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,UAAU,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACnD,WAAW,EAAE,qBAAqB,CAAC;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAMD,wBAAgB,cAAc,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,YAAY,CAE9D;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,iBAAiB,CAExE;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,YAAY,CAE3D;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,YAAY,CAE1D;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,YAAY,CAE1D"}
@@ -0,0 +1,44 @@
1
+ import { default as ElementFactory } from 'diagram-js/lib/core/ElementFactory';
2
+ import { default as ElementRegistry } from 'diagram-js/lib/core/ElementRegistry';
3
+ import { default as Canvas } from 'diagram-js/lib/core/Canvas';
4
+ import { default as Create } from 'diagram-js/lib/features/create/Create';
5
+ import { default as Modeling } from 'diagram-js/lib/features/modeling/Modeling';
6
+ import { default as Mouse } from 'diagram-js/lib/features/mouse/Mouse';
7
+ import { default as Selection } from 'diagram-js/lib/features/selection/Selection';
8
+ /**
9
+ * Custom copy/paste for Wardley shapes: copies the selection including the connections BETWEEN
10
+ * selected shapes and assigns unique labels (the DSL references by name!).
11
+ * Paste attaches the clones to the cursor like palette create (live preview, click places,
12
+ * Escape cancels); duplicate inserts immediately with an offset. Either way the insert is ONE
13
+ * undoable `elements.create` command.
14
+ */
15
+ export default class WardleyCopyPaste {
16
+ private readonly selection;
17
+ private readonly modeling;
18
+ private readonly elementFactory;
19
+ private readonly elementRegistry;
20
+ private readonly canvas;
21
+ private readonly create;
22
+ private readonly mouse;
23
+ static $inject: string[];
24
+ private clipboard;
25
+ private pasteCount;
26
+ constructor(selection: Selection, modeling: Modeling, elementFactory: ElementFactory, elementRegistry: ElementRegistry, canvas: Canvas, create: Create, mouse: Mouse);
27
+ /** Copies the current selection. Returns false if nothing copyable is selected. */
28
+ copy(): boolean;
29
+ /**
30
+ * Paste with placement preview: the clones attach to the cursor exactly like palette create —
31
+ * click places them, Escape cancels. Falls back to an offset insert when the mouse position
32
+ * is unknown (e.g. paste before the pointer ever entered the canvas).
33
+ */
34
+ paste(): boolean;
35
+ /** Copy + immediate offset insert of the selection (Ctrl+D) — no placement step. */
36
+ duplicate(): boolean;
37
+ /** Builds fresh clone elements (unique labels, internal connections rewired). */
38
+ private buildClones;
39
+ /** One `elements.create` command = one undo step; position = group center + offset. */
40
+ private insertWithOffset;
41
+ /** Labels unique against the registry AND within the paste batch. */
42
+ private uniqueLabels;
43
+ }
44
+ //# sourceMappingURL=WardleyCopyPaste.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WardleyCopyPaste.d.ts","sourceRoot":"","sources":["../../src/modeling/WardleyCopyPaste.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,eAAe,MAAM,qCAAqC,CAAC;AACvE,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,MAAM,MAAM,uCAAuC,CAAC;AAChE,OAAO,KAAK,QAAQ,MAAM,2CAA2C,CAAC;AACtE,OAAO,KAAK,KAAK,MAAM,qCAAqC,CAAC;AAC7D,OAAO,KAAK,SAAS,MAAM,6CAA6C,CAAC;AA2DzE;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IAejC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IApBxB,MAAM,CAAC,OAAO,WAQZ;IAEF,OAAO,CAAC,SAAS,CAA+E;IAChG,OAAO,CAAC,UAAU,CAAK;gBAGJ,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK;IAG/B,mFAAmF;IACnF,IAAI,IAAI,OAAO;IAsCf;;;;OAIG;IACH,KAAK,IAAI,OAAO;IAWhB,oFAAoF;IACpF,SAAS,IAAI,OAAO;IAKpB,iFAAiF;IACjF,OAAO,CAAC,WAAW;IA2BnB,uFAAuF;IACvF,OAAO,CAAC,gBAAgB;IAaxB,qEAAqE;IACrE,OAAO,CAAC,YAAY;CAcrB"}
@@ -1,6 +1,6 @@
1
1
  import { default as CommandStack } from 'diagram-js/lib/command/CommandStack';
2
2
  import { Method } from '@miragon/wardley-schema-model';
3
- import { WardleyShape } from '../model/di-types.js';
3
+ import { WardleyConnection, WardleyShape } from '../model/di-types.js';
4
4
  export interface EvolveOptions {
5
5
  newLabel?: string;
6
6
  method?: Method;
@@ -13,7 +13,7 @@ export default class WardleyModeling {
13
13
  private readonly commandStack;
14
14
  static $inject: string[];
15
15
  constructor(commandStack: CommandStack);
16
- updateProperties(element: WardleyShape, properties: Record<string, unknown>): void;
16
+ updateProperties(element: WardleyShape | WardleyConnection, properties: Record<string, unknown>): void;
17
17
  updateLabel(element: WardleyShape, label: string): void;
18
18
  evolveComponent(element: WardleyShape, targetEvolution: number, opts?: EvolveOptions): void;
19
19
  clearMovement(element: WardleyShape): void;
@@ -21,7 +21,7 @@ export default class WardleyModeling {
21
21
  setMethod(element: WardleyShape, method: Method | undefined): void;
22
22
  /** Sets market/ecosystem (mutually exclusive) or removes both (`undefined`). */
23
23
  setMarketEcosystem(element: WardleyShape, kind: 'market' | 'ecosystem' | undefined): void;
24
- /** Sets the note color (CSS color/hex) or removes it (`undefined` = default color). */
24
+ /** Sets the element color (CSS color/hex) or removes it (`undefined` = default color). */
25
25
  setColor(element: WardleyShape, color: string | undefined): void;
26
26
  }
27
27
  //# sourceMappingURL=WardleyModeling.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WardleyModeling.d.ts","sourceRoot":"","sources":["../../src/modeling/WardleyModeling.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,qCAAqC,CAAC;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAYzD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAGtB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAFzC,MAAM,CAAC,OAAO,WAAoB;gBAEL,YAAY,EAAE,YAAY;IAIvD,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAIlF,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAkBvD,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,GAAE,aAAkB,GAAG,IAAI;IAU/F,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAI1C,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAO1C,SAAS,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAOlE,gFAAgF;IAChF,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,IAAI;IAQzF,uFAAuF;IACvF,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;CAGjE"}
1
+ {"version":3,"file":"WardleyModeling.d.ts","sourceRoot":"","sources":["../../src/modeling/WardleyModeling.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,qCAAqC,CAAC;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAY5E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAGtB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAFzC,MAAM,CAAC,OAAO,WAAoB;gBAEL,YAAY,EAAE,YAAY;IAIvD,gBAAgB,CACd,OAAO,EAAE,YAAY,GAAG,iBAAiB,EACzC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,IAAI;IAIP,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAkBvD,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,GAAE,aAAkB,GAAG,IAAI;IAa/F,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAI1C,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAO1C,SAAS,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAOlE,gFAAgF;IAChF,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,IAAI;IAQzF,0FAA0F;IAC1F,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;CAGjE"}
@@ -2,5 +2,6 @@ import { ModuleDeclaration } from 'didi';
2
2
  /** High-level Wardley mutations + registration of the custom command handlers. */
3
3
  export declare const wardleyModelingModule: ModuleDeclaration;
4
4
  export { default as WardleyModeling } from './WardleyModeling.js';
5
+ export { default as WardleyCopyPaste } from './WardleyCopyPaste.js';
5
6
  export type { EvolveOptions } from './WardleyModeling.js';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/modeling/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAG9C,kFAAkF;AAClF,eAAO,MAAM,qBAAqB,EAAE,iBAGnC,CAAC;AAEF,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAClE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/modeling/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAM9C,kFAAkF;AAClF,eAAO,MAAM,qBAAqB,EAAE,iBAMnC,CAAC;AAEF,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACpE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { default as OrderingProvider } from 'diagram-js/lib/features/ordering/OrderingProvider';
2
+ import { default as EventBus } from 'diagram-js/lib/core/EventBus';
3
+ import { ElementLike, ShapeLike } from 'diagram-js/lib/model/Types';
4
+ /**
5
+ * Keeps the z-order stable for INTERACTIVELY created/moved elements, matching the import order:
6
+ * frames (attitude/pipeline) at the back, connections in the middle, nodes on top. Without this,
7
+ * connections drawn in the editor would land above the nodes (unlike imported ones).
8
+ */
9
+ export default class WardleyOrderingProvider extends OrderingProvider {
10
+ static $inject: string[];
11
+ constructor(eventBus: EventBus);
12
+ getOrdering(element: ElementLike, newParent: ShapeLike): {
13
+ parent: ShapeLike;
14
+ index?: number;
15
+ };
16
+ }
17
+ //# sourceMappingURL=WardleyOrderingProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WardleyOrderingProvider.d.ts","sourceRoot":"","sources":["../../src/ordering/WardleyOrderingProvider.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,mDAAmD,CAAC;AACjF,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAYzE;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,uBAAwB,SAAQ,gBAAgB;IACnE,OAAgB,OAAO,WAAgB;gBAE3B,QAAQ,EAAE,QAAQ;IAIrB,WAAW,CAClB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,SAAS,GACnB;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;CAiBzC"}
@@ -0,0 +1,5 @@
1
+ import { ModuleDeclaration } from 'didi';
2
+ /** Z-order for interactive edits: frames -> connections -> nodes (like the import). */
3
+ export declare const wardleyOrderingModule: ModuleDeclaration;
4
+ export { default as WardleyOrderingProvider } from './WardleyOrderingProvider.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ordering/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAG9C,uFAAuF;AACvF,eAAO,MAAM,qBAAqB,EAAE,iBAGnC,CAAC;AAEF,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,8BAA8B,CAAC"}
@@ -1,12 +1,16 @@
1
1
  import { default as Palette } from 'diagram-js/lib/features/palette/Palette';
2
2
  import { default as Create } from 'diagram-js/lib/features/create/Create';
3
+ import { default as LassoTool } from 'diagram-js/lib/features/lasso-tool/LassoTool';
4
+ import { default as WardleyDrawTool } from '../draw-tool/WardleyDrawTool.js';
3
5
  import { PaletteEntries, default as PaletteProvider } from 'diagram-js/lib/features/palette/PaletteProvider';
4
6
  import { default as WardleyElementFactory } from '../model/WardleyElementFactory.js';
5
7
  export default class WardleyPaletteProvider implements PaletteProvider {
6
8
  private readonly create;
7
9
  private readonly factory;
10
+ private readonly lassoTool;
11
+ private readonly drawTool;
8
12
  static $inject: string[];
9
- constructor(palette: Palette, create: Create, factory: WardleyElementFactory);
13
+ constructor(palette: Palette, create: Create, factory: WardleyElementFactory, lassoTool: LassoTool, drawTool: WardleyDrawTool);
10
14
  getPaletteEntries(): PaletteEntries;
11
15
  }
12
16
  //# sourceMappingURL=WardleyPaletteProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WardleyPaletteProvider.d.ts","sourceRoot":"","sources":["../../src/palette/WardleyPaletteProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,yCAAyC,CAAC;AACnE,OAAO,KAAK,MAAM,MAAM,uCAAuC,CAAC;AAChE,OAAO,KAAK,EACV,cAAc,EAEd,OAAO,IAAI,eAAe,EAC3B,MAAM,iDAAiD,CAAC;AACzD,OAAO,KAAK,qBAAqB,MAAM,mCAAmC,CAAC;AAyI3E,MAAM,CAAC,OAAO,OAAO,sBAAuB,YAAW,eAAe;IAKlE,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAL1B,MAAM,CAAC,OAAO,WAAkD;gBAG9D,OAAO,EAAE,OAAO,EACC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,qBAAqB;IAKjD,iBAAiB,IAAI,cAAc;CAgBpC"}
1
+ {"version":3,"file":"WardleyPaletteProvider.d.ts","sourceRoot":"","sources":["../../src/palette/WardleyPaletteProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,yCAAyC,CAAC;AACnE,OAAO,KAAK,MAAM,MAAM,uCAAuC,CAAC;AAChE,OAAO,KAAK,SAAS,MAAM,8CAA8C,CAAC;AAC1E,OAAO,KAAK,eAAe,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EACV,cAAc,EAEd,OAAO,IAAI,eAAe,EAC3B,MAAM,iDAAiD,CAAC;AACzD,OAAO,KAAK,qBAAqB,MAAM,mCAAmC,CAAC;AAkI3E,MAAM,CAAC,OAAO,OAAO,sBAAuB,YAAW,eAAe;IAKlE,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAP3B,MAAM,CAAC,OAAO,WAAkF;gBAG9F,OAAO,EAAE,OAAO,EACC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,qBAAqB,EAC9B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,eAAe;IAK5C,iBAAiB,IAAI,cAAc;CAsCpC"}
@@ -1,9 +1,9 @@
1
1
  import { default as RuleProvider } from 'diagram-js/lib/features/rules/RuleProvider';
2
2
  import { default as EventBus } from 'diagram-js/lib/core/EventBus';
3
3
  /**
4
- * Allowed editing operations (concept doc §5.4). On success the `connection.create` rule returns
5
- * the new connection's attributes (`{ wardleyType: 'dependency' }`) — diagram-js Connect adopts
6
- * them as connection attributes.
4
+ * Allowed edit operations (concept doc §5.4). On success the `connection.create` rule returns
5
+ * the new connection's attributes. The editor deliberately only creates dependencies — flow
6
+ * links (`+>`) exist for OWM import compatibility but are not authored interactively.
7
7
  */
8
8
  export default class WardleyRules extends RuleProvider {
9
9
  static $inject: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"WardleyRules.d.ts","sourceRoot":"","sources":["../../src/rules/WardleyRules.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,4CAA4C,CAAC;AACtE,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AASzD;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,YAAY;IACpD,OAAgB,OAAO,WAAgB;gBAE3B,QAAQ,EAAE,QAAQ;IAIrB,IAAI,IAAI,IAAI;CAgBtB"}
1
+ {"version":3,"file":"WardleyRules.d.ts","sourceRoot":"","sources":["../../src/rules/WardleyRules.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,4CAA4C,CAAC;AACtE,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AAmBzD;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,YAAY;IACpD,OAAgB,OAAO,WAAgB;gBAE3B,QAAQ,EAAE,QAAQ;IAIrB,IAAI,IAAI,IAAI;CAwBtB"}
@@ -2,8 +2,9 @@ import { default as EventBus } from 'diagram-js/lib/core/EventBus';
2
2
  import { default as EvolutionGrid } from '../evolution-grid/EvolutionGrid.js';
3
3
  /**
4
4
  * Snaps the X position (evolution) during move/create/resize to the stage boundaries.
5
- * Disabled while the Shift key is held. Deliberately lightweight (no replacement for the full
6
- * diagram-js snapping); it adds the Wardley-specific band boundaries to the snapping.
5
+ * Disabled while the Shift key is held. Important: `x` and `dx` must be adjusted TOGETHER
6
+ * (like diagram-js' `setSnapped`) — move takes the final position from `dx`, so a mutated
7
+ * `x` alone would have no effect.
7
8
  */
8
9
  export default class StageSnapping {
9
10
  static $inject: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"StageSnapping.d.ts","sourceRoot":"","sources":["../../src/snapping/StageSnapping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,aAAa,MAAM,oCAAoC,CAAC;AAUpE;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,MAAM,CAAC,OAAO,WAAiC;gBAEnC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa;CAwBpD"}
1
+ {"version":3,"file":"StageSnapping.d.ts","sourceRoot":"","sources":["../../src/snapping/StageSnapping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,aAAa,MAAM,oCAAoC,CAAC;AAYpE;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,MAAM,CAAC,OAAO,WAAiC;gBAEnC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa;CA4CpD"}
package/dist/wardley.css CHANGED
@@ -1,2 +1,2 @@
1
- .djs-parent{--color-grey-225-10-15:#22242a;--color-grey-225-10-35:#505562;--color-grey-225-10-55:#818798;--color-grey-225-10-75:#b9bcc6;--color-grey-225-10-80:#c7c9d1;--color-grey-225-10-85:#d5d7dd;--color-grey-225-10-90:#e3e4e8;--color-grey-225-10-95:#f1f2f4;--color-grey-225-10-97:#f7f7f8;--color-blue-205-100-45:#0086e6;--color-blue-205-100-45-opacity-30:#0086e64d;--color-blue-205-100-50:#0095ff;--color-blue-205-100-50-opacity-15:#0095ff26;--color-blue-205-100-70:#80caff;--color-blue-205-100-95:#e6f4ff;--color-green-150-86-44:#10d170;--color-red-360-100-40:#c00;--color-red-360-100-45:#e60000;--color-red-360-100-92:#ffd6d6;--color-red-360-100-97:#fff0f0;--color-white:#fff;--color-black:#000;--color-black-opacity-10:#0000001a;--color-black-opacity-30:#0000004d;--canvas-fill-color:var(--color-white);--bendpoint-fill-color:var(--color-blue-205-100-45);--bendpoint-stroke-color:var(--canvas-fill-color);--context-pad-entry-background-color:var(--color-white);--context-pad-entry-hover-background-color:var(--color-grey-225-10-95);--element-dragger-color:var(--color-blue-205-100-50);--element-hover-outline-fill-color:var(--color-blue-205-100-45);--element-selected-outline-stroke-color:var(--color-blue-205-100-50);--element-selected-outline-secondary-stroke-color:var(--color-blue-205-100-70);--lasso-fill-color:var(--color-blue-205-100-50-opacity-15);--lasso-stroke-color:var(--element-selected-outline-stroke-color);--palette-entry-color:var(--color-grey-225-10-15);--palette-entry-hover-color:var(--color-blue-205-100-45);--palette-entry-selected-color:var(--color-blue-205-100-50);--palette-separator-color:var(--color-grey-225-10-75);--palette-toggle-hover-background-color:var(--color-grey-225-10-55);--palette-background-color:var(--color-grey-225-10-97);--palette-border-color:var(--color-grey-225-10-75);--popup-font-family:"IBM Plex Sans", sans-serif;--popup-font-size:14px;--popup-header-entry-selected-color:var(--color-blue-205-100-50);--popup-header-font-weight:bolder;--popup-header-group-divider-color:var(--color-grey-225-10-75);--popup-background-color:var(--color-white);--popup-border-color:transparent;--popup-shadow-color:var(--color-black-opacity-30);--popup-disabled-color:var(--color-grey-225-10-35);--popup-description-color:var(--color-grey-225-10-35);--popup-no-results-color:var(--color-grey-225-10-55);--popup-entry-title-color:var(--color-grey-225-10-55);--popup-entry-hover-color:var(--color-grey-225-10-95);--popup-search-border-color:var(--color-grey-225-10-75);--popup-search-focus-border-color:var(--color-blue-205-100-50);--popup-search-focus-background-color:var(--color-blue-205-100-95);--resizer-fill-color:var(--color-blue-205-100-45);--resizer-stroke-color:var(--canvas-fill-color);--search-font-family:"IBM Plex Sans", sans-serif;--search-font-size:14px;--search-container-background-color:var(--color-white);--search-shadow-color:var(--color-black-opacity-30);--search-input-border-color:var(--color-grey-225-10-75);--search-input-focus-border-color:var(--color-blue-205-100-50);--search-input-focus-background-color:var(--color-blue-205-100-95);--search-result-hover-background-color:var(--color-grey-225-10-95);--search-result-secondary-color:var(--color-grey-225-10-55);--search-preselected-background-color:var(--color-blue-205-100-50-opacity-15);--shape-attach-allowed-stroke-color:var(--color-blue-205-100-50);--shape-connect-allowed-fill-color:var(--color-grey-225-10-97);--shape-drop-allowed-fill-color:var(--color-grey-225-10-97);--shape-drop-not-allowed-fill-color:var(--color-red-360-100-97);--shape-resize-preview-stroke-color:var(--color-blue-205-100-50);--snap-line-stroke-color:var(--color-blue-205-100-45-opacity-30);--space-tool-crosshair-stroke-color:var(--color-black);--tooltip-error-background-color:var(--color-red-360-100-97);--tooltip-error-border-color:var(--color-red-360-100-45);--tooltip-error-color:var(--color-red-360-100-45)}.djs-container svg.drop-not-ok{background:var(--shape-drop-not-allowed-fill-color)!important}.djs-container svg.new-parent{background:var(--shape-drop-allowed-fill-color)!important}.djs-container svg:focus{outline-offset:-1px}.djs-outline,.djs-selection-outline{fill:none;shape-rendering:geometricprecision;stroke-width:2px}.djs-outline{visibility:hidden}.djs-selection-outline{stroke:var(--element-selected-outline-stroke-color)}.djs-element.selected .djs-outline{visibility:visible;stroke:var(--element-selected-outline-stroke-color)}.djs-connection.selected .djs-outline{display:none}.djs-multi-select .djs-element.selected .djs-outline,.djs-dragging-active-lasso .djs-element.selected .djs-outline{stroke:var(--element-selected-outline-secondary-stroke-color);display:block}.djs-shape.connect-ok .djs-visual>:first-child{fill:var(--shape-connect-allowed-fill-color)!important}.djs-shape.connect-not-ok .djs-visual>:first-child,.djs-shape.drop-not-ok .djs-visual>:first-child{fill:var(--shape-drop-not-allowed-fill-color)!important}.djs-shape.new-parent .djs-visual>:first-child{fill:var(--shape-drop-allowed-fill-color)!important}.drop-not-ok,.connect-not-ok,.drop-not-ok *,.connect-not-ok *{cursor:not-allowed!important}.drop-ok,.connect-ok,.drop-ok *,.connect-ok *{cursor:default!important}.djs-element.attach-ok .djs-visual>:first-child{stroke-width:5px!important;stroke:var(--shape-attach-allowed-stroke-color)!important}.djs-frame.connect-not-ok .djs-visual>:first-child,.djs-frame.drop-not-ok .djs-visual>:first-child{stroke-width:3px!important;stroke:var(--shape-drop-not-allowed-fill-color)!important;fill:none!important}.djs-lasso-overlay{fill:var(--lasso-fill-color);stroke:var(--lasso-stroke-color);stroke-width:2px;shape-rendering:geometricprecision;pointer-events:none}.djs-resize-overlay{fill:none;stroke-dasharray:5 1 3 1;stroke:var(--shape-resize-preview-stroke-color);pointer-events:none}.djs-resizer-hit{fill:none;pointer-events:all}.djs-resizer-visual{fill:var(--resizer-fill-color);stroke-width:1px;stroke:var(--resizer-stroke-color);shape-rendering:geometricprecision}.djs-resizer:hover .djs-resizer-visual{stroke:var(--resizer-stroke-color);stroke-opacity:1}.djs-cursor-resize-ns,.djs-resizer-n,.djs-resizer-s{cursor:ns-resize}.djs-cursor-resize-ew,.djs-resizer-e,.djs-resizer-w{cursor:ew-resize}.djs-cursor-resize-nwse,.djs-resizer-nw,.djs-resizer-se{cursor:nwse-resize}.djs-cursor-resize-nesw,.djs-resizer-ne,.djs-resizer-sw{cursor:nesw-resize}.djs-shape.djs-resizing>.djs-outline{visibility:hidden!important}.djs-shape.djs-resizing>.djs-resizer,.djs-dragger>.djs-resizer{visibility:hidden}.djs-dragger *{fill:none!important;stroke:var(--element-dragger-color)!important}.djs-dragger tspan,.djs-dragger text,.djs-dragger marker circle,.djs-dragger marker path,.djs-dragger marker polygon,.djs-dragger marker polyline,.djs-dragger marker rect{fill:var(--element-dragger-color)!important;stroke:none!important}.djs-dragger marker text,.djs-dragger marker tspan{fill:none!important;stroke:var(--element-dragger-color)!important}.djs-dragging,.djs-dragging>*{opacity:.3!important;pointer-events:none!important}.djs-visual,.djs-outline{pointer-events:none}.djs-element.attach-ok .djs-hit{stroke-width:60px!important}.djs-element>.djs-hit-all,.djs-element>.djs-hit-no-move{pointer-events:all}.djs-element>.djs-hit-stroke,.djs-element>.djs-hit-click-stroke{pointer-events:stroke}.djs-connection .djs-visual{stroke-width:2px;fill:none}.djs-cursor-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.djs-cursor-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.djs-cursor-crosshair{cursor:crosshair}.djs-cursor-move{cursor:move}.djs-cursor-resize-ns{cursor:ns-resize}.djs-cursor-resize-ew{cursor:ew-resize}.djs-snap-line{stroke:var(--snap-line-stroke-color);stroke-linecap:round;stroke-width:2px;pointer-events:none}.djs-crosshair{stroke:var(--space-tool-crosshair-stroke-color);stroke-linecap:round;stroke-width:1px;pointer-events:none;shape-rendering:geometricprecision;stroke-dasharray:5 5}.djs-palette{box-sizing:border-box;width:48px;position:absolute;top:20px;left:20px}.djs-palette .separator{border:none;border-bottom:solid 1px var(--palette-separator-color);clear:both;margin:5px;padding-top:5px}.djs-palette .entry:before{vertical-align:initial}.djs-palette .djs-palette-toggle{cursor:pointer}.djs-palette .entry,.djs-palette .djs-palette-toggle{color:var(--palette-entry-color);text-align:center;font-size:30px}.djs-palette .entry{float:left}.djs-palette .entry img{max-width:100%}.djs-palette .djs-palette-entries:after{content:"";clear:both;display:table}.djs-palette .djs-palette-toggle:hover{background:var(--palette-toggle-hover-background-color)}.djs-palette .entry:hover{color:var(--palette-entry-hover-color)}.djs-palette .highlighted-entry{color:var(--palette-entry-selected-color)!important}.djs-palette .entry,.djs-palette .djs-palette-toggle{cursor:default;width:46px;height:46px;line-height:46px}.djs-palette.two-column.open{width:94px}.djs-palette:not(.open) .djs-palette-entries{display:none}.djs-palette:not(.open){overflow:hidden}.djs-palette.open .djs-palette-toggle{display:none}.djs-context-pad{pointer-events:none;z-index:100;width:72px;line-height:1;display:none;position:absolute}.djs-context-pad .entry{text-align:center;cursor:default;background-color:var(--context-pad-entry-background-color);width:22px;height:22px;box-shadow:0 0 2px 1px var(--context-pad-entry-background-color);pointer-events:all;vertical-align:middle;border-radius:3px;margin:0 2px 2px 0;font-size:22px;display:inline-block}.djs-context-pad .entry:hover{background:var(--context-pad-entry-hover-background-color)}.djs-context-pad.open{display:block}.djs-popup{box-sizing:border-box;background:var(--popup-background-color);z-index:200;width:min-content;box-shadow:0px 2px 6px var(--popup-shadow-color);border:solid 1px var(--popup-border-color);min-width:120px;line-height:1;font-size:var(--popup-font-size);font-family:var(--popup-font-family);outline:none;position:fixed;overflow:hidden}.djs-popup-search input{box-sizing:border-box;width:100%;font-size:var(--popup-font-size);border:solid 1px var(--popup-search-border-color);border-radius:2px;padding:3px 6px 3px 28px;line-height:21px}.djs-popup-search input:focus{background-color:var(--popup-search-focus-background-color);border:solid 1px var(--popup-search-focus-border-color);outline:none}.djs-popup-header{align-items:stretch;margin:10px 12px;line-height:20px;display:flex}.djs-popup-header .entry{border-radius:2px}.djs-popup button.entry{background:0 0;border:0;padding:0}.djs-popup-header .entry.active{color:var(--popup-header-entry-selected-color)}.djs-popup-header .entry.disabled{color:inherit}.djs-popup-header-group{flex-direction:row;align-items:center;margin:0;padding:0;list-style:none;display:flex}.djs-popup-header-group .entry{flex-direction:row;align-items:center;display:flex}.djs-popup-header-group+.djs-popup-header-group:before{content:"";background:var(--popup-header-group-divider-color);width:1px;height:20px;margin:0 5px}.djs-popup-search{width:auto;margin:10px 12px;position:relative}.djs-popup-title{font-size:var(--popup-font-size);font-weight:var(--popup-header-font-weight);flex:1;margin:0}.djs-popup-breadcrumbs{margin:10px 12px;line-height:20px;display:flex}.djs-popup-breadcrumbs-item{appearance:none;min-width:0;color:var(--popup-description-color);font:inherit;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;outline:none;margin:0;padding:0;display:inline-flex;overflow:hidden}.djs-popup-breadcrumbs-item--separator:before{content:"/";color:var(--popup-description-color);margin:0 4px;display:inline-block}.djs-popup-breadcrumbs-item:hover{color:inherit;text-decoration:underline}.djs-popup-breadcrumbs-item:focus-visible{outline:1px solid var(--popup-search-focus-border-color);outline-offset:2px}.djs-popup-breadcrumbs-item--back{border:1px solid var(--popup-search-border-color);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;margin-right:6px;padding:2px 3px}.djs-popup-breadcrumbs-item--back:hover{background:#f2f3f5}.djs-popup-breadcrumbs-item--current{font-weight:var(--popup-header-font-weight);color:inherit;cursor:default}.djs-popup-breadcrumbs-item--current:hover{text-decoration:none}.djs-popup-entry-chevron{color:var(--popup-description-color);align-items:center;margin-left:6px;display:flex}.djs-popup-search-icon{position:absolute;top:7px;left:8px}.djs-popup-search-count{color:var(--popup-description-color);margin:0 12px;font-size:11px}.djs-popup-results{max-height:280px;margin:7px 3px 7px 12px;padding-right:9px;list-style:none;overflow:auto}.djs-popup-group{width:100%;margin:0;padding:0}.djs-popup-body .entry,.djs-popup-body .entry-header{cursor:default;border-radius:4px;padding:5px 7px}.djs-popup-body .entry-header{font-weight:var(--popup-header-font-weight);color:var(--popup-entry-title-color);padding-left:0}.djs-popup [class*=icon] .djs-popup-label,.djs-popup-label:not(:first-child){margin-left:.5em}.djs-popup [class*=icon]:before,.djs-popup-entry-icon{vertical-align:middle;width:1em;height:1em;font-size:1.4em;display:inline-block}.djs-popup-body .entry-header:not(:first-child){margin-top:8px;margin-bottom:2px}.djs-popup-body .entry{flex-direction:row;align-items:stretch;height:min-content;display:flex}.djs-popup .entry.selected{background-color:var(--popup-entry-hover-color)}.djs-popup .entry.disabled{color:var(--popup-disabled-color);cursor:not-allowed}.djs-popup-body .entry:not(:first-child){margin-top:2px}.djs-popup-entry-content{flex-direction:column;flex:1;display:flex}.djs-popup-entry-description{color:var(--popup-description-color);margin-top:.25em;font-size:.9em}.djs-popup-label,.djs-popup-entry-description{line-height:1.4em}.djs-popup .entry,.djs-popup .entry-header{margin:1px}.djs-popup-body{flex-direction:column;width:auto}.djs-popup ::-webkit-scrollbar{width:6px}.djs-popup ::-webkit-scrollbar-thumb{background-color:#0003;border-radius:3px}.djs-popup ::-webkit-scrollbar-track{box-shadow:none;background:0 0;margin:0;padding:5px}.djs-popup-no-results{color:var(--popup-no-results-color);padding:0 12px 12px}.djs-popup-entry-docs{color:var(--popup-description-color);margin-left:3px;display:none}.djs-popup-body .entry:focus-within .djs-popup-entry-docs,.djs-popup-body .entry:focus .djs-popup-entry-docs,.djs-popup-body .entry:hover .djs-popup-entry-docs{display:inline}.djs-popup-entry-docs svg{vertical-align:middle;margin:2px}.djs-palette{background:var(--palette-background-color);border:solid 1px var(--palette-border-color);border-radius:2px}.djs-segment-dragger,.djs-bendpoint{display:none}.djs-segment-dragger .djs-visual{fill:var(--bendpoint-fill-color);stroke:var(--bendpoint-stroke-color);stroke-width:1px;stroke-opacity:1;display:none}.djs-segment-dragger:hover .djs-visual{display:block}.djs-bendpoint .djs-visual{fill:var(--bendpoint-fill-color);stroke:var(--bendpoint-stroke-color);stroke-width:1px}.djs-segment-dragger:hover,.djs-bendpoints.hover .djs-segment-dragger,.djs-bendpoints.selected .djs-segment-dragger,.djs-bendpoint:hover,.djs-bendpoints.hover .djs-bendpoint,.djs-bendpoints.selected .djs-bendpoint{display:block}.djs-drag-active .djs-bendpoints *,.djs-bendpoints:not(.hover) .floating{display:none}.djs-segment-dragger:hover .djs-visual,.djs-segment-dragger.djs-dragging .djs-visual,.djs-bendpoint:hover .djs-visual,.djs-bendpoint.floating .djs-visual{fill:var(--bendpoint-fill-color);stroke:var(--bendpoint-stroke-color);stroke-opacity:1}.djs-bendpoint.floating .djs-hit{pointer-events:none}.djs-segment-dragger .djs-hit,.djs-bendpoint .djs-hit{fill:none;pointer-events:all}.djs-segment-dragger.horizontal .djs-hit{cursor:ns-resize}.djs-segment-dragger.vertical .djs-hit{cursor:ew-resize}.djs-segment-dragger.djs-dragging .djs-hit{pointer-events:none}.djs-updating,.djs-updating>*{pointer-events:none!important}.djs-updating .djs-context-pad,.djs-updating .djs-outline,.djs-updating .djs-bendpoint,.djs-multi-select .djs-bendpoint,.djs-multi-select .djs-segment-dragger,.connect-ok .djs-bendpoint,.connect-not-ok .djs-bendpoint,.drop-ok .djs-bendpoint,.drop-not-ok .djs-bendpoint{display:none!important}.djs-segment-dragger.djs-dragging,.djs-bendpoint.djs-dragging{opacity:1;display:block}.djs-tooltip-error{background:var(--tooltip-error-background-color);border:solid 1px var(--tooltip-error-border-color);width:160px;color:var(--tooltip-error-color);opacity:.75;border-radius:2px;padding:6px;font-size:12px;line-height:16px}.djs-tooltip-error:hover{opacity:1}.djs-search-open .djs-context-pad{display:none}.djs-search-open .djs-connection.selected .djs-outline{display:block}.djs-search-container{z-index:10;width:25%;min-width:300px;max-width:400px;font-family:var(--search-font-family);font-size:var(--search-font-size);box-shadow:0px 2px 6px var(--search-shadow-color);border-radius:2px;margin-left:auto;margin-right:auto;position:absolute;top:20px;left:0;right:0}.djs-search-container:not(.open){display:none}.djs-search-input{position:relative}.djs-search-input svg{position:absolute;top:7px;left:8px}.djs-search-input input{font-size:var(--search-font-size);border:1px solid var(--search-input-border-color);box-sizing:border-box;border-radius:2px;width:100%;padding:3px 6px 3px 28px;line-height:21px}.djs-search-input input:focus{background-color:var(--search-input-focus-background-color);border:solid 1px var(--search-input-focus-border-color);outline:none}.djs-search-results{background:var(--search-container-background-color);max-height:200px;position:relative;overflow-y:auto}.djs-search-result{padding:6px 8px}.djs-search-result-primary{text-overflow:ellipsis;white-space:nowrap;margin:0 0 3px;overflow:hidden}.djs-search-result-secondary{text-overflow:ellipsis;white-space:nowrap;color:var(--search-result-secondary-color);margin:0;font-family:monospace;overflow:hidden}.djs-search-result:hover,.djs-search-result-selected,.djs-search-result-selected:hover{background:var(--search-result-hover-background-color)}.djs-search-open .djs-element .djs-outline{fill:var(--search-preselected-background-color)!important}.djs-element-hidden,.djs-element-hidden .djs-hit,.djs-element-hidden .djs-outline,.djs-label-hidden .djs-label{display:none!important}.djs-element .djs-hit-stroke,.djs-element .djs-hit-click-stroke,.djs-element .djs-hit-all{cursor:move}:root{--wardley-paper:#fbfaf7;--wardley-ink:#1b1b1a;--wardley-accent:#0e7c74}.wardley-container{background-color:var(--wardley-paper);background-image:radial-gradient(#1b1b1a0a .6px,#0000 .6px);background-size:22px 22px;width:100%;height:100%;font-family:Spline Sans Variable,Spline Sans,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;position:relative;overflow:hidden}.wardley-container .layer-wardley-axes{pointer-events:none}.wardley-container .djs-element text{-webkit-user-select:none;user-select:none}.wardley-container .wardley-evolve-handle{cursor:ew-resize;pointer-events:all}.wardley-container .djs-element.hover .djs-visual>:first-child:not(text),.wardley-container .djs-element.selected .djs-visual>:first-child:not(text){stroke:var(--wardley-accent)!important}.wardley-container .djs-outline{stroke:var(--wardley-accent);stroke-dasharray:3 3}.wardley-container .djs-resizer-visual{fill:#fff;stroke:var(--wardley-accent)}.wardley-container .djs-resizer-hit{fill:none}.djs-palette{background:#fff;border:1px solid #e7e2d8;border-radius:13px;align-items:center;width:auto;padding:5px 7px;display:flex;top:12px;left:50%;transform:translate(-50%);box-shadow:0 8px 26px #1b1b1a1a}.djs-palette .djs-palette-entries,.djs-palette .group{flex-direction:row;align-items:center;display:flex}.djs-palette .entry{float:none;width:40px;height:40px;color:var(--wardley-ink);border-radius:9px;line-height:normal;transition:background .12s}.djs-palette .entry:hover{background:#0e7c741a}.djs-palette .group+.group{margin-left:9px;padding-left:9px;position:relative}.djs-palette .group+.group:before{content:"";background:#1b1b1a1a;width:1px;position:absolute;top:6px;bottom:6px;left:0}.wardley-palette-entry{width:100%;min-width:24px;height:100%;min-height:24px;color:var(--wardley-ink);justify-content:center;align-items:center;line-height:1;display:flex}.wardley-palette-svg{display:block}.wardley-container .wardley-cp-entry{width:100%;min-width:24px;height:100%;min-height:24px;color:var(--wardley-ink);justify-content:center;align-items:center;font-size:17px;line-height:1;display:flex}.wardley-container .djs-context-pad .entry{background:#fff;border-radius:8px;transition:background .12s;box-shadow:0 2px 8px #1b1b1a1f}.wardley-container .djs-context-pad .entry:hover{background:#0e7c741f}.wardley-container .wardley-label-input{border:1.5px solid var(--wardley-accent);z-index:100;background:#fff;border-radius:4px;outline:none;min-width:90px;padding:2px 6px;font-family:inherit;font-size:13px;box-shadow:0 2px 10px #0e7c742e}.wardley-container .wardley-label-textarea{resize:none;white-space:pre;min-width:120px;font-style:italic;line-height:17px}.wardley-container.drag-over:after{content:"Drop Wardley map here (.wmap · .json · .svg · .png)";z-index:200;border:2px dashed var(--wardley-accent);color:var(--wardley-accent);pointer-events:none;background:#0e7c740f;border-radius:12px;justify-content:center;align-items:center;font-size:15px;font-weight:600;display:flex;position:absolute;inset:10px}.wardley-container.wardley-dark{--wardley-paper:#11151b;--wardley-ink:#e8eaed;background-color:var(--wardley-paper);background-image:radial-gradient(#ffffff0d .6px,#0000 .6px)}.wardley-container .wardley-color-picker{z-index:300;background:#fff;border:1px solid #00000026;border-radius:10px;grid-template-columns:repeat(3,22px);gap:6px;padding:8px;display:grid;position:absolute;box-shadow:0 6px 24px #00000038}.wardley-container .wardley-cp-swatch{cursor:pointer;border:1px solid #0003;border-radius:5px;width:22px;height:22px;padding:0;transition:transform 80ms}.wardley-container .wardley-cp-swatch:hover{transform:scale(1.1)}.wardley-container .wardley-cp-active{outline:2px solid var(--wardley-ink,#1b1b1a);outline-offset:1px}.wardley-container .wardley-cp-none{background:#fff linear-gradient(45deg,#0000 44%,#d11a2a 45% 55%,#0000 56%)}
1
+ .djs-parent{--color-grey-225-10-15:#22242a;--color-grey-225-10-35:#505562;--color-grey-225-10-55:#818798;--color-grey-225-10-75:#b9bcc6;--color-grey-225-10-80:#c7c9d1;--color-grey-225-10-85:#d5d7dd;--color-grey-225-10-90:#e3e4e8;--color-grey-225-10-95:#f1f2f4;--color-grey-225-10-97:#f7f7f8;--color-blue-205-100-45:#0086e6;--color-blue-205-100-45-opacity-30:#0086e64d;--color-blue-205-100-50:#0095ff;--color-blue-205-100-50-opacity-15:#0095ff26;--color-blue-205-100-70:#80caff;--color-blue-205-100-95:#e6f4ff;--color-green-150-86-44:#10d170;--color-red-360-100-40:#c00;--color-red-360-100-45:#e60000;--color-red-360-100-92:#ffd6d6;--color-red-360-100-97:#fff0f0;--color-white:#fff;--color-black:#000;--color-black-opacity-10:#0000001a;--color-black-opacity-30:#0000004d;--canvas-fill-color:var(--color-white);--bendpoint-fill-color:var(--color-blue-205-100-45);--bendpoint-stroke-color:var(--canvas-fill-color);--context-pad-entry-background-color:var(--color-white);--context-pad-entry-hover-background-color:var(--color-grey-225-10-95);--element-dragger-color:var(--color-blue-205-100-50);--element-hover-outline-fill-color:var(--color-blue-205-100-45);--element-selected-outline-stroke-color:var(--color-blue-205-100-50);--element-selected-outline-secondary-stroke-color:var(--color-blue-205-100-70);--lasso-fill-color:var(--color-blue-205-100-50-opacity-15);--lasso-stroke-color:var(--element-selected-outline-stroke-color);--palette-entry-color:var(--color-grey-225-10-15);--palette-entry-hover-color:var(--color-blue-205-100-45);--palette-entry-selected-color:var(--color-blue-205-100-50);--palette-separator-color:var(--color-grey-225-10-75);--palette-toggle-hover-background-color:var(--color-grey-225-10-55);--palette-background-color:var(--color-grey-225-10-97);--palette-border-color:var(--color-grey-225-10-75);--popup-font-family:"IBM Plex Sans", sans-serif;--popup-font-size:14px;--popup-header-entry-selected-color:var(--color-blue-205-100-50);--popup-header-font-weight:bolder;--popup-header-group-divider-color:var(--color-grey-225-10-75);--popup-background-color:var(--color-white);--popup-border-color:transparent;--popup-shadow-color:var(--color-black-opacity-30);--popup-disabled-color:var(--color-grey-225-10-35);--popup-description-color:var(--color-grey-225-10-35);--popup-no-results-color:var(--color-grey-225-10-55);--popup-entry-title-color:var(--color-grey-225-10-55);--popup-entry-hover-color:var(--color-grey-225-10-95);--popup-search-border-color:var(--color-grey-225-10-75);--popup-search-focus-border-color:var(--color-blue-205-100-50);--popup-search-focus-background-color:var(--color-blue-205-100-95);--resizer-fill-color:var(--color-blue-205-100-45);--resizer-stroke-color:var(--canvas-fill-color);--search-font-family:"IBM Plex Sans", sans-serif;--search-font-size:14px;--search-container-background-color:var(--color-white);--search-shadow-color:var(--color-black-opacity-30);--search-input-border-color:var(--color-grey-225-10-75);--search-input-focus-border-color:var(--color-blue-205-100-50);--search-input-focus-background-color:var(--color-blue-205-100-95);--search-result-hover-background-color:var(--color-grey-225-10-95);--search-result-secondary-color:var(--color-grey-225-10-55);--search-preselected-background-color:var(--color-blue-205-100-50-opacity-15);--shape-attach-allowed-stroke-color:var(--color-blue-205-100-50);--shape-connect-allowed-fill-color:var(--color-grey-225-10-97);--shape-drop-allowed-fill-color:var(--color-grey-225-10-97);--shape-drop-not-allowed-fill-color:var(--color-red-360-100-97);--shape-resize-preview-stroke-color:var(--color-blue-205-100-50);--snap-line-stroke-color:var(--color-blue-205-100-45-opacity-30);--space-tool-crosshair-stroke-color:var(--color-black);--tooltip-error-background-color:var(--color-red-360-100-97);--tooltip-error-border-color:var(--color-red-360-100-45);--tooltip-error-color:var(--color-red-360-100-45)}.djs-container svg.drop-not-ok{background:var(--shape-drop-not-allowed-fill-color)!important}.djs-container svg.new-parent{background:var(--shape-drop-allowed-fill-color)!important}.djs-container svg:focus{outline-offset:-1px}.djs-outline,.djs-selection-outline{fill:none;shape-rendering:geometricprecision;stroke-width:2px}.djs-outline{visibility:hidden}.djs-selection-outline{stroke:var(--element-selected-outline-stroke-color)}.djs-element.selected .djs-outline{visibility:visible;stroke:var(--element-selected-outline-stroke-color)}.djs-connection.selected .djs-outline{display:none}.djs-multi-select .djs-element.selected .djs-outline,.djs-dragging-active-lasso .djs-element.selected .djs-outline{stroke:var(--element-selected-outline-secondary-stroke-color);display:block}.djs-shape.connect-ok .djs-visual>:first-child{fill:var(--shape-connect-allowed-fill-color)!important}.djs-shape.connect-not-ok .djs-visual>:first-child,.djs-shape.drop-not-ok .djs-visual>:first-child{fill:var(--shape-drop-not-allowed-fill-color)!important}.djs-shape.new-parent .djs-visual>:first-child{fill:var(--shape-drop-allowed-fill-color)!important}.drop-not-ok,.connect-not-ok,.drop-not-ok *,.connect-not-ok *{cursor:not-allowed!important}.drop-ok,.connect-ok,.drop-ok *,.connect-ok *{cursor:default!important}.djs-element.attach-ok .djs-visual>:first-child{stroke-width:5px!important;stroke:var(--shape-attach-allowed-stroke-color)!important}.djs-frame.connect-not-ok .djs-visual>:first-child,.djs-frame.drop-not-ok .djs-visual>:first-child{stroke-width:3px!important;stroke:var(--shape-drop-not-allowed-fill-color)!important;fill:none!important}.djs-lasso-overlay{fill:var(--lasso-fill-color);stroke:var(--lasso-stroke-color);stroke-width:2px;shape-rendering:geometricprecision;pointer-events:none}.djs-resize-overlay{fill:none;stroke-dasharray:5 1 3 1;stroke:var(--shape-resize-preview-stroke-color);pointer-events:none}.djs-resizer-hit{fill:none;pointer-events:all}.djs-resizer-visual{fill:var(--resizer-fill-color);stroke-width:1px;stroke:var(--resizer-stroke-color);shape-rendering:geometricprecision}.djs-resizer:hover .djs-resizer-visual{stroke:var(--resizer-stroke-color);stroke-opacity:1}.djs-cursor-resize-ns,.djs-resizer-n,.djs-resizer-s{cursor:ns-resize}.djs-cursor-resize-ew,.djs-resizer-e,.djs-resizer-w{cursor:ew-resize}.djs-cursor-resize-nwse,.djs-resizer-nw,.djs-resizer-se{cursor:nwse-resize}.djs-cursor-resize-nesw,.djs-resizer-ne,.djs-resizer-sw{cursor:nesw-resize}.djs-shape.djs-resizing>.djs-outline{visibility:hidden!important}.djs-shape.djs-resizing>.djs-resizer,.djs-dragger>.djs-resizer{visibility:hidden}.djs-dragger *{fill:none!important;stroke:var(--element-dragger-color)!important}.djs-dragger tspan,.djs-dragger text,.djs-dragger marker circle,.djs-dragger marker path,.djs-dragger marker polygon,.djs-dragger marker polyline,.djs-dragger marker rect{fill:var(--element-dragger-color)!important;stroke:none!important}.djs-dragger marker text,.djs-dragger marker tspan{fill:none!important;stroke:var(--element-dragger-color)!important}.djs-dragging,.djs-dragging>*{opacity:.3!important;pointer-events:none!important}.djs-visual,.djs-outline{pointer-events:none}.djs-element.attach-ok .djs-hit{stroke-width:60px!important}.djs-element>.djs-hit-all,.djs-element>.djs-hit-no-move{pointer-events:all}.djs-element>.djs-hit-stroke,.djs-element>.djs-hit-click-stroke{pointer-events:stroke}.djs-connection .djs-visual{stroke-width:2px;fill:none}.djs-cursor-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.djs-cursor-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.djs-cursor-crosshair{cursor:crosshair}.djs-cursor-move{cursor:move}.djs-cursor-resize-ns{cursor:ns-resize}.djs-cursor-resize-ew{cursor:ew-resize}.djs-snap-line{stroke:var(--snap-line-stroke-color);stroke-linecap:round;stroke-width:2px;pointer-events:none}.djs-crosshair{stroke:var(--space-tool-crosshair-stroke-color);stroke-linecap:round;stroke-width:1px;pointer-events:none;shape-rendering:geometricprecision;stroke-dasharray:5 5}.djs-palette{box-sizing:border-box;width:48px;position:absolute;top:20px;left:20px}.djs-palette .separator{border:none;border-bottom:solid 1px var(--palette-separator-color);clear:both;margin:5px;padding-top:5px}.djs-palette .entry:before{vertical-align:initial}.djs-palette .djs-palette-toggle{cursor:pointer}.djs-palette .entry,.djs-palette .djs-palette-toggle{color:var(--palette-entry-color);text-align:center;font-size:30px}.djs-palette .entry{float:left}.djs-palette .entry img{max-width:100%}.djs-palette .djs-palette-entries:after{content:"";clear:both;display:table}.djs-palette .djs-palette-toggle:hover{background:var(--palette-toggle-hover-background-color)}.djs-palette .entry:hover{color:var(--palette-entry-hover-color)}.djs-palette .highlighted-entry{color:var(--palette-entry-selected-color)!important}.djs-palette .entry,.djs-palette .djs-palette-toggle{cursor:default;width:46px;height:46px;line-height:46px}.djs-palette.two-column.open{width:94px}.djs-palette:not(.open) .djs-palette-entries{display:none}.djs-palette:not(.open){overflow:hidden}.djs-palette.open .djs-palette-toggle{display:none}.djs-context-pad{pointer-events:none;z-index:100;width:72px;line-height:1;display:none;position:absolute}.djs-context-pad .entry{text-align:center;cursor:default;background-color:var(--context-pad-entry-background-color);width:22px;height:22px;box-shadow:0 0 2px 1px var(--context-pad-entry-background-color);pointer-events:all;vertical-align:middle;border-radius:3px;margin:0 2px 2px 0;font-size:22px;display:inline-block}.djs-context-pad .entry:hover{background:var(--context-pad-entry-hover-background-color)}.djs-context-pad.open{display:block}.djs-popup{box-sizing:border-box;background:var(--popup-background-color);z-index:200;width:min-content;box-shadow:0px 2px 6px var(--popup-shadow-color);border:solid 1px var(--popup-border-color);min-width:120px;line-height:1;font-size:var(--popup-font-size);font-family:var(--popup-font-family);outline:none;position:fixed;overflow:hidden}.djs-popup-search input{box-sizing:border-box;width:100%;font-size:var(--popup-font-size);border:solid 1px var(--popup-search-border-color);border-radius:2px;padding:3px 6px 3px 28px;line-height:21px}.djs-popup-search input:focus{background-color:var(--popup-search-focus-background-color);border:solid 1px var(--popup-search-focus-border-color);outline:none}.djs-popup-header{align-items:stretch;margin:10px 12px;line-height:20px;display:flex}.djs-popup-header .entry{border-radius:2px}.djs-popup button.entry{background:0 0;border:0;padding:0}.djs-popup-header .entry.active{color:var(--popup-header-entry-selected-color)}.djs-popup-header .entry.disabled{color:inherit}.djs-popup-header-group{flex-direction:row;align-items:center;margin:0;padding:0;list-style:none;display:flex}.djs-popup-header-group .entry{flex-direction:row;align-items:center;display:flex}.djs-popup-header-group+.djs-popup-header-group:before{content:"";background:var(--popup-header-group-divider-color);width:1px;height:20px;margin:0 5px}.djs-popup-search{width:auto;margin:10px 12px;position:relative}.djs-popup-title{font-size:var(--popup-font-size);font-weight:var(--popup-header-font-weight);flex:1;margin:0}.djs-popup-breadcrumbs{margin:10px 12px;line-height:20px;display:flex}.djs-popup-breadcrumbs-item{appearance:none;min-width:0;color:var(--popup-description-color);font:inherit;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;outline:none;margin:0;padding:0;display:inline-flex;overflow:hidden}.djs-popup-breadcrumbs-item--separator:before{content:"/";color:var(--popup-description-color);margin:0 4px;display:inline-block}.djs-popup-breadcrumbs-item:hover{color:inherit;text-decoration:underline}.djs-popup-breadcrumbs-item:focus-visible{outline:1px solid var(--popup-search-focus-border-color);outline-offset:2px}.djs-popup-breadcrumbs-item--back{border:1px solid var(--popup-search-border-color);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;margin-right:6px;padding:2px 3px}.djs-popup-breadcrumbs-item--back:hover{background:#f2f3f5}.djs-popup-breadcrumbs-item--current{font-weight:var(--popup-header-font-weight);color:inherit;cursor:default}.djs-popup-breadcrumbs-item--current:hover{text-decoration:none}.djs-popup-entry-chevron{color:var(--popup-description-color);align-items:center;margin-left:6px;display:flex}.djs-popup-search-icon{position:absolute;top:7px;left:8px}.djs-popup-search-count{color:var(--popup-description-color);margin:0 12px;font-size:11px}.djs-popup-results{max-height:280px;margin:7px 3px 7px 12px;padding-right:9px;list-style:none;overflow:auto}.djs-popup-group{width:100%;margin:0;padding:0}.djs-popup-body .entry,.djs-popup-body .entry-header{cursor:default;border-radius:4px;padding:5px 7px}.djs-popup-body .entry-header{font-weight:var(--popup-header-font-weight);color:var(--popup-entry-title-color);padding-left:0}.djs-popup [class*=icon] .djs-popup-label,.djs-popup-label:not(:first-child){margin-left:.5em}.djs-popup [class*=icon]:before,.djs-popup-entry-icon{vertical-align:middle;width:1em;height:1em;font-size:1.4em;display:inline-block}.djs-popup-body .entry-header:not(:first-child){margin-top:8px;margin-bottom:2px}.djs-popup-body .entry{flex-direction:row;align-items:stretch;height:min-content;display:flex}.djs-popup .entry.selected{background-color:var(--popup-entry-hover-color)}.djs-popup .entry.disabled{color:var(--popup-disabled-color);cursor:not-allowed}.djs-popup-body .entry:not(:first-child){margin-top:2px}.djs-popup-entry-content{flex-direction:column;flex:1;display:flex}.djs-popup-entry-description{color:var(--popup-description-color);margin-top:.25em;font-size:.9em}.djs-popup-label,.djs-popup-entry-description{line-height:1.4em}.djs-popup .entry,.djs-popup .entry-header{margin:1px}.djs-popup-body{flex-direction:column;width:auto}.djs-popup ::-webkit-scrollbar{width:6px}.djs-popup ::-webkit-scrollbar-thumb{background-color:#0003;border-radius:3px}.djs-popup ::-webkit-scrollbar-track{box-shadow:none;background:0 0;margin:0;padding:5px}.djs-popup-no-results{color:var(--popup-no-results-color);padding:0 12px 12px}.djs-popup-entry-docs{color:var(--popup-description-color);margin-left:3px;display:none}.djs-popup-body .entry:focus-within .djs-popup-entry-docs,.djs-popup-body .entry:focus .djs-popup-entry-docs,.djs-popup-body .entry:hover .djs-popup-entry-docs{display:inline}.djs-popup-entry-docs svg{vertical-align:middle;margin:2px}.djs-palette{background:var(--palette-background-color);border:solid 1px var(--palette-border-color);border-radius:2px}.djs-segment-dragger,.djs-bendpoint{display:none}.djs-segment-dragger .djs-visual{fill:var(--bendpoint-fill-color);stroke:var(--bendpoint-stroke-color);stroke-width:1px;stroke-opacity:1;display:none}.djs-segment-dragger:hover .djs-visual{display:block}.djs-bendpoint .djs-visual{fill:var(--bendpoint-fill-color);stroke:var(--bendpoint-stroke-color);stroke-width:1px}.djs-segment-dragger:hover,.djs-bendpoints.hover .djs-segment-dragger,.djs-bendpoints.selected .djs-segment-dragger,.djs-bendpoint:hover,.djs-bendpoints.hover .djs-bendpoint,.djs-bendpoints.selected .djs-bendpoint{display:block}.djs-drag-active .djs-bendpoints *,.djs-bendpoints:not(.hover) .floating{display:none}.djs-segment-dragger:hover .djs-visual,.djs-segment-dragger.djs-dragging .djs-visual,.djs-bendpoint:hover .djs-visual,.djs-bendpoint.floating .djs-visual{fill:var(--bendpoint-fill-color);stroke:var(--bendpoint-stroke-color);stroke-opacity:1}.djs-bendpoint.floating .djs-hit{pointer-events:none}.djs-segment-dragger .djs-hit,.djs-bendpoint .djs-hit{fill:none;pointer-events:all}.djs-segment-dragger.horizontal .djs-hit{cursor:ns-resize}.djs-segment-dragger.vertical .djs-hit{cursor:ew-resize}.djs-segment-dragger.djs-dragging .djs-hit{pointer-events:none}.djs-updating,.djs-updating>*{pointer-events:none!important}.djs-updating .djs-context-pad,.djs-updating .djs-outline,.djs-updating .djs-bendpoint,.djs-multi-select .djs-bendpoint,.djs-multi-select .djs-segment-dragger,.connect-ok .djs-bendpoint,.connect-not-ok .djs-bendpoint,.drop-ok .djs-bendpoint,.drop-not-ok .djs-bendpoint{display:none!important}.djs-segment-dragger.djs-dragging,.djs-bendpoint.djs-dragging{opacity:1;display:block}.djs-tooltip-error{background:var(--tooltip-error-background-color);border:solid 1px var(--tooltip-error-border-color);width:160px;color:var(--tooltip-error-color);opacity:.75;border-radius:2px;padding:6px;font-size:12px;line-height:16px}.djs-tooltip-error:hover{opacity:1}.djs-search-open .djs-context-pad{display:none}.djs-search-open .djs-connection.selected .djs-outline{display:block}.djs-search-container{z-index:10;width:25%;min-width:300px;max-width:400px;font-family:var(--search-font-family);font-size:var(--search-font-size);box-shadow:0px 2px 6px var(--search-shadow-color);border-radius:2px;margin-left:auto;margin-right:auto;position:absolute;top:20px;left:0;right:0}.djs-search-container:not(.open){display:none}.djs-search-input{position:relative}.djs-search-input svg{position:absolute;top:7px;left:8px}.djs-search-input input{font-size:var(--search-font-size);border:1px solid var(--search-input-border-color);box-sizing:border-box;border-radius:2px;width:100%;padding:3px 6px 3px 28px;line-height:21px}.djs-search-input input:focus{background-color:var(--search-input-focus-background-color);border:solid 1px var(--search-input-focus-border-color);outline:none}.djs-search-results{background:var(--search-container-background-color);max-height:200px;position:relative;overflow-y:auto}.djs-search-result{padding:6px 8px}.djs-search-result-primary{text-overflow:ellipsis;white-space:nowrap;margin:0 0 3px;overflow:hidden}.djs-search-result-secondary{text-overflow:ellipsis;white-space:nowrap;color:var(--search-result-secondary-color);margin:0;font-family:monospace;overflow:hidden}.djs-search-result:hover,.djs-search-result-selected,.djs-search-result-selected:hover{background:var(--search-result-hover-background-color)}.djs-search-open .djs-element .djs-outline{fill:var(--search-preselected-background-color)!important}.djs-element-hidden,.djs-element-hidden .djs-hit,.djs-element-hidden .djs-outline,.djs-label-hidden .djs-label{display:none!important}.djs-element .djs-hit-stroke,.djs-element .djs-hit-click-stroke,.djs-element .djs-hit-all{cursor:move}:root{--wardley-paper:#fbfaf7;--wardley-ink:#1b1b1a;--wardley-accent:#0e7c74}.wardley-container{background-color:var(--wardley-paper);background-image:radial-gradient(#1b1b1a0a .6px,#0000 .6px);background-size:22px 22px;width:100%;height:100%;font-family:Spline Sans Variable,Spline Sans,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;position:relative;overflow:hidden}.wardley-container .layer-wardley-axes{pointer-events:none}.wardley-container .djs-element text{-webkit-user-select:none;user-select:none}.wardley-container .wardley-evolve-handle{cursor:ew-resize;pointer-events:all}.wardley-container .djs-element.hover>.djs-visual,.wardley-container .djs-element.selected>.djs-visual{filter:brightness(.72)saturate(1.15)}.wardley-container .djs-outline{stroke:#00000073;stroke-dasharray:3 3}.wardley-container .djs-parent{--element-hover-outline-fill-color:#00000073;--element-selected-outline-stroke-color:#00000073;--element-selected-outline-secondary-stroke-color:#0000004d;--lasso-fill-color:#0000000a;--lasso-stroke-color:#00000073}.wardley-container .djs-resizer-visual{fill:#fff;stroke:#0000008c}.wardley-container .djs-resizer-hit{fill:none}.djs-palette{background:#fff;border:1px solid #e7e2d8;border-radius:13px;align-items:center;width:auto;padding:5px 7px;display:flex;top:12px;left:50%;transform:translate(-50%);box-shadow:0 8px 26px #1b1b1a1a}.djs-palette .djs-palette-entries,.djs-palette .group{flex-direction:row;align-items:center;display:flex}.djs-palette .entry{float:none;width:40px;height:40px;color:var(--wardley-ink);border-radius:9px;line-height:normal;transition:background .12s}.djs-palette .entry:hover{background:#0000000d}.wardley-container.wardley-draw-mode,.wardley-container.wardley-draw-mode *{cursor:crosshair!important}.wardley-container .wardley-drawing-handle{cursor:grab;pointer-events:all}.djs-palette .entry.highlighted-entry{color:var(--wardley-ink);background:#0000001a}.djs-palette .group+.group{margin-left:9px;padding-left:9px;position:relative}.djs-palette .group+.group:before{content:"";background:#1b1b1a1a;width:1px;position:absolute;top:6px;bottom:6px;left:0}.wardley-palette-entry{width:100%;min-width:24px;height:100%;min-height:24px;color:var(--wardley-ink);justify-content:center;align-items:center;line-height:1;display:flex}.wardley-palette-svg{display:block}.wardley-container .wardley-cp-entry{width:100%;min-width:24px;height:100%;min-height:24px;color:var(--wardley-ink);justify-content:center;align-items:center;font-size:17px;line-height:1;display:flex}.wardley-container .djs-context-pad .entry{background:#fff;border-radius:8px;transition:background .12s;box-shadow:0 2px 8px #1b1b1a1f}.wardley-container .djs-context-pad .entry:hover{background:#0000000f}.wardley-container .wardley-label-input{border:1.5px solid var(--wardley-accent);z-index:100;background:#fff;border-radius:4px;outline:none;min-width:90px;padding:2px 6px;font-family:inherit;font-size:13px;box-shadow:0 2px 10px #0e7c742e}.wardley-container .wardley-label-textarea{resize:none;white-space:pre;min-width:120px;font-style:italic;line-height:17px}.wardley-container.drag-over:after{content:"Drop Wardley map here (.wmap · .json · .svg · .png)";z-index:200;border:2px dashed var(--wardley-accent);color:var(--wardley-accent);pointer-events:none;background:#0e7c740f;border-radius:12px;justify-content:center;align-items:center;font-size:15px;font-weight:600;display:flex;position:absolute;inset:10px}.wardley-container.wardley-dark{--wardley-paper:#11151b;--wardley-ink:#e8eaed;background-color:var(--wardley-paper);background-image:radial-gradient(#ffffff0d .6px,#0000 .6px)}.wardley-container.wardley-dark .djs-palette{background:#1a2028;border-color:#2a323d}.wardley-container.wardley-dark .djs-palette .entry{color:var(--wardley-ink)}.wardley-container .wardley-color-picker{z-index:300;background:#fff;border:1px solid #00000026;border-radius:10px;grid-template-columns:repeat(3,22px);gap:6px;padding:8px;display:grid;position:absolute;box-shadow:0 6px 24px #00000038}.wardley-container .wardley-cp-swatch{cursor:pointer;border:1px solid #0003;border-radius:5px;width:22px;height:22px;padding:0;transition:transform 80ms}.wardley-container .wardley-cp-swatch:hover{transform:scale(1.1)}.wardley-container .wardley-cp-active{outline:2px solid var(--wardley-ink,#1b1b1a);outline-offset:1px}.wardley-container .wardley-cp-none{background:#fff linear-gradient(45deg,#0000 44%,#d11a2a 45% 55%,#0000 56%)}
2
2
  /*$vite$:1*/
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@miragon/wardley-renderer",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Render and display Wardley maps in the browser, with a viewer and modeler built on diagram-js.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -36,8 +36,8 @@
36
36
  "test:browser": "npm --prefix ../.. run test:browser"
37
37
  },
38
38
  "dependencies": {
39
- "@miragon/wardley-dsl": "0.2.0",
40
- "@miragon/wardley-schema-model": "0.2.0",
39
+ "@miragon/wardley-dsl": "0.2.1",
40
+ "@miragon/wardley-schema-model": "0.2.1",
41
41
  "clsx": "2.1.1",
42
42
  "diagram-js": "15.16.0",
43
43
  "didi": "11.0.0",