@miragon/wardley-renderer 0.0.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 (96) hide show
  1. package/dist/Modeler.d.ts +14 -0
  2. package/dist/Modeler.d.ts.map +1 -0
  3. package/dist/NavigatedViewer.d.ts +10 -0
  4. package/dist/NavigatedViewer.d.ts.map +1 -0
  5. package/dist/Viewer.d.ts +6 -0
  6. package/dist/Viewer.d.ts.map +1 -0
  7. package/dist/WardleyBaseViewer.d.ts +66 -0
  8. package/dist/WardleyBaseViewer.d.ts.map +1 -0
  9. package/dist/append/WardleyAppendBehavior.d.ts +15 -0
  10. package/dist/append/WardleyAppendBehavior.d.ts.map +1 -0
  11. package/dist/append/index.d.ts +9 -0
  12. package/dist/append/index.d.ts.map +1 -0
  13. package/dist/color-picker/WardleyColorPicker.d.ts +23 -0
  14. package/dist/color-picker/WardleyColorPicker.d.ts.map +1 -0
  15. package/dist/color-picker/index.d.ts +5 -0
  16. package/dist/color-picker/index.d.ts.map +1 -0
  17. package/dist/context-pad/WardleyContextPadProvider.d.ts +28 -0
  18. package/dist/context-pad/WardleyContextPadProvider.d.ts.map +1 -0
  19. package/dist/context-pad/index.d.ts +5 -0
  20. package/dist/context-pad/index.d.ts.map +1 -0
  21. package/dist/draw/WardleyRenderer.d.ts +23 -0
  22. package/dist/draw/WardleyRenderer.d.ts.map +1 -0
  23. package/dist/draw/icons.d.ts +70 -0
  24. package/dist/draw/icons.d.ts.map +1 -0
  25. package/dist/draw/index.d.ts +5 -0
  26. package/dist/draw/index.d.ts.map +1 -0
  27. package/dist/draw/palette-icons.d.ts +3 -0
  28. package/dist/draw/palette-icons.d.ts.map +1 -0
  29. package/dist/draw/styles.d.ts +108 -0
  30. package/dist/draw/styles.d.ts.map +1 -0
  31. package/dist/evolution-grid/EvolutionConstraintBehavior.d.ts +16 -0
  32. package/dist/evolution-grid/EvolutionConstraintBehavior.d.ts.map +1 -0
  33. package/dist/evolution-grid/EvolutionGrid.d.ts +39 -0
  34. package/dist/evolution-grid/EvolutionGrid.d.ts.map +1 -0
  35. package/dist/evolution-grid/index.d.ts +8 -0
  36. package/dist/evolution-grid/index.d.ts.map +1 -0
  37. package/dist/evolve/WardleyEvolveDragging.d.ts +21 -0
  38. package/dist/evolve/WardleyEvolveDragging.d.ts.map +1 -0
  39. package/dist/evolve/index.d.ts +4 -0
  40. package/dist/evolve/index.d.ts.map +1 -0
  41. package/dist/index.d.ts +28 -0
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/index.js +1985 -0
  44. package/dist/index.js.map +1 -0
  45. package/dist/io/WardleyExporter.d.ts +19 -0
  46. package/dist/io/WardleyExporter.d.ts.map +1 -0
  47. package/dist/io/WardleyImporter.d.ts +27 -0
  48. package/dist/io/WardleyImporter.d.ts.map +1 -0
  49. package/dist/io/index.d.ts +8 -0
  50. package/dist/io/index.d.ts.map +1 -0
  51. package/dist/io/saveSvg.d.ts +10 -0
  52. package/dist/io/saveSvg.d.ts.map +1 -0
  53. package/dist/io/types.d.ts +13 -0
  54. package/dist/io/types.d.ts.map +1 -0
  55. package/dist/keyboard/WardleyKeyboard.d.ts +13 -0
  56. package/dist/keyboard/WardleyKeyboard.d.ts.map +1 -0
  57. package/dist/keyboard/index.d.ts +5 -0
  58. package/dist/keyboard/index.d.ts.map +1 -0
  59. package/dist/label-editing/WardleyLabelEditing.d.ts +22 -0
  60. package/dist/label-editing/WardleyLabelEditing.d.ts.map +1 -0
  61. package/dist/label-editing/index.d.ts +5 -0
  62. package/dist/label-editing/index.d.ts.map +1 -0
  63. package/dist/model/WardleyElementFactory.d.ts +46 -0
  64. package/dist/model/WardleyElementFactory.d.ts.map +1 -0
  65. package/dist/model/di-types.d.ts +47 -0
  66. package/dist/model/di-types.d.ts.map +1 -0
  67. package/dist/model/index.d.ts +6 -0
  68. package/dist/model/index.d.ts.map +1 -0
  69. package/dist/modeling/WardleyModeling.d.ts +27 -0
  70. package/dist/modeling/WardleyModeling.d.ts.map +1 -0
  71. package/dist/modeling/cmd/UpdatePropertiesHandler.d.ts +18 -0
  72. package/dist/modeling/cmd/UpdatePropertiesHandler.d.ts.map +1 -0
  73. package/dist/modeling/index.d.ts +6 -0
  74. package/dist/modeling/index.d.ts.map +1 -0
  75. package/dist/palette/WardleyPaletteProvider.d.ts +12 -0
  76. package/dist/palette/WardleyPaletteProvider.d.ts.map +1 -0
  77. package/dist/palette/index.d.ts +5 -0
  78. package/dist/palette/index.d.ts.map +1 -0
  79. package/dist/pan-constraint/PanConstraint.d.ts +18 -0
  80. package/dist/pan-constraint/PanConstraint.d.ts.map +1 -0
  81. package/dist/pan-constraint/index.d.ts +4 -0
  82. package/dist/pan-constraint/index.d.ts.map +1 -0
  83. package/dist/popup/WardleyElementSettingsProvider.d.ts +17 -0
  84. package/dist/popup/WardleyElementSettingsProvider.d.ts.map +1 -0
  85. package/dist/popup/index.d.ts +5 -0
  86. package/dist/popup/index.d.ts.map +1 -0
  87. package/dist/rules/WardleyRules.d.ts +13 -0
  88. package/dist/rules/WardleyRules.d.ts.map +1 -0
  89. package/dist/rules/index.d.ts +5 -0
  90. package/dist/rules/index.d.ts.map +1 -0
  91. package/dist/snapping/StageSnapping.d.ts +12 -0
  92. package/dist/snapping/StageSnapping.d.ts.map +1 -0
  93. package/dist/snapping/index.d.ts +5 -0
  94. package/dist/snapping/index.d.ts.map +1 -0
  95. package/dist/wardley.css +2 -0
  96. package/package.json +43 -0
@@ -0,0 +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"}
@@ -0,0 +1,5 @@
1
+ import { ModuleDeclaration } from 'didi';
2
+ /** Custom inline label editing (HTML overlay). */
3
+ export declare const labelEditingModule: ModuleDeclaration;
4
+ export { default as WardleyLabelEditing } from './WardleyLabelEditing.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/label-editing/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAG9C,kDAAkD;AAClD,eAAO,MAAM,kBAAkB,EAAE,iBAGhC,CAAC;AAEF,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { default as ElementFactory } from 'diagram-js/lib/core/ElementFactory';
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';
4
+ import { default as EvolutionGrid } from '../evolution-grid/EvolutionGrid.js';
5
+ import { WardleyConnection, WardleyShape } from './di-types.js';
6
+ export interface CreateNewExtra {
7
+ attitudeKind?: AttitudeKind;
8
+ acceleratorDirection?: AcceleratorDirection;
9
+ annotationNumber?: number;
10
+ market?: boolean;
11
+ ecosystem?: boolean;
12
+ }
13
+ /**
14
+ * Creates diagram-js runtime elements with Wardley markers. Projects normalized coordinates to
15
+ * pixels via the SINGLE math source (EvolutionGrid, P7).
16
+ */
17
+ export default class WardleyElementFactory {
18
+ private readonly elementFactory;
19
+ private readonly grid;
20
+ private readonly elementRegistry;
21
+ static $inject: string[];
22
+ constructor(elementFactory: ElementFactory, grid: EvolutionGrid, elementRegistry: ElementRegistry);
23
+ /**
24
+ * Returns a unique label: `base`, otherwise `base 2`, `base 3`, … Unique labels are mandatory
25
+ * because the OWM DSL references elements BY THEIR NAME — duplicate names would cause ID
26
+ * collisions on serialize/re-import and lose edges (lines).
27
+ *
28
+ * @param excludeId optional ID of the element currently being renamed (does NOT count its own
29
+ * current name as a collision — otherwise every rename would add a suffix).
30
+ */
31
+ uniqueLabel(base: string, excludeId?: string): string;
32
+ createComponent(el: ComponentElement): WardleyShape;
33
+ createAnchor(el: AnchorElement): WardleyShape;
34
+ createNote(el: NoteElement): WardleyShape;
35
+ createPipeline(el: PipelineElement): WardleyShape;
36
+ createAnnotation(el: AnnotationElement): WardleyShape;
37
+ createAccelerator(el: AcceleratorElement): WardleyShape;
38
+ createAttitude(el: AttitudeElement): WardleyShape;
39
+ createSubmap(el: SubmapElement): WardleyShape;
40
+ createNew(type: WardleyShape['wardleyType'], rawLabel: string, extra?: CreateNewExtra): WardleyShape;
41
+ createDependency(edge: MapEdge, source: WardleyShape, target: WardleyShape): WardleyConnection;
42
+ createFlow(edge: MapEdge, source: WardleyShape, target: WardleyShape): WardleyConnection;
43
+ private node;
44
+ private connection;
45
+ }
46
+ //# sourceMappingURL=WardleyElementFactory.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,47 @@
1
+ import { Shape, Connection } from 'diagram-js/lib/model/Types';
2
+ import { AcceleratorDirection, AttitudeKind, ComponentDecorators, MapEdge, MapElement, Movement } from '@miragon/wardley-schema-model';
3
+ /**
4
+ * diagram-js runtime model with Wardley extensions.
5
+ *
6
+ * The positional truth while editing is `evolution`/`visibility` (normalized), NOT `x`/`y` (pixels)
7
+ * and NOT the `businessObject` (concept doc §2.2, §5.6).
8
+ * `businessObject` is the identity/metadata backref to the original model element.
9
+ */
10
+ export type WardleyShapeType = 'component' | 'anchor' | 'pipeline' | 'note' | 'annotation' | 'attitude' | 'submap' | 'accelerator';
11
+ export type WardleyConnectionType = 'dependency' | 'flow';
12
+ export interface WardleyShape extends Shape {
13
+ wardleyType: WardleyShapeType;
14
+ /** normalized [0,1] — runtime truth of the X position. */
15
+ evolution: number;
16
+ /** normalized [0,1] — runtime truth of the Y position. */
17
+ visibility: number;
18
+ /** Display text (separate from diagram-js `label`, which references a label element). */
19
+ wardleyLabel: string;
20
+ decorators?: ComponentDecorators;
21
+ movement?: Movement;
22
+ /** pipeline only: evolution range. */
23
+ evolutionStart?: number;
24
+ evolutionEnd?: number;
25
+ /** annotation only. */
26
+ annotationNumber?: number;
27
+ /** attitude region only. */
28
+ attitudeKind?: AttitudeKind;
29
+ /** accelerator only. */
30
+ acceleratorDirection?: AcceleratorDirection;
31
+ /** note only: optional color (CSS color/hex from NOTE_COLORS). */
32
+ color?: string;
33
+ businessObject?: MapElement;
34
+ }
35
+ export interface WardleyConnection extends Connection {
36
+ wardleyType: WardleyConnectionType;
37
+ bidirectional?: boolean;
38
+ flowValue?: string;
39
+ /** annotation text after `;` (e.g. "limited by"). */
40
+ linkLabel?: string;
41
+ businessObject?: MapEdge;
42
+ }
43
+ export declare function isWardleyShape(el: unknown): el is WardleyShape;
44
+ export declare function isWardleyConnection(el: unknown): el is WardleyConnection;
45
+ export declare function isComponent(el: unknown): el is WardleyShape;
46
+ export declare function isPipeline(el: unknown): el is WardleyShape;
47
+ //# sourceMappingURL=di-types.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,6 @@
1
+ import { ModuleDeclaration } from 'didi';
2
+ /** Custom ElementFactory with Wardley defaults and pixel projection. */
3
+ export declare const wardleyModelModule: ModuleDeclaration;
4
+ export { default as WardleyElementFactory } from './WardleyElementFactory.js';
5
+ export * from './di-types.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAG9C,wEAAwE;AACxE,eAAO,MAAM,kBAAkB,EAAE,iBAEhC,CAAC;AAEF,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAC9E,cAAc,eAAe,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { default as CommandStack } from 'diagram-js/lib/command/CommandStack';
2
+ import { Method } from '@miragon/wardley-schema-model';
3
+ import { WardleyShape } from '../model/di-types.js';
4
+ export interface EvolveOptions {
5
+ newLabel?: string;
6
+ method?: Method;
7
+ }
8
+ /**
9
+ * High-level mutations on Wardley shapes that run through the commandStack (undo/redo, P4).
10
+ * Registers the generic UpdatePropertiesHandler at bootstrap.
11
+ */
12
+ export default class WardleyModeling {
13
+ private readonly commandStack;
14
+ static $inject: string[];
15
+ constructor(commandStack: CommandStack);
16
+ updateProperties(element: WardleyShape, properties: Record<string, unknown>): void;
17
+ updateLabel(element: WardleyShape, label: string): void;
18
+ evolveComponent(element: WardleyShape, targetEvolution: number, opts?: EvolveOptions): void;
19
+ clearMovement(element: WardleyShape): void;
20
+ toggleInertia(element: WardleyShape): void;
21
+ setMethod(element: WardleyShape, method: Method | undefined): void;
22
+ /** Sets market/ecosystem (mutually exclusive) or removes both (`undefined`). */
23
+ setMarketEcosystem(element: WardleyShape, kind: 'market' | 'ecosystem' | undefined): void;
24
+ /** Sets the note color (CSS color/hex) or removes it (`undefined` = default color). */
25
+ setColor(element: WardleyShape, color: string | undefined): void;
26
+ }
27
+ //# sourceMappingURL=WardleyModeling.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,18 @@
1
+ import { ElementLike } from 'diagram-js/lib/core/Types';
2
+ import { default as CommandHandler } from 'diagram-js/lib/command/CommandHandler';
3
+ export interface UpdatePropertiesContext {
4
+ element: ElementLike & Record<string, unknown>;
5
+ properties: Record<string, unknown>;
6
+ /** set internally by the handler (for revert). */
7
+ oldProperties?: Record<string, unknown>;
8
+ }
9
+ /**
10
+ * Generic, undoable command handler for setting arbitrary Wardley properties
11
+ * (wardleyLabel, decorators, movement, evolutionStart/End, ...). Returns the changed element
12
+ * -> CommandStack fires `elements.changed` -> re-render.
13
+ */
14
+ export default class UpdatePropertiesHandler implements CommandHandler {
15
+ execute(context: UpdatePropertiesContext): ElementLike[];
16
+ revert(context: UpdatePropertiesContext): ElementLike[];
17
+ }
18
+ //# sourceMappingURL=UpdatePropertiesHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpdatePropertiesHandler.d.ts","sourceRoot":"","sources":["../../../src/modeling/cmd/UpdatePropertiesHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,cAAc,MAAM,uCAAuC,CAAC;AAExE,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,kDAAkD;IAClD,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC;AAOD;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,uBAAwB,YAAW,cAAc;IACpE,OAAO,CAAC,OAAO,EAAE,uBAAuB,GAAG,WAAW,EAAE;IAYxD,MAAM,CAAC,OAAO,EAAE,uBAAuB,GAAG,WAAW,EAAE;CAQxD"}
@@ -0,0 +1,6 @@
1
+ import { ModuleDeclaration } from 'didi';
2
+ /** High-level Wardley mutations + registration of the custom command handlers. */
3
+ export declare const wardleyModelingModule: ModuleDeclaration;
4
+ export { default as WardleyModeling } from './WardleyModeling.js';
5
+ export type { EvolveOptions } from './WardleyModeling.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,12 @@
1
+ import { default as Palette } from 'diagram-js/lib/features/palette/Palette';
2
+ import { default as Create } from 'diagram-js/lib/features/create/Create';
3
+ import { PaletteEntries, default as PaletteProvider } from 'diagram-js/lib/features/palette/PaletteProvider';
4
+ import { default as WardleyElementFactory } from '../model/WardleyElementFactory.js';
5
+ export default class WardleyPaletteProvider implements PaletteProvider {
6
+ private readonly create;
7
+ private readonly factory;
8
+ static $inject: string[];
9
+ constructor(palette: Palette, create: Create, factory: WardleyElementFactory);
10
+ getPaletteEntries(): PaletteEntries;
11
+ }
12
+ //# sourceMappingURL=WardleyPaletteProvider.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,5 @@
1
+ import { ModuleDeclaration } from 'didi';
2
+ /** Tool palette (drag-to-create). */
3
+ export declare const wardleyPaletteModule: ModuleDeclaration;
4
+ export { default as WardleyPaletteProvider } from './WardleyPaletteProvider.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/palette/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAG9C,qCAAqC;AACrC,eAAO,MAAM,oBAAoB,EAAE,iBAGlC,CAAC;AAEF,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,18 @@
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 EvolutionGrid } from '../evolution-grid/EvolutionGrid.js';
4
+ /**
5
+ * Keeps the map in view while scrolling and zooming.
6
+ * Without this the user could scroll the map completely off-screen into empty space.
7
+ * After every move we pull the visible area back so it stays close to the map,
8
+ * leaving only a small margin of empty space around it.
9
+ */
10
+ export default class PanConstraint {
11
+ private readonly canvas;
12
+ private readonly grid;
13
+ static $inject: string[];
14
+ private applying;
15
+ constructor(eventBus: EventBus, canvas: Canvas, grid: EvolutionGrid);
16
+ private constrain;
17
+ }
18
+ //# sourceMappingURL=PanConstraint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PanConstraint.d.ts","sourceRoot":"","sources":["../../src/pan-constraint/PanConstraint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,aAAa,MAAM,oCAAoC,CAAC;AAsBpE;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,aAAa;IAO9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAPvB,MAAM,CAAC,OAAO,WAA2C;IAEzD,OAAO,CAAC,QAAQ,CAAS;gBAGvB,QAAQ,EAAE,QAAQ,EACD,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,aAAa;IAQtC,OAAO,CAAC,SAAS;CAuClB"}
@@ -0,0 +1,4 @@
1
+ import { ModuleDeclaration } from 'didi';
2
+ export declare const PanConstraintModule: ModuleDeclaration;
3
+ export { default as PanConstraint } from './PanConstraint.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pan-constraint/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAG9C,eAAO,MAAM,mBAAmB,EAAE,iBAGjC,CAAC;AAEF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { default as PopupMenu, PopupMenuTarget } from 'diagram-js/lib/features/popup-menu/PopupMenu';
2
+ import { PopupMenuEntries, default as PopupMenuProvider } from 'diagram-js/lib/features/popup-menu/PopupMenuProvider';
3
+ import { default as WardleyModeling } from '../modeling/WardleyModeling.js';
4
+ export declare const POPUP_PROVIDER_ID = "wardley-element-settings";
5
+ /**
6
+ * Popup submenu (opened via the context pad gear) for directly setting type (normal/market/
7
+ * ecosystem), sourcing (build/buy/outsource) and inertia — instead of cycle buttons.
8
+ * All actions go through `wardleyModeling` (undo/redo).
9
+ */
10
+ export default class WardleyElementSettingsProvider implements PopupMenuProvider {
11
+ private readonly modeling;
12
+ static $inject: string[];
13
+ constructor(popupMenu: PopupMenu, modeling: WardleyModeling);
14
+ getPopupMenuEntries(target: PopupMenuTarget): PopupMenuEntries;
15
+ private componentEntries;
16
+ }
17
+ //# sourceMappingURL=WardleyElementSettingsProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WardleyElementSettingsProvider.d.ts","sourceRoot":"","sources":["../../src/popup/WardleyElementSettingsProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,8CAA8C,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AACpF,OAAO,KAAK,EACV,gBAAgB,EAChB,OAAO,IAAI,iBAAiB,EAC7B,MAAM,sDAAsD,CAAC;AAE9D,OAAO,KAAK,eAAe,MAAM,gCAAgC,CAAC;AAElE,eAAO,MAAM,iBAAiB,6BAA6B,CAAC;AAU5D;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,8BAA+B,YAAW,iBAAiB;IAK5E,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAJ3B,MAAM,CAAC,OAAO,WAAoC;gBAGhD,SAAS,EAAE,SAAS,EACH,QAAQ,EAAE,eAAe;IAK5C,mBAAmB,CAAC,MAAM,EAAE,eAAe,GAAG,gBAAgB;IAM9D,OAAO,CAAC,gBAAgB;CAgDzB"}
@@ -0,0 +1,5 @@
1
+ import { ModuleDeclaration } from 'didi';
2
+ /** Popup submenu for element settings (type/sourcing/inertia). */
3
+ export declare const wardleyPopupModule: ModuleDeclaration;
4
+ export { default as WardleyElementSettingsProvider, POPUP_PROVIDER_ID, } from './WardleyElementSettingsProvider.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/popup/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAG9C,kEAAkE;AAClE,eAAO,MAAM,kBAAkB,EAAE,iBAGhC,CAAC;AAEF,OAAO,EACL,OAAO,IAAI,8BAA8B,EACzC,iBAAiB,GAClB,MAAM,qCAAqC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { default as RuleProvider } from 'diagram-js/lib/features/rules/RuleProvider';
2
+ import { default as EventBus } from 'diagram-js/lib/core/EventBus';
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.
7
+ */
8
+ export default class WardleyRules extends RuleProvider {
9
+ static $inject: string[];
10
+ constructor(eventBus: EventBus);
11
+ init(): void;
12
+ }
13
+ //# sourceMappingURL=WardleyRules.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,5 @@
1
+ import { ModuleDeclaration } from 'didi';
2
+ /** Allowed Wardley operations (RuleProvider). */
3
+ export declare const wardleyRulesModule: ModuleDeclaration;
4
+ export { default as WardleyRules } from './WardleyRules.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAG9C,iDAAiD;AACjD,eAAO,MAAM,kBAAkB,EAAE,iBAGhC,CAAC;AAEF,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { default as EventBus } from 'diagram-js/lib/core/EventBus';
2
+ import { default as EvolutionGrid } from '../evolution-grid/EvolutionGrid.js';
3
+ /**
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.
7
+ */
8
+ export default class StageSnapping {
9
+ static $inject: string[];
10
+ constructor(eventBus: EventBus, grid: EvolutionGrid);
11
+ }
12
+ //# sourceMappingURL=StageSnapping.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,5 @@
1
+ import { ModuleDeclaration } from 'didi';
2
+ /** Snapping to the evolution stage boundaries (editor-only). */
3
+ export declare const stageSnappingModule: ModuleDeclaration;
4
+ export { default as StageSnapping } from './StageSnapping.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/snapping/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAG9C,gEAAgE;AAChE,eAAO,MAAM,mBAAmB,EAAE,iBAGjC,CAAC;AAEF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +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%)}
2
+ /*$vite$:1*/
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@miragon/wardley-renderer",
3
+ "version": "0.0.0",
4
+ "description": "diagram-js-based Wardley renderer: Viewer / NavigatedViewer / (Modeler). DOM-dependent.",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "sideEffects": [
8
+ "**/*.css"
9
+ ],
10
+ "exports": {
11
+ ".": {
12
+ "types": "./dist/index.d.ts",
13
+ "import": "./dist/index.js"
14
+ },
15
+ "./assets/wardley.css": "./dist/wardley.css",
16
+ "./package.json": "./package.json"
17
+ },
18
+ "module": "./dist/index.js",
19
+ "types": "./dist/index.d.ts",
20
+ "files": [
21
+ "dist"
22
+ ],
23
+ "scripts": {
24
+ "build": "vite build",
25
+ "test": "npm --prefix ../.. run test",
26
+ "test:browser": "npm --prefix ../.. run test:browser"
27
+ },
28
+ "dependencies": {
29
+ "@miragon/wardley-dsl": "0.0.0",
30
+ "@miragon/wardley-schema-model": "0.0.0",
31
+ "clsx": "2.1.1",
32
+ "diagram-js": "15.16.0",
33
+ "didi": "11.0.0",
34
+ "tiny-svg": "4.1.4"
35
+ },
36
+ "devDependencies": {
37
+ "jsdom": "29.1.1",
38
+ "typescript": "6.0.3",
39
+ "vite": "8.0.16",
40
+ "vite-plugin-dts": "5.0.2",
41
+ "vitest": "4.1.8"
42
+ }
43
+ }