@cristianormazabal/triton-core 0.1.15 → 0.1.16
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/dist/contracts/anchors.d.ts +6 -0
- package/dist/contracts/anchors.d.ts.map +1 -1
- package/dist/contracts/icons.d.ts +228 -0
- package/dist/contracts/icons.d.ts.map +1 -0
- package/dist/contracts/icons.js +28 -0
- package/dist/contracts/icons.js.map +1 -0
- package/dist/contracts/index.d.ts +2 -1
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/result.d.ts +1 -1
- package/dist/contracts/result.d.ts.map +1 -1
- package/dist/contracts/result.js.map +1 -1
- package/dist/contracts/scene.d.ts +47 -1
- package/dist/contracts/scene.d.ts.map +1 -1
- package/dist/diagrams/mermaid/flowchart/index.d.ts.map +1 -1
- package/dist/diagrams/mermaid/flowchart/index.js +19 -1
- package/dist/diagrams/mermaid/flowchart/index.js.map +1 -1
- package/dist/diagrams/mermaid/flowchart/ir.d.ts +4 -1
- package/dist/diagrams/mermaid/flowchart/ir.d.ts.map +1 -1
- package/dist/diagrams/mermaid/flowchart/layout.d.ts.map +1 -1
- package/dist/diagrams/mermaid/flowchart/layout.js +177 -19
- package/dist/diagrams/mermaid/flowchart/layout.js.map +1 -1
- package/dist/diagrams/triton/ds/queue/shared.js +2 -0
- package/dist/diagrams/triton/ds/queue/shared.js.map +1 -1
- package/dist/diagrams/triton/ds/struct/array.d.ts.map +1 -1
- package/dist/diagrams/triton/ds/struct/array.js +2 -0
- package/dist/diagrams/triton/ds/struct/array.js.map +1 -1
- package/dist/frontend/index.d.ts +4 -3
- package/dist/frontend/index.d.ts.map +1 -1
- package/dist/frontend/index.js +7 -6
- package/dist/frontend/index.js.map +1 -1
- package/dist/icons/discover.d.ts +51 -0
- package/dist/icons/discover.d.ts.map +1 -0
- package/dist/icons/discover.js +124 -0
- package/dist/icons/discover.js.map +1 -0
- package/dist/icons/resolver.d.ts +84 -0
- package/dist/icons/resolver.d.ts.map +1 -0
- package/dist/icons/resolver.js +226 -0
- package/dist/icons/resolver.js.map +1 -0
- package/dist/icons/validate.d.ts +36 -0
- package/dist/icons/validate.d.ts.map +1 -0
- package/dist/icons/validate.js +257 -0
- package/dist/icons/validate.js.map +1 -0
- package/dist/index.js +1150 -492
- package/dist/index.js.map +4 -4
- package/dist/overlay/layout.js +2 -0
- package/dist/overlay/layout.js.map +1 -1
- package/dist/render/svg.d.ts.map +1 -1
- package/dist/render/svg.js +104 -0
- package/dist/render/svg.js.map +1 -1
- package/dist/scene/build.d.ts +16 -1
- package/dist/scene/build.d.ts.map +1 -1
- package/dist/scene/build.js +7 -0
- package/dist/scene/build.js.map +1 -1
- package/package.json +1 -1
|
@@ -155,5 +155,11 @@ export interface PortHint {
|
|
|
155
155
|
export interface LayoutOptions {
|
|
156
156
|
/** Port placement hints from the composition layer. */
|
|
157
157
|
readonly portHints?: readonly PortHint[];
|
|
158
|
+
/**
|
|
159
|
+
* Loaded icon packs passed from the host layer.
|
|
160
|
+
* Used by layout engines that support @icon node annotations (e.g. flowchart).
|
|
161
|
+
* Core never touches the filesystem — the host builds this map and passes it in.
|
|
162
|
+
*/
|
|
163
|
+
readonly icons?: import('./icons.js').IconPackMap;
|
|
158
164
|
}
|
|
159
165
|
//# sourceMappingURL=anchors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anchors.d.ts","sourceRoot":"","sources":["../../../../src/contracts/anchors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAIxC,iEAAiE;AACjE,MAAM,MAAM,YAAY,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEjD;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;AAIjE;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,iDAAiD;IACjD,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC;CAChC;AAID;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;AAMtE;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY;IAC3B,kEAAkE;IAClE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,iCAAiC;IACjC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC;CACpC;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,YAAY;IAC3B,4CAA4C;IAC5C,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IACjD;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC;CACxC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,QAAQ;IACvB,2BAA2B;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qCAAqC;IACrC,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC;IACrC,qFAAqF;IACrF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,uDAAuD;IACvD,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"anchors.d.ts","sourceRoot":"","sources":["../../../../src/contracts/anchors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAIxC,iEAAiE;AACjE,MAAM,MAAM,YAAY,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEjD;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;AAIjE;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,iDAAiD;IACjD,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC;CAChC;AAID;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;AAMtE;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY;IAC3B,kEAAkE;IAClE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,iCAAiC;IACjC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC;CACpC;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,YAAY;IAC3B,4CAA4C;IAC5C,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IACjD;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC;CACxC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,QAAQ;IACvB,2BAA2B;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qCAAqC;IACrC,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC;IACrC,qFAAqF;IACrF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,uDAAuD;IACvD,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;IACzC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,YAAY,EAAE,WAAW,CAAC;CACnD"}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Icons
|
|
3
|
+
*
|
|
4
|
+
* The unified icon data contract for Triton.
|
|
5
|
+
*
|
|
6
|
+
* Five shapes:
|
|
7
|
+
* IconData — per-icon body + optional overrides within an IconifyJSON pack.
|
|
8
|
+
* IconAlias — alternate name within a pack, pointing to a parent icon.
|
|
9
|
+
* IconifyJSON — a complete loaded icon pack (IconifyJSON format).
|
|
10
|
+
* IconRef — a parsed prefix:name token used in diagram IRs.
|
|
11
|
+
* ResolvedIcon — the resolved form consumed by the SVG emitter (P2 seam).
|
|
12
|
+
* IconPackMap — the map of loaded packs passed from host into core.
|
|
13
|
+
*
|
|
14
|
+
* Token grammar (canonical, enforced by the resolver):
|
|
15
|
+
* prefix ::= [a-z][a-z0-9-]* (starts with letter; e.g. "azure", "mdi")
|
|
16
|
+
* name ::= [a-z0-9][a-z0-9-]* (starts with alnum; e.g. "app-service")
|
|
17
|
+
* iconRef ::= prefix ":" name (e.g. "azure:app-service")
|
|
18
|
+
*
|
|
19
|
+
* Rendering contract (see ResolvedIcon):
|
|
20
|
+
* colorMode='monochrome' → renderer sets CSS color on the <svg> wrapper;
|
|
21
|
+
* body uses currentColor and inherits the tint.
|
|
22
|
+
* colorMode='brand' → renderer emits body verbatim, no color override;
|
|
23
|
+
* hardcoded brand fills (e.g. #0078D4) appear as-is.
|
|
24
|
+
*
|
|
25
|
+
* Keep this module rendering-agnostic — no SVG emit, no file I/O, no process.
|
|
26
|
+
*/
|
|
27
|
+
/**
|
|
28
|
+
* Quarter-turn rotation values.
|
|
29
|
+
* 0 = 0°, 1 = 90°, 2 = 180°, 3 = 270° — all clockwise.
|
|
30
|
+
*/
|
|
31
|
+
export type IconRotate = 0 | 1 | 2 | 3;
|
|
32
|
+
/**
|
|
33
|
+
* Geometric transforms applied to an icon body at render time.
|
|
34
|
+
* Composed from alias-level and icon-level transform fields.
|
|
35
|
+
* Rotation is applied before flips.
|
|
36
|
+
*/
|
|
37
|
+
export interface IconTransforms {
|
|
38
|
+
/** Quarter-turns clockwise: 0=0°, 1=90°, 2=180°, 3=270°. */
|
|
39
|
+
readonly rotate: IconRotate;
|
|
40
|
+
/** Mirror around the vertical axis (left↔right). */
|
|
41
|
+
readonly hFlip: boolean;
|
|
42
|
+
/** Mirror around the horizontal axis (top↔bottom). */
|
|
43
|
+
readonly vFlip: boolean;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Per-icon data within an IconifyJSON pack.
|
|
47
|
+
*
|
|
48
|
+
* `body` is inner SVG markup — NO <svg> wrapper, NO xmlns attribute.
|
|
49
|
+
* It is ready to embed directly inside a host <svg> element.
|
|
50
|
+
*
|
|
51
|
+
* Dimension fields (width/height/left/top) override the pack-level defaults
|
|
52
|
+
* for this specific icon. The resolver merges icon → pack → system-defaults
|
|
53
|
+
* (16×16 at origin 0,0) to produce the final IconViewBox.
|
|
54
|
+
*/
|
|
55
|
+
export interface IconData {
|
|
56
|
+
/** Inner SVG markup. No <svg> wrapper. Required and non-empty. */
|
|
57
|
+
readonly body: string;
|
|
58
|
+
/** Viewport width in px. Overrides pack-level width for this icon. */
|
|
59
|
+
readonly width?: number;
|
|
60
|
+
/** Viewport height in px. Overrides pack-level height for this icon. */
|
|
61
|
+
readonly height?: number;
|
|
62
|
+
/** Viewport x-origin in px. Overrides pack-level left for this icon. */
|
|
63
|
+
readonly left?: number;
|
|
64
|
+
/** Viewport y-origin in px. Overrides pack-level top for this icon. */
|
|
65
|
+
readonly top?: number;
|
|
66
|
+
/** Quarter-turn rotation: 0–3. */
|
|
67
|
+
readonly rotate?: IconRotate;
|
|
68
|
+
/** Mirror horizontally. */
|
|
69
|
+
readonly hFlip?: boolean;
|
|
70
|
+
/** Mirror vertically. */
|
|
71
|
+
readonly vFlip?: boolean;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* An alias entry within an IconifyJSON pack.
|
|
75
|
+
*
|
|
76
|
+
* `parent` MUST name another icon (or alias) within the same pack.
|
|
77
|
+
* Transform fields are composed on top of the resolved parent transforms:
|
|
78
|
+
* rotate is added modulo 4; hFlip and vFlip are XORed.
|
|
79
|
+
* Dimension fields override the parent's resolved dimensions.
|
|
80
|
+
*/
|
|
81
|
+
export interface IconAlias {
|
|
82
|
+
/** Bare name of the parent icon within the same pack. Required. */
|
|
83
|
+
readonly parent: string;
|
|
84
|
+
/** Additional rotation, composed on top of parent's rotation (mod 4). */
|
|
85
|
+
readonly rotate?: IconRotate;
|
|
86
|
+
/** Additional horizontal flip (XORed with parent's hFlip). */
|
|
87
|
+
readonly hFlip?: boolean;
|
|
88
|
+
/** Additional vertical flip (XORed with parent's vFlip). */
|
|
89
|
+
readonly vFlip?: boolean;
|
|
90
|
+
/** Override viewport width for this alias. */
|
|
91
|
+
readonly width?: number;
|
|
92
|
+
/** Override viewport height for this alias. */
|
|
93
|
+
readonly height?: number;
|
|
94
|
+
/** Override viewport x-origin for this alias. */
|
|
95
|
+
readonly left?: number;
|
|
96
|
+
/** Override viewport y-origin for this alias. */
|
|
97
|
+
readonly top?: number;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* A loaded icon pack in Triton's IconifyJSON format.
|
|
101
|
+
* File extension: `.triton-icons.json`. Placed under `.triton/icons/`.
|
|
102
|
+
*
|
|
103
|
+
* This mirrors the @iconify/types IconifyJSON schema but is typed strictly for
|
|
104
|
+
* Triton's subset. The `prefix` field is authoritative — it determines the
|
|
105
|
+
* lookup key in IconPackMap, not the filename.
|
|
106
|
+
*
|
|
107
|
+
* Pack-level dimension fields (width/height/left/top) are the defaults for any
|
|
108
|
+
* icon that does not specify its own dimensions. System fallback: 16×16 at (0,0).
|
|
109
|
+
*/
|
|
110
|
+
export interface IconifyJSON {
|
|
111
|
+
/**
|
|
112
|
+
* Pack identifier. Token grammar: [a-z][a-z0-9-]*.
|
|
113
|
+
* Used as the first segment of `prefix:name` icon references.
|
|
114
|
+
* Examples: "azure", "mdi", "lucide".
|
|
115
|
+
*/
|
|
116
|
+
readonly prefix: string;
|
|
117
|
+
/**
|
|
118
|
+
* Icon entries keyed by bare name (no prefix prefix).
|
|
119
|
+
* Each key matches [a-z0-9][a-z0-9-]*. At least one entry required.
|
|
120
|
+
*/
|
|
121
|
+
readonly icons: Record<string, IconData>;
|
|
122
|
+
/**
|
|
123
|
+
* Optional alternate names for existing icons within this pack.
|
|
124
|
+
* Alias transforms are composed on top of the parent icon's transforms.
|
|
125
|
+
*/
|
|
126
|
+
readonly aliases?: Record<string, IconAlias>;
|
|
127
|
+
/** Default viewport width in px. Falls back to system default of 16. */
|
|
128
|
+
readonly width?: number;
|
|
129
|
+
/** Default viewport height in px. Falls back to system default of 16. */
|
|
130
|
+
readonly height?: number;
|
|
131
|
+
/** Default viewport x-origin in px. Falls back to system default of 0. */
|
|
132
|
+
readonly left?: number;
|
|
133
|
+
/** Default viewport y-origin in px. Falls back to system default of 0. */
|
|
134
|
+
readonly top?: number;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* A parsed icon reference, carried by any IR node or label that references an icon.
|
|
138
|
+
*
|
|
139
|
+
* Produced by parsing an icon token string of the form "prefix:name".
|
|
140
|
+
*
|
|
141
|
+
* Token grammar:
|
|
142
|
+
* prefix ::= [a-z][a-z0-9-]* — pack identifier
|
|
143
|
+
* name ::= [a-z0-9][a-z0-9-]* — icon name within the pack
|
|
144
|
+
* iconRef ::= prefix ":" name
|
|
145
|
+
*
|
|
146
|
+
* The raw token string (e.g. "azure:app-service") is called an icon token.
|
|
147
|
+
* Use `parseIconRef` from src/icons/resolver.ts to parse tokens into IconRef.
|
|
148
|
+
*/
|
|
149
|
+
export interface IconRef {
|
|
150
|
+
/** Pack prefix, e.g. "azure". Matches [a-z][a-z0-9-]*. */
|
|
151
|
+
readonly prefix: string;
|
|
152
|
+
/** Icon name within the pack, e.g. "app-service". Matches [a-z0-9][a-z0-9-]*. */
|
|
153
|
+
readonly name: string;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Final viewport dimensions for a resolved icon, in px.
|
|
157
|
+
* Produced by merging: icon-level dims → pack-level dims → system defaults (16×16, 0,0).
|
|
158
|
+
* The renderer uses this as the viewBox attribute value on the <svg> wrapper.
|
|
159
|
+
*/
|
|
160
|
+
export interface IconViewBox {
|
|
161
|
+
/** Viewport width in px. Always positive. */
|
|
162
|
+
readonly width: number;
|
|
163
|
+
/** Viewport height in px. Always positive. */
|
|
164
|
+
readonly height: number;
|
|
165
|
+
/** Viewport x-origin in px. */
|
|
166
|
+
readonly left: number;
|
|
167
|
+
/** Viewport y-origin in px. */
|
|
168
|
+
readonly top: number;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* The resolved form of an icon — the P0↔P2 seam.
|
|
172
|
+
*
|
|
173
|
+
* This is what the SVG emitter (P2, Brian) receives. It never needs to access
|
|
174
|
+
* packs, follow aliases, or apply merge logic — that is all done here in P0.
|
|
175
|
+
*
|
|
176
|
+
* Rendering contract for colorMode:
|
|
177
|
+
*
|
|
178
|
+
* 'monochrome' — body uses ONLY currentColor, none, or inherit for fill/stroke.
|
|
179
|
+
* No hardcoded color values, no gradient definitions.
|
|
180
|
+
* The renderer wraps body in:
|
|
181
|
+
* <svg viewBox="..." style="color: {paletteToken}">
|
|
182
|
+
* and currentColor inherits the active theme palette token.
|
|
183
|
+
*
|
|
184
|
+
* 'brand' — body contains hardcoded fill/stroke values OR gradient
|
|
185
|
+
* definitions (<linearGradient>, <radialGradient>).
|
|
186
|
+
* The renderer wraps body in <svg viewBox="..."> with NO color
|
|
187
|
+
* override. Brand fills render verbatim (e.g. Azure's #0078D4).
|
|
188
|
+
* NOTE: the renderer MUST namespace gradient IDs per icon
|
|
189
|
+
* instance (e.g. "icon-{n}-{id}") to prevent ID collisions
|
|
190
|
+
* when multiple brand icons appear in the same output SVG.
|
|
191
|
+
*
|
|
192
|
+
* Detection heuristic (implemented in detectColorMode):
|
|
193
|
+
* Scan body for fill="..." and stroke="..." attribute values.
|
|
194
|
+
* If any value is not one of {none, currentColor, inherit} → brand.
|
|
195
|
+
* If body contains <linearGradient or <radialGradient → brand.
|
|
196
|
+
* Otherwise → monochrome.
|
|
197
|
+
*/
|
|
198
|
+
export interface ResolvedIcon {
|
|
199
|
+
/** Inner SVG markup ready to embed. No <svg> wrapper. */
|
|
200
|
+
readonly body: string;
|
|
201
|
+
/**
|
|
202
|
+
* Final viewBox after dimension merge.
|
|
203
|
+
* Renderer uses: viewBox="{left} {top} {width} {height}".
|
|
204
|
+
*/
|
|
205
|
+
readonly viewBox: IconViewBox;
|
|
206
|
+
/**
|
|
207
|
+
* Composed transforms (icon-level + alias-level if applicable).
|
|
208
|
+
* Renderer applies rotate/flip around the icon center at emit time.
|
|
209
|
+
* Rotation is clockwise; hFlip mirrors left↔right; vFlip mirrors top↔bottom.
|
|
210
|
+
*/
|
|
211
|
+
readonly transforms: IconTransforms;
|
|
212
|
+
/**
|
|
213
|
+
* Color rendering mode.
|
|
214
|
+
* 'monochrome' → renderer applies palette tint via CSS currentColor.
|
|
215
|
+
* 'brand' → renderer emits body verbatim with no color override.
|
|
216
|
+
*/
|
|
217
|
+
readonly colorMode: 'monochrome' | 'brand';
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* The set of loaded icon packs passed from the host layer into core.
|
|
221
|
+
*
|
|
222
|
+
* Keyed by each pack's `prefix` field (the authoritative key — not filename).
|
|
223
|
+
* Built by the host (P1: discover → load → validate); core never touches the FS.
|
|
224
|
+
*
|
|
225
|
+
* Parallels how the host passes a resolved ThemeInput into core for themes.
|
|
226
|
+
*/
|
|
227
|
+
export type IconPackMap = Map<string, IconifyJSON>;
|
|
228
|
+
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../../src/contracts/icons.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Icons
|
|
3
|
+
*
|
|
4
|
+
* The unified icon data contract for Triton.
|
|
5
|
+
*
|
|
6
|
+
* Five shapes:
|
|
7
|
+
* IconData — per-icon body + optional overrides within an IconifyJSON pack.
|
|
8
|
+
* IconAlias — alternate name within a pack, pointing to a parent icon.
|
|
9
|
+
* IconifyJSON — a complete loaded icon pack (IconifyJSON format).
|
|
10
|
+
* IconRef — a parsed prefix:name token used in diagram IRs.
|
|
11
|
+
* ResolvedIcon — the resolved form consumed by the SVG emitter (P2 seam).
|
|
12
|
+
* IconPackMap — the map of loaded packs passed from host into core.
|
|
13
|
+
*
|
|
14
|
+
* Token grammar (canonical, enforced by the resolver):
|
|
15
|
+
* prefix ::= [a-z][a-z0-9-]* (starts with letter; e.g. "azure", "mdi")
|
|
16
|
+
* name ::= [a-z0-9][a-z0-9-]* (starts with alnum; e.g. "app-service")
|
|
17
|
+
* iconRef ::= prefix ":" name (e.g. "azure:app-service")
|
|
18
|
+
*
|
|
19
|
+
* Rendering contract (see ResolvedIcon):
|
|
20
|
+
* colorMode='monochrome' → renderer sets CSS color on the <svg> wrapper;
|
|
21
|
+
* body uses currentColor and inherits the tint.
|
|
22
|
+
* colorMode='brand' → renderer emits body verbatim, no color override;
|
|
23
|
+
* hardcoded brand fills (e.g. #0078D4) appear as-is.
|
|
24
|
+
*
|
|
25
|
+
* Keep this module rendering-agnostic — no SVG emit, no file I/O, no process.
|
|
26
|
+
*/
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=icons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../../../../src/contracts/icons.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG"}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
export type { Point, Size, Rect, Color, FontFamily, TextAnchor, FontWeight, } from './primitives.js';
|
|
20
20
|
export type { RenderedConnectorAnimation, CrossLinkAnimation, } from './animations.js';
|
|
21
21
|
export { CONNECTOR_ANIMATIONS, isRenderedConnectorAnimation, } from './animations.js';
|
|
22
|
-
export type { SceneRect, SceneCircle, ScenePath, SceneText, SceneGroup, SceneElement, Scene, } from './scene.js';
|
|
22
|
+
export type { SceneRect, SceneCircle, ScenePath, SceneText, SceneGroup, SceneIcon, SceneElement, Scene, } from './scene.js';
|
|
23
23
|
export type { ThemePalette, ThemeTypography, ThemeSpacing, ThemeEdges, ThemePanel, ResolvedTheme, ThemeInput, } from './theme.js';
|
|
24
24
|
export type { RawNote, RawLegend, RawOverlay, LegendCorner, LegendEntry, Legend, Annotation, CompiledOverlays, } from './overlay.js';
|
|
25
25
|
export type { RouteStyle, CurveStyle, PortDirection, RouteRequest, Route, Router, } from './routing.js';
|
|
@@ -27,6 +27,7 @@ export type { DiagramParser, DiagramLayoutEngine, DiagramModule, DiagramKind, In
|
|
|
27
27
|
export type { DiagramErrorCode, DiagramError, Result, } from './result.js';
|
|
28
28
|
export { ok, err } from './result.js';
|
|
29
29
|
export type { Renderer } from './renderer.js';
|
|
30
|
+
export type { IconRotate, IconTransforms, IconData, IconAlias, IconifyJSON, IconRef, IconViewBox, ResolvedIcon, IconPackMap, } from './icons.js';
|
|
30
31
|
export type { CardinalSide, CardinalPorts, NodeAnchor, NodeAnchorRegistry, OccupiedPort, LayoutResult, PortHint, LayoutOptions, } from './anchors.js';
|
|
31
32
|
export type { NodeAddress, CrossLinkEdgeStyle, CrossLinkDirection, CrossLinkEndpointMarker, RenderedConnectorAnimation as CrossLinkRenderedAnimation, CrossLinkAnimation as CrossLinkAnimationName, CrossLink, ResolvedCrossLink, RouteQuality, PerturbationKind, Perturbation, } from './crosslink.js';
|
|
32
33
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/contracts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,YAAY,EACV,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,UAAU,EACV,UAAU,EACV,UAAU,GACX,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,SAAS,EACT,WAAW,EACX,SAAS,EACT,SAAS,EACT,UAAU,EACV,YAAY,EACZ,KAAK,GACN,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,UAAU,EACV,UAAU,EACV,aAAa,EACb,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,OAAO,EACP,SAAS,EACT,UAAU,EACV,YAAY,EACZ,WAAW,EACX,MAAM,EACN,UAAU,EACV,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,YAAY,EACZ,KAAK,EACL,MAAM,GACP,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,WAAW,EACX,MAAM,GACP,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,MAAM,GACP,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAEtC,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,YAAY,EACV,YAAY,EACZ,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,aAAa,GACd,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,0BAA0B,IAAI,0BAA0B,EACxD,kBAAkB,IAAI,sBAAsB,EAC5C,SAAS,EACT,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,YAAY,GACb,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/contracts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,YAAY,EACV,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,UAAU,EACV,UAAU,EACV,UAAU,GACX,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,SAAS,EACT,WAAW,EACX,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,YAAY,EACZ,KAAK,GACN,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,UAAU,EACV,UAAU,EACV,aAAa,EACb,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,OAAO,EACP,SAAS,EACT,UAAU,EACV,YAAY,EACZ,WAAW,EACX,MAAM,EACN,UAAU,EACV,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,YAAY,EACZ,KAAK,EACL,MAAM,GACP,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,WAAW,EACX,MAAM,GACP,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,MAAM,GACP,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAEtC,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,YAAY,EACV,UAAU,EACV,cAAc,EACd,QAAQ,EACR,SAAS,EACT,WAAW,EACX,OAAO,EACP,WAAW,EACX,YAAY,EACZ,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,YAAY,EACZ,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,aAAa,GACd,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,0BAA0B,IAAI,0BAA0B,EACxD,kBAAkB,IAAI,sBAAsB,EAC5C,SAAS,EACT,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,YAAY,GACb,MAAM,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/contracts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAiBH,OAAO,EACL,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/contracts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAiBH,OAAO,EACL,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AA0DzB,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* if (!result.ok) { console.error(result.error.message); return; }
|
|
13
13
|
* console.log(result.value); // string
|
|
14
14
|
*/
|
|
15
|
-
export type DiagramErrorCode = 'PARSE_ERROR' | 'LAYOUT_ERROR' | 'UNKNOWN_DIAGRAM' | 'UNSUPPORTED_FORMAT' | 'UNKNOWN_RENDERER' | 'THEME_VALIDATION_ERROR';
|
|
15
|
+
export type DiagramErrorCode = 'PARSE_ERROR' | 'LAYOUT_ERROR' | 'UNKNOWN_DIAGRAM' | 'UNSUPPORTED_FORMAT' | 'UNKNOWN_RENDERER' | 'THEME_VALIDATION_ERROR' | 'ICON_VALIDATION_ERROR' | 'ICON_NOT_FOUND';
|
|
16
16
|
export interface DiagramError {
|
|
17
17
|
readonly code: DiagramErrorCode;
|
|
18
18
|
readonly message: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../../../src/contracts/result.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,MAAM,gBAAgB,GACxB,aAAa,GACb,cAAc,GACd,iBAAiB,GACjB,oBAAoB,GACpB,kBAAkB,GAClB,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../../../src/contracts/result.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,MAAM,gBAAgB,GACxB,aAAa,GACb,cAAc,GACd,iBAAiB,GACjB,oBAAoB,GACpB,kBAAkB,GAClB,wBAAwB,GACxB,uBAAuB,GACvB,gBAAgB,CAAC;AAErB,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,MAAM,MAAM,CAAC,CAAC,IAChB;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GACzC;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;CAAE,CAAC;AAEzD,qCAAqC;AACrC,wBAAgB,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAEzC;AAED,iCAAiC;AACjC,wBAAgB,GAAG,CACjB,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,OAAO,GACd,MAAM,CAAC,KAAK,CAAC,CAKf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../../../src/contracts/result.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../../../src/contracts/result.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAsBH,qCAAqC;AACrC,MAAM,UAAU,EAAE,CAAI,KAAQ;IAC5B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED,iCAAiC;AACjC,MAAM,UAAU,GAAG,CACjB,IAAsB,EACtB,OAAe,EACf,KAAe;IAEf,OAAO;QACL,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;KACpE,CAAC;AACJ,CAAC"}
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
*/
|
|
17
17
|
import type { Color, FontFamily, FontWeight, Point, Rect, TextAnchor } from './primitives.js';
|
|
18
18
|
import type { RenderedConnectorAnimation } from './animations.js';
|
|
19
|
+
import type { ResolvedIcon } from './icons.js';
|
|
19
20
|
export interface SceneRect {
|
|
20
21
|
readonly type: 'rect';
|
|
21
22
|
readonly bounds: Rect;
|
|
@@ -76,6 +77,51 @@ export interface SceneText {
|
|
|
76
77
|
readonly anchor?: TextAnchor;
|
|
77
78
|
readonly opacity?: number;
|
|
78
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* SceneIcon — render a resolved icon into SVG at a target position and size.
|
|
82
|
+
*
|
|
83
|
+
* This is the P2 render primitive: "given a ResolvedIcon at (x, y) fitting
|
|
84
|
+
* into a `size × size` box, draw it as pure SVG."
|
|
85
|
+
*
|
|
86
|
+
* **P6 seam** — Bjarne's grammar/layout (P6) produces SceneIcon by:
|
|
87
|
+
* 1. Resolving the icon token from a node IR (FlowNode.icon, MindNode.icon,
|
|
88
|
+
* SeqParticipant.icon, etc.) via resolveIcon().
|
|
89
|
+
* 2. Setting x/y to the icon box top-left within the node's layout rect
|
|
90
|
+
* (e.g. centered above the label at `nodeX + (nodeW - iconSize)/2`).
|
|
91
|
+
* 3. Setting size to the reserved icon dimension from theme spacing
|
|
92
|
+
* (e.g. theme.spacing.iconSize or a fixed 32 px default).
|
|
93
|
+
* 4. Optionally setting color to a palette CSS color token for monochrome
|
|
94
|
+
* tint (e.g. theme.palette.text or "#1e293b"); omit for inherit.
|
|
95
|
+
*
|
|
96
|
+
* Coordinate convention: x/y is the TOP-LEFT of the icon's target bounding
|
|
97
|
+
* box. The SVG renderer centers the icon's content (preserving aspect ratio)
|
|
98
|
+
* inside that box.
|
|
99
|
+
*
|
|
100
|
+
* colorMode contract (enforced by SVG renderer):
|
|
101
|
+
* 'monochrome' → sets `style="color:{color}"` on the SVG wrapper so
|
|
102
|
+
* currentColor fills in the body tint to the theme color.
|
|
103
|
+
* 'brand' → emits body verbatim with no color override; gradient and
|
|
104
|
+
* clip IDs are namespaced per instance to prevent collisions.
|
|
105
|
+
*/
|
|
106
|
+
export interface SceneIcon {
|
|
107
|
+
readonly type: 'icon';
|
|
108
|
+
/** Fully resolved icon — body, viewBox, transforms, colorMode. */
|
|
109
|
+
readonly icon: ResolvedIcon;
|
|
110
|
+
/** Top-left x of the target bounding box (scene units). */
|
|
111
|
+
readonly x: number;
|
|
112
|
+
/** Top-left y of the target bounding box (scene units). */
|
|
113
|
+
readonly y: number;
|
|
114
|
+
/** Side length of the square target bounding box (scene units). */
|
|
115
|
+
readonly size: number;
|
|
116
|
+
/**
|
|
117
|
+
* CSS color value for monochrome tint (e.g. "#1e293b", "var(--color-text)").
|
|
118
|
+
* Applied as `style="color:{color}"` on the nested SVG wrapper so that
|
|
119
|
+
* `currentColor` in the body inherits this tint. Ignored for brand icons.
|
|
120
|
+
* When absent the renderer omits the style attribute (inherits from context).
|
|
121
|
+
*/
|
|
122
|
+
readonly color?: string;
|
|
123
|
+
readonly opacity?: number;
|
|
124
|
+
}
|
|
79
125
|
/**
|
|
80
126
|
* SceneGroup — a logical grouping of elements.
|
|
81
127
|
*
|
|
@@ -94,7 +140,7 @@ export interface SceneGroup {
|
|
|
94
140
|
readonly opacity?: number;
|
|
95
141
|
}
|
|
96
142
|
/** Discriminated union of everything a renderer knows how to paint. */
|
|
97
|
-
export type SceneElement = SceneRect | SceneCircle | ScenePath | SceneText | SceneGroup;
|
|
143
|
+
export type SceneElement = SceneRect | SceneCircle | ScenePath | SceneText | SceneGroup | SceneIcon;
|
|
98
144
|
/**
|
|
99
145
|
* The complete, self-contained output of a layout pass.
|
|
100
146
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../../../src/contracts/scene.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC9F,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../../../src/contracts/scene.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/diagrams/mermaid/flowchart/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAA+B,MAAM,6BAA6B,CAAC;AAC9F,OAAO,KAAK,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/diagrams/mermaid/flowchart/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAA+B,MAAM,6BAA6B,CAAC;AAC9F,OAAO,KAAK,EAAE,YAAY,EAAY,MAAM,SAAS,CAAC;AAMtD,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE9I,eAAO,MAAM,SAAS,EAAE,aAAa,CAAC,YAAY,CAuCjD,CAAC"}
|
|
@@ -1,13 +1,31 @@
|
|
|
1
|
+
import { parseIconRef } from '../../../icons/resolver.js';
|
|
1
2
|
import { layoutFlowchart } from './layout.js';
|
|
2
3
|
import * as parser from './parser.js';
|
|
3
4
|
export const flowchart = {
|
|
4
5
|
parseMermaid(input) {
|
|
5
6
|
const raw = parser.parse(input);
|
|
7
|
+
const nodes = raw.flow.nodes.map((n) => {
|
|
8
|
+
const base = {
|
|
9
|
+
id: n.id,
|
|
10
|
+
label: n.label,
|
|
11
|
+
shape: n.shape || 'rect',
|
|
12
|
+
status: n.status || 'default',
|
|
13
|
+
...(n.subgraph !== undefined ? { subgraph: n.subgraph } : {}),
|
|
14
|
+
};
|
|
15
|
+
if (n.iconToken !== undefined) {
|
|
16
|
+
const result = parseIconRef(String(n.iconToken));
|
|
17
|
+
if (!result.ok) {
|
|
18
|
+
throw new Error(`Flowchart parse error: invalid @icon value "${n.iconToken}": ${result.error.message}`);
|
|
19
|
+
}
|
|
20
|
+
return { ...base, icon: result.value };
|
|
21
|
+
}
|
|
22
|
+
return base;
|
|
23
|
+
});
|
|
6
24
|
return {
|
|
7
25
|
version: raw.version,
|
|
8
26
|
metadata: raw.metadata ?? {},
|
|
9
27
|
direction: raw.direction,
|
|
10
|
-
nodes
|
|
28
|
+
nodes,
|
|
11
29
|
edges: raw.flow.edges,
|
|
12
30
|
subgraphs: raw.subgraphs ?? [],
|
|
13
31
|
overlays: raw.overlays?.length > 0 ? raw.overlays : undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/diagrams/mermaid/flowchart/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAItC,MAAM,CAAC,MAAM,SAAS,GAAgC;IACpD,YAAY,CAAC,KAAa;QACxB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAQ,CAAC;QACvC,OAAO;YACL,OAAO,EAAI,GAAG,CAAC,OAAO;YACtB,QAAQ,EAAG,GAAG,CAAC,QAAQ,IAAI,EAAE;YAC7B,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,KAAK
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/diagrams/mermaid/flowchart/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAItC,MAAM,CAAC,MAAM,SAAS,GAAgC;IACpD,YAAY,CAAC,KAAa;QACxB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAQ,CAAC;QACvC,MAAM,KAAK,GAAgB,GAAG,CAAC,IAAI,CAAC,KAAe,CAAC,GAAG,CAAC,CAAC,CAAM,EAAY,EAAE;YAC3E,MAAM,IAAI,GAAa;gBACrB,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,MAAM;gBACxB,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,SAAS;gBAC7B,GAAG,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxE,CAAC;YACF,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBACjD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;oBACf,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC,SAAS,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC1G,CAAC;gBACD,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;YACzC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QACH,OAAO;YACL,OAAO,EAAI,GAAG,CAAC,OAAO;YACtB,QAAQ,EAAG,GAAG,CAAC,QAAQ,IAAI,EAAE;YAC7B,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,KAAK;YACL,KAAK,EAAM,GAAG,CAAC,IAAI,CAAC,KAAK;YACzB,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,EAAE;YAC9B,QAAQ,EAAG,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;SAC/D,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,KAAa;QACrB,uCAAuC;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAiB,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,EAAgB,EAAE,KAAoB,EAAE,OAAuB;QACpE,OAAO,eAAe,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;CACF,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { BaseIR, CardinalSide, RouteStyle } from '../../../contracts/index.js';
|
|
2
|
-
|
|
2
|
+
import type { IconRef } from '../../../contracts/icons.js';
|
|
3
|
+
export type NodeShape = 'rect' | 'rounded-rect' | 'circle' | 'diamond' | 'stadium' | 'subroutine' | 'cylinder' | 'hexagon' | 'parallelogram' | 'parallelogram-alt' | 'asymmetric' | 'card';
|
|
3
4
|
export type NodeStatus = 'default' | 'active' | 'success' | 'warning' | 'error' | 'muted';
|
|
4
5
|
export interface FlowNode {
|
|
5
6
|
readonly id: string;
|
|
@@ -7,6 +8,8 @@ export interface FlowNode {
|
|
|
7
8
|
readonly shape: NodeShape;
|
|
8
9
|
readonly status?: NodeStatus;
|
|
9
10
|
readonly subgraph?: string;
|
|
11
|
+
/** Parsed icon reference from an @icon:<prefix:name> node annotation. */
|
|
12
|
+
readonly icon?: IconRef;
|
|
10
13
|
}
|
|
11
14
|
export type EdgeStyle = 'solid' | 'dashed' | 'dotted' | 'thick' | 'wavy';
|
|
12
15
|
/** Endpoint marker shape for flowchart edges. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ir.d.ts","sourceRoot":"","sources":["../../../../../../src/diagrams/mermaid/flowchart/ir.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"ir.d.ts","sourceRoot":"","sources":["../../../../../../src/diagrams/mermaid/flowchart/ir.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAE3D,MAAM,MAAM,SAAS,GACjB,MAAM,GAAG,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAC1D,YAAY,GAAG,UAAU,GAAG,SAAS,GACrC,eAAe,GAAG,mBAAmB,GAAG,YAAY,GACpD,MAAM,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAE1F,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,yEAAyE;IACzE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAEzE,iDAAiD;AACjD,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAElE,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC;IACnC,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC;IAC9B,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACjC,qEAAqE;IACrE,QAAQ,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC;CACnC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE7D,MAAM,WAAW,YAAa,SAAQ,MAAM;IAC1C,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IACpH,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,SAAS,YAAY,EAAE,CAAC;CAC7C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../../../../src/diagrams/mermaid/flowchart/layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAqC,MAAM,SAAS,CAAC;AAC/E,OAAO,KAAK,EAAoC,YAAY,EAAgD,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC/J,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../../../../src/diagrams/mermaid/flowchart/layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAqC,MAAM,SAAS,CAAC;AAC/E,OAAO,KAAK,EAAoC,YAAY,EAAgD,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC/J,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AA6EjE,wBAAgB,eAAe,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,YAAY,CAoS7G"}
|