@zukhruf/diagram 0.3.33 → 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 (117) 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.map +1 -1
  11. package/dist/lib/layouts/graph/attach.js +64 -8
  12. package/dist/lib/layouts/graph/attach.js.map +1 -1
  13. package/dist/lib/layouts/graph/connections.d.ts +11 -4
  14. package/dist/lib/layouts/graph/connections.d.ts.map +1 -1
  15. package/dist/lib/layouts/graph/connections.js +43 -17
  16. package/dist/lib/layouts/graph/connections.js.map +1 -1
  17. package/dist/lib/layouts/graph/graph-layout-result.d.ts +4 -2
  18. package/dist/lib/layouts/graph/graph-layout-result.d.ts.map +1 -1
  19. package/dist/lib/layouts/graph/graph-layout-result.js.map +1 -1
  20. package/dist/lib/layouts/graph/gutters.js +40 -21
  21. package/dist/lib/layouts/graph/gutters.js.map +1 -1
  22. package/dist/lib/layouts/graph/labels.d.ts +16 -9
  23. package/dist/lib/layouts/graph/labels.d.ts.map +1 -1
  24. package/dist/lib/layouts/graph/labels.js +62 -18
  25. package/dist/lib/layouts/graph/labels.js.map +1 -1
  26. package/dist/lib/layouts/graph/layout.d.ts +1 -1
  27. package/dist/lib/layouts/graph/layout.d.ts.map +1 -1
  28. package/dist/lib/layouts/graph/layout.js +6 -3
  29. package/dist/lib/layouts/graph/layout.js.map +1 -1
  30. package/dist/lib/layouts/graph/measure.d.ts +8 -5
  31. package/dist/lib/layouts/graph/measure.d.ts.map +1 -1
  32. package/dist/lib/layouts/graph/measure.js +47 -9
  33. package/dist/lib/layouts/graph/measure.js.map +1 -1
  34. package/dist/lib/layouts/graph/min-heap.d.ts +1 -5
  35. package/dist/lib/layouts/graph/min-heap.d.ts.map +1 -1
  36. package/dist/lib/layouts/graph/min-heap.js +1 -5
  37. package/dist/lib/layouts/graph/min-heap.js.map +1 -1
  38. package/dist/lib/layouts/graph/node-content.d.ts +1 -1
  39. package/dist/lib/layouts/graph/node-content.d.ts.map +1 -1
  40. package/dist/lib/layouts/graph/node-content.js +26 -7
  41. package/dist/lib/layouts/graph/node-content.js.map +1 -1
  42. package/dist/lib/layouts/graph/path.d.ts +2 -10
  43. package/dist/lib/layouts/graph/path.d.ts.map +1 -1
  44. package/dist/lib/layouts/graph/path.js +11 -13
  45. package/dist/lib/layouts/graph/path.js.map +1 -1
  46. package/dist/lib/layouts/graph/round.d.ts +11 -0
  47. package/dist/lib/layouts/graph/round.d.ts.map +1 -0
  48. package/dist/lib/layouts/graph/round.js +181 -0
  49. package/dist/lib/layouts/graph/round.js.map +1 -0
  50. package/dist/lib/layouts/graph/route.d.ts +10 -6
  51. package/dist/lib/layouts/graph/route.d.ts.map +1 -1
  52. package/dist/lib/layouts/graph/route.js +68 -33
  53. package/dist/lib/layouts/graph/route.js.map +1 -1
  54. package/dist/lib/layouts/graph/sides.d.ts +10 -5
  55. package/dist/lib/layouts/graph/sides.d.ts.map +1 -1
  56. package/dist/lib/layouts/graph/sides.js +14 -7
  57. package/dist/lib/layouts/graph/sides.js.map +1 -1
  58. package/dist/lib/layouts/timeline/timeline-layout.d.ts +2 -1
  59. package/dist/lib/layouts/timeline/timeline-layout.d.ts.map +1 -1
  60. package/dist/lib/layouts/timeline/timeline-layout.js +9 -4
  61. package/dist/lib/layouts/timeline/timeline-layout.js.map +1 -1
  62. package/dist/lib/model/diagram-ir.d.ts +19 -156
  63. package/dist/lib/model/diagram-ir.d.ts.map +1 -1
  64. package/dist/lib/model/diagram-ir.js.map +1 -1
  65. package/dist/lib/model/validate-graph.d.ts +7 -0
  66. package/dist/lib/model/validate-graph.d.ts.map +1 -0
  67. package/dist/lib/model/validate-graph.js +54 -0
  68. package/dist/lib/model/validate-graph.js.map +1 -0
  69. package/dist/lib/react/Diagram.d.ts +3 -9
  70. package/dist/lib/react/Diagram.d.ts.map +1 -1
  71. package/dist/lib/react/Diagram.js +1 -13
  72. package/dist/lib/react/Diagram.js.map +1 -1
  73. package/dist/lib/react/diagram-types.d.ts +17 -46
  74. package/dist/lib/react/diagram-types.d.ts.map +1 -1
  75. package/dist/lib/react/diagram-types.js.map +1 -1
  76. package/dist/lib/renderers/canvas/graph-canvas.d.ts +2 -5
  77. package/dist/lib/renderers/canvas/graph-canvas.d.ts.map +1 -1
  78. package/dist/lib/renderers/canvas/graph-canvas.js +68 -43
  79. package/dist/lib/renderers/canvas/graph-canvas.js.map +1 -1
  80. package/dist/lib/renderers/html/graph-html.d.ts +2 -3
  81. package/dist/lib/renderers/html/graph-html.d.ts.map +1 -1
  82. package/dist/lib/renderers/html/graph-html.js +298 -289
  83. package/dist/lib/renderers/html/graph-html.js.map +1 -1
  84. package/dist/lib/renderers/shared/graph-parts.d.ts +3 -1
  85. package/dist/lib/renderers/shared/graph-parts.d.ts.map +1 -1
  86. package/dist/lib/renderers/shared/graph-parts.js +350 -418
  87. package/dist/lib/renderers/shared/graph-parts.js.map +1 -1
  88. package/dist/lib/renderers/shared/node-parts.d.ts +5 -6
  89. package/dist/lib/renderers/shared/node-parts.d.ts.map +1 -1
  90. package/dist/lib/renderers/shared/node-parts.js +112 -190
  91. package/dist/lib/renderers/shared/node-parts.js.map +1 -1
  92. package/dist/lib/renderers/shared/run-spans.js +2 -2
  93. package/dist/lib/renderers/shared/run-spans.js.map +1 -1
  94. package/dist/lib/renderers/shared/text-runs.d.ts +0 -6
  95. package/dist/lib/renderers/shared/text-runs.d.ts.map +1 -1
  96. package/dist/lib/renderers/shared/text-runs.js +0 -12
  97. package/dist/lib/renderers/shared/text-runs.js.map +1 -1
  98. package/dist/lib/renderers/svg/graph-svg.d.ts +1 -3
  99. package/dist/lib/renderers/svg/graph-svg.d.ts.map +1 -1
  100. package/dist/lib/renderers/svg/graph-svg.js +66 -80
  101. package/dist/lib/renderers/svg/graph-svg.js.map +1 -1
  102. package/dist/lib/renderers/svg/timeline-svg.d.ts.map +1 -1
  103. package/dist/lib/renderers/svg/timeline-svg.js +7 -5
  104. package/dist/lib/renderers/svg/timeline-svg.js.map +1 -1
  105. package/package.json +1 -1
  106. package/dist/lib/layouts/graph/graph-layout.d.ts +0 -154
  107. package/dist/lib/layouts/graph/graph-layout.d.ts.map +0 -1
  108. package/dist/lib/layouts/graph/graph-layout.js +0 -2340
  109. package/dist/lib/layouts/graph/graph-layout.js.map +0 -1
  110. package/dist/lib/layouts/graph/legacy-graph-layout.d.ts +0 -6
  111. package/dist/lib/layouts/graph/legacy-graph-layout.d.ts.map +0 -1
  112. package/dist/lib/layouts/graph/legacy-graph-layout.js +0 -542
  113. package/dist/lib/layouts/graph/legacy-graph-layout.js.map +0 -1
  114. package/dist/lib/layouts/text-metrics.d.ts +0 -7
  115. package/dist/lib/layouts/text-metrics.d.ts.map +0 -1
  116. package/dist/lib/layouts/text-metrics.js +0 -40
  117. package/dist/lib/layouts/text-metrics.js.map +0 -1
@@ -1,12 +1,11 @@
1
1
  import { c as _c } from "react/compiler-runtime";
2
2
  import { motion, useTransform } from 'motion/react';
3
- import { ANNOTATION_NOTE_PREFIX } from "../../layouts/graph/legacy-graph-layout.js";
4
3
  import { FONT_FAMILY } from "../../layouts/text/font.js";
5
4
  import { DIAGRAM_BG, DIAGRAM_DIM, DIAGRAM_NEUTRAL, DIAGRAM_TEXT, resolveDiagramToneFill, useDiagramTheme } from "../../react/chrome/index.js";
6
5
  import { DiagramNodeIcon, PortMarkers, accentToneStroke, nodeTextFill, textureFill } from "./graph-parts.js";
7
6
  import { RunSpans } from "./run-spans.js";
8
7
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
9
- export const ANNOTATION_REVEAL_START = 0.85;
8
+ export const NOTE_REVEAL_START = 0.85;
10
9
  export function isSpecialNode(node) {
11
10
  return node.kind !== undefined && node.kind !== 'node';
12
11
  }
@@ -14,7 +13,7 @@ function isNote(layout) {
14
13
  return layout.node.kind === 'note';
15
14
  }
16
15
 
17
- /** Splits the graph's own nodes from the notes that stand for annotations. */
16
+ /** Splits the framed nodes from the notes, which draw last, over the edges. */
18
17
  export function splitNotes(nodes) {
19
18
  return {
20
19
  graphNodes: nodes.filter(layout => !isNote(layout)),
@@ -37,7 +36,7 @@ function junctionFillColor(node, themeAccent) {
37
36
  return DIAGRAM_BG;
38
37
  }
39
38
  export function SpecialNode(t0) {
40
- const $ = _c(177);
39
+ const $ = _c(179);
41
40
  const {
42
41
  layout,
43
42
  progress,
@@ -641,32 +640,34 @@ export function SpecialNode(t0) {
641
640
  } else {
642
641
  t10 = $[157];
643
642
  }
644
- const t11 = box.x + box.w / 2;
645
- const t12 = box.y + box.h / 2;
646
- let t13;
647
- if ($[158] !== junctionFill || $[159] !== junctionStroke || $[160] !== node.id || $[161] !== radius || $[162] !== t11 || $[163] !== t12) {
648
- t13 = /*#__PURE__*/_jsx("circle", {
643
+ let t11;
644
+ if ($[158] !== box.h || $[159] !== box.w || $[160] !== box.x || $[161] !== box.y || $[162] !== junctionFill || $[163] !== junctionStroke || $[164] !== node.id || $[165] !== radius) {
645
+ t11 = /*#__PURE__*/_jsx("rect", {
649
646
  "data-diagram-junction": node.id,
650
- cx: t11,
651
- cy: t12,
652
- r: radius,
647
+ x: box.x,
648
+ y: box.y,
649
+ width: box.w,
650
+ height: box.h,
651
+ rx: radius,
653
652
  fill: junctionFill,
654
653
  stroke: junctionStroke,
655
654
  strokeWidth: 1.5
656
655
  });
657
- $[158] = junctionFill;
658
- $[159] = junctionStroke;
659
- $[160] = node.id;
660
- $[161] = radius;
661
- $[162] = t11;
662
- $[163] = t12;
663
- $[164] = t13;
656
+ $[158] = box.h;
657
+ $[159] = box.w;
658
+ $[160] = box.x;
659
+ $[161] = box.y;
660
+ $[162] = junctionFill;
661
+ $[163] = junctionStroke;
662
+ $[164] = node.id;
663
+ $[165] = radius;
664
+ $[166] = t11;
664
665
  } else {
665
- t13 = $[164];
666
+ t11 = $[166];
666
667
  }
667
- let t14;
668
- if ($[165] !== fill || $[166] !== first || $[167] !== node.id || $[168] !== text) {
669
- t14 = first && /*#__PURE__*/_jsx("text", {
668
+ let t12;
669
+ if ($[167] !== fill || $[168] !== first || $[169] !== node.id || $[170] !== text) {
670
+ t12 = first && /*#__PURE__*/_jsx("text", {
670
671
  "data-diagram-junction-label": node.id,
671
672
  ...textAttrs(first),
672
673
  fill: fill,
@@ -674,39 +675,39 @@ export function SpecialNode(t0) {
674
675
  runs: text
675
676
  })
676
677
  });
677
- $[165] = fill;
678
- $[166] = first;
679
- $[167] = node.id;
680
- $[168] = text;
681
- $[169] = t14;
678
+ $[167] = fill;
679
+ $[168] = first;
680
+ $[169] = node.id;
681
+ $[170] = text;
682
+ $[171] = t12;
682
683
  } else {
683
- t14 = $[169];
684
+ t12 = $[171];
684
685
  }
685
- let t15;
686
- if ($[170] !== layout) {
687
- t15 = /*#__PURE__*/_jsx(NodeCaption, {
686
+ let t13;
687
+ if ($[172] !== layout) {
688
+ t13 = /*#__PURE__*/_jsx(NodeCaption, {
688
689
  layout: layout
689
690
  });
690
- $[170] = layout;
691
- $[171] = t15;
691
+ $[172] = layout;
692
+ $[173] = t13;
692
693
  } else {
693
- t15 = $[171];
694
+ t13 = $[173];
694
695
  }
695
- let t16;
696
- if ($[172] !== t10 || $[173] !== t13 || $[174] !== t14 || $[175] !== t15) {
697
- t16 = /*#__PURE__*/_jsxs(motion.g, {
696
+ let t14;
697
+ if ($[174] !== t10 || $[175] !== t11 || $[176] !== t12 || $[177] !== t13) {
698
+ t14 = /*#__PURE__*/_jsxs(motion.g, {
698
699
  style: t10,
699
- children: [t13, t14, t15]
700
+ children: [t11, t12, t13]
700
701
  });
701
- $[172] = t10;
702
- $[173] = t13;
703
- $[174] = t14;
704
- $[175] = t15;
705
- $[176] = t16;
702
+ $[174] = t10;
703
+ $[175] = t11;
704
+ $[176] = t12;
705
+ $[177] = t13;
706
+ $[178] = t14;
706
707
  } else {
707
- t16 = $[176];
708
+ t14 = $[178];
708
709
  }
709
- return t16;
710
+ return t14;
710
711
  }
711
712
  return null;
712
713
  }
@@ -871,11 +872,10 @@ export function NodeCaption(t0) {
871
872
  }
872
873
  return t8;
873
874
  }
874
- export function AnnotationText(t0) {
875
- const $ = _c(46);
875
+ export function NoteText(t0) {
876
+ const $ = _c(23);
876
877
  const {
877
878
  note,
878
- annotations,
879
879
  leaders,
880
880
  progress,
881
881
  start,
@@ -907,167 +907,89 @@ export function AnnotationText(t0) {
907
907
  t3 = $[4];
908
908
  }
909
909
  const opacity = useTransform(progress, t1, t2, t3);
910
+ const {
911
+ node,
912
+ text
913
+ } = note;
914
+ const [first] = text;
910
915
  let t4;
911
- if ($[5] !== note.node.id) {
912
- t4 = note.node.id.slice(ANNOTATION_NOTE_PREFIX.length);
913
- $[5] = note.node.id;
916
+ if ($[5] !== opacity) {
917
+ t4 = {
918
+ opacity
919
+ };
920
+ $[5] = opacity;
914
921
  $[6] = t4;
915
922
  } else {
916
923
  t4 = $[6];
917
924
  }
918
- const index = Number(t4);
919
- const annotation = annotations[index];
920
- if (!annotation) {
921
- return null;
922
- }
923
925
  let t5;
924
- if ($[7] !== annotation.color || $[8] !== themeAccent) {
925
- t5 = textColorFill(annotation.color, themeAccent);
926
- $[7] = annotation.color;
927
- $[8] = themeAccent;
928
- $[9] = t5;
929
- } else {
930
- t5 = $[9];
931
- }
932
- const fill = t5;
933
- const anchor = annotation.anchor ?? "top";
934
- const route = annotation.leaderRoute ?? "straight";
935
- let t6;
936
- if ($[10] !== annotation.targets) {
937
- t6 = annotation.targets?.join("+");
938
- $[10] = annotation.targets;
939
- $[11] = t6;
940
- } else {
941
- t6 = $[11];
942
- }
943
- const annotationTargets = t6;
944
- const annotationId = annotation.target || annotationTargets ? `${annotation.target ?? annotationTargets}:${anchor}` : `free:${index}`;
945
- let T0;
946
- let first;
947
- let t7;
948
- let t8;
949
- if ($[12] !== anchor || $[13] !== annotationId || $[14] !== leaders || $[15] !== note.node.id || $[16] !== note.text || $[17] !== opacity || $[18] !== route) {
950
- let t9;
951
- if ($[23] !== note.node.id) {
952
- t9 = leader => leader.note === note.node.id;
953
- $[23] = note.node.id;
954
- $[24] = t9;
926
+ if ($[7] !== leaders || $[8] !== node) {
927
+ let t6;
928
+ if ($[10] !== node) {
929
+ t6 = leader => leader.note === node.id;
930
+ $[10] = node;
931
+ $[11] = t6;
955
932
  } else {
956
- t9 = $[24];
933
+ t6 = $[11];
957
934
  }
958
- const noteLeaders = leaders.filter(t9);
959
- [first] = note.text;
960
- T0 = motion.g;
961
- if ($[25] !== opacity) {
962
- t7 = {
963
- opacity
964
- };
965
- $[25] = opacity;
966
- $[26] = t7;
967
- } else {
968
- t7 = $[26];
969
- }
970
- let t10;
971
- if ($[27] !== anchor || $[28] !== annotationId || $[29] !== route) {
972
- t10 = (leader_0, leaderIndex) => {
973
- const attrs = {
974
- "data-diagram-annotation-leader": annotationId,
975
- "data-diagram-annotation-leader-target": leader_0.target,
976
- "data-diagram-annotation-leader-anchor": anchor,
977
- "data-diagram-annotation-leader-index": leaderIndex,
978
- "data-diagram-annotation-leader-route": route
979
- };
980
- const from = leader_0.points.at(0);
981
- const to = leader_0.points.at(-1);
982
- if (leader_0.points.length > 2 || !from || !to) {
983
- return /*#__PURE__*/_jsx("path", {
984
- ...attrs,
985
- d: leader_0.d,
986
- fill: "none",
987
- stroke: DIAGRAM_NEUTRAL,
988
- strokeWidth: 1,
989
- strokeLinecap: "round",
990
- strokeLinejoin: "round"
991
- }, `${leader_0.target}:${leaderIndex}`);
992
- }
993
- return /*#__PURE__*/_jsx("line", {
994
- ...attrs,
995
- x1: from.x,
996
- y1: from.y,
997
- x2: to.x,
998
- y2: to.y,
999
- stroke: DIAGRAM_NEUTRAL,
1000
- strokeWidth: 1,
1001
- strokeLinecap: "round"
1002
- }, `${leader_0.target}:${leaderIndex}`);
1003
- };
1004
- $[27] = anchor;
1005
- $[28] = annotationId;
1006
- $[29] = route;
1007
- $[30] = t10;
935
+ let t7;
936
+ if ($[12] !== node) {
937
+ t7 = leader_0 => /*#__PURE__*/_jsx("path", {
938
+ "data-diagram-note-leader": node.id,
939
+ "data-diagram-note-leader-target": leader_0.target,
940
+ d: leader_0.d,
941
+ fill: "none",
942
+ stroke: DIAGRAM_NEUTRAL,
943
+ strokeWidth: 1,
944
+ strokeLinecap: "round",
945
+ strokeLinejoin: "round"
946
+ }, leader_0.target);
947
+ $[12] = node;
948
+ $[13] = t7;
1008
949
  } else {
1009
- t10 = $[30];
950
+ t7 = $[13];
1010
951
  }
1011
- t8 = noteLeaders.map(t10);
1012
- $[12] = anchor;
1013
- $[13] = annotationId;
1014
- $[14] = leaders;
1015
- $[15] = note.node.id;
1016
- $[16] = note.text;
1017
- $[17] = opacity;
1018
- $[18] = route;
1019
- $[19] = T0;
1020
- $[20] = first;
1021
- $[21] = t7;
1022
- $[22] = t8;
952
+ t5 = leaders.filter(t6).map(t7);
953
+ $[7] = leaders;
954
+ $[8] = node;
955
+ $[9] = t5;
1023
956
  } else {
1024
- T0 = $[19];
1025
- first = $[20];
1026
- t7 = $[21];
1027
- t8 = $[22];
957
+ t5 = $[9];
1028
958
  }
1029
- let t9;
1030
- if ($[31] !== annotation.anchor || $[32] !== annotation.guide || $[33] !== annotation.lineGap || $[34] !== annotation.target || $[35] !== annotation.targets || $[36] !== annotationId || $[37] !== fill || $[38] !== first || $[39] !== note.text) {
1031
- t9 = first && /*#__PURE__*/_jsx("text", {
1032
- "data-diagram-annotation": annotationId,
1033
- "data-diagram-annotation-target": annotation.target,
1034
- "data-diagram-annotation-targets": annotation.targets?.join(" "),
1035
- "data-diagram-annotation-anchor": annotation.anchor,
1036
- "data-diagram-annotation-guide": annotation.guide,
1037
- "data-diagram-annotation-line-gap": annotation.lineGap,
959
+ let t6;
960
+ if ($[14] !== first || $[15] !== node || $[16] !== text || $[17] !== themeAccent) {
961
+ t6 = first && /*#__PURE__*/_jsx("text", {
962
+ "data-diagram-note": node.id,
963
+ "data-diagram-note-target": node.target,
1038
964
  ...textAttrs(first),
1039
- fill: fill,
965
+ fill: DIAGRAM_TEXT,
1040
966
  children: /*#__PURE__*/_jsx(RunSpans, {
1041
- runs: note.text
967
+ runs: text,
968
+ fill: DIAGRAM_TEXT,
969
+ accent: themeAccent
1042
970
  })
1043
971
  });
1044
- $[31] = annotation.anchor;
1045
- $[32] = annotation.guide;
1046
- $[33] = annotation.lineGap;
1047
- $[34] = annotation.target;
1048
- $[35] = annotation.targets;
1049
- $[36] = annotationId;
1050
- $[37] = fill;
1051
- $[38] = first;
1052
- $[39] = note.text;
1053
- $[40] = t9;
972
+ $[14] = first;
973
+ $[15] = node;
974
+ $[16] = text;
975
+ $[17] = themeAccent;
976
+ $[18] = t6;
1054
977
  } else {
1055
- t9 = $[40];
978
+ t6 = $[18];
1056
979
  }
1057
- let t10;
1058
- if ($[41] !== T0 || $[42] !== t7 || $[43] !== t8 || $[44] !== t9) {
1059
- t10 = /*#__PURE__*/_jsxs(T0, {
1060
- style: t7,
1061
- children: [t8, t9]
980
+ let t7;
981
+ if ($[19] !== t4 || $[20] !== t5 || $[21] !== t6) {
982
+ t7 = /*#__PURE__*/_jsxs(motion.g, {
983
+ style: t4,
984
+ children: [t5, t6]
1062
985
  });
1063
- $[41] = T0;
1064
- $[42] = t7;
1065
- $[43] = t8;
1066
- $[44] = t9;
1067
- $[45] = t10;
986
+ $[19] = t4;
987
+ $[20] = t5;
988
+ $[21] = t6;
989
+ $[22] = t7;
1068
990
  } else {
1069
- t10 = $[45];
991
+ t7 = $[22];
1070
992
  }
1071
- return t10;
993
+ return t7;
1072
994
  }
1073
995
  //# sourceMappingURL=node-parts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-parts.js","names":["motion","useTransform","ANNOTATION_NOTE_PREFIX","FONT_FAMILY","DIAGRAM_BG","DIAGRAM_DIM","DIAGRAM_NEUTRAL","DIAGRAM_TEXT","resolveDiagramToneFill","useDiagramTheme","DiagramNodeIcon","PortMarkers","accentToneStroke","nodeTextFill","textureFill","RunSpans","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ANNOTATION_REVEAL_START","isSpecialNode","node","kind","undefined","isNote","layout","splitNotes","nodes","graphNodes","filter","notes","textAttrs","first","x","y","textAnchor","anchor","fontFamily","font","face","fontSize","size","fontWeight","weight","junctionFillColor","themeAccent","accent","tone","SpecialNode","t0","$","_c","progress","start","end","ids","t1","t2","t3","Symbol","for","clamp","opacity","t4","t5","t6","translateY","box","radius","icon","text","appliance","fill","t7","bb0","frame","t8","applianceStroke","t9","applianceFill","t10","texture","t11","applianceTexture","t12","body","map","_temp","bodyPath","join","faceFrom","faceTo","rod","mast","antenna","t13","id","t14","t15","children","x1","y1","x2","y2","strokeWidth","strokeLinecap","t16","strokeLinejoin","t17","pointerEvents","t18","t19","jacks","t20","jack","i_0","i","width","w","height","h","rx","t21","t22","NodePorts","NodeCaption","t23","g","style","connectorStroke","connectorFill","connectorTexture","markerStroke","stroke","junctionStroke","junctionFill","cx","cy","point","NodeStackFrames","frames","level","reverse","ports","ownerId","declared","textColorFill","color","caption","captionColor","framed","runs","AnnotationText","note","annotations","leaders","slice","length","index","Number","annotation","route","leaderRoute","targets","annotationTargets","annotationId","target","T0","leader","noteLeaders","leader_0","leaderIndex","attrs","from","points","at","to","d","guide","lineGap"],"sources":["../../../../src/lib/renderers/shared/node-parts.tsx"],"sourcesContent":["import { type MotionValue, motion, useTransform } from 'motion/react';\n\nimport type {\n LeaderLayout,\n NodeLayout,\n TextRun,\n} from '../../layouts/graph/graph-layout-result.ts';\nimport { ANNOTATION_NOTE_PREFIX } from '../../layouts/graph/legacy-graph-layout.ts';\nimport { FONT_FAMILY } from '../../layouts/text/font.ts';\nimport type {\n DiagramAnnotation,\n DiagramNode,\n DiagramTextColor,\n} from '../../model/diagram-ir.ts';\nimport {\n DIAGRAM_BG,\n DIAGRAM_DIM,\n DIAGRAM_NEUTRAL,\n DIAGRAM_TEXT,\n resolveDiagramToneFill,\n useDiagramTheme,\n} from '../../react/chrome/index.ts';\nimport {\n DiagramNodeIcon,\n PortMarkers,\n accentToneStroke,\n nodeTextFill,\n textureFill,\n} from './graph-parts.tsx';\nimport { RunSpans } from './run-spans.tsx';\n\nexport const ANNOTATION_REVEAL_START = 0.85;\n\nexport function isSpecialNode(node: DiagramNode) {\n return node.kind !== undefined && node.kind !== 'node';\n}\n\nfunction isNote(layout: NodeLayout) {\n return layout.node.kind === 'note';\n}\n\n/** Splits the graph's own nodes from the notes that stand for annotations. */\nexport function splitNotes(nodes: NodeLayout[]) {\n return {\n graphNodes: nodes.filter((layout) => !isNote(layout)),\n notes: nodes.filter(isNote),\n };\n}\n\nfunction textAttrs(first: TextRun) {\n return {\n x: first.x,\n y: first.y,\n textAnchor: first.anchor,\n fontFamily: FONT_FAMILY[first.font.face],\n fontSize: first.font.size,\n fontWeight: first.font.weight,\n };\n}\n\nfunction junctionFillColor(node: DiagramNode, themeAccent: string) {\n if (node.accent) return themeAccent;\n if (node.tone) return resolveDiagramToneFill(node.tone);\n return DIAGRAM_BG;\n}\n\nexport function SpecialNode({\n layout,\n progress,\n start,\n end,\n}: {\n layout: NodeLayout;\n progress: MotionValue<number>;\n start: number;\n end: number;\n}) {\n const { accent: themeAccent, ids } = useDiagramTheme();\n const opacity = useTransform(progress, [start, end], [0, 1], {\n clamp: true,\n });\n const translateY = useTransform(progress, [start, end], [-10, 0], {\n clamp: true,\n });\n const { node, box, radius, icon, text, appliance } = layout;\n const fill = nodeTextFill(node, node.frame ?? 'solid', themeAccent);\n const [first] = text;\n if (node.kind === 'appliance' && appliance) {\n const applianceStroke = accentToneStroke(\n node,\n themeAccent,\n DIAGRAM_NEUTRAL,\n );\n const applianceFill = node.tone\n ? resolveDiagramToneFill(node.tone)\n : DIAGRAM_BG;\n const applianceTexture = textureFill(node.texture ?? 'none', ids);\n const bodyPath = [\n ...appliance.body.map(\n (point, i) => `${i === 0 ? 'M' : 'L'} ${point.x} ${point.y}`,\n ),\n 'Z',\n ].join(' ');\n const [faceFrom, faceTo] = appliance.face;\n const [rod, mast] = appliance.antenna;\n\n return (\n <motion.g\n data-diagram-appliance={node.id}\n style={{ opacity, y: translateY }}\n >\n {rod && mast && (\n <g data-diagram-appliance-antenna={node.id}>\n <line\n x1={rod[0].x}\n y1={rod[0].y}\n x2={rod[1].x}\n y2={rod[1].y}\n stroke={applianceStroke}\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n />\n <line\n x1={mast[0].x}\n y1={mast[0].y}\n x2={mast[1].x}\n y2={mast[1].y}\n stroke={applianceStroke}\n strokeWidth={1}\n strokeLinecap=\"round\"\n />\n </g>\n )}\n <path\n data-diagram-node={node.id}\n data-diagram-node-tone={node.tone}\n data-diagram-appliance-body={node.id}\n d={bodyPath}\n fill={applianceFill}\n stroke={applianceStroke}\n strokeWidth={1.5}\n strokeLinejoin=\"round\"\n />\n {applianceTexture && (\n <path\n data-diagram-node-texture={`${node.id}:${node.texture ?? 'none'}`}\n d={bodyPath}\n fill={applianceTexture}\n pointerEvents=\"none\"\n />\n )}\n <line\n data-diagram-appliance-face={node.id}\n x1={faceFrom.x}\n y1={faceFrom.y}\n x2={faceTo.x}\n y2={faceTo.y}\n stroke={applianceStroke}\n strokeWidth={1}\n strokeLinecap=\"round\"\n opacity={0.85}\n />\n {appliance.jacks.map((jack, i) => (\n <rect\n key={i}\n data-diagram-appliance-port={`${node.id}:${i}`}\n x={jack.x}\n y={jack.y}\n width={jack.w}\n height={jack.h}\n rx={1}\n fill={DIAGRAM_BG}\n stroke={applianceStroke}\n strokeWidth={1}\n />\n ))}\n {first && (\n <text\n data-diagram-appliance-label={node.id}\n {...textAttrs(first)}\n fill={fill}\n >\n <RunSpans runs={text} fill={fill} accent={themeAccent} />\n </text>\n )}\n <NodePorts layout={layout} />\n <NodeCaption layout={layout} />\n </motion.g>\n );\n }\n if (node.kind === 'connector') {\n const connectorStroke = accentToneStroke(\n node,\n themeAccent,\n DIAGRAM_NEUTRAL,\n );\n const connectorFill = node.tone\n ? resolveDiagramToneFill(node.tone)\n : DIAGRAM_BG;\n const connectorTexture = textureFill(\n node.texture ?? (node.tone ? 'dots' : 'none'),\n ids,\n );\n\n return (\n <motion.g style={{ opacity, y: translateY }}>\n <rect\n data-diagram-node={node.id}\n data-diagram-connector={node.id}\n data-diagram-node-tone={node.tone}\n x={box.x}\n y={box.y}\n width={box.w}\n height={box.h}\n rx={radius}\n fill={connectorFill}\n stroke={connectorStroke}\n strokeWidth={1.25}\n />\n {connectorTexture && (\n <rect\n data-diagram-node-texture={`${node.id}:${node.texture ?? 'dots'}`}\n x={box.x}\n y={box.y}\n width={box.w}\n height={box.h}\n rx={radius}\n fill={connectorTexture}\n pointerEvents=\"none\"\n />\n )}\n {node.icon && icon && (\n <DiagramNodeIcon\n icon={node.icon}\n x={icon.x}\n y={icon.y}\n size={icon.size}\n color={fill}\n />\n )}\n {first && (\n <text\n data-diagram-connector-label={node.id}\n {...textAttrs(first)}\n fill={fill}\n >\n <RunSpans runs={text} fill={fill} accent={themeAccent} />\n </text>\n )}\n <NodePorts layout={layout} />\n <NodeCaption layout={layout} />\n </motion.g>\n );\n }\n if (node.kind === 'marker' && icon) {\n const markerStroke = accentToneStroke(node, themeAccent, fill);\n\n return (\n <motion.g\n data-diagram-marker={node.id}\n style={{ opacity, y: translateY }}\n >\n <rect\n data-diagram-node={node.id}\n data-diagram-marker-bounds={node.id}\n x={box.x}\n y={box.y}\n width={box.w}\n height={box.h}\n rx={radius}\n fill=\"transparent\"\n stroke=\"none\"\n />\n <DiagramNodeIcon\n icon={node.icon ?? 'ellipsis'}\n x={icon.x}\n y={icon.y}\n size={icon.size}\n color={markerStroke}\n />\n {first && (\n <text\n data-diagram-marker-label={node.id}\n {...textAttrs(first)}\n fill={fill}\n >\n <RunSpans runs={text} fill={fill} accent={themeAccent} />\n </text>\n )}\n <NodePorts layout={layout} />\n <NodeCaption layout={layout} />\n </motion.g>\n );\n }\n if (node.kind === 'junction') {\n const junctionStroke = accentToneStroke(node, themeAccent, DIAGRAM_NEUTRAL);\n const junctionFill = junctionFillColor(node, themeAccent);\n return (\n <motion.g style={{ opacity, y: translateY }}>\n <circle\n data-diagram-junction={node.id}\n cx={box.x + box.w / 2}\n cy={box.y + box.h / 2}\n r={radius}\n fill={junctionFill}\n stroke={junctionStroke}\n strokeWidth={1.5}\n />\n {first && (\n <text\n data-diagram-junction-label={node.id}\n {...textAttrs(first)}\n fill={fill}\n >\n <RunSpans runs={text} />\n </text>\n )}\n <NodeCaption layout={layout} />\n </motion.g>\n );\n }\n return null;\n}\n\nexport function NodeStackFrames({\n layout,\n fill,\n stroke,\n strokeWidth,\n}: {\n layout: NodeLayout;\n fill: string;\n stroke: string;\n strokeWidth: number;\n}) {\n const { node, frames, radius } = layout;\n return frames\n .map((frame, i) => ({ frame, level: i + 1 }))\n .reverse()\n .map(({ frame, level }) => (\n <rect\n key={`stack-${level}`}\n data-diagram-node-stack={`${node.id}:${level}`}\n x={frame.x}\n y={frame.y}\n width={frame.w}\n height={frame.h}\n rx={radius}\n fill={fill}\n stroke={stroke}\n strokeWidth={strokeWidth}\n />\n ));\n}\n\nexport function NodePorts({ layout }: { layout: NodeLayout }) {\n return (\n <PortMarkers\n ownerId={layout.node.id}\n ports={layout.ports}\n declared={layout.node.ports}\n />\n );\n}\n\nfunction textColorFill(color: DiagramTextColor | undefined, accent: string) {\n if (color === 'accent') return accent;\n if (color === 'dim') return DIAGRAM_DIM;\n return DIAGRAM_TEXT;\n}\n\nexport function NodeCaption({ layout }: { layout: NodeLayout }) {\n const { accent: themeAccent } = useDiagramTheme();\n const { node, caption } = layout;\n const [first] = caption?.text ?? [];\n if (!caption || !first) return null;\n const fill = textColorFill(node.captionColor, themeAccent);\n const frame = caption.framed ? caption.box : null;\n return (\n <>\n {frame && (\n <rect\n data-diagram-node-caption-frame={node.id}\n x={frame.x}\n y={frame.y}\n width={frame.w}\n height={frame.h}\n rx={frame.h / 2}\n fill={DIAGRAM_BG}\n stroke={fill}\n strokeWidth={1}\n />\n )}\n <text\n data-diagram-node-caption={node.id}\n {...textAttrs(first)}\n fill={fill}\n >\n <RunSpans runs={caption.text} />\n </text>\n </>\n );\n}\n\nexport function AnnotationText({\n note,\n annotations,\n leaders,\n progress,\n start,\n end,\n}: {\n note: NodeLayout;\n annotations: DiagramAnnotation[];\n leaders: LeaderLayout[];\n progress: MotionValue<number>;\n start: number;\n end: number;\n}) {\n const { accent: themeAccent } = useDiagramTheme();\n const opacity = useTransform(progress, [start, end], [0, 1], { clamp: true });\n const index = Number(note.node.id.slice(ANNOTATION_NOTE_PREFIX.length));\n const annotation = annotations[index];\n if (!annotation) return null;\n const fill = textColorFill(annotation.color, themeAccent);\n const anchor = annotation.anchor ?? 'top';\n const route = annotation.leaderRoute ?? 'straight';\n const annotationTargets = annotation.targets?.join('+');\n const annotationId =\n annotation.target || annotationTargets\n ? `${annotation.target ?? annotationTargets}:${anchor}`\n : `free:${index}`;\n const noteLeaders = leaders.filter((leader) => leader.note === note.node.id);\n const [first] = note.text;\n return (\n <motion.g style={{ opacity }}>\n {noteLeaders.map((leader, leaderIndex) => {\n const attrs = {\n 'data-diagram-annotation-leader': annotationId,\n 'data-diagram-annotation-leader-target': leader.target,\n 'data-diagram-annotation-leader-anchor': anchor,\n 'data-diagram-annotation-leader-index': leaderIndex,\n 'data-diagram-annotation-leader-route': route,\n };\n const from = leader.points.at(0);\n const to = leader.points.at(-1);\n if (leader.points.length > 2 || !from || !to) {\n return (\n <path\n key={`${leader.target}:${leaderIndex}`}\n {...attrs}\n d={leader.d}\n fill=\"none\"\n stroke={DIAGRAM_NEUTRAL}\n strokeWidth={1}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n );\n }\n return (\n <line\n key={`${leader.target}:${leaderIndex}`}\n {...attrs}\n x1={from.x}\n y1={from.y}\n x2={to.x}\n y2={to.y}\n stroke={DIAGRAM_NEUTRAL}\n strokeWidth={1}\n strokeLinecap=\"round\"\n />\n );\n })}\n {first && (\n <text\n data-diagram-annotation={annotationId}\n data-diagram-annotation-target={annotation.target}\n data-diagram-annotation-targets={annotation.targets?.join(' ')}\n data-diagram-annotation-anchor={annotation.anchor}\n data-diagram-annotation-guide={annotation.guide}\n data-diagram-annotation-line-gap={annotation.lineGap}\n {...textAttrs(first)}\n fill={fill}\n >\n <RunSpans runs={note.text} />\n </text>\n )}\n </motion.g>\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"node-parts.js","names":["motion","useTransform","FONT_FAMILY","DIAGRAM_BG","DIAGRAM_DIM","DIAGRAM_NEUTRAL","DIAGRAM_TEXT","resolveDiagramToneFill","useDiagramTheme","DiagramNodeIcon","PortMarkers","accentToneStroke","nodeTextFill","textureFill","RunSpans","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","NOTE_REVEAL_START","isSpecialNode","node","kind","undefined","isNote","layout","splitNotes","nodes","graphNodes","filter","notes","textAttrs","first","x","y","textAnchor","anchor","fontFamily","font","face","fontSize","size","fontWeight","weight","junctionFillColor","themeAccent","accent","tone","SpecialNode","t0","$","_c","progress","start","end","ids","t1","t2","t3","Symbol","for","clamp","opacity","t4","t5","t6","translateY","box","radius","icon","text","appliance","fill","t7","bb0","frame","t8","applianceStroke","t9","applianceFill","t10","texture","t11","applianceTexture","t12","body","map","_temp","bodyPath","join","faceFrom","faceTo","rod","mast","antenna","t13","id","t14","t15","children","x1","y1","x2","y2","strokeWidth","strokeLinecap","t16","strokeLinejoin","t17","pointerEvents","t18","t19","jacks","t20","jack","i_0","i","width","w","height","h","rx","t21","t22","NodePorts","NodeCaption","t23","g","style","connectorStroke","connectorFill","connectorTexture","markerStroke","stroke","junctionStroke","junctionFill","point","NodeStackFrames","frames","level","reverse","ports","ownerId","declared","textColorFill","color","caption","captionColor","framed","runs","NoteText","note","leaders","leader","leader_0","target","d"],"sources":["../../../../src/lib/renderers/shared/node-parts.tsx"],"sourcesContent":["import { type MotionValue, motion, useTransform } from 'motion/react';\n\nimport type {\n LeaderLayout,\n NodeLayout,\n TextRun,\n} from '../../layouts/graph/graph-layout-result.ts';\nimport { FONT_FAMILY } from '../../layouts/text/font.ts';\nimport type { DiagramNode, DiagramTextColor } from '../../model/diagram-ir.ts';\nimport {\n DIAGRAM_BG,\n DIAGRAM_DIM,\n DIAGRAM_NEUTRAL,\n DIAGRAM_TEXT,\n resolveDiagramToneFill,\n useDiagramTheme,\n} from '../../react/chrome/index.ts';\nimport {\n DiagramNodeIcon,\n PortMarkers,\n accentToneStroke,\n nodeTextFill,\n textureFill,\n} from './graph-parts.tsx';\nimport { RunSpans } from './run-spans.tsx';\n\nexport const NOTE_REVEAL_START = 0.85;\n\nexport function isSpecialNode(node: DiagramNode) {\n return node.kind !== undefined && node.kind !== 'node';\n}\n\nfunction isNote(layout: NodeLayout) {\n return layout.node.kind === 'note';\n}\n\n/** Splits the framed nodes from the notes, which draw last, over the edges. */\nexport function splitNotes(nodes: NodeLayout[]) {\n return {\n graphNodes: nodes.filter((layout) => !isNote(layout)),\n notes: nodes.filter(isNote),\n };\n}\n\nfunction textAttrs(first: TextRun) {\n return {\n x: first.x,\n y: first.y,\n textAnchor: first.anchor,\n fontFamily: FONT_FAMILY[first.font.face],\n fontSize: first.font.size,\n fontWeight: first.font.weight,\n };\n}\n\nfunction junctionFillColor(node: DiagramNode, themeAccent: string) {\n if (node.accent) return themeAccent;\n if (node.tone) return resolveDiagramToneFill(node.tone);\n return DIAGRAM_BG;\n}\n\nexport function SpecialNode({\n layout,\n progress,\n start,\n end,\n}: {\n layout: NodeLayout;\n progress: MotionValue<number>;\n start: number;\n end: number;\n}) {\n const { accent: themeAccent, ids } = useDiagramTheme();\n const opacity = useTransform(progress, [start, end], [0, 1], {\n clamp: true,\n });\n const translateY = useTransform(progress, [start, end], [-10, 0], {\n clamp: true,\n });\n const { node, box, radius, icon, text, appliance } = layout;\n const fill = nodeTextFill(node, node.frame ?? 'solid', themeAccent);\n const [first] = text;\n if (node.kind === 'appliance' && appliance) {\n const applianceStroke = accentToneStroke(\n node,\n themeAccent,\n DIAGRAM_NEUTRAL,\n );\n const applianceFill = node.tone\n ? resolveDiagramToneFill(node.tone)\n : DIAGRAM_BG;\n const applianceTexture = textureFill(node.texture ?? 'none', ids);\n const bodyPath = [\n ...appliance.body.map(\n (point, i) => `${i === 0 ? 'M' : 'L'} ${point.x} ${point.y}`,\n ),\n 'Z',\n ].join(' ');\n const [faceFrom, faceTo] = appliance.face;\n const [rod, mast] = appliance.antenna;\n\n return (\n <motion.g\n data-diagram-appliance={node.id}\n style={{ opacity, y: translateY }}\n >\n {rod && mast && (\n <g data-diagram-appliance-antenna={node.id}>\n <line\n x1={rod[0].x}\n y1={rod[0].y}\n x2={rod[1].x}\n y2={rod[1].y}\n stroke={applianceStroke}\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n />\n <line\n x1={mast[0].x}\n y1={mast[0].y}\n x2={mast[1].x}\n y2={mast[1].y}\n stroke={applianceStroke}\n strokeWidth={1}\n strokeLinecap=\"round\"\n />\n </g>\n )}\n <path\n data-diagram-node={node.id}\n data-diagram-node-tone={node.tone}\n data-diagram-appliance-body={node.id}\n d={bodyPath}\n fill={applianceFill}\n stroke={applianceStroke}\n strokeWidth={1.5}\n strokeLinejoin=\"round\"\n />\n {applianceTexture && (\n <path\n data-diagram-node-texture={`${node.id}:${node.texture ?? 'none'}`}\n d={bodyPath}\n fill={applianceTexture}\n pointerEvents=\"none\"\n />\n )}\n <line\n data-diagram-appliance-face={node.id}\n x1={faceFrom.x}\n y1={faceFrom.y}\n x2={faceTo.x}\n y2={faceTo.y}\n stroke={applianceStroke}\n strokeWidth={1}\n strokeLinecap=\"round\"\n opacity={0.85}\n />\n {appliance.jacks.map((jack, i) => (\n <rect\n key={i}\n data-diagram-appliance-port={`${node.id}:${i}`}\n x={jack.x}\n y={jack.y}\n width={jack.w}\n height={jack.h}\n rx={1}\n fill={DIAGRAM_BG}\n stroke={applianceStroke}\n strokeWidth={1}\n />\n ))}\n {first && (\n <text\n data-diagram-appliance-label={node.id}\n {...textAttrs(first)}\n fill={fill}\n >\n <RunSpans runs={text} fill={fill} accent={themeAccent} />\n </text>\n )}\n <NodePorts layout={layout} />\n <NodeCaption layout={layout} />\n </motion.g>\n );\n }\n if (node.kind === 'connector') {\n const connectorStroke = accentToneStroke(\n node,\n themeAccent,\n DIAGRAM_NEUTRAL,\n );\n const connectorFill = node.tone\n ? resolveDiagramToneFill(node.tone)\n : DIAGRAM_BG;\n const connectorTexture = textureFill(\n node.texture ?? (node.tone ? 'dots' : 'none'),\n ids,\n );\n\n return (\n <motion.g style={{ opacity, y: translateY }}>\n <rect\n data-diagram-node={node.id}\n data-diagram-connector={node.id}\n data-diagram-node-tone={node.tone}\n x={box.x}\n y={box.y}\n width={box.w}\n height={box.h}\n rx={radius}\n fill={connectorFill}\n stroke={connectorStroke}\n strokeWidth={1.25}\n />\n {connectorTexture && (\n <rect\n data-diagram-node-texture={`${node.id}:${node.texture ?? 'dots'}`}\n x={box.x}\n y={box.y}\n width={box.w}\n height={box.h}\n rx={radius}\n fill={connectorTexture}\n pointerEvents=\"none\"\n />\n )}\n {node.icon && icon && (\n <DiagramNodeIcon\n icon={node.icon}\n x={icon.x}\n y={icon.y}\n size={icon.size}\n color={fill}\n />\n )}\n {first && (\n <text\n data-diagram-connector-label={node.id}\n {...textAttrs(first)}\n fill={fill}\n >\n <RunSpans runs={text} fill={fill} accent={themeAccent} />\n </text>\n )}\n <NodePorts layout={layout} />\n <NodeCaption layout={layout} />\n </motion.g>\n );\n }\n if (node.kind === 'marker' && icon) {\n const markerStroke = accentToneStroke(node, themeAccent, fill);\n\n return (\n <motion.g\n data-diagram-marker={node.id}\n style={{ opacity, y: translateY }}\n >\n <rect\n data-diagram-node={node.id}\n data-diagram-marker-bounds={node.id}\n x={box.x}\n y={box.y}\n width={box.w}\n height={box.h}\n rx={radius}\n fill=\"transparent\"\n stroke=\"none\"\n />\n <DiagramNodeIcon\n icon={node.icon ?? 'ellipsis'}\n x={icon.x}\n y={icon.y}\n size={icon.size}\n color={markerStroke}\n />\n {first && (\n <text\n data-diagram-marker-label={node.id}\n {...textAttrs(first)}\n fill={fill}\n >\n <RunSpans runs={text} fill={fill} accent={themeAccent} />\n </text>\n )}\n <NodePorts layout={layout} />\n <NodeCaption layout={layout} />\n </motion.g>\n );\n }\n if (node.kind === 'junction') {\n const junctionStroke = accentToneStroke(node, themeAccent, DIAGRAM_NEUTRAL);\n const junctionFill = junctionFillColor(node, themeAccent);\n return (\n <motion.g style={{ opacity, y: translateY }}>\n <rect\n data-diagram-junction={node.id}\n x={box.x}\n y={box.y}\n width={box.w}\n height={box.h}\n rx={radius}\n fill={junctionFill}\n stroke={junctionStroke}\n strokeWidth={1.5}\n />\n {first && (\n <text\n data-diagram-junction-label={node.id}\n {...textAttrs(first)}\n fill={fill}\n >\n <RunSpans runs={text} />\n </text>\n )}\n <NodeCaption layout={layout} />\n </motion.g>\n );\n }\n return null;\n}\n\nexport function NodeStackFrames({\n layout,\n fill,\n stroke,\n strokeWidth,\n}: {\n layout: NodeLayout;\n fill: string;\n stroke: string;\n strokeWidth: number;\n}) {\n const { node, frames, radius } = layout;\n return frames\n .map((frame, i) => ({ frame, level: i + 1 }))\n .reverse()\n .map(({ frame, level }) => (\n <rect\n key={`stack-${level}`}\n data-diagram-node-stack={`${node.id}:${level}`}\n x={frame.x}\n y={frame.y}\n width={frame.w}\n height={frame.h}\n rx={radius}\n fill={fill}\n stroke={stroke}\n strokeWidth={strokeWidth}\n />\n ));\n}\n\nexport function NodePorts({ layout }: { layout: NodeLayout }) {\n return (\n <PortMarkers\n ownerId={layout.node.id}\n ports={layout.ports}\n declared={layout.node.ports}\n />\n );\n}\n\nfunction textColorFill(color: DiagramTextColor | undefined, accent: string) {\n if (color === 'accent') return accent;\n if (color === 'dim') return DIAGRAM_DIM;\n return DIAGRAM_TEXT;\n}\n\nexport function NodeCaption({ layout }: { layout: NodeLayout }) {\n const { accent: themeAccent } = useDiagramTheme();\n const { node, caption } = layout;\n const [first] = caption?.text ?? [];\n if (!caption || !first) return null;\n const fill = textColorFill(node.captionColor, themeAccent);\n const frame = caption.framed ? caption.box : null;\n return (\n <>\n {frame && (\n <rect\n data-diagram-node-caption-frame={node.id}\n x={frame.x}\n y={frame.y}\n width={frame.w}\n height={frame.h}\n rx={frame.h / 2}\n fill={DIAGRAM_BG}\n stroke={fill}\n strokeWidth={1}\n />\n )}\n <text\n data-diagram-node-caption={node.id}\n {...textAttrs(first)}\n fill={fill}\n >\n <RunSpans runs={caption.text} />\n </text>\n </>\n );\n}\n\nexport function NoteText({\n note,\n leaders,\n progress,\n start,\n end,\n}: {\n note: NodeLayout;\n leaders: LeaderLayout[];\n progress: MotionValue<number>;\n start: number;\n end: number;\n}) {\n const { accent: themeAccent } = useDiagramTheme();\n const opacity = useTransform(progress, [start, end], [0, 1], { clamp: true });\n const { node, text } = note;\n const [first] = text;\n return (\n <motion.g style={{ opacity }}>\n {leaders\n .filter((leader) => leader.note === node.id)\n .map((leader) => (\n <path\n key={leader.target}\n data-diagram-note-leader={node.id}\n data-diagram-note-leader-target={leader.target}\n d={leader.d}\n fill=\"none\"\n stroke={DIAGRAM_NEUTRAL}\n strokeWidth={1}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n ))}\n {first && (\n <text\n data-diagram-note={node.id}\n data-diagram-note-target={node.target}\n {...textAttrs(first)}\n fill={DIAGRAM_TEXT}\n >\n <RunSpans runs={text} fill={DIAGRAM_TEXT} accent={themeAccent} />\n </text>\n )}\n </motion.g>\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { baselineStep, runFill } from "./text-runs.js";
1
+ import { runFill } from "./text-runs.js";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  export function RunSpans({
4
4
  runs,
@@ -7,7 +7,7 @@ export function RunSpans({
7
7
  }) {
8
8
  return runs.map((run, i) => /*#__PURE__*/_jsx("tspan", {
9
9
  x: run.x,
10
- dy: baselineStep(runs, i),
10
+ y: run.y,
11
11
  ...(fill === undefined ? {} : {
12
12
  fill: runFill(run, fill, accent ?? fill),
13
13
  fontWeight: run.font.weight
@@ -1 +1 @@
1
- {"version":3,"file":"run-spans.js","names":["baselineStep","runFill","jsx","_jsx","RunSpans","runs","fill","accent","map","run","i","x","dy","undefined","fontWeight","font","weight","children","text"],"sources":["../../../../src/lib/renderers/shared/run-spans.tsx"],"sourcesContent":["import type { TextRun } from '../../layouts/graph/graph-layout-result.ts';\nimport { baselineStep, runFill } from './text-runs.ts';\n\nexport function RunSpans({\n runs,\n fill,\n accent,\n}: {\n runs: TextRun[];\n /** Set it to give each line its own fill and weight. */\n fill?: string;\n accent?: string;\n}) {\n return runs.map((run, i) => (\n <tspan\n key={i}\n x={run.x}\n dy={baselineStep(runs, i)}\n {...(fill === undefined\n ? {}\n : {\n fill: runFill(run, fill, accent ?? fill),\n fontWeight: run.font.weight,\n })}\n >\n {run.text}\n </tspan>\n ));\n}\n"],"mappings":"AACA,SAASA,YAAY,EAAEC,OAAO,QAAQ,gBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEvD,OAAO,SAASC,QAAQA,CAAC;EACvBC,IAAI;EACJC,IAAI;EACJC;AAMF,CAAC,EAAE;EACD,OAAOF,IAAI,CAACG,GAAG,CAAC,CAACC,GAAG,EAAEC,CAAC,kBACrBP,IAAA;IAEEQ,CAAC,EAAEF,GAAG,CAACE,CAAE;IACTC,EAAE,EAAEZ,YAAY,CAACK,IAAI,EAAEK,CAAC,CAAE;IAAA,IACrBJ,IAAI,KAAKO,SAAS,GACnB,CAAC,CAAC,GACF;MACEP,IAAI,EAAEL,OAAO,CAACQ,GAAG,EAAEH,IAAI,EAAEC,MAAM,IAAID,IAAI,CAAC;MACxCQ,UAAU,EAAEL,GAAG,CAACM,IAAI,CAACC;IACvB,CAAC;IAAAC,QAAA,EAEJR,GAAG,CAACS;EAAI,GAVJR,CAWA,CACR,CAAC;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"run-spans.js","names":["runFill","jsx","_jsx","RunSpans","runs","fill","accent","map","run","i","x","y","undefined","fontWeight","font","weight","children","text"],"sources":["../../../../src/lib/renderers/shared/run-spans.tsx"],"sourcesContent":["import type { TextRun } from '../../layouts/graph/graph-layout-result.ts';\nimport { runFill } from './text-runs.ts';\n\nexport function RunSpans({\n runs,\n fill,\n accent,\n}: {\n runs: TextRun[];\n /** Set it to give each line its own fill and weight. */\n fill?: string;\n accent?: string;\n}) {\n return runs.map((run, i) => (\n <tspan\n key={i}\n x={run.x}\n y={run.y}\n {...(fill === undefined\n ? {}\n : {\n fill: runFill(run, fill, accent ?? fill),\n fontWeight: run.font.weight,\n })}\n >\n {run.text}\n </tspan>\n ));\n}\n"],"mappings":"AACA,SAASA,OAAO,QAAQ,gBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEzC,OAAO,SAASC,QAAQA,CAAC;EACvBC,IAAI;EACJC,IAAI;EACJC;AAMF,CAAC,EAAE;EACD,OAAOF,IAAI,CAACG,GAAG,CAAC,CAACC,GAAG,EAAEC,CAAC,kBACrBP,IAAA;IAEEQ,CAAC,EAAEF,GAAG,CAACE,CAAE;IACTC,CAAC,EAAEH,GAAG,CAACG,CAAE;IAAA,IACJN,IAAI,KAAKO,SAAS,GACnB,CAAC,CAAC,GACF;MACEP,IAAI,EAAEL,OAAO,CAACQ,GAAG,EAAEH,IAAI,EAAEC,MAAM,IAAID,IAAI,CAAC;MACxCQ,UAAU,EAAEL,GAAG,CAACM,IAAI,CAACC;IACvB,CAAC;IAAAC,QAAA,EAEJR,GAAG,CAACS;EAAI,GAVJR,CAWA,CACR,CAAC;AACJ","ignoreList":[]}