@formicoidea/labre-framework-uml 0.42.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +384 -0
- package/dist/actions.d.ts +430 -0
- package/dist/actions.js +724 -0
- package/dist/background.d.ts +153 -0
- package/dist/background.js +557 -0
- package/dist/board-hit.d.ts +137 -0
- package/dist/board-hit.js +191 -0
- package/dist/commands-manifest.d.ts +19 -0
- package/dist/commands-manifest.js +571 -0
- package/dist/commands.d.ts +4 -0
- package/dist/commands.js +983 -0
- package/dist/component.d.ts +521 -0
- package/dist/component.js +708 -0
- package/dist/consts.d.ts +365 -0
- package/dist/consts.js +463 -0
- package/dist/descriptor.d.ts +12 -0
- package/dist/descriptor.js +10 -0
- package/dist/drawio-decode.d.ts +32 -0
- package/dist/drawio-decode.js +96 -0
- package/dist/drawio-import.d.ts +133 -0
- package/dist/drawio-import.js +885 -0
- package/dist/edge-morph.d.ts +154 -0
- package/dist/edge-morph.js +153 -0
- package/dist/edge-styles.d.ts +78 -0
- package/dist/edge-styles.js +210 -0
- package/dist/effects.d.ts +9 -0
- package/dist/effects.js +6 -0
- package/dist/element-renderer.d.ts +64 -0
- package/dist/element-renderer.js +114 -0
- package/dist/element-view.d.ts +234 -0
- package/dist/element-view.js +430 -0
- package/dist/export.d.ts +61 -0
- package/dist/export.js +41 -0
- package/dist/filename.d.ts +17 -0
- package/dist/filename.js +26 -0
- package/dist/frame-tag.d.ts +70 -0
- package/dist/frame-tag.js +78 -0
- package/dist/grammar.d.ts +695 -0
- package/dist/grammar.js +1436 -0
- package/dist/import.d.ts +306 -0
- package/dist/import.js +1270 -0
- package/dist/index.d.ts +47 -0
- package/dist/index.js +67 -0
- package/dist/interchange.d.ts +125 -0
- package/dist/interchange.js +372 -0
- package/dist/keywords.d.ts +204 -0
- package/dist/keywords.js +361 -0
- package/dist/kinds.d.ts +73 -0
- package/dist/kinds.js +91 -0
- package/dist/legend.d.ts +30 -0
- package/dist/legend.js +255 -0
- package/dist/model.d.ts +862 -0
- package/dist/model.js +1316 -0
- package/dist/morph.d.ts +178 -0
- package/dist/morph.js +496 -0
- package/dist/node/act-glyphs.d.ts +30 -0
- package/dist/node/act-glyphs.js +142 -0
- package/dist/node/compartment-watcher.d.ts +107 -0
- package/dist/node/compartment-watcher.js +163 -0
- package/dist/node/fit.d.ts +85 -0
- package/dist/node/fit.js +129 -0
- package/dist/node/node-renderer.d.ts +49 -0
- package/dist/node/node-renderer.js +611 -0
- package/dist/node/node-view.d.ts +51 -0
- package/dist/node/node-view.js +89 -0
- package/dist/node/paint.d.ts +84 -0
- package/dist/node/paint.js +143 -0
- package/dist/node/sd-glyphs.d.ts +36 -0
- package/dist/node/sd-glyphs.js +79 -0
- package/dist/node/stm-glyphs.d.ts +22 -0
- package/dist/node/stm-glyphs.js +111 -0
- package/dist/node/tier-metrics.d.ts +38 -0
- package/dist/node/tier-metrics.js +45 -0
- package/dist/operators.d.ts +45 -0
- package/dist/operators.js +75 -0
- package/dist/plantuml-import.d.ts +113 -0
- package/dist/plantuml-import.js +1723 -0
- package/dist/plantuml.d.ts +94 -0
- package/dist/plantuml.js +985 -0
- package/dist/presets.d.ts +149 -0
- package/dist/presets.js +302 -0
- package/dist/profiles.d.ts +2 -0
- package/dist/profiles.js +358 -0
- package/dist/reading.d.ts +160 -0
- package/dist/reading.js +648 -0
- package/dist/roles.d.ts +257 -0
- package/dist/roles.js +997 -0
- package/dist/rules.d.ts +267 -0
- package/dist/rules.js +3090 -0
- package/dist/templates.d.ts +2 -0
- package/dist/templates.js +197 -0
- package/dist/toolbar/config.d.ts +228 -0
- package/dist/toolbar/config.js +833 -0
- package/dist/toolbar/icons.d.ts +440 -0
- package/dist/toolbar/icons.js +711 -0
- package/dist/toolbar/senior-tool.d.ts +11 -0
- package/dist/toolbar/senior-tool.js +21 -0
- package/dist/toolbar/uml-menu.d.ts +17 -0
- package/dist/toolbar/uml-menu.js +20 -0
- package/dist/toolbar/uml-senior-button.d.ts +18 -0
- package/dist/toolbar/uml-senior-button.js +22 -0
- package/dist/translations.d.ts +27 -0
- package/dist/translations.js +117 -0
- package/dist/view.d.ts +33 -0
- package/dist/view.js +236 -0
- package/dist/xmi-import.d.ts +174 -0
- package/dist/xmi-import.js +2268 -0
- package/dist/xmi.d.ts +61 -0
- package/dist/xmi.js +1860 -0
- package/dist/xml-reader.d.ts +157 -0
- package/dist/xml-reader.js +430 -0
- package/dist/xml.d.ts +72 -0
- package/dist/xml.js +96 -0
- package/package.json +38 -0
|
@@ -0,0 +1,711 @@
|
|
|
1
|
+
import { svg } from 'lit';
|
|
2
|
+
import { UML_CARD, UML_FRAME_INK, UML_INK } from '../consts.js';
|
|
3
|
+
/**
|
|
4
|
+
* The UML senior-button tile: a class box with its two compartment separators,
|
|
5
|
+
* beside a use-case ellipse — the two shapes the pack's two diagram families
|
|
6
|
+
* are recognised by, in one glyph.
|
|
7
|
+
*
|
|
8
|
+
* The one tile of this file, and unlike C4's it is NOT coloured: UML 2.5.1 has
|
|
9
|
+
* no stencil palette of its own (§7 draws in ink on paper), so the tile reads
|
|
10
|
+
* off the shared neutral scale exactly as the canvas does — `UML_INK` for the
|
|
11
|
+
* outlines, `UML_CARD` for the body, `UML_FRAME_INK` for the ellipse that
|
|
12
|
+
* stands a shade back (R33: never a grey hex literal here).
|
|
13
|
+
*
|
|
14
|
+
* Everything below it is a 24×24 monochrome outline drawn in `currentColor`,
|
|
15
|
+
* because a command glyph sits in a menu row and takes the row's colour.
|
|
16
|
+
*/
|
|
17
|
+
export const umlToolbarIcon = svg `
|
|
18
|
+
<svg viewBox="0 0 56 56" width="100%" height="100%" fill="none"
|
|
19
|
+
xmlns="http://www.w3.org/2000/svg">
|
|
20
|
+
<rect x="4" y="9" width="26" height="30" rx="1.5" fill="${UML_CARD}"
|
|
21
|
+
stroke="${UML_INK}" stroke-width="2"/>
|
|
22
|
+
<path d="M4 19 H30 M4 29 H30" stroke="${UML_INK}" stroke-width="2"/>
|
|
23
|
+
<rect x="9" y="12.5" width="16" height="3" rx="1.5" fill="${UML_INK}"/>
|
|
24
|
+
<rect x="9" y="22.5" width="12" height="2.5" rx="1.25" fill="${UML_FRAME_INK}"
|
|
25
|
+
opacity="0.75"/>
|
|
26
|
+
<rect x="9" y="32.5" width="14" height="2.5" rx="1.25" fill="${UML_FRAME_INK}"
|
|
27
|
+
opacity="0.75"/>
|
|
28
|
+
<ellipse cx="39.5" cy="35" rx="13" ry="9" fill="${UML_CARD}"
|
|
29
|
+
stroke="${UML_FRAME_INK}" stroke-width="2"/>
|
|
30
|
+
<rect x="33" y="33.5" width="13" height="3" rx="1.5" fill="${UML_FRAME_INK}"
|
|
31
|
+
opacity="0.75"/>
|
|
32
|
+
</svg>
|
|
33
|
+
`;
|
|
34
|
+
/* ── The sheet and the frame drawn round part of it ─────────────────────── */
|
|
35
|
+
/**
|
|
36
|
+
* Class diagram — the frame of §C.2's diagram notation: a rectangle with the
|
|
37
|
+
* cut-corner name tag in its top-left corner, which is what tells a UML frame
|
|
38
|
+
* from any other box on the canvas.
|
|
39
|
+
*/
|
|
40
|
+
export const umlDiagramIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
41
|
+
<rect x="2.5" y="4" width="19" height="16" rx="1.2" stroke="currentColor" stroke-width="1.6"/>
|
|
42
|
+
<path d="M2.5 4 H11 L13 6.4 V9 H2.5 Z" stroke="currentColor" stroke-width="1.4" stroke-linejoin="round"/>
|
|
43
|
+
</svg>`;
|
|
44
|
+
/**
|
|
45
|
+
* Subject — the rectangle a use-case diagram draws round the use cases that
|
|
46
|
+
* belong to one system (§18.1.1): a plain frame, its name along the top.
|
|
47
|
+
*/
|
|
48
|
+
export const umlSubjectIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
49
|
+
<rect x="3" y="4.5" width="18" height="15" rx="1.2" stroke="currentColor" stroke-width="1.6"/>
|
|
50
|
+
<path d="M6 8 H14" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"/>
|
|
51
|
+
<ellipse cx="12" cy="14.5" rx="5.5" ry="3" stroke="currentColor" stroke-width="1.3"/>
|
|
52
|
+
</svg>`;
|
|
53
|
+
/* ── The classifiers: the three-compartment box and what varies on it ───── */
|
|
54
|
+
/** Class — the canonical three-compartment rectangle (§11.4.4). */
|
|
55
|
+
export const umlClassIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
56
|
+
<rect x="4" y="3.5" width="16" height="17" rx="1.2" stroke="currentColor" stroke-width="1.6"/>
|
|
57
|
+
<path d="M4 9 H20 M4 15 H20" stroke="currentColor" stroke-width="1.4"/>
|
|
58
|
+
</svg>`;
|
|
59
|
+
/**
|
|
60
|
+
* Interface — the same box, with the guillemets keyword above the name
|
|
61
|
+
* (§10.4.2.1). Drawn as the two chevrons, which is the whole of what
|
|
62
|
+
* `«interface»` looks like at this size.
|
|
63
|
+
*/
|
|
64
|
+
export const umlInterfaceIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
65
|
+
<rect x="4" y="3.5" width="16" height="17" rx="1.2" stroke="currentColor" stroke-width="1.6"/>
|
|
66
|
+
<path d="M4 15 H20" stroke="currentColor" stroke-width="1.4"/>
|
|
67
|
+
<path d="M10 7 L8 9.2 L10 11.4 M14 7 L16 9.2 L14 11.4" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/>
|
|
68
|
+
</svg>`;
|
|
69
|
+
/**
|
|
70
|
+
* Enumeration — the box whose lower compartment is a LIST of literals
|
|
71
|
+
* (§10.2.4): three stacked rules rather than the two tiers of a class.
|
|
72
|
+
*/
|
|
73
|
+
export const umlEnumerationIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
74
|
+
<rect x="4" y="3.5" width="16" height="17" rx="1.2" stroke="currentColor" stroke-width="1.6"/>
|
|
75
|
+
<path d="M4 9 H20" stroke="currentColor" stroke-width="1.4"/>
|
|
76
|
+
<path d="M7 12 H17 M7 15 H17 M7 18 H13" stroke="currentColor" stroke-width="1.3" stroke-linecap="round"/>
|
|
77
|
+
</svg>`;
|
|
78
|
+
/**
|
|
79
|
+
* Object — an instance specification: the same box with its name UNDERLINED,
|
|
80
|
+
* which is the one notation that tells an instance from its classifier
|
|
81
|
+
* (§9.8.4).
|
|
82
|
+
*/
|
|
83
|
+
export const umlObjectIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
84
|
+
<rect x="4" y="3.5" width="16" height="17" rx="1.2" stroke="currentColor" stroke-width="1.6"/>
|
|
85
|
+
<path d="M4 11 H20" stroke="currentColor" stroke-width="1.4"/>
|
|
86
|
+
<path d="M7.5 8.4 H16.5" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"/>
|
|
87
|
+
</svg>`;
|
|
88
|
+
/** Package — the folder: a tab over a body (§12.2.4). */
|
|
89
|
+
export const umlPackageIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
90
|
+
<path d="M3 6.5 H10 L11.6 9 H21 V19 H3 Z" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/>
|
|
91
|
+
<path d="M3 9 H11.6" stroke="currentColor" stroke-width="1.4"/>
|
|
92
|
+
</svg>`;
|
|
93
|
+
/** Note — the rectangle with its top-right corner turned down (§7.5.4). */
|
|
94
|
+
export const umlNoteIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
95
|
+
<path d="M4 4.5 H15.5 L20 9 V19.5 H4 Z" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/>
|
|
96
|
+
<path d="M15.5 4.5 V9 H20" stroke="currentColor" stroke-width="1.4" stroke-linejoin="round"/>
|
|
97
|
+
</svg>`;
|
|
98
|
+
/** Actor — the stick figure (§18.1.1). */
|
|
99
|
+
export const umlActorIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
100
|
+
<circle cx="12" cy="5.5" r="2.6" stroke="currentColor" stroke-width="1.6"/>
|
|
101
|
+
<path d="M12 8.5 V15 M7 11 H17 M12 15 L8.5 20 M12 15 L15.5 20" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"/>
|
|
102
|
+
</svg>`;
|
|
103
|
+
/** Use case — the ellipse, and nothing else (§18.1.1). */
|
|
104
|
+
export const umlUseCaseIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
105
|
+
<ellipse cx="12" cy="12" rx="9" ry="6" stroke="currentColor" stroke-width="1.6"/>
|
|
106
|
+
</svg>`;
|
|
107
|
+
/* ── Phase 2: what a component diagram is made of ───────────────────────── */
|
|
108
|
+
/**
|
|
109
|
+
* Component — the rectangle with the two protruding tabs on its left edge
|
|
110
|
+
* (§11.6.4). The one classifier UML announces with a MARK rather than with a
|
|
111
|
+
* keyword, which is why the glyph is the mark and not a box with words in it.
|
|
112
|
+
*/
|
|
113
|
+
export const umlComponentIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
114
|
+
<rect x="7" y="4.5" width="13" height="15" rx="1.2" stroke="currentColor" stroke-width="1.6"/>
|
|
115
|
+
<rect x="4" y="7.5" width="6" height="3.5" rx="0.6" stroke="currentColor" stroke-width="1.4"/>
|
|
116
|
+
<rect x="4" y="13" width="6" height="3.5" rx="0.6" stroke="currentColor" stroke-width="1.4"/>
|
|
117
|
+
</svg>`;
|
|
118
|
+
/**
|
|
119
|
+
* Port — the small square straddling the border of what owns it (§11.3.4).
|
|
120
|
+
* FILLED, and drawn half in and half out, because the whole of what a port
|
|
121
|
+
* means is that it sits ON the boundary: a square inside the box would be a
|
|
122
|
+
* part, and one outside it would be a neighbour.
|
|
123
|
+
*/
|
|
124
|
+
export const umlPortIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
125
|
+
<rect x="3" y="5" width="13" height="14" rx="1.2" stroke="currentColor" stroke-width="1.6"/>
|
|
126
|
+
<rect x="13" y="9" width="6" height="6" rx="0.5" fill="currentColor"/>
|
|
127
|
+
</svg>`;
|
|
128
|
+
/** Provided interface — the LOLLIPOP: a stub ending in a full circle (§10.4.4). */
|
|
129
|
+
export const umlProvidedInterfaceIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
130
|
+
<path d="M2.5 12 H12" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/>
|
|
131
|
+
<circle cx="16" cy="12" r="4.2" stroke="currentColor" stroke-width="1.6"/>
|
|
132
|
+
</svg>`;
|
|
133
|
+
/**
|
|
134
|
+
* Required interface — the SOCKET: the same stub ending in the half circle that
|
|
135
|
+
* cups a ball (§10.4.4). Open on the side the ball comes from, which is what
|
|
136
|
+
* makes an assembly read as one joint rather than as two marks that happen to
|
|
137
|
+
* touch.
|
|
138
|
+
*/
|
|
139
|
+
export const umlRequiredInterfaceIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
140
|
+
<path d="M2.5 12 H12" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/>
|
|
141
|
+
<path d="M16.5 7.5 A4.5 4.5 0 0 0 16.5 16.5" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"/>
|
|
142
|
+
</svg>`;
|
|
143
|
+
/* ── Phase 2: what a deployment diagram is made of ──────────────────────── */
|
|
144
|
+
/**
|
|
145
|
+
* Artifact — the document with its corner turned down (§19.3.4), told from the
|
|
146
|
+
* note beside it by the lines written ON it: a note is a comment about the
|
|
147
|
+
* model, an artifact is a FILE that is part of the system.
|
|
148
|
+
*/
|
|
149
|
+
export const umlArtifactIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
150
|
+
<path d="M5.5 3.5 H14.5 L18.5 7.5 V20.5 H5.5 Z" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/>
|
|
151
|
+
<path d="M14.5 3.5 V7.5 H18.5" stroke="currentColor" stroke-width="1.4" stroke-linejoin="round"/>
|
|
152
|
+
<path d="M8.5 12 H15.5 M8.5 15.5 H13" stroke="currentColor" stroke-width="1.3" stroke-linecap="round"/>
|
|
153
|
+
</svg>`;
|
|
154
|
+
/** The cube every deployment target is drawn as (§19.4.4) — front, top, side. */
|
|
155
|
+
const cube = 'M3 8 H16 V20 H3 Z';
|
|
156
|
+
const cubeBack = 'M3 8 L7 4 H20 V16 L16 20 M16 8 L20 4';
|
|
157
|
+
/** Node — the bare 3D box: a computational resource, and nothing said of it. */
|
|
158
|
+
export const umlNodeIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
159
|
+
<path d="${cube}" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/>
|
|
160
|
+
<path d="${cubeBack}" stroke="currentColor" stroke-width="1.4" stroke-linejoin="round"/>
|
|
161
|
+
</svg>`;
|
|
162
|
+
/**
|
|
163
|
+
* Device — the same cube, carrying the filled chip that says this node is a
|
|
164
|
+
* piece of HARDWARE (§19.4.4's `«device»`, as a mark rather than as a word,
|
|
165
|
+
* because a 24-unit glyph has no room for a keyword).
|
|
166
|
+
*/
|
|
167
|
+
export const umlDeviceIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
168
|
+
<path d="${cube}" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/>
|
|
169
|
+
<path d="${cubeBack}" stroke="currentColor" stroke-width="1.4" stroke-linejoin="round"/>
|
|
170
|
+
<rect x="6" y="12" width="7" height="4.5" rx="0.6" fill="currentColor"/>
|
|
171
|
+
</svg>`;
|
|
172
|
+
/**
|
|
173
|
+
* Execution environment — the cube with the RUN mark on its face: software that
|
|
174
|
+
* other software is deployed into (§19.4.4's `«executionEnvironment»`), which is
|
|
175
|
+
* exactly the distinction from the device beside it.
|
|
176
|
+
*/
|
|
177
|
+
export const umlExecutionEnvironmentIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
178
|
+
<path d="${cube}" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/>
|
|
179
|
+
<path d="${cubeBack}" stroke="currentColor" stroke-width="1.4" stroke-linejoin="round"/>
|
|
180
|
+
<path d="M7 11.5 L12.5 14.3 L7 17 Z" fill="currentColor"/>
|
|
181
|
+
</svg>`;
|
|
182
|
+
/* ── Phase 2: what an ACTIVITY diagram is made of (§15, §16) ────────────── */
|
|
183
|
+
/**
|
|
184
|
+
* Action — the round-cornered rectangle of §15.2.4, and the one shape of an
|
|
185
|
+
* activity diagram that holds a sentence. The corners are the whole of what
|
|
186
|
+
* tells it from a class box at this size, so they are drawn generously.
|
|
187
|
+
*/
|
|
188
|
+
export const umlActionIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
189
|
+
<rect x="3" y="7" width="18" height="10" rx="4" stroke="currentColor" stroke-width="1.6"/>
|
|
190
|
+
</svg>`;
|
|
191
|
+
/**
|
|
192
|
+
* Initial node — the FILLED disc where a flow begins (§15.3.4), with the first
|
|
193
|
+
* arrow leaving it. One per region, and the arrow is what says the disc is a
|
|
194
|
+
* start rather than a junction.
|
|
195
|
+
*/
|
|
196
|
+
export const umlInitialIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
197
|
+
<circle cx="7" cy="12" r="4.5" fill="currentColor"/>
|
|
198
|
+
<path d="M12.5 12 H19" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"/>
|
|
199
|
+
<path d="M16.5 9 L20 12 L16.5 15" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
200
|
+
</svg>`;
|
|
201
|
+
/**
|
|
202
|
+
* Activity final — the BULLSEYE that ends the whole activity (§15.3.4): every
|
|
203
|
+
* token in it stops, not only the one that arrived.
|
|
204
|
+
*/
|
|
205
|
+
export const umlActivityFinalIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
206
|
+
<circle cx="12" cy="12" r="8" stroke="currentColor" stroke-width="1.6"/>
|
|
207
|
+
<circle cx="12" cy="12" r="4.5" fill="currentColor"/>
|
|
208
|
+
</svg>`;
|
|
209
|
+
/**
|
|
210
|
+
* Flow final — the circle with the CROSS through it (§15.3.4): this one token
|
|
211
|
+
* ends here and the rest of the activity carries on. The distinction the
|
|
212
|
+
* bullseye beside it cannot draw, and the one everybody forgets exists.
|
|
213
|
+
*/
|
|
214
|
+
export const umlFlowFinalIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
215
|
+
<circle cx="12" cy="12" r="8" stroke="currentColor" stroke-width="1.6"/>
|
|
216
|
+
<path d="M8.5 8.5 L15.5 15.5 M15.5 8.5 L8.5 15.5" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"/>
|
|
217
|
+
</svg>`;
|
|
218
|
+
/**
|
|
219
|
+
* Decision — the diamond one token leaves by ONE branch (§15.3.4). The two
|
|
220
|
+
* outgoing stubs are the glyph's argument: a bare diamond is a shape, a diamond
|
|
221
|
+
* with a choice coming out of it is a decision.
|
|
222
|
+
*/
|
|
223
|
+
export const umlDecisionIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
224
|
+
<path d="M9 12 L14 6.5 L19 12 L14 17.5 Z" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/>
|
|
225
|
+
<path d="M2.5 12 H9" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"/>
|
|
226
|
+
</svg>`;
|
|
227
|
+
/**
|
|
228
|
+
* Fork — the filled BAR one token leaves by every branch at once (§15.3.4),
|
|
229
|
+
* which is exactly the difference from the diamond above: concurrency, not
|
|
230
|
+
* choice. Drawn with the two outgoing lines, because a bar on its own is a rule.
|
|
231
|
+
*/
|
|
232
|
+
export const umlForkIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
233
|
+
<rect x="10" y="4" width="3.5" height="16" rx="0.6" fill="currentColor"/>
|
|
234
|
+
<path d="M3 12 H10" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"/>
|
|
235
|
+
<path d="M13.5 8 H20 M13.5 16 H20" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"/>
|
|
236
|
+
</svg>`;
|
|
237
|
+
/**
|
|
238
|
+
* Object node — the plain rectangle DATA travels through (§15.4.4), drawn with
|
|
239
|
+
* the flow entering and leaving it. The arrows are not decoration: an object
|
|
240
|
+
* node is told from every other rectangle on the sheet by sitting ON a flow.
|
|
241
|
+
*/
|
|
242
|
+
export const umlObjectNodeIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
243
|
+
<rect x="7" y="8" width="10" height="8" stroke="currentColor" stroke-width="1.6"/>
|
|
244
|
+
<path d="M2.5 12 H7 M17 12 H21.5" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"/>
|
|
245
|
+
</svg>`;
|
|
246
|
+
/**
|
|
247
|
+
* Send signal — the CONVEX pentagon of §16.3.4: a box with its right edge
|
|
248
|
+
* pushed out into a point, which is the message leaving.
|
|
249
|
+
*/
|
|
250
|
+
export const umlSendSignalIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
251
|
+
<path d="M3 7 H15 L20 12 L15 17 H3 Z" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/>
|
|
252
|
+
</svg>`;
|
|
253
|
+
/**
|
|
254
|
+
* Accept event — the CONCAVE pentagon of §16.10.4: the same box with its LEFT
|
|
255
|
+
* edge notched IN, the cup the message arrives into. The pair is the one thing
|
|
256
|
+
* on an activity diagram a reader tells apart by silhouette alone, which is why
|
|
257
|
+
* the two glyphs are deliberately mirror images.
|
|
258
|
+
*/
|
|
259
|
+
export const umlAcceptEventIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
260
|
+
<path d="M3 7 H21 V17 H3 L8 12 Z" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/>
|
|
261
|
+
</svg>`;
|
|
262
|
+
/** Time event — the HOURGLASS that fires when its moment comes (§16.10.4). */
|
|
263
|
+
export const umlTimeEventIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
264
|
+
<path d="M6 4 H18 L6 20 H18" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round" stroke-linecap="round"/>
|
|
265
|
+
<path d="M6 4 L18 20" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"/>
|
|
266
|
+
</svg>`;
|
|
267
|
+
/**
|
|
268
|
+
* Partition — the swimlane (§15.6.4): two bands with a name strip on top, which
|
|
269
|
+
* is what a vertical partition set actually looks like. The strip is the half
|
|
270
|
+
* of the drawing that matters — a lane with no heading is a line.
|
|
271
|
+
*/
|
|
272
|
+
export const umlPartitionIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
273
|
+
<rect x="3" y="4" width="18" height="16" stroke="currentColor" stroke-width="1.6"/>
|
|
274
|
+
<path d="M3 9 H21 M12 4 V20" stroke="currentColor" stroke-width="1.4"/>
|
|
275
|
+
</svg>`;
|
|
276
|
+
/* ── Phase 2: what a STATE MACHINE is made of (§14.2.4) ─────────────────── */
|
|
277
|
+
/**
|
|
278
|
+
* State — the round-cornered box with a NAME BAND (§14.2.4). The separator is
|
|
279
|
+
* what tells it from the action it shares a silhouette with: an action is one
|
|
280
|
+
* sentence, a state is a name over the `entry` / `do` / `exit` lines below it.
|
|
281
|
+
*/
|
|
282
|
+
export const umlStateIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
283
|
+
<rect x="3" y="5" width="18" height="14" rx="4" stroke="currentColor" stroke-width="1.6"/>
|
|
284
|
+
<path d="M3 11 H21" stroke="currentColor" stroke-width="1.4"/>
|
|
285
|
+
</svg>`;
|
|
286
|
+
/**
|
|
287
|
+
* Final state — the bullseye that ends the machine (§14.2.4).
|
|
288
|
+
*
|
|
289
|
+
* The SAME drawing as the activity final beside it, deliberately: §14.2.4 and
|
|
290
|
+
* §15.3.4 both draw a filled circle inside a ring, and inventing a difference
|
|
291
|
+
* would be this pack teaching a notation UML does not have. What separates them
|
|
292
|
+
* is the role and the sheet they are legal on — a final state on an activity
|
|
293
|
+
* diagram is what the per-frame admissibility lists refuse.
|
|
294
|
+
*/
|
|
295
|
+
export const umlFinalStateIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
296
|
+
<circle cx="12" cy="12" r="8" stroke="currentColor" stroke-width="1.6"/>
|
|
297
|
+
<circle cx="12" cy="12" r="4.5" fill="currentColor"/>
|
|
298
|
+
</svg>`;
|
|
299
|
+
/**
|
|
300
|
+
* Choice — the diamond a transition branches at (§14.2.4), and the state
|
|
301
|
+
* machine's twin of the activity decision: the same drawing, on the other
|
|
302
|
+
* diagram, for the same reason the two finals share theirs.
|
|
303
|
+
*/
|
|
304
|
+
export const umlChoiceIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
305
|
+
<path d="M9 12 L14 6.5 L19 12 L14 17.5 Z" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/>
|
|
306
|
+
<path d="M2.5 12 H9" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"/>
|
|
307
|
+
</svg>`;
|
|
308
|
+
/**
|
|
309
|
+
* Junction — the small filled dot several transitions MERGE at (§14.2.4). The
|
|
310
|
+
* three incoming stubs are what tells it from the initial node's disc: an
|
|
311
|
+
* initial has one arrow out and nothing in, a junction is a knot.
|
|
312
|
+
*/
|
|
313
|
+
export const umlJunctionIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
314
|
+
<circle cx="12" cy="12" r="3.5" fill="currentColor"/>
|
|
315
|
+
<path d="M3 6 L9 10.5 M3 18 L9 13.5 M15.5 12 H21" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
|
|
316
|
+
</svg>`;
|
|
317
|
+
/** The `H` of a history pseudostate, drawn as strokes rather than set as type. */
|
|
318
|
+
const historyH = 'M9 8.5 V15.5 M15 8.5 V15.5 M9 12 H15';
|
|
319
|
+
/**
|
|
320
|
+
* Shallow history — the `H` in a circle (§14.2.4): re-enter this region at the
|
|
321
|
+
* sub-state it was last in.
|
|
322
|
+
*/
|
|
323
|
+
export const umlShallowHistoryIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
324
|
+
<circle cx="12" cy="12" r="8.5" stroke="currentColor" stroke-width="1.6"/>
|
|
325
|
+
<path d="${historyH}" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"/>
|
|
326
|
+
</svg>`;
|
|
327
|
+
/**
|
|
328
|
+
* Deep history — the same `H` with the ASTERISK (§14.2.4): restore the whole
|
|
329
|
+
* nested configuration, not only the top level. One star apart, which is why
|
|
330
|
+
* the circle is drawn smaller here to make room for it rather than redrawn.
|
|
331
|
+
*/
|
|
332
|
+
export const umlDeepHistoryIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
333
|
+
<circle cx="10.5" cy="12" r="8" stroke="currentColor" stroke-width="1.6"/>
|
|
334
|
+
<path d="M7.5 8.5 V15.5 M13.5 8.5 V15.5 M7.5 12 H13.5" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"/>
|
|
335
|
+
<path d="M19.5 4.5 V9.5 M17.3 5.8 L21.7 8.2 M21.7 5.8 L17.3 8.2" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"/>
|
|
336
|
+
</svg>`;
|
|
337
|
+
/**
|
|
338
|
+
* Entry point — the hollow circle ON a composite state's border (§14.2.4): the
|
|
339
|
+
* named way IN. The border is drawn because the mark means nothing off it.
|
|
340
|
+
*/
|
|
341
|
+
export const umlEntryPointIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
342
|
+
<path d="M12 3.5 V20.5" stroke="currentColor" stroke-width="1.6"/>
|
|
343
|
+
<path d="M2.5 12 H8" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
|
|
344
|
+
<circle cx="12" cy="12" r="4" fill="none" stroke="currentColor" stroke-width="1.6"/>
|
|
345
|
+
</svg>`;
|
|
346
|
+
/**
|
|
347
|
+
* Exit point — the same circle on the same border, CROSSED (§14.2.4): the named
|
|
348
|
+
* way out.
|
|
349
|
+
*/
|
|
350
|
+
export const umlExitPointIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
351
|
+
<path d="M12 3.5 V20.5" stroke="currentColor" stroke-width="1.6"/>
|
|
352
|
+
<path d="M16 12 H21.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
|
|
353
|
+
<circle cx="12" cy="12" r="4" fill="none" stroke="currentColor" stroke-width="1.6"/>
|
|
354
|
+
<path d="M9.5 9.5 L14.5 14.5 M14.5 9.5 L9.5 14.5" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"/>
|
|
355
|
+
</svg>`;
|
|
356
|
+
/**
|
|
357
|
+
* Terminate — the bare CROSS (§14.2.4): the machine stops here and nothing
|
|
358
|
+
* else runs. No circle round it, which is the whole of what tells it from the
|
|
359
|
+
* flow final and from the exit point.
|
|
360
|
+
*/
|
|
361
|
+
export const umlTerminateIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
362
|
+
<path d="M5 5 L19 19 M19 5 L5 19" stroke="currentColor" stroke-width="2.2" stroke-linecap="round"/>
|
|
363
|
+
</svg>`;
|
|
364
|
+
/**
|
|
365
|
+
* Region — the composite state (§14.2.4): the rounded box with its name band
|
|
366
|
+
* and a sub-machine inside it. The two little states are the point — a region
|
|
367
|
+
* is a container, and a glyph of an empty rounded box would be the state's.
|
|
368
|
+
*/
|
|
369
|
+
export const umlRegionIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
370
|
+
<rect x="2.5" y="4" width="19" height="16" rx="3" stroke="currentColor" stroke-width="1.6"/>
|
|
371
|
+
<path d="M2.5 9 H21.5" stroke="currentColor" stroke-width="1.4"/>
|
|
372
|
+
<rect x="5.5" y="12" width="5.5" height="4.5" rx="1.5" stroke="currentColor" stroke-width="1.3"/>
|
|
373
|
+
<rect x="13" y="12" width="5.5" height="4.5" rx="1.5" stroke="currentColor" stroke-width="1.3"/>
|
|
374
|
+
</svg>`;
|
|
375
|
+
/* ── The relationships: each glyph IS the line the tool draws ───────────── */
|
|
376
|
+
/** Association — a plain solid line, undirected (§11.5.4). */
|
|
377
|
+
export const umlAssociationIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
378
|
+
<path d="M3 12 H21" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/>
|
|
379
|
+
</svg>`;
|
|
380
|
+
/** Aggregation — the HOLLOW diamond at the whole's end (§11.5.4). */
|
|
381
|
+
export const umlAggregationIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
382
|
+
<path d="M9 12 H21" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/>
|
|
383
|
+
<path d="M3 12 L6 9 L9 12 L6 15 Z" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/>
|
|
384
|
+
</svg>`;
|
|
385
|
+
/** Composition — the same diamond, FILLED (§11.5.4). */
|
|
386
|
+
export const umlCompositionIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
387
|
+
<path d="M9 12 H21" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/>
|
|
388
|
+
<path d="M3 12 L6 9 L9 12 L6 15 Z" fill="currentColor" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/>
|
|
389
|
+
</svg>`;
|
|
390
|
+
/** Generalization — a solid line with a hollow triangle on the general end. */
|
|
391
|
+
export const umlGeneralizationIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
392
|
+
<path d="M3 12 H15" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/>
|
|
393
|
+
<path d="M15 7.5 L21 12 L15 16.5 Z" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/>
|
|
394
|
+
</svg>`;
|
|
395
|
+
/** Realization — the same hollow triangle, on a DASHED line (§10.4.2.1). */
|
|
396
|
+
export const umlRealizationIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
397
|
+
<path d="M3 12 H15" stroke="currentColor" stroke-width="1.8" stroke-dasharray="3 2.6" stroke-linecap="round"/>
|
|
398
|
+
<path d="M15 7.5 L21 12 L15 16.5 Z" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/>
|
|
399
|
+
</svg>`;
|
|
400
|
+
/** Dependency — a dashed line with an open arrowhead (§7.8.4). */
|
|
401
|
+
export const umlDependencyIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
402
|
+
<path d="M3 12 H18" stroke="currentColor" stroke-width="1.8" stroke-dasharray="3 2.6" stroke-linecap="round"/>
|
|
403
|
+
<path d="M14.5 8.4 L21 12 L14.5 15.6" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
404
|
+
</svg>`;
|
|
405
|
+
/**
|
|
406
|
+
* Anchor — the DASHED line with no head at all, which is how a note is tied to
|
|
407
|
+
* what it comments on (§7.5.4). The only relationship of this pack that says
|
|
408
|
+
* nothing about direction, and the glyph says so by carrying no arrow.
|
|
409
|
+
*/
|
|
410
|
+
export const umlAnchorIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
411
|
+
<path d="M3 12 H21" stroke="currentColor" stroke-width="1.8" stroke-dasharray="3 2.6" stroke-linecap="round"/>
|
|
412
|
+
</svg>`;
|
|
413
|
+
/**
|
|
414
|
+
* Include — a dependency whose keyword is `«include»`, drawn with the chevrons
|
|
415
|
+
* over the line so the two use-case relationships are told apart at a glance
|
|
416
|
+
* rather than by their tooltip (§18.1.4).
|
|
417
|
+
*/
|
|
418
|
+
export const umlIncludeIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
419
|
+
<path d="M3 16 H18" stroke="currentColor" stroke-width="1.8" stroke-dasharray="3 2.6" stroke-linecap="round"/>
|
|
420
|
+
<path d="M14.5 12.4 L21 16 L14.5 19.6" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
421
|
+
<path d="M8 4 L5.5 6.8 L8 9.6 M14 4 L16.5 6.8 L14 9.6" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/>
|
|
422
|
+
</svg>`;
|
|
423
|
+
/** Extend — the same dashed arrow, with the chevrons pointing outward. */
|
|
424
|
+
export const umlExtendIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
425
|
+
<path d="M3 16 H18" stroke="currentColor" stroke-width="1.8" stroke-dasharray="3 2.6" stroke-linecap="round"/>
|
|
426
|
+
<path d="M14.5 12.4 L21 16 L14.5 19.6" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
427
|
+
<path d="M5.5 4 L8 6.8 L5.5 9.6 M16.5 4 L14 6.8 L16.5 9.6" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/>
|
|
428
|
+
</svg>`;
|
|
429
|
+
/**
|
|
430
|
+
* Deploy — the dashed dependency arrow of §19.2.4, pointed at the NODE it lands
|
|
431
|
+
* on. The box above it is the target, not decoration: `«deploy»` and
|
|
432
|
+
* `«manifest»` are the same line, and the only thing that can tell them apart in
|
|
433
|
+
* a menu row is what sits at the far end.
|
|
434
|
+
*/
|
|
435
|
+
export const umlDeployIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
436
|
+
<path d="M2 16 H16" stroke="currentColor" stroke-width="1.8" stroke-dasharray="3 2.6" stroke-linecap="round"/>
|
|
437
|
+
<path d="M12.5 12.4 L19 16 L12.5 19.6" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
438
|
+
<rect x="13" y="2.5" width="8" height="7" rx="0.8" stroke="currentColor" stroke-width="1.4"/>
|
|
439
|
+
</svg>`;
|
|
440
|
+
/** Manifest — the same arrow, landing on the artifact's own document glyph. */
|
|
441
|
+
export const umlManifestIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
442
|
+
<path d="M2 16 H16" stroke="currentColor" stroke-width="1.8" stroke-dasharray="3 2.6" stroke-linecap="round"/>
|
|
443
|
+
<path d="M12.5 12.4 L19 16 L12.5 19.6" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
444
|
+
<path d="M13.5 2.5 H18 L20.5 5 V10 H13.5 Z" stroke="currentColor" stroke-width="1.4" stroke-linejoin="round"/>
|
|
445
|
+
<path d="M18 2.5 V5 H20.5" stroke="currentColor" stroke-width="1.2" stroke-linejoin="round"/>
|
|
446
|
+
</svg>`;
|
|
447
|
+
/**
|
|
448
|
+
* Communication path — a plain solid line between two NODES (§19.4.4). The two
|
|
449
|
+
* boxes are what separates it from the association it is drawn exactly like: a
|
|
450
|
+
* network link joins machines, and it claims no direction at either end.
|
|
451
|
+
*/
|
|
452
|
+
export const umlCommunicationPathIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
453
|
+
<path d="M6 12 H18" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/>
|
|
454
|
+
<rect x="1.5" y="8.5" width="5" height="7" rx="0.8" stroke="currentColor" stroke-width="1.4"/>
|
|
455
|
+
<rect x="17.5" y="8.5" width="5" height="7" rx="0.8" stroke="currentColor" stroke-width="1.4"/>
|
|
456
|
+
</svg>`;
|
|
457
|
+
/**
|
|
458
|
+
* Control flow — the SOLID line with an open arrowhead (§15.2.4). The look no
|
|
459
|
+
* structural relationship wears: a behaviour diagram states an order and
|
|
460
|
+
* therefore always points.
|
|
461
|
+
*/
|
|
462
|
+
export const umlControlFlowIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
463
|
+
<path d="M3 12 H18" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/>
|
|
464
|
+
<path d="M14.5 8.4 L21 12 L14.5 15.6" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
465
|
+
</svg>`;
|
|
466
|
+
/**
|
|
467
|
+
* Object flow — the same arrow, with the DATA on it. §15.2.4 draws no line of
|
|
468
|
+
* its own for an object flow and tells it apart by what the flow runs between,
|
|
469
|
+
* so the glyph says that rather than inventing a dash: the little rectangle is
|
|
470
|
+
* the object node the line passes through.
|
|
471
|
+
*/
|
|
472
|
+
export const umlObjectFlowIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
473
|
+
<path d="M2 12 H8 M14 12 H18" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/>
|
|
474
|
+
<path d="M14.5 8.4 L21 12 L14.5 15.6" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
475
|
+
<rect x="8" y="9" width="6" height="6" stroke="currentColor" stroke-width="1.4"/>
|
|
476
|
+
</svg>`;
|
|
477
|
+
/**
|
|
478
|
+
* Transition — the same arrow again (§14.2.4.8), carrying its LABEL: the
|
|
479
|
+
* `trigger [guard] / effect` written over the line is the whole of what a state
|
|
480
|
+
* machine's arrow says, and the only thing that separates this glyph from the
|
|
481
|
+
* control flow above it.
|
|
482
|
+
*/
|
|
483
|
+
export const umlTransitionIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
484
|
+
<path d="M3 16 H18" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/>
|
|
485
|
+
<path d="M14.5 12.4 L21 16 L14.5 19.6" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
486
|
+
<path d="M5 7 H16 M5 10.5 H12" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"/>
|
|
487
|
+
</svg>`;
|
|
488
|
+
/* ── Phase 3: what a SEQUENCE diagram is made of (§17.2.4, §17.4.4) ────── */
|
|
489
|
+
/**
|
|
490
|
+
* Lifeline — the named head with the dashed spine falling out of it (§17.2.4).
|
|
491
|
+
*
|
|
492
|
+
* The dashes are the half that matters: a head on its own is a class box, and
|
|
493
|
+
* what makes a lifeline a lifeline is that time runs down the line under it.
|
|
494
|
+
*/
|
|
495
|
+
export const umlLifelineIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
496
|
+
<rect x="5" y="3.5" width="14" height="7" stroke="currentColor" stroke-width="1.6"/>
|
|
497
|
+
<path d="M12 10.5 V21" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-dasharray="2.4 2.4"/>
|
|
498
|
+
</svg>`;
|
|
499
|
+
/**
|
|
500
|
+
* Execution specification — the thin BAR sat on a spine (§17.2.4): the stretch
|
|
501
|
+
* of the diagram during which this participant is doing something. Drawn ON the
|
|
502
|
+
* dashes, because a bar floating beside a lifeline means nothing at all.
|
|
503
|
+
*/
|
|
504
|
+
export const umlExecutionIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
505
|
+
<path d="M12 3 V21" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-dasharray="2.4 2.4"/>
|
|
506
|
+
<rect x="9.5" y="7" width="5" height="10" fill="currentColor" fill-opacity="0.25" stroke="currentColor" stroke-width="1.5"/>
|
|
507
|
+
</svg>`;
|
|
508
|
+
/**
|
|
509
|
+
* Destruction occurrence — the CROSS that ends a lifeline (§17.2.4). The spine
|
|
510
|
+
* stops at it, which is the whole statement: nothing happens to this
|
|
511
|
+
* participant afterwards.
|
|
512
|
+
*/
|
|
513
|
+
export const umlDestructionIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
514
|
+
<path d="M12 3 V13" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-dasharray="2.4 2.4"/>
|
|
515
|
+
<path d="M7 13 L17 21 M17 13 L7 21" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
|
|
516
|
+
</svg>`;
|
|
517
|
+
/**
|
|
518
|
+
* Combined fragment — the rectangle with the PENTAGON tag in its corner
|
|
519
|
+
* (§17.6.4), and the dashed rule that separates two operands.
|
|
520
|
+
*
|
|
521
|
+
* The cut corner and the dashed line are the two things the notation draws and
|
|
522
|
+
* nothing else does: a plain rectangle is a subject, a region or a partition.
|
|
523
|
+
*/
|
|
524
|
+
export const umlFragmentIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
525
|
+
<rect x="3" y="4" width="18" height="16" stroke="currentColor" stroke-width="1.6"/>
|
|
526
|
+
<path d="M3 4 H10 L12 6.5 V9 H3 Z" stroke="currentColor" stroke-width="1.4" stroke-linejoin="round"/>
|
|
527
|
+
<path d="M3 14.5 H21" stroke="currentColor" stroke-width="1.3" stroke-dasharray="2.5 2.5"/>
|
|
528
|
+
</svg>`;
|
|
529
|
+
/**
|
|
530
|
+
* Interaction use — the same frame with `ref` in its tag (§17.7.4), drawn here
|
|
531
|
+
* as the ARROW out of the box: the glyph has no room for three letters at 24
|
|
532
|
+
* units, and "this happens somewhere else" is what the reader has to take from
|
|
533
|
+
* it. No dashed rule, which is the one thing that tells it from the fragment
|
|
534
|
+
* above: a `ref` has no operands to separate.
|
|
535
|
+
*/
|
|
536
|
+
export const umlInteractionUseIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
537
|
+
<rect x="3" y="4" width="18" height="16" stroke="currentColor" stroke-width="1.6"/>
|
|
538
|
+
<path d="M3 4 H10 L12 6.5 V9 H3 Z" stroke="currentColor" stroke-width="1.4" stroke-linejoin="round"/>
|
|
539
|
+
<path d="M8.5 16 L16 12.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
|
|
540
|
+
<path d="M12.5 12 L16.5 12.4 L16 16.2" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/>
|
|
541
|
+
</svg>`;
|
|
542
|
+
/**
|
|
543
|
+
* Synchronous message — a solid line with a FILLED arrowhead (§17.4.4): the
|
|
544
|
+
* caller waits, and the black triangle is the whole of what says so.
|
|
545
|
+
*/
|
|
546
|
+
export const umlMessageSyncIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
547
|
+
<path d="M3 12 H16" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/>
|
|
548
|
+
<path d="M15 8 L21.5 12 L15 16 Z" fill="currentColor" stroke="currentColor" stroke-width="1.4" stroke-linejoin="round"/>
|
|
549
|
+
</svg>`;
|
|
550
|
+
/**
|
|
551
|
+
* Asynchronous message — the same solid line with an OPEN stick arrowhead: the
|
|
552
|
+
* caller does not wait. The one pair in this pack where getting the head's fill
|
|
553
|
+
* backwards inverts the meaning of every call on the sheet.
|
|
554
|
+
*/
|
|
555
|
+
export const umlMessageAsyncIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
556
|
+
<path d="M3 12 H20" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/>
|
|
557
|
+
<path d="M15 7.8 L21 12 L15 16.2" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
558
|
+
</svg>`;
|
|
559
|
+
/** Reply — the open head on a DASHED line, travelling back (§17.4.4). */
|
|
560
|
+
export const umlMessageReplyIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
561
|
+
<path d="M21 12 H4" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-dasharray="3 2.6"/>
|
|
562
|
+
<path d="M9 7.8 L3 12 L9 16.2" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
563
|
+
</svg>`;
|
|
564
|
+
/**
|
|
565
|
+
* Create message — the dashed arrow landing on a lifeline's HEAD (§17.4.4).
|
|
566
|
+
* The box at the end is the point: a create message is the one message that
|
|
567
|
+
* does not arrive on a spine, because the spine does not exist until it does.
|
|
568
|
+
*/
|
|
569
|
+
export const umlMessageCreateIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
570
|
+
<path d="M2 10 H12" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-dasharray="3 2.6"/>
|
|
571
|
+
<path d="M9.5 6.6 L13.5 10 L9.5 13.4" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
572
|
+
<rect x="14" y="6.5" width="8" height="7" stroke="currentColor" stroke-width="1.5"/>
|
|
573
|
+
<path d="M18 13.5 V21" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-dasharray="2.2 2.2"/>
|
|
574
|
+
</svg>`;
|
|
575
|
+
/**
|
|
576
|
+
* Delete message — the call that ends at the X (§17.4.4). The solid line with
|
|
577
|
+
* the filled head is the ordinary call; the cross is what makes it a deletion,
|
|
578
|
+
* and it is drawn here because the LINE alone cannot say so.
|
|
579
|
+
*/
|
|
580
|
+
export const umlMessageDeleteIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
581
|
+
<path d="M2 12 H11" stroke="currentColor" stroke-width="1.7" stroke-linecap="round"/>
|
|
582
|
+
<path d="M10 8.8 L14 12 L10 15.2 Z" fill="currentColor" stroke="currentColor" stroke-width="1.3" stroke-linejoin="round"/>
|
|
583
|
+
<path d="M15.5 8 L22 16 M22 8 L15.5 16" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/>
|
|
584
|
+
</svg>`;
|
|
585
|
+
/* ── The two exports ───────────────────────────────────────────────────── */
|
|
586
|
+
/**
|
|
587
|
+
* Export as PlantUML — the generic "document, going out" glyph the other packs
|
|
588
|
+
* use for an export, restated here rather than imported from BPMN's or C4's
|
|
589
|
+
* private module: a cross-framework import for one path would tie this pack's
|
|
590
|
+
* build to theirs, and the three are meant to ship separately.
|
|
591
|
+
*/
|
|
592
|
+
export const umlExportPlantumlIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
593
|
+
<path d="M13.5 3.5H7a1.5 1.5 0 0 0-1.5 1.5v14A1.5 1.5 0 0 0 7 20.5h3" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
|
|
594
|
+
<path d="M13.5 3.5 18.5 8.5V12" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
595
|
+
<path d="M16 20.5v-6M13.5 18l2.5 2.5 2.5-2.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
596
|
+
</svg>`;
|
|
597
|
+
/** Export as XMI — the same document, marked as the angle-bracketed one. */
|
|
598
|
+
export const umlExportXmiIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
599
|
+
<path d="M13.5 3.5H7a1.5 1.5 0 0 0-1.5 1.5v14A1.5 1.5 0 0 0 7 20.5h2" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
|
|
600
|
+
<path d="M13.5 3.5 18.5 8.5V11" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
601
|
+
<path d="M14.5 14.5 12 17.5 14.5 20.5M18.5 14.5 21 17.5 18.5 20.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
602
|
+
</svg>`;
|
|
603
|
+
/**
|
|
604
|
+
* The three IMPORTS — the same page glyph as the exports beside them, with the
|
|
605
|
+
* arrow turned round (`docs/adr/0019`).
|
|
606
|
+
*
|
|
607
|
+
* Deliberately the same family as `bpmnImportXmlIcon`: a file becoming a board
|
|
608
|
+
* is one gesture across this library, and a user who has met it once in BPMN
|
|
609
|
+
* should not have to learn a second picture for it in UML. What differs between
|
|
610
|
+
* the three is the mark under the page — the arrow alone for PlantUML, the
|
|
611
|
+
* angle brackets for XMI, and the two connected boxes for draw.io, which is
|
|
612
|
+
* the only one of the three whose file is a DRAWING.
|
|
613
|
+
*/
|
|
614
|
+
export const umlImportPlantumlIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
615
|
+
<path d="M13.5 3.5H7a1.5 1.5 0 0 0-1.5 1.5v14A1.5 1.5 0 0 0 7 20.5h3" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
|
|
616
|
+
<path d="M13.5 3.5 18.5 8.5V12" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
617
|
+
<path d="M16 14.5v6M13.5 17l2.5-2.5 2.5 2.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
618
|
+
</svg>`;
|
|
619
|
+
/** Import XMI — the page arriving, marked as the angle-bracketed document. */
|
|
620
|
+
export const umlImportXmiIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
621
|
+
<path d="M12.5 3.5H7a1.5 1.5 0 0 0-1.5 1.5v14A1.5 1.5 0 0 0 7 20.5h2" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
|
|
622
|
+
<path d="M12.5 3.5 17.5 8.5V11" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
623
|
+
<path d="M13.5 14.5 11 17.5 13.5 20.5M17.5 14.5 20 17.5 17.5 20.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
624
|
+
</svg>`;
|
|
625
|
+
/** Import draw.io — two connected boxes, which is what the file actually holds. */
|
|
626
|
+
export const umlImportDrawioIcon = svg `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
627
|
+
<rect x="3" y="4" width="8" height="5.5" rx="1" stroke="currentColor" stroke-width="1.5"/>
|
|
628
|
+
<rect x="12.5" y="12" width="8" height="5.5" rx="1" stroke="currentColor" stroke-width="1.5"/>
|
|
629
|
+
<path d="M7 9.5v3.25h9.5v-0.75" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"/>
|
|
630
|
+
<path d="M6 15v5.5M3.5 18 6 15.5 8.5 18" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
631
|
+
</svg>`;
|
|
632
|
+
/**
|
|
633
|
+
* Every command glyph of the TOOLBOX, keyed by its `iconKey`.
|
|
634
|
+
*
|
|
635
|
+
* Registered together with the commands themselves
|
|
636
|
+
* (`CommandExtension(umlCommands, umlCommandIcons)`), so a key a descriptor
|
|
637
|
+
* names and this record does not hold renders as nothing.
|
|
638
|
+
*
|
|
639
|
+
* The two export glyphs are deliberately NOT here and are added to
|
|
640
|
+
* {@link umlToolbarIcon}'s sibling `umlCommandIcons` in `commands.ts` instead:
|
|
641
|
+
* this record is the glyphs of things UML DRAWS, and an export draws nothing.
|
|
642
|
+
*/
|
|
643
|
+
export const UML_TOOLBOX_ICONS = {
|
|
644
|
+
'uml.diagram': umlDiagramIcon,
|
|
645
|
+
'uml.class': umlClassIcon,
|
|
646
|
+
'uml.interface': umlInterfaceIcon,
|
|
647
|
+
'uml.enumeration': umlEnumerationIcon,
|
|
648
|
+
'uml.object': umlObjectIcon,
|
|
649
|
+
'uml.package': umlPackageIcon,
|
|
650
|
+
'uml.note': umlNoteIcon,
|
|
651
|
+
'uml.actor': umlActorIcon,
|
|
652
|
+
'uml.use-case': umlUseCaseIcon,
|
|
653
|
+
'uml.subject': umlSubjectIcon,
|
|
654
|
+
'uml.association': umlAssociationIcon,
|
|
655
|
+
'uml.aggregation': umlAggregationIcon,
|
|
656
|
+
'uml.composition': umlCompositionIcon,
|
|
657
|
+
'uml.generalization': umlGeneralizationIcon,
|
|
658
|
+
'uml.realization': umlRealizationIcon,
|
|
659
|
+
'uml.dependency': umlDependencyIcon,
|
|
660
|
+
'uml.anchor': umlAnchorIcon,
|
|
661
|
+
'uml.include': umlIncludeIcon,
|
|
662
|
+
'uml.extend': umlExtendIcon,
|
|
663
|
+
/* ── Phase 2: components and deployment ────────────────────────────── */
|
|
664
|
+
'uml.component': umlComponentIcon,
|
|
665
|
+
'uml.port': umlPortIcon,
|
|
666
|
+
'uml.provided-interface': umlProvidedInterfaceIcon,
|
|
667
|
+
'uml.required-interface': umlRequiredInterfaceIcon,
|
|
668
|
+
'uml.artifact': umlArtifactIcon,
|
|
669
|
+
'uml.node': umlNodeIcon,
|
|
670
|
+
'uml.device': umlDeviceIcon,
|
|
671
|
+
'uml.execution-environment': umlExecutionEnvironmentIcon,
|
|
672
|
+
'uml.deploy': umlDeployIcon,
|
|
673
|
+
'uml.manifest': umlManifestIcon,
|
|
674
|
+
'uml.communication-path': umlCommunicationPathIcon,
|
|
675
|
+
/* ── Phase 2: activities and state machines ────────────────────────── */
|
|
676
|
+
'uml.action': umlActionIcon,
|
|
677
|
+
'uml.initial': umlInitialIcon,
|
|
678
|
+
'uml.activity-final': umlActivityFinalIcon,
|
|
679
|
+
'uml.flow-final': umlFlowFinalIcon,
|
|
680
|
+
'uml.decision': umlDecisionIcon,
|
|
681
|
+
'uml.fork': umlForkIcon,
|
|
682
|
+
'uml.object-node': umlObjectNodeIcon,
|
|
683
|
+
'uml.send-signal': umlSendSignalIcon,
|
|
684
|
+
'uml.accept-event': umlAcceptEventIcon,
|
|
685
|
+
'uml.time-event': umlTimeEventIcon,
|
|
686
|
+
'uml.partition': umlPartitionIcon,
|
|
687
|
+
'uml.state': umlStateIcon,
|
|
688
|
+
'uml.final-state': umlFinalStateIcon,
|
|
689
|
+
'uml.choice': umlChoiceIcon,
|
|
690
|
+
'uml.junction': umlJunctionIcon,
|
|
691
|
+
'uml.shallow-history': umlShallowHistoryIcon,
|
|
692
|
+
'uml.deep-history': umlDeepHistoryIcon,
|
|
693
|
+
'uml.entry-point': umlEntryPointIcon,
|
|
694
|
+
'uml.exit-point': umlExitPointIcon,
|
|
695
|
+
'uml.terminate': umlTerminateIcon,
|
|
696
|
+
'uml.region': umlRegionIcon,
|
|
697
|
+
'uml.control-flow': umlControlFlowIcon,
|
|
698
|
+
'uml.object-flow': umlObjectFlowIcon,
|
|
699
|
+
'uml.transition': umlTransitionIcon,
|
|
700
|
+
/* ── Phase 3: sequence diagrams ────────────────────────────────────── */
|
|
701
|
+
'uml.lifeline': umlLifelineIcon,
|
|
702
|
+
'uml.execution': umlExecutionIcon,
|
|
703
|
+
'uml.destruction': umlDestructionIcon,
|
|
704
|
+
'uml.fragment': umlFragmentIcon,
|
|
705
|
+
'uml.interaction-use': umlInteractionUseIcon,
|
|
706
|
+
'uml.message-sync': umlMessageSyncIcon,
|
|
707
|
+
'uml.message-async': umlMessageAsyncIcon,
|
|
708
|
+
'uml.message-reply': umlMessageReplyIcon,
|
|
709
|
+
'uml.message-create': umlMessageCreateIcon,
|
|
710
|
+
'uml.message-delete': umlMessageDeleteIcon,
|
|
711
|
+
};
|