@zukhruf/diagram 0.3.32 → 0.3.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/README.md +98 -52
  2. package/dist/index.d.ts +5 -3
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +1 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/lib/compiler/diagram-compile.d.ts +3 -4
  7. package/dist/lib/compiler/diagram-compile.d.ts.map +1 -1
  8. package/dist/lib/compiler/diagram-compile.js +85 -370
  9. package/dist/lib/compiler/diagram-compile.js.map +1 -1
  10. package/dist/lib/layouts/graph/attach.d.ts +25 -0
  11. package/dist/lib/layouts/graph/attach.d.ts.map +1 -0
  12. package/dist/lib/layouts/graph/attach.js +272 -0
  13. package/dist/lib/layouts/graph/attach.js.map +1 -0
  14. package/dist/lib/layouts/graph/connections.d.ts +45 -0
  15. package/dist/lib/layouts/graph/connections.d.ts.map +1 -0
  16. package/dist/lib/layouts/graph/connections.js +138 -0
  17. package/dist/lib/layouts/graph/connections.js.map +1 -0
  18. package/dist/lib/layouts/graph/graph-layout-result.d.ts +5 -3
  19. package/dist/lib/layouts/graph/graph-layout-result.d.ts.map +1 -1
  20. package/dist/lib/layouts/graph/graph-layout-result.js.map +1 -1
  21. package/dist/lib/layouts/graph/gutters.js +41 -22
  22. package/dist/lib/layouts/graph/gutters.js.map +1 -1
  23. package/dist/lib/layouts/graph/labels.d.ts +23 -0
  24. package/dist/lib/layouts/graph/labels.d.ts.map +1 -0
  25. package/dist/lib/layouts/graph/labels.js +120 -0
  26. package/dist/lib/layouts/graph/labels.js.map +1 -0
  27. package/dist/lib/layouts/graph/layout.d.ts +1 -1
  28. package/dist/lib/layouts/graph/layout.d.ts.map +1 -1
  29. package/dist/lib/layouts/graph/layout.js +37 -12
  30. package/dist/lib/layouts/graph/layout.js.map +1 -1
  31. package/dist/lib/layouts/graph/measure.d.ts +15 -11
  32. package/dist/lib/layouts/graph/measure.d.ts.map +1 -1
  33. package/dist/lib/layouts/graph/measure.js +82 -38
  34. package/dist/lib/layouts/graph/measure.js.map +1 -1
  35. package/dist/lib/layouts/graph/min-heap.d.ts +8 -0
  36. package/dist/lib/layouts/graph/min-heap.d.ts.map +1 -0
  37. package/dist/lib/layouts/graph/min-heap.js +56 -0
  38. package/dist/lib/layouts/graph/min-heap.js.map +1 -0
  39. package/dist/lib/layouts/graph/node-content.d.ts +2 -3
  40. package/dist/lib/layouts/graph/node-content.d.ts.map +1 -1
  41. package/dist/lib/layouts/graph/node-content.js +67 -47
  42. package/dist/lib/layouts/graph/node-content.js.map +1 -1
  43. package/dist/lib/layouts/graph/path.d.ts +6 -0
  44. package/dist/lib/layouts/graph/path.d.ts.map +1 -0
  45. package/dist/lib/layouts/graph/path.js +53 -0
  46. package/dist/lib/layouts/graph/path.js.map +1 -0
  47. package/dist/lib/layouts/graph/round.d.ts +11 -0
  48. package/dist/lib/layouts/graph/round.d.ts.map +1 -0
  49. package/dist/lib/layouts/graph/round.js +181 -0
  50. package/dist/lib/layouts/graph/round.js.map +1 -0
  51. package/dist/lib/layouts/graph/route-search.d.ts +34 -0
  52. package/dist/lib/layouts/graph/route-search.d.ts.map +1 -0
  53. package/dist/lib/layouts/graph/route-search.js +208 -0
  54. package/dist/lib/layouts/graph/route-search.js.map +1 -0
  55. package/dist/lib/layouts/graph/route.d.ts +20 -0
  56. package/dist/lib/layouts/graph/route.d.ts.map +1 -0
  57. package/dist/lib/layouts/graph/route.js +276 -0
  58. package/dist/lib/layouts/graph/route.js.map +1 -0
  59. package/dist/lib/layouts/graph/sides.d.ts +28 -0
  60. package/dist/lib/layouts/graph/sides.d.ts.map +1 -0
  61. package/dist/lib/layouts/graph/sides.js +98 -0
  62. package/dist/lib/layouts/graph/sides.js.map +1 -0
  63. package/dist/lib/layouts/timeline/timeline-layout.d.ts +2 -1
  64. package/dist/lib/layouts/timeline/timeline-layout.d.ts.map +1 -1
  65. package/dist/lib/layouts/timeline/timeline-layout.js +9 -4
  66. package/dist/lib/layouts/timeline/timeline-layout.js.map +1 -1
  67. package/dist/lib/model/diagram-ir.d.ts +19 -156
  68. package/dist/lib/model/diagram-ir.d.ts.map +1 -1
  69. package/dist/lib/model/diagram-ir.js.map +1 -1
  70. package/dist/lib/model/validate-graph.d.ts +7 -0
  71. package/dist/lib/model/validate-graph.d.ts.map +1 -0
  72. package/dist/lib/model/validate-graph.js +54 -0
  73. package/dist/lib/model/validate-graph.js.map +1 -0
  74. package/dist/lib/react/Diagram.d.ts +3 -9
  75. package/dist/lib/react/Diagram.d.ts.map +1 -1
  76. package/dist/lib/react/Diagram.js +1 -13
  77. package/dist/lib/react/Diagram.js.map +1 -1
  78. package/dist/lib/react/diagram-types.d.ts +17 -46
  79. package/dist/lib/react/diagram-types.d.ts.map +1 -1
  80. package/dist/lib/react/diagram-types.js.map +1 -1
  81. package/dist/lib/renderers/canvas/graph-canvas.d.ts +2 -5
  82. package/dist/lib/renderers/canvas/graph-canvas.d.ts.map +1 -1
  83. package/dist/lib/renderers/canvas/graph-canvas.js +68 -43
  84. package/dist/lib/renderers/canvas/graph-canvas.js.map +1 -1
  85. package/dist/lib/renderers/html/graph-html.d.ts +2 -3
  86. package/dist/lib/renderers/html/graph-html.d.ts.map +1 -1
  87. package/dist/lib/renderers/html/graph-html.js +298 -289
  88. package/dist/lib/renderers/html/graph-html.js.map +1 -1
  89. package/dist/lib/renderers/shared/graph-parts.d.ts +3 -1
  90. package/dist/lib/renderers/shared/graph-parts.d.ts.map +1 -1
  91. package/dist/lib/renderers/shared/graph-parts.js +350 -418
  92. package/dist/lib/renderers/shared/graph-parts.js.map +1 -1
  93. package/dist/lib/renderers/shared/node-parts.d.ts +5 -6
  94. package/dist/lib/renderers/shared/node-parts.d.ts.map +1 -1
  95. package/dist/lib/renderers/shared/node-parts.js +112 -190
  96. package/dist/lib/renderers/shared/node-parts.js.map +1 -1
  97. package/dist/lib/renderers/shared/run-spans.js +2 -2
  98. package/dist/lib/renderers/shared/run-spans.js.map +1 -1
  99. package/dist/lib/renderers/shared/text-runs.d.ts +0 -6
  100. package/dist/lib/renderers/shared/text-runs.d.ts.map +1 -1
  101. package/dist/lib/renderers/shared/text-runs.js +0 -12
  102. package/dist/lib/renderers/shared/text-runs.js.map +1 -1
  103. package/dist/lib/renderers/svg/graph-svg.d.ts +1 -3
  104. package/dist/lib/renderers/svg/graph-svg.d.ts.map +1 -1
  105. package/dist/lib/renderers/svg/graph-svg.js +66 -80
  106. package/dist/lib/renderers/svg/graph-svg.js.map +1 -1
  107. package/dist/lib/renderers/svg/timeline-svg.d.ts.map +1 -1
  108. package/dist/lib/renderers/svg/timeline-svg.js +7 -5
  109. package/dist/lib/renderers/svg/timeline-svg.js.map +1 -1
  110. package/package.json +1 -1
  111. package/dist/lib/layouts/graph/graph-layout.d.ts +0 -154
  112. package/dist/lib/layouts/graph/graph-layout.d.ts.map +0 -1
  113. package/dist/lib/layouts/graph/graph-layout.js +0 -2340
  114. package/dist/lib/layouts/graph/graph-layout.js.map +0 -1
  115. package/dist/lib/layouts/graph/legacy-graph-layout.d.ts +0 -6
  116. package/dist/lib/layouts/graph/legacy-graph-layout.d.ts.map +0 -1
  117. package/dist/lib/layouts/graph/legacy-graph-layout.js +0 -542
  118. package/dist/lib/layouts/graph/legacy-graph-layout.js.map +0 -1
  119. package/dist/lib/layouts/text-metrics.d.ts +0 -7
  120. package/dist/lib/layouts/text-metrics.d.ts.map +0 -1
  121. package/dist/lib/layouts/text-metrics.js +0 -40
  122. package/dist/lib/layouts/text-metrics.js.map +0 -1
@@ -1,21 +1,20 @@
1
1
  import { c as _c } from "react/compiler-runtime";
2
2
  import { motion, useTransform } from 'motion/react';
3
3
  import { compileGraph } from "../../compiler/diagram-compile.js";
4
- import { legacyGraphLayout } from "../../layouts/graph/legacy-graph-layout.js";
4
+ import { layoutGraph } from "../../layouts/graph/layout.js";
5
5
  import { FONT_FAMILY, TEXT_SHAPING } from "../../layouts/text/font.js";
6
6
  import { DIAGRAM_DOT, DIAGRAM_HATCH, DiagramFrame, useDiagramTheme } from "../../react/chrome/index.js";
7
7
  import { DiagramDefs } from "../shared/defs.js";
8
8
  import { DiagramNodeIcon, EdgeOverlay, EdgeStroke, GroupRect, buildSegments, nodeFrameFill, nodeFrameStroke, nodeFrameStrokeWidth, nodeTextFill, nodeTexture } from "../shared/graph-parts.js";
9
- import { ANNOTATION_REVEAL_START, AnnotationText, NodeCaption, NodePorts, NodeStackFrames, SpecialNode, isSpecialNode, splitNotes } from "../shared/node-parts.js";
9
+ import { NOTE_REVEAL_START, NodeCaption, NodePorts, NodeStackFrames, NoteText, SpecialNode, isSpecialNode, splitNotes } from "../shared/node-parts.js";
10
10
  import { DiagramPaperRect } from "../shared/paper.js";
11
11
  import { nodeTextParts, runFill } from "../shared/text-runs.js";
12
12
  import { formatZoom, normalizeZoom } from "../shared/viewport-zoom.js";
13
13
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
14
  export function HtmlGraphDiagram(t0) {
15
- const $ = _c(23);
15
+ const $ = _c(21);
16
16
  let children;
17
17
  let chrome;
18
- let graph;
19
18
  let paper;
20
19
  let title;
21
20
  let viewport;
@@ -23,7 +22,6 @@ export function HtmlGraphDiagram(t0) {
23
22
  ({
24
23
  title,
25
24
  children,
26
- graph,
27
25
  viewport,
28
26
  paper,
29
27
  ...chrome
@@ -31,49 +29,46 @@ export function HtmlGraphDiagram(t0) {
31
29
  $[0] = t0;
32
30
  $[1] = children;
33
31
  $[2] = chrome;
34
- $[3] = graph;
35
- $[4] = paper;
36
- $[5] = title;
37
- $[6] = viewport;
32
+ $[3] = paper;
33
+ $[4] = title;
34
+ $[5] = viewport;
38
35
  } else {
39
36
  children = $[1];
40
37
  chrome = $[2];
41
- graph = $[3];
42
- paper = $[4];
43
- title = $[5];
44
- viewport = $[6];
38
+ paper = $[3];
39
+ title = $[4];
40
+ viewport = $[5];
45
41
  }
46
42
  let t1;
47
- if ($[7] !== children || $[8] !== graph) {
48
- t1 = compileGraph(children, graph);
49
- $[7] = children;
50
- $[8] = graph;
51
- $[9] = t1;
43
+ if ($[6] !== children) {
44
+ t1 = compileGraph(children);
45
+ $[6] = children;
46
+ $[7] = t1;
52
47
  } else {
53
- t1 = $[9];
48
+ t1 = $[7];
54
49
  }
55
50
  const ir = t1;
56
51
  let t2;
57
- if ($[10] !== title) {
52
+ if ($[8] !== title) {
58
53
  t2 = [title].flat();
59
- $[10] = title;
60
- $[11] = t2;
54
+ $[8] = title;
55
+ $[9] = t2;
61
56
  } else {
62
- t2 = $[11];
57
+ t2 = $[9];
63
58
  }
64
59
  const lines = t2;
65
60
  const t3 = viewport?.zoom;
66
61
  let t4;
67
- if ($[12] !== t3) {
62
+ if ($[10] !== t3) {
68
63
  t4 = normalizeZoom(t3);
69
- $[12] = t3;
70
- $[13] = t4;
64
+ $[10] = t3;
65
+ $[11] = t4;
71
66
  } else {
72
- t4 = $[13];
67
+ t4 = $[11];
73
68
  }
74
69
  const zoom = t4;
75
70
  let t5;
76
- if ($[14] !== ir || $[15] !== lines || $[16] !== paper || $[17] !== zoom) {
71
+ if ($[12] !== ir || $[13] !== lines || $[14] !== paper || $[15] !== zoom) {
77
72
  t5 = progress => /*#__PURE__*/_jsx(GraphHTML, {
78
73
  ir: ir,
79
74
  title: lines,
@@ -81,32 +76,32 @@ export function HtmlGraphDiagram(t0) {
81
76
  zoom: zoom,
82
77
  paper: paper
83
78
  });
84
- $[14] = ir;
85
- $[15] = lines;
86
- $[16] = paper;
87
- $[17] = zoom;
88
- $[18] = t5;
79
+ $[12] = ir;
80
+ $[13] = lines;
81
+ $[14] = paper;
82
+ $[15] = zoom;
83
+ $[16] = t5;
89
84
  } else {
90
- t5 = $[18];
85
+ t5 = $[16];
91
86
  }
92
87
  let t6;
93
- if ($[19] !== chrome || $[20] !== lines || $[21] !== t5) {
88
+ if ($[17] !== chrome || $[18] !== lines || $[19] !== t5) {
94
89
  t6 = /*#__PURE__*/_jsx(DiagramFrame, {
95
90
  title: lines,
96
91
  ...chrome,
97
92
  children: t5
98
93
  });
99
- $[19] = chrome;
100
- $[20] = lines;
101
- $[21] = t5;
102
- $[22] = t6;
94
+ $[17] = chrome;
95
+ $[18] = lines;
96
+ $[19] = t5;
97
+ $[20] = t6;
103
98
  } else {
104
- t6 = $[22];
99
+ t6 = $[20];
105
100
  }
106
101
  return t6;
107
102
  }
108
103
  function GraphHTML(t0) {
109
- const $ = _c(58);
104
+ const $ = _c(63);
110
105
  const {
111
106
  ir,
112
107
  title,
@@ -134,7 +129,7 @@ function GraphHTML(t0) {
134
129
  let t8;
135
130
  let t9;
136
131
  if ($[0] !== ir || $[1] !== paper || $[2] !== progress || $[3] !== stylePreset || $[4] !== title || $[5] !== zoom) {
137
- const layout = legacyGraphLayout(ir);
132
+ const layout = layoutGraph(ir);
138
133
  const {
139
134
  viewBox
140
135
  } = layout;
@@ -264,27 +259,52 @@ function GraphHTML(t0) {
264
259
  end: groupsSeg.end
265
260
  }, `group-${groupLayout.group.id}`)), indexedEdges.filter(_temp4).map(t19), nodes.map(t20)]
266
261
  });
267
- t10 = boxNodes.map(t21 => {
268
- const {
269
- layout: nodeLayout_1,
270
- segment: segment_2
271
- } = t21;
272
- return /*#__PURE__*/_jsx(NodeBox, {
273
- layout: nodeLayout_1,
274
- origin: viewBox,
275
- progress: progress,
276
- start: segment_2.start,
277
- end: segment_2.end
278
- }, `node-${nodeLayout_1.node.id}`);
262
+ const t21 = -viewBox.x;
263
+ const t22 = -viewBox.y;
264
+ let t23;
265
+ if ($[31] !== t21 || $[32] !== t22) {
266
+ t23 = {
267
+ left: t21,
268
+ top: t22
269
+ };
270
+ $[31] = t21;
271
+ $[32] = t22;
272
+ $[33] = t23;
273
+ } else {
274
+ t23 = $[33];
275
+ }
276
+ let t24;
277
+ if ($[34] !== progress) {
278
+ t24 = t25 => {
279
+ const {
280
+ layout: nodeLayout_1,
281
+ segment: segment_2
282
+ } = t25;
283
+ return /*#__PURE__*/_jsx(NodeBox, {
284
+ layout: nodeLayout_1,
285
+ progress: progress,
286
+ start: segment_2.start,
287
+ end: segment_2.end
288
+ }, `node-${nodeLayout_1.node.id}`);
289
+ };
290
+ $[34] = progress;
291
+ $[35] = t24;
292
+ } else {
293
+ t24 = $[35];
294
+ }
295
+ t10 = /*#__PURE__*/_jsx("div", {
296
+ className: "absolute",
297
+ style: t23,
298
+ children: boxNodes.map(t24)
279
299
  });
280
300
  t1 = svgLayer;
281
- let t22;
282
- if ($[31] !== progress) {
283
- t22 = t23 => {
301
+ let t25;
302
+ if ($[36] !== progress) {
303
+ t25 = t26 => {
284
304
  const {
285
305
  layout: nodeLayout_2,
286
306
  segment: segment_3
287
- } = t23;
307
+ } = t26;
288
308
  return /*#__PURE__*/_jsxs(NodeReveal, {
289
309
  progress: progress,
290
310
  start: segment_3.start,
@@ -296,21 +316,21 @@ function GraphHTML(t0) {
296
316
  })]
297
317
  }, `node-marks-${nodeLayout_2.node.id}`);
298
318
  };
299
- $[31] = progress;
300
- $[32] = t22;
319
+ $[36] = progress;
320
+ $[37] = t25;
301
321
  } else {
302
- t22 = $[32];
322
+ t25 = $[37];
303
323
  }
304
- t2 = boxNodes.map(t22);
305
- let t23;
306
- if ($[33] !== progress) {
307
- t23 = t24 => {
324
+ t2 = boxNodes.map(t25);
325
+ let t26;
326
+ if ($[38] !== progress) {
327
+ t26 = t27 => {
308
328
  const {
309
329
  d: d_1,
310
330
  edge: edge_0,
311
331
  index: index_2,
312
332
  segment: segment_4
313
- } = t24;
333
+ } = t27;
314
334
  return /*#__PURE__*/_jsx(EdgeStroke, {
315
335
  d: d_1,
316
336
  edge: edge_0,
@@ -319,32 +339,31 @@ function GraphHTML(t0) {
319
339
  end: segment_4.end
320
340
  }, `edge-foreground-${index_2}`);
321
341
  };
322
- $[33] = progress;
323
- $[34] = t23;
342
+ $[38] = progress;
343
+ $[39] = t26;
324
344
  } else {
325
- t23 = $[34];
345
+ t26 = $[39];
326
346
  }
327
- t3 = indexedEdges.filter(_temp5).map(t23);
328
- let t24;
329
- if ($[35] !== progress) {
330
- t24 = edgeLayout_0 => /*#__PURE__*/_jsx(EdgeOverlay, {
347
+ t3 = indexedEdges.filter(_temp5).map(t26);
348
+ let t27;
349
+ if ($[40] !== progress) {
350
+ t27 = edgeLayout_0 => /*#__PURE__*/_jsx(EdgeOverlay, {
331
351
  layout: edgeLayout_0,
332
352
  progress: progress,
333
353
  start: edgeLayout_0.segment.start,
334
354
  end: edgeLayout_0.segment.end
335
355
  }, `edge-overlay-${edgeLayout_0.index}`);
336
- $[35] = progress;
337
- $[36] = t24;
356
+ $[40] = progress;
357
+ $[41] = t27;
338
358
  } else {
339
- t24 = $[36];
359
+ t27 = $[41];
340
360
  }
341
- t4 = indexedEdges.map(t24);
342
- t5 = notes.map(note => /*#__PURE__*/_jsx(AnnotationText, {
361
+ t4 = indexedEdges.map(t27);
362
+ t5 = notes.map(note => /*#__PURE__*/_jsx(NoteText, {
343
363
  note: note,
344
- annotations: ir.annotations,
345
364
  leaders: layout.leaders,
346
365
  progress: progress,
347
- start: ANNOTATION_REVEAL_START,
366
+ start: NOTE_REVEAL_START,
348
367
  end: 1
349
368
  }, note.node.id));
350
369
  $[0] = ir;
@@ -388,40 +407,40 @@ function GraphHTML(t0) {
388
407
  t9 = $[21];
389
408
  }
390
409
  let t17;
391
- if ($[37] !== t1 || $[38] !== t2 || $[39] !== t3 || $[40] !== t4 || $[41] !== t5) {
410
+ if ($[42] !== t1 || $[43] !== t2 || $[44] !== t3 || $[45] !== t4 || $[46] !== t5) {
392
411
  t17 = /*#__PURE__*/_jsxs("svg", {
393
412
  ...t1,
394
413
  children: [t2, t3, t4, t5]
395
414
  });
396
- $[37] = t1;
397
- $[38] = t2;
398
- $[39] = t3;
399
- $[40] = t4;
400
- $[41] = t5;
401
- $[42] = t17;
415
+ $[42] = t1;
416
+ $[43] = t2;
417
+ $[44] = t3;
418
+ $[45] = t4;
419
+ $[46] = t5;
420
+ $[47] = t17;
402
421
  } else {
403
- t17 = $[42];
422
+ t17 = $[47];
404
423
  }
405
424
  let t18;
406
- if ($[43] !== t10 || $[44] !== t17 || $[45] !== t6 || $[46] !== t7 || $[47] !== t8 || $[48] !== t9) {
425
+ if ($[48] !== t10 || $[49] !== t17 || $[50] !== t6 || $[51] !== t7 || $[52] !== t8 || $[53] !== t9) {
407
426
  t18 = /*#__PURE__*/_jsxs("div", {
408
427
  className: t6,
409
428
  style: t7,
410
429
  "data-diagram-html": t8,
411
430
  children: [t9, t10, t17]
412
431
  });
413
- $[43] = t10;
414
- $[44] = t17;
415
- $[45] = t6;
416
- $[46] = t7;
417
- $[47] = t8;
418
- $[48] = t9;
419
- $[49] = t18;
432
+ $[48] = t10;
433
+ $[49] = t17;
434
+ $[50] = t6;
435
+ $[51] = t7;
436
+ $[52] = t8;
437
+ $[53] = t9;
438
+ $[54] = t18;
420
439
  } else {
421
- t18 = $[49];
440
+ t18 = $[54];
422
441
  }
423
442
  let t19;
424
- if ($[50] !== t11 || $[51] !== t12 || $[52] !== t13 || $[53] !== t14 || $[54] !== t15 || $[55] !== t16 || $[56] !== t18) {
443
+ if ($[55] !== t11 || $[56] !== t12 || $[57] !== t13 || $[58] !== t14 || $[59] !== t15 || $[60] !== t16 || $[61] !== t18) {
425
444
  t19 = /*#__PURE__*/_jsx("div", {
426
445
  role: t11,
427
446
  "aria-label": t12,
@@ -431,16 +450,16 @@ function GraphHTML(t0) {
431
450
  "data-diagram-viewport-zoom": t16,
432
451
  children: t18
433
452
  });
434
- $[50] = t11;
435
- $[51] = t12;
436
- $[52] = t13;
437
- $[53] = t14;
438
- $[54] = t15;
439
- $[55] = t16;
440
- $[56] = t18;
441
- $[57] = t19;
453
+ $[55] = t11;
454
+ $[56] = t12;
455
+ $[57] = t13;
456
+ $[58] = t14;
457
+ $[59] = t15;
458
+ $[60] = t16;
459
+ $[61] = t18;
460
+ $[62] = t19;
442
461
  } else {
443
- t19 = $[57];
462
+ t19 = $[62];
444
463
  }
445
464
  return t19;
446
465
  }
@@ -655,15 +674,14 @@ function textureImage(texture) {
655
674
  }
656
675
 
657
676
  /**
658
- * A node frame with its text drawn as absolutely placed runs, at the positions
659
- * the SVG output draws them. The frame is an inset shadow, not a border, so the
660
- * runs share the frame's origin.
677
+ * A node frame and its text, each at the layout's own coordinates, in the
678
+ * layer that GraphHTML moves to the viewBox origin. The runs are siblings of
679
+ * the frame, so no position is relative to the frame.
661
680
  */
662
681
  function NodeBox(t0) {
663
- const $ = _c(83);
682
+ const $ = _c(78);
664
683
  const {
665
684
  layout,
666
- origin,
667
685
  progress,
668
686
  start,
669
687
  end
@@ -721,7 +739,7 @@ function NodeBox(t0) {
721
739
  node,
722
740
  box,
723
741
  icon,
724
- text
742
+ contentBox
725
743
  } = layout;
726
744
  const frame = node.frame ?? "solid";
727
745
  let t7;
@@ -736,39 +754,37 @@ function NodeBox(t0) {
736
754
  }
737
755
  const fill = t7;
738
756
  let T0;
739
- let lastRun;
740
757
  let t10;
741
758
  let t11;
742
759
  let t12;
743
760
  let t13;
744
761
  let t14;
745
- let t15;
746
762
  let t8;
747
763
  let t9;
748
- if ($[14] !== box || $[15] !== fill || $[16] !== frame || $[17] !== icon || $[18] !== layout || $[19] !== node || $[20] !== opacity || $[21] !== origin.x || $[22] !== origin.y || $[23] !== text || $[24] !== themeAccent || $[25] !== translateY) {
764
+ if ($[14] !== box.h || $[15] !== box.w || $[16] !== box.x || $[17] !== box.y || $[18] !== fill || $[19] !== frame || $[20] !== icon || $[21] !== layout || $[22] !== node || $[23] !== opacity || $[24] !== themeAccent || $[25] !== translateY) {
749
765
  const {
750
766
  title,
751
767
  description,
752
768
  items
753
769
  } = nodeTextParts(layout);
754
- let t16;
755
- if ($[36] !== text) {
756
- t16 = text.at(-1);
757
- $[36] = text;
758
- $[37] = t16;
770
+ T0 = motion.div;
771
+ t8 = "absolute top-0 left-0";
772
+ if ($[34] !== fill || $[35] !== opacity || $[36] !== translateY) {
773
+ t9 = {
774
+ color: fill,
775
+ opacity,
776
+ y: translateY
777
+ };
778
+ $[34] = fill;
779
+ $[35] = opacity;
780
+ $[36] = translateY;
781
+ $[37] = t9;
759
782
  } else {
760
- t16 = $[37];
783
+ t9 = $[37];
761
784
  }
762
- lastRun = t16;
763
- T0 = motion.div;
764
- t8 = node.id;
765
- t9 = node.tone;
766
- t10 = "absolute";
767
- const t17 = box.x - origin.x;
768
- const t18 = box.y - origin.y;
769
- let t19;
785
+ let t15;
770
786
  if ($[38] !== frame || $[39] !== node || $[40] !== themeAccent) {
771
- t19 = frame === "none" ? {} : {
787
+ t15 = frame === "none" ? {} : {
772
788
  backgroundColor: nodeFrameFill(node, frame),
773
789
  boxShadow: `inset 0 0 0 ${nodeFrameStrokeWidth(node)}px ${nodeFrameStroke(node, frame, themeAccent)}`,
774
790
  ...textureImage(nodeTexture(node, frame))
@@ -776,44 +792,53 @@ function NodeBox(t0) {
776
792
  $[38] = frame;
777
793
  $[39] = node;
778
794
  $[40] = themeAccent;
779
- $[41] = t19;
795
+ $[41] = t15;
780
796
  } else {
781
- t19 = $[41];
797
+ t15 = $[41];
782
798
  }
783
- if ($[42] !== box.h || $[43] !== box.w || $[44] !== fill || $[45] !== layout.radius || $[46] !== opacity || $[47] !== t17 || $[48] !== t18 || $[49] !== t19 || $[50] !== translateY) {
784
- t11 = {
785
- left: t17,
786
- top: t18,
799
+ let t16;
800
+ if ($[42] !== box.h || $[43] !== box.w || $[44] !== box.x || $[45] !== box.y || $[46] !== layout.radius || $[47] !== t15) {
801
+ t16 = {
802
+ left: box.x,
803
+ top: box.y,
787
804
  width: box.w,
788
805
  height: box.h,
789
806
  boxSizing: "border-box",
790
807
  borderRadius: layout.radius,
791
- ...t19,
792
- color: fill,
793
- opacity,
794
- y: translateY
808
+ ...t15
795
809
  };
796
810
  $[42] = box.h;
797
811
  $[43] = box.w;
798
- $[44] = fill;
799
- $[45] = layout.radius;
800
- $[46] = opacity;
801
- $[47] = t17;
802
- $[48] = t18;
803
- $[49] = t19;
804
- $[50] = translateY;
805
- $[51] = t11;
812
+ $[44] = box.x;
813
+ $[45] = box.y;
814
+ $[46] = layout.radius;
815
+ $[47] = t15;
816
+ $[48] = t16;
817
+ } else {
818
+ t16 = $[48];
819
+ }
820
+ if ($[49] !== node.id || $[50] !== node.tone || $[51] !== t16) {
821
+ t10 = /*#__PURE__*/_jsx("div", {
822
+ "data-diagram-node": node.id,
823
+ "data-diagram-node-tone": node.tone,
824
+ className: "absolute",
825
+ style: t16
826
+ });
827
+ $[49] = node.id;
828
+ $[50] = node.tone;
829
+ $[51] = t16;
830
+ $[52] = t10;
806
831
  } else {
807
- t11 = $[51];
832
+ t10 = $[52];
808
833
  }
809
- if ($[52] !== box.x || $[53] !== box.y || $[54] !== fill || $[55] !== icon || $[56] !== node.icon || $[57] !== node.textColor || $[58] !== themeAccent) {
810
- t12 = node.icon && icon && /*#__PURE__*/_jsx("svg", {
834
+ if ($[53] !== fill || $[54] !== icon || $[55] !== node.icon || $[56] !== node.textColor || $[57] !== themeAccent) {
835
+ t11 = node.icon && icon && /*#__PURE__*/_jsx("svg", {
811
836
  width: icon.size,
812
837
  height: icon.size,
813
838
  className: "absolute",
814
839
  style: {
815
- left: icon.x - box.x,
816
- top: icon.y - box.y
840
+ left: icon.x,
841
+ top: icon.y
817
842
  },
818
843
  "aria-hidden": true,
819
844
  children: /*#__PURE__*/_jsx(DiagramNodeIcon, {
@@ -824,197 +849,181 @@ function NodeBox(t0) {
824
849
  color: node.textColor === "accent" ? themeAccent : fill
825
850
  })
826
851
  });
827
- $[52] = box.x;
828
- $[53] = box.y;
829
- $[54] = fill;
830
- $[55] = icon;
831
- $[56] = node.icon;
832
- $[57] = node.textColor;
833
- $[58] = themeAccent;
834
- $[59] = t12;
852
+ $[53] = fill;
853
+ $[54] = icon;
854
+ $[55] = node.icon;
855
+ $[56] = node.textColor;
856
+ $[57] = themeAccent;
857
+ $[58] = t11;
835
858
  } else {
836
- t12 = $[59];
859
+ t11 = $[58];
837
860
  }
838
- let t20;
839
- if ($[60] !== box || $[61] !== fill || $[62] !== themeAccent) {
840
- t20 = (run, i) => /*#__PURE__*/_jsx(RunText, {
861
+ let t17;
862
+ if ($[59] !== fill || $[60] !== themeAccent) {
863
+ t17 = (run, i) => /*#__PURE__*/_jsx(RunText, {
841
864
  run: run,
842
- origin: box,
843
865
  color: runFill(run, fill, themeAccent)
844
866
  }, i);
845
- $[60] = box;
846
- $[61] = fill;
847
- $[62] = themeAccent;
848
- $[63] = t20;
867
+ $[59] = fill;
868
+ $[60] = themeAccent;
869
+ $[61] = t17;
849
870
  } else {
850
- t20 = $[63];
871
+ t17 = $[61];
851
872
  }
852
- t13 = title.map(t20);
853
- t14 = description.length > 0 && /*#__PURE__*/_jsx("div", {
873
+ t12 = title.map(t17);
874
+ t13 = description.length > 0 && /*#__PURE__*/_jsx("div", {
854
875
  "data-diagram-node-description": node.id,
855
- children: description.map((run_0, i_0) => /*#__PURE__*/_jsx(RunText, {
856
- run: run_0,
857
- origin: box
858
- }, i_0))
876
+ children: description.map(_temp6)
859
877
  });
860
- let t21;
861
- if ($[64] !== box || $[65] !== node.id) {
862
- t21 = (t22, i_1) => {
878
+ let t18;
879
+ if ($[62] !== node.id) {
880
+ t18 = (t19, i_1) => {
863
881
  const {
864
882
  run: run_1,
865
883
  bullet
866
- } = t22;
884
+ } = t19;
867
885
  return /*#__PURE__*/_jsxs("div", {
868
886
  "data-diagram-node-item": `${node.id}:${i_1}`,
869
887
  children: [/*#__PURE__*/_jsx("span", {
870
888
  className: "absolute rounded-full bg-current",
871
889
  style: {
872
- left: bullet.x - box.x - 2.2,
873
- top: bullet.y - box.y - 2.2,
890
+ left: bullet.x,
891
+ top: bullet.y,
874
892
  width: 4.4,
875
- height: 4.4
893
+ height: 4.4,
894
+ translate: "-50% -50%"
876
895
  }
877
896
  }), /*#__PURE__*/_jsx(RunText, {
878
- run: run_1,
879
- origin: box
897
+ run: run_1
880
898
  })]
881
899
  }, i_1);
882
900
  };
883
- $[64] = box;
884
- $[65] = node.id;
885
- $[66] = t21;
901
+ $[62] = node.id;
902
+ $[63] = t18;
886
903
  } else {
887
- t21 = $[66];
904
+ t18 = $[63];
888
905
  }
889
- t15 = items.map(t21);
890
- $[14] = box;
891
- $[15] = fill;
892
- $[16] = frame;
893
- $[17] = icon;
894
- $[18] = layout;
895
- $[19] = node;
896
- $[20] = opacity;
897
- $[21] = origin.x;
898
- $[22] = origin.y;
899
- $[23] = text;
906
+ t14 = items.map(t18);
907
+ $[14] = box.h;
908
+ $[15] = box.w;
909
+ $[16] = box.x;
910
+ $[17] = box.y;
911
+ $[18] = fill;
912
+ $[19] = frame;
913
+ $[20] = icon;
914
+ $[21] = layout;
915
+ $[22] = node;
916
+ $[23] = opacity;
900
917
  $[24] = themeAccent;
901
918
  $[25] = translateY;
902
919
  $[26] = T0;
903
- $[27] = lastRun;
904
- $[28] = t10;
905
- $[29] = t11;
906
- $[30] = t12;
907
- $[31] = t13;
908
- $[32] = t14;
909
- $[33] = t15;
910
- $[34] = t8;
911
- $[35] = t9;
920
+ $[27] = t10;
921
+ $[28] = t11;
922
+ $[29] = t12;
923
+ $[30] = t13;
924
+ $[31] = t14;
925
+ $[32] = t8;
926
+ $[33] = t9;
912
927
  } else {
913
928
  T0 = $[26];
914
- lastRun = $[27];
915
- t10 = $[28];
916
- t11 = $[29];
917
- t12 = $[30];
918
- t13 = $[31];
919
- t14 = $[32];
920
- t15 = $[33];
921
- t8 = $[34];
922
- t9 = $[35];
929
+ t10 = $[27];
930
+ t11 = $[28];
931
+ t12 = $[29];
932
+ t13 = $[30];
933
+ t14 = $[31];
934
+ t8 = $[32];
935
+ t9 = $[33];
923
936
  }
924
- let t16;
925
- if ($[67] !== box.y || $[68] !== lastRun || $[69] !== node.content || $[70] !== node.id) {
926
- t16 = node.content !== undefined && /*#__PURE__*/_jsx("div", {
927
- className: "absolute inset-x-0 bottom-0 flex flex-col items-center justify-center",
937
+ let t15;
938
+ if ($[64] !== contentBox || $[65] !== node.content || $[66] !== node.id) {
939
+ t15 = node.content && contentBox && /*#__PURE__*/_jsx("div", {
940
+ "data-diagram-node-content": node.id,
941
+ className: "absolute",
928
942
  style: {
929
- top: lastRun ? lastRun.bounds.y + lastRun.bounds.h - box.y : 0
943
+ left: contentBox.x,
944
+ top: contentBox.y,
945
+ width: contentBox.w,
946
+ height: contentBox.h
930
947
  },
931
- children: /*#__PURE__*/_jsx("div", {
932
- "data-diagram-node-content": node.id,
933
- children: node.content
934
- })
948
+ children: node.content.element
935
949
  });
936
- $[67] = box.y;
937
- $[68] = lastRun;
938
- $[69] = node.content;
939
- $[70] = node.id;
940
- $[71] = t16;
950
+ $[64] = contentBox;
951
+ $[65] = node.content;
952
+ $[66] = node.id;
953
+ $[67] = t15;
941
954
  } else {
942
- t16 = $[71];
955
+ t15 = $[67];
943
956
  }
944
- let t17;
945
- if ($[72] !== T0 || $[73] !== t10 || $[74] !== t11 || $[75] !== t12 || $[76] !== t13 || $[77] !== t14 || $[78] !== t15 || $[79] !== t16 || $[80] !== t8 || $[81] !== t9) {
946
- t17 = /*#__PURE__*/_jsxs(T0, {
947
- "data-diagram-node": t8,
948
- "data-diagram-node-tone": t9,
949
- className: t10,
950
- style: t11,
951
- children: [t12, t13, t14, t15, t16]
957
+ let t16;
958
+ if ($[68] !== T0 || $[69] !== t10 || $[70] !== t11 || $[71] !== t12 || $[72] !== t13 || $[73] !== t14 || $[74] !== t15 || $[75] !== t8 || $[76] !== t9) {
959
+ t16 = /*#__PURE__*/_jsxs(T0, {
960
+ className: t8,
961
+ style: t9,
962
+ children: [t10, t11, t12, t13, t14, t15]
952
963
  });
953
- $[72] = T0;
954
- $[73] = t10;
955
- $[74] = t11;
956
- $[75] = t12;
957
- $[76] = t13;
958
- $[77] = t14;
959
- $[78] = t15;
960
- $[79] = t16;
961
- $[80] = t8;
962
- $[81] = t9;
963
- $[82] = t17;
964
+ $[68] = T0;
965
+ $[69] = t10;
966
+ $[70] = t11;
967
+ $[71] = t12;
968
+ $[72] = t13;
969
+ $[73] = t14;
970
+ $[74] = t15;
971
+ $[75] = t8;
972
+ $[76] = t9;
973
+ $[77] = t16;
964
974
  } else {
965
- t17 = $[82];
975
+ t16 = $[77];
966
976
  }
967
- return t17;
977
+ return t16;
978
+ }
979
+ function _temp6(run_0, i_0) {
980
+ return /*#__PURE__*/_jsx(RunText, {
981
+ run: run_0
982
+ }, i_0);
968
983
  }
969
984
  function RunText(t0) {
970
- const $ = _c(12);
985
+ const $ = _c(11);
971
986
  const {
972
987
  run,
973
- origin,
974
988
  color
975
989
  } = t0;
976
- const t1 = run.bounds.x - origin.x;
977
- const t2 = run.bounds.y - origin.y;
978
- const t3 = FONT_FAMILY[run.font.face];
979
- const t4 = `${run.bounds.h}px`;
980
- const t5 = run.font.face === "mono" ? 0.6 : undefined;
981
- let t6;
982
- if ($[0] !== color || $[1] !== run.font.size || $[2] !== run.font.weight || $[3] !== t1 || $[4] !== t2 || $[5] !== t3 || $[6] !== t4 || $[7] !== t5) {
983
- t6 = {
984
- left: t1,
985
- top: t2,
986
- fontFamily: t3,
990
+ const t1 = FONT_FAMILY[run.font.face];
991
+ const t2 = `${run.bounds.h}px`;
992
+ let t3;
993
+ if ($[0] !== color || $[1] !== run.bounds.x || $[2] !== run.bounds.y || $[3] !== run.font.size || $[4] !== run.font.weight || $[5] !== t1 || $[6] !== t2) {
994
+ t3 = {
995
+ left: run.bounds.x,
996
+ top: run.bounds.y,
997
+ fontFamily: t1,
987
998
  fontSize: run.font.size,
988
999
  fontWeight: run.font.weight,
989
- lineHeight: t4,
990
- letterSpacing: t5,
1000
+ lineHeight: t2,
991
1001
  color
992
1002
  };
993
1003
  $[0] = color;
994
- $[1] = run.font.size;
995
- $[2] = run.font.weight;
996
- $[3] = t1;
997
- $[4] = t2;
998
- $[5] = t3;
999
- $[6] = t4;
1000
- $[7] = t5;
1001
- $[8] = t6;
1004
+ $[1] = run.bounds.x;
1005
+ $[2] = run.bounds.y;
1006
+ $[3] = run.font.size;
1007
+ $[4] = run.font.weight;
1008
+ $[5] = t1;
1009
+ $[6] = t2;
1010
+ $[7] = t3;
1002
1011
  } else {
1003
- t6 = $[8];
1012
+ t3 = $[7];
1004
1013
  }
1005
- let t7;
1006
- if ($[9] !== run.text || $[10] !== t6) {
1007
- t7 = /*#__PURE__*/_jsx("span", {
1014
+ let t4;
1015
+ if ($[8] !== run.text || $[9] !== t3) {
1016
+ t4 = /*#__PURE__*/_jsx("span", {
1008
1017
  className: "absolute whitespace-pre",
1009
- style: t6,
1018
+ style: t3,
1010
1019
  children: run.text
1011
1020
  });
1012
- $[9] = run.text;
1013
- $[10] = t6;
1014
- $[11] = t7;
1021
+ $[8] = run.text;
1022
+ $[9] = t3;
1023
+ $[10] = t4;
1015
1024
  } else {
1016
- t7 = $[11];
1025
+ t4 = $[10];
1017
1026
  }
1018
- return t7;
1027
+ return t4;
1019
1028
  }
1020
1029
  //# sourceMappingURL=graph-html.js.map