kymostudio 0.2.4 → 0.2.6

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.
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Auto-layout — JS port of `packages/python/src/kymo/layout.py`.
3
+ *
4
+ * Two layout strategies, both writing component `pos` (and region `bounds`)
5
+ * in place:
6
+ * - `layout()` — grid mode: pack components into a region/row grid so rows
7
+ * line up across regions (cross-region same-row edges run flat).
8
+ * - `applyLayoutTree()` — Figma-style auto-layout: each frame hugs its
9
+ * contents, children flow along the frame axis with a fixed gap, cross
10
+ * axis centre-aligned. `minimizeCrossings()` barycenter-reorders children
11
+ * first so siblings land in a crossing-minimised order.
12
+ *
13
+ * This is an independent TypeScript implementation kept at parity with the
14
+ * Python algorithm — not a transpile. Output need not be byte-identical to
15
+ * Python's (the two renderers differ); it must produce equivalent geometry.
16
+ */
17
+ import { type Component, type Diagram, type Point } from "./model.js";
18
+ export type LayoutNode = {
19
+ t: "id";
20
+ id: string;
21
+ } | {
22
+ t: "group";
23
+ dir: "horizontal" | "vertical";
24
+ children: LayoutNode[];
25
+ padding?: Point;
26
+ };
27
+ export declare function idNode(id: string): LayoutNode;
28
+ export declare function groupNode(dir: "horizontal" | "vertical", children: LayoutNode[], padding?: Point): LayoutNode;
29
+ export interface RegionLayout {
30
+ [regionId: string]: string[][];
31
+ }
32
+ export interface ExternalSpec {
33
+ [componentId: string]: {
34
+ above?: string;
35
+ gap?: number;
36
+ };
37
+ }
38
+ export interface Cell {
39
+ w: number;
40
+ h: number;
41
+ }
42
+ export declare function cellSize(c: Component, hPad?: number, vPad?: number): Cell;
43
+ export interface LayoutOptions {
44
+ regionGap?: number;
45
+ rowGap?: number;
46
+ cellGap?: number;
47
+ regionPaddingX?: number;
48
+ regionPaddingY?: number;
49
+ canvasMargin?: number;
50
+ }
51
+ export declare function layout(diagram: Diagram, regionLayout: RegionLayout, external?: ExternalSpec | null, opts?: LayoutOptions): void;
52
+ export declare function applyLayoutTree(byId: Map<string, Component>, tree: LayoutNode, opts?: {
53
+ gap?: number;
54
+ origin?: Point;
55
+ }): Point;
56
+ export declare function minimizeCrossings(tree: LayoutNode, edges: Array<[string, string]>, maxSweeps?: number): void;
57
+ //# sourceMappingURL=layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../src/layout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAES,KAAK,SAAS,EAAE,KAAK,OAAO,EAAa,KAAK,KAAK,EAClE,MAAM,YAAY,CAAC;AAMpB,MAAM,MAAM,UAAU,GAClB;IAAE,CAAC,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACvB;IAAE,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,YAAY,GAAG,UAAU,CAAC;IAAC,QAAQ,EAAE,UAAU,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAE5F,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,CAE7C;AACD,wBAAgB,SAAS,CACvB,GAAG,EAAE,YAAY,GAAG,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,EAAE,KAAK,GACtE,UAAU,CAEZ;AAED,MAAM,WAAW,YAAY;IAC3B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;CAChC;AACD,MAAM,WAAW,YAAY;IAC3B,CAAC,WAAW,EAAE,MAAM,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD;AAyBD,MAAM,WAAW,IAAI;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,SAAI,EAAE,IAAI,SAAK,GAAG,IAAI,CAOhE;AAGD,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,MAAM,CACpB,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,YAAY,EAC1B,QAAQ,GAAE,YAAY,GAAG,IAAW,EACpC,IAAI,GAAE,aAAkB,GACvB,IAAI,CA4HN;AAGD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAC5B,IAAI,EAAE,UAAU,EAChB,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,KAAK,CAAA;CAAO,GAC1C,KAAK,CA4EP;AAUD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,SAAS,SAAK,GAC/D,IAAI,CAaN"}
package/dist/layout.js ADDED
@@ -0,0 +1,393 @@
1
+ /**
2
+ * Auto-layout — JS port of `packages/python/src/kymo/layout.py`.
3
+ *
4
+ * Two layout strategies, both writing component `pos` (and region `bounds`)
5
+ * in place:
6
+ * - `layout()` — grid mode: pack components into a region/row grid so rows
7
+ * line up across regions (cross-region same-row edges run flat).
8
+ * - `applyLayoutTree()` — Figma-style auto-layout: each frame hugs its
9
+ * contents, children flow along the frame axis with a fixed gap, cross
10
+ * axis centre-aligned. `minimizeCrossings()` barycenter-reorders children
11
+ * first so siblings land in a crossing-minimised order.
12
+ *
13
+ * This is an independent TypeScript implementation kept at parity with the
14
+ * Python algorithm — not a transpile. Output need not be byte-identical to
15
+ * Python's (the two renderers differ); it must produce equivalent geometry.
16
+ */
17
+ import { LABEL_HEIGHT, SHAPE_HALF, componentHalf, anchor, resolveAnchors, getComponent, } from "./model.js";
18
+ export function idNode(id) {
19
+ return { t: "id", id };
20
+ }
21
+ export function groupNode(dir, children, padding) {
22
+ return padding ? { t: "group", dir, children, padding } : { t: "group", dir, children };
23
+ }
24
+ // ── Sizing ─────────────────────────────────────────────────────────────
25
+ const CHAR_W_NAME = 7.6; // 14px component name
26
+ const CHAR_W_SUB = 6.4; // 11.5px subtitle
27
+ const LABEL_GAP = 6;
28
+ const LINE_HEIGHT = 18;
29
+ // Derive icon (w, h) from SHAPE_HALF so new shapes don't drift; annotation
30
+ // keeps a (40, 32) label budget though SHAPE_HALF treats it as (0, 0).
31
+ const ICON_DIMS = (() => {
32
+ const out = {};
33
+ for (const [shape, [hw, hh]] of Object.entries(SHAPE_HALF))
34
+ out[shape] = [2 * hw, 2 * hh];
35
+ out["annotation"] = [40, 32];
36
+ return out;
37
+ })();
38
+ function iconDims(shape) {
39
+ return ICON_DIMS[shape] ?? [0, 0];
40
+ }
41
+ function textW(s, charW) {
42
+ return Math.trunc(s.length * charW);
43
+ }
44
+ export function cellSize(c, hPad = 8, vPad = 10) {
45
+ const [iw, ih] = iconDims(c.shape);
46
+ const nameW = textW(c.name, CHAR_W_NAME);
47
+ const subW = textW(c.subtitle, CHAR_W_SUB);
48
+ const labelW = Math.max(nameW, subW);
49
+ const labelH = LABEL_GAP + LINE_HEIGHT * 2;
50
+ return { w: Math.max(iw, labelW) + hPad * 2, h: ih + labelH + vPad };
51
+ }
52
+ export function layout(diagram, regionLayout, external = null, opts = {}) {
53
+ const regionGap = opts.regionGap ?? 36;
54
+ const rowGap = opts.rowGap ?? 28;
55
+ const cellGap = opts.cellGap ?? 18;
56
+ const regionPaddingX = opts.regionPaddingX ?? 18;
57
+ const regionPaddingY = opts.regionPaddingY ?? 22;
58
+ const canvasMargin = opts.canvasMargin ?? 18;
59
+ const sizes = new Map(diagram.components.map((c) => [c.id, cellSize(c)]));
60
+ const regionIds = Object.keys(regionLayout);
61
+ // Per-row height across all regions → consistent Y for cross-region rows.
62
+ const maxRows = Math.max(...regionIds.map((rid) => regionLayout[rid].length));
63
+ const rowHeights = [];
64
+ for (let i = 0; i < maxRows; i++) {
65
+ let h = 0;
66
+ for (const rid of regionIds) {
67
+ const rows = regionLayout[rid];
68
+ if (i < rows.length) {
69
+ for (const cid of rows[i]) {
70
+ const s = sizes.get(cid);
71
+ if (s)
72
+ h = Math.max(h, s.h);
73
+ }
74
+ }
75
+ }
76
+ rowHeights.push(h || 100);
77
+ }
78
+ // Per-region width = max(row width).
79
+ const regionWidths = new Map();
80
+ for (const rid of regionIds) {
81
+ let w = 0;
82
+ for (const row of regionLayout[rid]) {
83
+ const rowW = row.reduce((acc, cid) => acc + (sizes.get(cid)?.w ?? 0), 0)
84
+ + (row.length - 1) * cellGap;
85
+ w = Math.max(w, rowW);
86
+ }
87
+ regionWidths.set(rid, w + regionPaddingX * 2);
88
+ }
89
+ // External components reserve vertical space above the first row.
90
+ const ext = external ?? {};
91
+ let extAboveHeight = 0;
92
+ for (const [eid, spec] of Object.entries(ext)) {
93
+ if (spec.above && sizes.has(eid)) {
94
+ extAboveHeight = Math.max(extAboveHeight, sizes.get(eid).h + (spec.gap ?? 60));
95
+ }
96
+ }
97
+ // Row centre-Y, cumulative.
98
+ const rowYs = [];
99
+ let y = canvasMargin + extAboveHeight;
100
+ for (const h of rowHeights) {
101
+ y += Math.floor(h / 2);
102
+ rowYs.push(y);
103
+ y += Math.floor(h / 2) + rowGap;
104
+ }
105
+ // Region centre-X, cumulative.
106
+ const regionXs = new Map();
107
+ let x = canvasMargin;
108
+ for (const rid of regionIds) {
109
+ const w = regionWidths.get(rid);
110
+ x += Math.floor(w / 2);
111
+ regionXs.set(rid, x);
112
+ x += Math.floor(w / 2) + regionGap;
113
+ }
114
+ const canvasRight = x - regionGap + canvasMargin;
115
+ // Place each component at its grid cell.
116
+ for (const rid of regionIds) {
117
+ const rx = regionXs.get(rid);
118
+ const rows = regionLayout[rid];
119
+ for (let i = 0; i < rows.length; i++) {
120
+ const row = rows[i];
121
+ const ry = rowYs[i];
122
+ const totalW = row.reduce((acc, cid) => acc + (sizes.get(cid)?.w ?? 0), 0)
123
+ + (row.length - 1) * cellGap;
124
+ let cursor = rx - Math.floor(totalW / 2);
125
+ for (const cid of row) {
126
+ const cw = sizes.get(cid)?.w ?? 0;
127
+ getComponent(diagram, cid).pos = [cursor + Math.floor(cw / 2), ry];
128
+ cursor += cw + cellGap;
129
+ }
130
+ }
131
+ }
132
+ // Place external (above a target).
133
+ for (const [eid, spec] of Object.entries(ext)) {
134
+ if (spec.above) {
135
+ const target = getComponent(diagram, spec.above);
136
+ const gap = spec.gap ?? 60;
137
+ const targetTop = target.pos[1] - Math.floor((sizes.get(spec.above)?.h ?? 0) / 2);
138
+ getComponent(diagram, eid).pos = [
139
+ target.pos[0],
140
+ targetTop - gap - Math.floor((sizes.get(eid)?.h ?? 0) / 2),
141
+ ];
142
+ }
143
+ }
144
+ // Region bounds — hug the cells with region padding.
145
+ for (const rid of regionIds) {
146
+ const rx = regionXs.get(rid);
147
+ const rw = regionWidths.get(rid);
148
+ const rows = regionLayout[rid];
149
+ const n = rows.length;
150
+ const top = rowYs[0] - Math.floor(rowHeights[0] / 2) - regionPaddingY;
151
+ const bot = rowYs[n - 1] + Math.floor(rowHeights[n - 1] / 2) + regionPaddingY;
152
+ for (const r of diagram.regions) {
153
+ if (r.id === rid) {
154
+ r.bounds = [rx - Math.floor(rw / 2), top, rw, bot - top];
155
+ break;
156
+ }
157
+ }
158
+ }
159
+ // Auto-route edges that asked for it.
160
+ routeEdges(diagram, rowYs);
161
+ // Final canvas — fit content + margin.
162
+ diagram.width = canvasRight;
163
+ diagram.height = Math.max(...diagram.components.map((c) => c.pos[1] + Math.floor((sizes.get(c.id)?.h ?? 0) / 2))) + canvasMargin;
164
+ }
165
+ // ── Anonymous layout-tree (Figma-style auto-layout) ────────────────────
166
+ export function applyLayoutTree(byId, tree, opts = {}) {
167
+ const gap = opts.gap ?? 40;
168
+ const origin = opts.origin ?? [0, 0];
169
+ const lookup = (cid) => {
170
+ const c = byId.get(cid);
171
+ if (!c)
172
+ throw new Error(`layout tree references unknown component ${JSON.stringify(cid)}`);
173
+ return c;
174
+ };
175
+ const cell = (c) => {
176
+ const [iw, ih] = iconDims(c.shape);
177
+ const lh = (c.name || c.subtitle) ? (LABEL_HEIGHT[c.shape] ?? 0) : 0;
178
+ return [iw, ih + lh];
179
+ };
180
+ const padOf = (node) => (node.t === "group" && node.padding) ? node.padding : [0, 0];
181
+ const effectiveGap = (dir, sizes) => {
182
+ const cross = dir === "horizontal"
183
+ ? Math.max(...sizes.map((s) => s[1]))
184
+ : Math.max(...sizes.map((s) => s[0]));
185
+ return Math.max(gap, Math.floor(cross / 4));
186
+ };
187
+ const measure = (node) => {
188
+ if (node.t === "id")
189
+ return cell(lookup(node.id));
190
+ const [px, py] = padOf(node);
191
+ const sizes = node.children.map(measure);
192
+ const eg = effectiveGap(node.dir, sizes);
193
+ if (node.dir === "horizontal") {
194
+ return [
195
+ sizes.reduce((a, s) => a + s[0], 0) + (sizes.length - 1) * eg + 2 * px,
196
+ Math.max(...sizes.map((s) => s[1])) + 2 * py,
197
+ ];
198
+ }
199
+ return [
200
+ Math.max(...sizes.map((s) => s[0])) + 2 * px,
201
+ sizes.reduce((a, s) => a + s[1], 0) + (sizes.length - 1) * eg + 2 * py,
202
+ ];
203
+ };
204
+ const place = (node, cx, cy) => {
205
+ if (node.t === "id") {
206
+ const c = lookup(node.id);
207
+ const lh = (c.name || c.subtitle) ? (LABEL_HEIGHT[c.shape] ?? 0) : 0;
208
+ c.pos = [cx, cy - Math.floor(lh / 2)]; // cell center → icon center
209
+ return;
210
+ }
211
+ const sizes = node.children.map(measure);
212
+ const eg = effectiveGap(node.dir, sizes);
213
+ const [w, h] = measure(node);
214
+ const [px, py] = padOf(node);
215
+ const innerW = w - 2 * px;
216
+ const innerH = h - 2 * py;
217
+ if (node.dir === "horizontal") {
218
+ let cursor = cx - Math.floor(innerW / 2);
219
+ node.children.forEach((ch, i) => {
220
+ const cw = sizes[i][0];
221
+ place(ch, cursor + Math.floor(cw / 2), cy);
222
+ cursor += cw + eg;
223
+ });
224
+ }
225
+ else {
226
+ let cursor = cy - Math.floor(innerH / 2);
227
+ node.children.forEach((ch, i) => {
228
+ const chH = sizes[i][1];
229
+ place(ch, cx, cursor + Math.floor(chH / 2));
230
+ cursor += chH + eg;
231
+ });
232
+ }
233
+ };
234
+ const [w, h] = measure(tree);
235
+ place(tree, origin[0] + Math.floor(w / 2), origin[1] + Math.floor(h / 2));
236
+ return [w, h];
237
+ }
238
+ // ── Crossing minimisation (barycenter heuristic) ────────────────────────
239
+ function collectLeavesOrdered(node) {
240
+ if (node.t === "id")
241
+ return [node.id];
242
+ const out = [];
243
+ for (const ch of node.children)
244
+ out.push(...collectLeavesOrdered(ch));
245
+ return out;
246
+ }
247
+ export function minimizeCrossings(tree, edges, maxSweeps = 24) {
248
+ if (tree.t !== "group")
249
+ return;
250
+ const leafAdj = new Map();
251
+ const add = (a, b) => {
252
+ if (!leafAdj.has(a))
253
+ leafAdj.set(a, new Set());
254
+ leafAdj.get(a).add(b);
255
+ };
256
+ for (const [s, d] of edges) {
257
+ add(s, d);
258
+ add(d, s);
259
+ }
260
+ for (let i = 0; i < maxSweeps; i++) {
261
+ if (!sweepNode(tree, leafAdj))
262
+ break;
263
+ }
264
+ }
265
+ function sweepNode(node, leafAdj) {
266
+ if (node.t !== "group")
267
+ return false;
268
+ let changed = false;
269
+ for (const ch of node.children) {
270
+ if (sweepNode(ch, leafAdj))
271
+ changed = true;
272
+ }
273
+ const sibs = node.children;
274
+ const n = sibs.length;
275
+ if (n < 2)
276
+ return changed;
277
+ for (let i = 0; i < n - 1; i++) {
278
+ if (barycenterReorder(sibs, i, i + 1, leafAdj))
279
+ changed = true;
280
+ }
281
+ for (let i = n - 1; i > 0; i--) {
282
+ if (barycenterReorder(sibs, i, i - 1, leafAdj))
283
+ changed = true;
284
+ }
285
+ return changed;
286
+ }
287
+ function barycenterReorder(sibs, fixedIdx, freeIdx, adj) {
288
+ const free = sibs[freeIdx];
289
+ if (free.t !== "group")
290
+ return false;
291
+ const fixedLeaves = collectLeavesOrdered(sibs[fixedIdx]);
292
+ const fixedPos = new Map(fixedLeaves.map((leaf, idx) => [leaf, idx]));
293
+ const keyed = free.children.map((ch, chIdx) => {
294
+ const positions = [];
295
+ for (const leaf of collectLeavesOrdered(ch)) {
296
+ for (const adjLeaf of adj.get(leaf) ?? []) {
297
+ if (fixedPos.has(adjLeaf))
298
+ positions.push(fixedPos.get(adjLeaf));
299
+ }
300
+ }
301
+ const bary = positions.length
302
+ ? positions.reduce((a, b) => a + b, 0) / positions.length
303
+ : chIdx;
304
+ return { bary, chIdx, ch };
305
+ });
306
+ keyed.sort((a, b) => (a.bary - b.bary) || (a.chIdx - b.chIdx)); // stable on ties
307
+ const newChildren = keyed.map((t) => t.ch);
308
+ if (newChildren.length === free.children.length
309
+ && newChildren.every((c, i) => c === free.children[i])) {
310
+ return false;
311
+ }
312
+ free.children = newChildren;
313
+ return true;
314
+ }
315
+ // ── Edge routing helpers ───────────────────────────────────────────────
316
+ function routeEdges(diagram, rowYs) {
317
+ for (const e of diagram.edges) {
318
+ if (e.via.length)
319
+ continue; // respect explicit waypoints
320
+ if (e.route === "over")
321
+ e.via = routeOver(diagram, e, rowYs);
322
+ else if (e.route === "under")
323
+ e.via = routeUnder(diagram, e, rowYs);
324
+ // "auto" → no via; the renderer's auto-elbow handles it.
325
+ }
326
+ }
327
+ function nearestRow(rowYs, y) {
328
+ let best = 0;
329
+ let bestD = Infinity;
330
+ for (let i = 0; i < rowYs.length; i++) {
331
+ const d = Math.abs(rowYs[i] - y);
332
+ if (d < bestD) {
333
+ bestD = d;
334
+ best = i;
335
+ }
336
+ }
337
+ return best;
338
+ }
339
+ function routeOver(diagram, e, rowYs) {
340
+ const src = getComponent(diagram, e.src);
341
+ const dst = getComponent(diagram, e.dst);
342
+ const [sa, da] = resolveAnchors(e, src, dst);
343
+ const sp = anchor(src, sa);
344
+ const dp = anchor(dst, da);
345
+ const srcRow = nearestRow(rowYs, src.pos[1]);
346
+ if (srcRow === 0) {
347
+ const tops = diagram.components
348
+ .filter((c) => c.shape !== "annotation")
349
+ .map((c) => c.pos[1] - componentHalf(c)[1]);
350
+ const topOfContent = tops.length ? Math.min(...tops) : 0;
351
+ const overY = Math.max(14, topOfContent - 30);
352
+ return [[sp[0], overY], [dp[0], overY]];
353
+ }
354
+ const TOL = 5;
355
+ const prevRowY = rowYs[srcRow - 1];
356
+ const currRowY = rowYs[srcRow];
357
+ const prevCells = diagram.components.filter((c) => Math.abs(c.pos[1] - prevRowY) < TOL);
358
+ const currCells = diagram.components.filter((c) => Math.abs(c.pos[1] - currRowY) < TOL);
359
+ const prevBottom = prevCells.length
360
+ ? Math.max(...prevCells.map((c) => c.pos[1] + componentHalf(c)[1] + (LABEL_HEIGHT[c.shape] ?? 0)))
361
+ : prevRowY;
362
+ const currTop = currCells.length
363
+ ? Math.min(...currCells.map((c) => c.pos[1] - componentHalf(c)[1]))
364
+ : currRowY;
365
+ const overY = Math.floor((prevBottom + currTop) / 2);
366
+ return [[sp[0], overY], [dp[0], overY]];
367
+ }
368
+ function routeUnder(diagram, e, rowYs) {
369
+ const src = getComponent(diagram, e.src);
370
+ const dst = getComponent(diagram, e.dst);
371
+ const [sa, da] = resolveAnchors(e, src, dst);
372
+ const sp = anchor(src, sa);
373
+ const dp = anchor(dst, da);
374
+ const srcRow = nearestRow(rowYs, src.pos[1]);
375
+ if (srcRow + 1 >= rowYs.length) {
376
+ const yy = Math.max(sp[1], dp[1]) + 36;
377
+ return [[sp[0], yy], [dp[0], yy]];
378
+ }
379
+ const TOL = 5;
380
+ const srcRowY = rowYs[srcRow];
381
+ const nextRowY = rowYs[srcRow + 1];
382
+ const srcCells = diagram.components.filter((c) => Math.abs(c.pos[1] - srcRowY) < TOL);
383
+ const nextCells = diagram.components.filter((c) => Math.abs(c.pos[1] - nextRowY) < TOL);
384
+ const rowBottom = srcCells.length
385
+ ? Math.max(...srcCells.map((c) => c.pos[1] + componentHalf(c)[1] + (LABEL_HEIGHT[c.shape] ?? 0)))
386
+ : srcRowY;
387
+ const nextTop = nextCells.length
388
+ ? Math.min(...nextCells.map((c) => c.pos[1] - componentHalf(c)[1]))
389
+ : nextRowY;
390
+ const underY = Math.floor((rowBottom + nextTop) / 2);
391
+ return [[sp[0], underY], [dp[0], underY]];
392
+ }
393
+ //# sourceMappingURL=layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../src/layout.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAEW,KAAK,OAAO,EAC7B,MAAM,YAAY,CAAC;AAOpB,MAAM,WAAW,aAAa;IAC5B,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAmDD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CA2FrF"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAEW,KAAK,OAAO,EAC7B,MAAM,YAAY,CAAC;AAOpB,MAAM,WAAW,aAAa;IAC5B,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AA8DD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CA8FrF"}
package/dist/render.js CHANGED
@@ -40,6 +40,16 @@ const CSS = `
40
40
  .title { fill: #0f172a; font-size: 17px; font-weight: 700; }
41
41
  .label { fill: #1e293b; font-size: 13px; font-weight: 600; text-anchor: middle; }
42
42
  .elabel { fill: #64748b; font-size: 10.5px; text-anchor: middle; }`;
43
+ // Architecture-diagram region styling. These same three rules also live in
44
+ // BPMN_STYLE (which serves pool/lane diagrams); inject this only for non-BPMN
45
+ // diagrams that have regions, so a `.diagram` with `outer`/`inner` frames gets
46
+ // its near-transparent fills + outlines instead of falling back to SVG-default
47
+ // black, while BPMN output stays byte-identical. (Without this, region rects
48
+ // have no fill rule and render solid black — breaking light backgrounds.)
49
+ const REGION_STYLE = `
50
+ .region-rect { fill: rgba(15,23,42,0.02); stroke: #cbd5e1; stroke-width: 1.4; }
51
+ .region-rect--inner { fill: rgba(124,58,237,0.03); stroke: #7c3aed; stroke-width: 1.3; stroke-dasharray: 4 4; }
52
+ .region-label--inner { font-size: 12px; font-weight: 600; fill: #6d28d9; }`;
43
53
  /** Horizontally-biased cubic Bézier between two resolved anchor points. */
44
54
  function edgePath(x1, y1, sa, x2, y2, da) {
45
55
  const k = Math.max(40, Math.abs(x2 - x1) * 0.5);
@@ -69,6 +79,9 @@ export async function renderSVG(d, opts = {}) {
69
79
  const hasBpmn = d.components.some((c) => c.shape.startsWith("bpmn-"))
70
80
  || d.edges.some((e) => e.points != null && e.points.length > 0)
71
81
  || d.regions.some((r) => r.style === "pool" || r.style === "lane");
82
+ // Non-BPMN diagrams with regions need the region CSS injected too (BPMN
83
+ // diagrams already get it via BPMN_STYLE).
84
+ const needsRegionStyle = !hasBpmn && d.regions.length > 0;
72
85
  let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;
73
86
  const grow = (x, y) => {
74
87
  minX = Math.min(minX, x);
@@ -145,7 +158,7 @@ export async function renderSVG(d, opts = {}) {
145
158
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="${x0} ${y0} ${w} ${h}" width="${w}" height="${h}">
146
159
  <defs>${DEFS}${hasBpmn ? BPMN_DEFS : ""}
147
160
  </defs>
148
- <style>${CSS}${hasBpmn ? BPMN_STYLE : ""}
161
+ <style>${CSS}${needsRegionStyle ? REGION_STYLE : ""}${hasBpmn ? BPMN_STYLE : ""}
149
162
  </style>
150
163
  ${bg}
151
164
  ${title}${regionRects}
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kymostudio",
3
- "version": "0.2.4",
3
+ "version": "0.2.6",
4
4
  "description": "Diagram-as-code: turn a declarative .diagram DSL — or a standard BPMN 2.0 .bpmn file — into animated SVG / WebP.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",