@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,10 +1,4 @@
1
1
  import type { NodeLayout, TextRun } from '../../layouts/graph/graph-layout-result.ts';
2
- /**
3
- * The distance from the previous run's baseline, which an SVG tspan carries as
4
- * `dy`. Rounded so that a float error in the subtraction does not leak into
5
- * the markup.
6
- */
7
- export declare function baselineStep(runs: TextRun[], index: number): number;
8
2
  export declare function runFill(run: TextRun, fill: string, themeAccent: string): string;
9
3
  /**
10
4
  * A node's runs in the order the layout writes them: title lines, then
@@ -1 +1 @@
1
- {"version":3,"file":"text-runs.d.ts","sourceRoot":"","sources":["../../../../src/lib/renderers/shared/text-runs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,OAAO,EACR,MAAM,4CAA4C,CAAC;AAGpD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAKnE;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,UAItE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,UAAU;;;;;;;EAYhE"}
1
+ {"version":3,"file":"text-runs.d.ts","sourceRoot":"","sources":["../../../../src/lib/renderers/shared/text-runs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,OAAO,EACR,MAAM,4CAA4C,CAAC;AAGpD,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,UAItE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,UAAU;;;;;;;EAYhE"}
@@ -1,16 +1,4 @@
1
1
  import { DIAGRAM_DIM } from "../../react/chrome/index.js";
2
-
3
- /**
4
- * The distance from the previous run's baseline, which an SVG tspan carries as
5
- * `dy`. Rounded so that a float error in the subtraction does not leak into
6
- * the markup.
7
- */
8
- export function baselineStep(runs, index) {
9
- const run = runs[index];
10
- const previous = runs[index - 1];
11
- if (!run || !previous) return 0;
12
- return Number((run.y - previous.y).toFixed(6));
13
- }
14
2
  export function runFill(run, fill, themeAccent) {
15
3
  if (run.color === 'accent') return themeAccent;
16
4
  if (run.color === 'dim') return DIAGRAM_DIM;
@@ -1 +1 @@
1
- {"version":3,"file":"text-runs.js","names":["DIAGRAM_DIM","baselineStep","runs","index","run","previous","Number","y","toFixed","runFill","fill","themeAccent","color","nodeTextParts","node","text","bullets","descriptionCount","description","flat","length","itemStart","descriptionStart","title","slice","items","flatMap","bullet","i"],"sources":["../../../../src/lib/renderers/shared/text-runs.ts"],"sourcesContent":["import type {\n NodeLayout,\n TextRun,\n} from '../../layouts/graph/graph-layout-result.ts';\nimport { DIAGRAM_DIM } from '../../react/chrome/index.ts';\n\n/**\n * The distance from the previous run's baseline, which an SVG tspan carries as\n * `dy`. Rounded so that a float error in the subtraction does not leak into\n * the markup.\n */\nexport function baselineStep(runs: TextRun[], index: number): number {\n const run = runs[index];\n const previous = runs[index - 1];\n if (!run || !previous) return 0;\n return Number((run.y - previous.y).toFixed(6));\n}\n\nexport function runFill(run: TextRun, fill: string, themeAccent: string) {\n if (run.color === 'accent') return themeAccent;\n if (run.color === 'dim') return DIAGRAM_DIM;\n return fill;\n}\n\n/**\n * A node's runs in the order the layout writes them: title lines, then\n * description lines, then one run per bulleted item.\n */\nexport function nodeTextParts({ node, text, bullets }: NodeLayout) {\n const descriptionCount = [node.description ?? []].flat().length;\n const itemStart = text.length - bullets.length;\n const descriptionStart = itemStart - descriptionCount;\n return {\n title: text.slice(0, descriptionStart),\n description: text.slice(descriptionStart, itemStart),\n items: bullets.flatMap((bullet, i) => {\n const run = text[itemStart + i];\n return run ? [{ run, bullet }] : [];\n }),\n };\n}\n"],"mappings":"AAIA,SAASA,WAAW,QAAQ,6BAA6B;;AAEzD;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,YAAYA,CAACC,IAAe,EAAEC,KAAa,EAAU;EACnE,MAAMC,GAAG,GAAGF,IAAI,CAACC,KAAK,CAAC;EACvB,MAAME,QAAQ,GAAGH,IAAI,CAACC,KAAK,GAAG,CAAC,CAAC;EAChC,IAAI,CAACC,GAAG,IAAI,CAACC,QAAQ,EAAE,OAAO,CAAC;EAC/B,OAAOC,MAAM,CAAC,CAACF,GAAG,CAACG,CAAC,GAAGF,QAAQ,CAACE,CAAC,EAAEC,OAAO,CAAC,CAAC,CAAC,CAAC;AAChD;AAEA,OAAO,SAASC,OAAOA,CAACL,GAAY,EAAEM,IAAY,EAAEC,WAAmB,EAAE;EACvE,IAAIP,GAAG,CAACQ,KAAK,KAAK,QAAQ,EAAE,OAAOD,WAAW;EAC9C,IAAIP,GAAG,CAACQ,KAAK,KAAK,KAAK,EAAE,OAAOZ,WAAW;EAC3C,OAAOU,IAAI;AACb;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASG,aAAaA,CAAC;EAAEC,IAAI;EAAEC,IAAI;EAAEC;AAAoB,CAAC,EAAE;EACjE,MAAMC,gBAAgB,GAAG,CAACH,IAAI,CAACI,WAAW,IAAI,EAAE,CAAC,CAACC,IAAI,CAAC,CAAC,CAACC,MAAM;EAC/D,MAAMC,SAAS,GAAGN,IAAI,CAACK,MAAM,GAAGJ,OAAO,CAACI,MAAM;EAC9C,MAAME,gBAAgB,GAAGD,SAAS,GAAGJ,gBAAgB;EACrD,OAAO;IACLM,KAAK,EAAER,IAAI,CAACS,KAAK,CAAC,CAAC,EAAEF,gBAAgB,CAAC;IACtCJ,WAAW,EAAEH,IAAI,CAACS,KAAK,CAACF,gBAAgB,EAAED,SAAS,CAAC;IACpDI,KAAK,EAAET,OAAO,CAACU,OAAO,CAAC,CAACC,MAAM,EAAEC,CAAC,KAAK;MACpC,MAAMxB,GAAG,GAAGW,IAAI,CAACM,SAAS,GAAGO,CAAC,CAAC;MAC/B,OAAOxB,GAAG,GAAG,CAAC;QAAEA,GAAG;QAAEuB;MAAO,CAAC,CAAC,GAAG,EAAE;IACrC,CAAC;EACH,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"text-runs.js","names":["DIAGRAM_DIM","runFill","run","fill","themeAccent","color","nodeTextParts","node","text","bullets","descriptionCount","description","flat","length","itemStart","descriptionStart","title","slice","items","flatMap","bullet","i"],"sources":["../../../../src/lib/renderers/shared/text-runs.ts"],"sourcesContent":["import type {\n NodeLayout,\n TextRun,\n} from '../../layouts/graph/graph-layout-result.ts';\nimport { DIAGRAM_DIM } from '../../react/chrome/index.ts';\n\nexport function runFill(run: TextRun, fill: string, themeAccent: string) {\n if (run.color === 'accent') return themeAccent;\n if (run.color === 'dim') return DIAGRAM_DIM;\n return fill;\n}\n\n/**\n * A node's runs in the order the layout writes them: title lines, then\n * description lines, then one run per bulleted item.\n */\nexport function nodeTextParts({ node, text, bullets }: NodeLayout) {\n const descriptionCount = [node.description ?? []].flat().length;\n const itemStart = text.length - bullets.length;\n const descriptionStart = itemStart - descriptionCount;\n return {\n title: text.slice(0, descriptionStart),\n description: text.slice(descriptionStart, itemStart),\n items: bullets.flatMap((bullet, i) => {\n const run = text[itemStart + i];\n return run ? [{ run, bullet }] : [];\n }),\n };\n}\n"],"mappings":"AAIA,SAASA,WAAW,QAAQ,6BAA6B;AAEzD,OAAO,SAASC,OAAOA,CAACC,GAAY,EAAEC,IAAY,EAAEC,WAAmB,EAAE;EACvE,IAAIF,GAAG,CAACG,KAAK,KAAK,QAAQ,EAAE,OAAOD,WAAW;EAC9C,IAAIF,GAAG,CAACG,KAAK,KAAK,KAAK,EAAE,OAAOL,WAAW;EAC3C,OAAOG,IAAI;AACb;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASG,aAAaA,CAAC;EAAEC,IAAI;EAAEC,IAAI;EAAEC;AAAoB,CAAC,EAAE;EACjE,MAAMC,gBAAgB,GAAG,CAACH,IAAI,CAACI,WAAW,IAAI,EAAE,CAAC,CAACC,IAAI,CAAC,CAAC,CAACC,MAAM;EAC/D,MAAMC,SAAS,GAAGN,IAAI,CAACK,MAAM,GAAGJ,OAAO,CAACI,MAAM;EAC9C,MAAME,gBAAgB,GAAGD,SAAS,GAAGJ,gBAAgB;EACrD,OAAO;IACLM,KAAK,EAAER,IAAI,CAACS,KAAK,CAAC,CAAC,EAAEF,gBAAgB,CAAC;IACtCJ,WAAW,EAAEH,IAAI,CAACS,KAAK,CAACF,gBAAgB,EAAED,SAAS,CAAC;IACpDI,KAAK,EAAET,OAAO,CAACU,OAAO,CAAC,CAACC,MAAM,EAAEC,CAAC,KAAK;MACpC,MAAMnB,GAAG,GAAGM,IAAI,CAACM,SAAS,GAAGO,CAAC,CAAC;MAC/B,OAAOnB,GAAG,GAAG,CAAC;QAAEA,GAAG;QAAEkB;MAAO,CAAC,CAAC,GAAG,EAAE;IACrC,CAAC;EACH,CAAC;AACH","ignoreList":[]}
@@ -1,10 +1,8 @@
1
- import type { DiagramGraphLayout } from '../../model/diagram-ir.ts';
2
1
  import type { DiagramProps } from '../../react/diagram-types.ts';
3
2
  import type { DiagramEffects } from '../types.ts';
4
3
  export type SvgGraphDiagramProps = DiagramProps & {
5
- graph?: DiagramGraphLayout;
6
4
  /** Moving signals over the graph edges, rendered with WebGPU. */
7
5
  effects?: DiagramEffects;
8
6
  };
9
- export declare function SvgGraphDiagram({ title, children, graph, viewport, paper, effects, ...chrome }: SvgGraphDiagramProps): import("react").JSX.Element;
7
+ export declare function SvgGraphDiagram({ title, children, viewport, paper, effects, ...chrome }: SvgGraphDiagramProps): import("react").JSX.Element;
10
8
  //# sourceMappingURL=graph-svg.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"graph-svg.d.ts","sourceRoot":"","sources":["../../../../src/lib/renderers/svg/graph-svg.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAMpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AA8BjE,OAAO,KAAK,EAAE,cAAc,EAAsB,MAAM,aAAa,CAAC;AAyKtE,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG;IAChD,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,iEAAiE;IACjE,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,KAAK,EACL,OAAO,EACP,GAAG,MAAM,EACV,EAAE,oBAAoB,+BAmBtB"}
1
+ {"version":3,"file":"graph-svg.d.ts","sourceRoot":"","sources":["../../../../src/lib/renderers/svg/graph-svg.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AA8BjE,OAAO,KAAK,EAAE,cAAc,EAAsB,MAAM,aAAa,CAAC;AAgKtE,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG;IAChD,iEAAiE;IACjE,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,OAAO,EACP,GAAG,MAAM,EACV,EAAE,oBAAoB,+BAmBtB"}
@@ -1,13 +1,13 @@
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 { 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, textureFill } from "../shared/graph-parts.js";
9
9
  import { rejectNodeContent } from "../shared/node-content.js";
10
- import { ANNOTATION_REVEAL_START, AnnotationText, NodeCaption, NodePorts, NodeStackFrames, SpecialNode, isSpecialNode, splitNotes } from "../shared/node-parts.js";
10
+ import { NOTE_REVEAL_START, NodeCaption, NodePorts, NodeStackFrames, NoteText, SpecialNode, isSpecialNode, splitNotes } from "../shared/node-parts.js";
11
11
  import { DiagramPaperRect } from "../shared/paper.js";
12
12
  import { RunSpans } from "../shared/run-spans.js";
13
13
  import { nodeTextParts } from "../shared/text-runs.js";
@@ -261,7 +261,7 @@ function NodeRect(t0) {
261
261
  return t17;
262
262
  }
263
263
  function NodeBody(t0) {
264
- const $ = _c(24);
264
+ const $ = _c(22);
265
265
  const {
266
266
  layout,
267
267
  fill,
@@ -275,7 +275,7 @@ function NodeBody(t0) {
275
275
  let t2;
276
276
  let t3;
277
277
  let t4;
278
- if ($[0] !== accent || $[1] !== fill || $[2] !== icon || $[3] !== layout || $[4] !== node.bodyFontSize || $[5] !== node.bodyLineGap || $[6] !== node.icon || $[7] !== node.id || $[8] !== node.textColor) {
278
+ if ($[0] !== accent || $[1] !== fill || $[2] !== icon || $[3] !== layout || $[4] !== node.icon || $[5] !== node.id || $[6] !== node.textColor) {
279
279
  const {
280
280
  title,
281
281
  description,
@@ -283,7 +283,7 @@ function NodeBody(t0) {
283
283
  } = nodeTextParts(layout);
284
284
  const [firstTitle] = title;
285
285
  const [firstDescription] = description;
286
- if ($[13] !== accent || $[14] !== fill || $[15] !== icon || $[16] !== node.icon || $[17] !== node.textColor) {
286
+ if ($[11] !== accent || $[12] !== fill || $[13] !== icon || $[14] !== node.icon || $[15] !== node.textColor) {
287
287
  t1 = node.icon && icon && /*#__PURE__*/_jsx(DiagramNodeIcon, {
288
288
  icon: node.icon,
289
289
  x: icon.x,
@@ -291,14 +291,14 @@ function NodeBody(t0) {
291
291
  size: icon.size,
292
292
  color: node.textColor === "accent" ? accent : fill
293
293
  });
294
- $[13] = accent;
295
- $[14] = fill;
296
- $[15] = icon;
297
- $[16] = node.icon;
298
- $[17] = node.textColor;
299
- $[18] = t1;
294
+ $[11] = accent;
295
+ $[12] = fill;
296
+ $[13] = icon;
297
+ $[14] = node.icon;
298
+ $[15] = node.textColor;
299
+ $[16] = t1;
300
300
  } else {
301
- t1 = $[18];
301
+ t1 = $[16];
302
302
  }
303
303
  t2 = firstTitle && /*#__PURE__*/_jsx("text", {
304
304
  x: firstTitle.x,
@@ -308,7 +308,6 @@ function NodeBody(t0) {
308
308
  fontSize: firstTitle.font.size,
309
309
  fontWeight: firstTitle.font.weight,
310
310
  fill: fill,
311
- letterSpacing: firstTitle.font.face === "mono" ? 0.6 : undefined,
312
311
  children: /*#__PURE__*/_jsx(RunSpans, {
313
312
  runs: title,
314
313
  fill: fill,
@@ -317,8 +316,6 @@ function NodeBody(t0) {
317
316
  });
318
317
  t3 = firstDescription && /*#__PURE__*/_jsx("text", {
319
318
  "data-diagram-node-description": node.id,
320
- "data-diagram-node-body-font-size": node.bodyFontSize,
321
- "data-diagram-node-body-line-gap": node.bodyLineGap,
322
319
  x: firstDescription.x,
323
320
  y: firstDescription.y,
324
321
  textAnchor: "start",
@@ -338,17 +335,14 @@ function NodeBody(t0) {
338
335
  } = t5;
339
336
  return /*#__PURE__*/_jsxs("g", {
340
337
  "data-diagram-node-item": `${node.id}:${i}`,
341
- "data-diagram-node-body-font-size": node.bodyFontSize,
342
- "data-diagram-node-body-line-gap": node.bodyLineGap,
343
- transform: `translate(0 ${run.y})`,
344
338
  children: [/*#__PURE__*/_jsx("circle", {
345
339
  cx: bullet.x,
346
- cy: bullet.y - run.y,
340
+ cy: bullet.y,
347
341
  r: 2.2,
348
342
  fill: fill
349
343
  }), /*#__PURE__*/_jsx("text", {
350
344
  x: run.x,
351
- y: 0,
345
+ y: run.y,
352
346
  textAnchor: "start",
353
347
  fontFamily: FONT_FAMILY[run.font.face],
354
348
  fontSize: run.font.size,
@@ -363,42 +357,39 @@ function NodeBody(t0) {
363
357
  $[1] = fill;
364
358
  $[2] = icon;
365
359
  $[3] = layout;
366
- $[4] = node.bodyFontSize;
367
- $[5] = node.bodyLineGap;
368
- $[6] = node.icon;
369
- $[7] = node.id;
370
- $[8] = node.textColor;
371
- $[9] = t1;
372
- $[10] = t2;
373
- $[11] = t3;
374
- $[12] = t4;
360
+ $[4] = node.icon;
361
+ $[5] = node.id;
362
+ $[6] = node.textColor;
363
+ $[7] = t1;
364
+ $[8] = t2;
365
+ $[9] = t3;
366
+ $[10] = t4;
375
367
  } else {
376
- t1 = $[9];
377
- t2 = $[10];
378
- t3 = $[11];
379
- t4 = $[12];
368
+ t1 = $[7];
369
+ t2 = $[8];
370
+ t3 = $[9];
371
+ t4 = $[10];
380
372
  }
381
373
  let t5;
382
- if ($[19] !== t1 || $[20] !== t2 || $[21] !== t3 || $[22] !== t4) {
374
+ if ($[17] !== t1 || $[18] !== t2 || $[19] !== t3 || $[20] !== t4) {
383
375
  t5 = /*#__PURE__*/_jsxs(_Fragment, {
384
376
  children: [t1, t2, t3, t4]
385
377
  });
386
- $[19] = t1;
387
- $[20] = t2;
388
- $[21] = t3;
389
- $[22] = t4;
390
- $[23] = t5;
378
+ $[17] = t1;
379
+ $[18] = t2;
380
+ $[19] = t3;
381
+ $[20] = t4;
382
+ $[21] = t5;
391
383
  } else {
392
- t5 = $[23];
384
+ t5 = $[21];
393
385
  }
394
386
  return t5;
395
387
  }
396
388
  export function SvgGraphDiagram(t0) {
397
- const $ = _c(24);
389
+ const $ = _c(22);
398
390
  let children;
399
391
  let chrome;
400
392
  let effects;
401
- let graph;
402
393
  let paper;
403
394
  let title;
404
395
  let viewport;
@@ -406,7 +397,6 @@ export function SvgGraphDiagram(t0) {
406
397
  ({
407
398
  title,
408
399
  children,
409
- graph,
410
400
  viewport,
411
401
  paper,
412
402
  effects,
@@ -416,41 +406,38 @@ export function SvgGraphDiagram(t0) {
416
406
  $[1] = children;
417
407
  $[2] = chrome;
418
408
  $[3] = effects;
419
- $[4] = graph;
420
- $[5] = paper;
421
- $[6] = title;
422
- $[7] = viewport;
409
+ $[4] = paper;
410
+ $[5] = title;
411
+ $[6] = viewport;
423
412
  } else {
424
413
  children = $[1];
425
414
  chrome = $[2];
426
415
  effects = $[3];
427
- graph = $[4];
428
- paper = $[5];
429
- title = $[6];
430
- viewport = $[7];
416
+ paper = $[4];
417
+ title = $[5];
418
+ viewport = $[6];
431
419
  }
432
420
  let ir;
433
- if ($[8] !== children || $[9] !== graph) {
434
- ir = compileGraph(children, graph);
421
+ if ($[7] !== children) {
422
+ ir = compileGraph(children);
435
423
  rejectNodeContent(ir, "SvgGraphDiagram");
436
- $[8] = children;
437
- $[9] = graph;
438
- $[10] = ir;
424
+ $[7] = children;
425
+ $[8] = ir;
439
426
  } else {
440
- ir = $[10];
427
+ ir = $[8];
441
428
  }
442
429
  let t1;
443
- if ($[11] !== title) {
430
+ if ($[9] !== title) {
444
431
  t1 = [title].flat();
445
- $[11] = title;
446
- $[12] = t1;
432
+ $[9] = title;
433
+ $[10] = t1;
447
434
  } else {
448
- t1 = $[12];
435
+ t1 = $[10];
449
436
  }
450
437
  const lines = t1;
451
438
  const t2 = viewport?.fit;
452
439
  let t3;
453
- if ($[13] !== effects || $[14] !== ir || $[15] !== lines || $[16] !== paper || $[17] !== viewport) {
440
+ if ($[11] !== effects || $[12] !== ir || $[13] !== lines || $[14] !== paper || $[15] !== viewport) {
454
441
  t3 = (progress, mode) => /*#__PURE__*/_jsx(GraphSVG, {
455
442
  ir: ir,
456
443
  title: lines,
@@ -460,30 +447,30 @@ export function SvgGraphDiagram(t0) {
460
447
  effects: effects,
461
448
  mode: mode
462
449
  });
463
- $[13] = effects;
464
- $[14] = ir;
465
- $[15] = lines;
466
- $[16] = paper;
467
- $[17] = viewport;
468
- $[18] = t3;
450
+ $[11] = effects;
451
+ $[12] = ir;
452
+ $[13] = lines;
453
+ $[14] = paper;
454
+ $[15] = viewport;
455
+ $[16] = t3;
469
456
  } else {
470
- t3 = $[18];
457
+ t3 = $[16];
471
458
  }
472
459
  let t4;
473
- if ($[19] !== chrome || $[20] !== lines || $[21] !== t2 || $[22] !== t3) {
460
+ if ($[17] !== chrome || $[18] !== lines || $[19] !== t2 || $[20] !== t3) {
474
461
  t4 = /*#__PURE__*/_jsx(DiagramFrame, {
475
462
  title: lines,
476
463
  fit: t2,
477
464
  ...chrome,
478
465
  children: t3
479
466
  });
480
- $[19] = chrome;
481
- $[20] = lines;
482
- $[21] = t2;
483
- $[22] = t3;
484
- $[23] = t4;
467
+ $[17] = chrome;
468
+ $[18] = lines;
469
+ $[19] = t2;
470
+ $[20] = t3;
471
+ $[21] = t4;
485
472
  } else {
486
- t4 = $[23];
473
+ t4 = $[21];
487
474
  }
488
475
  return t4;
489
476
  }
@@ -503,7 +490,7 @@ function GraphSVG(t0) {
503
490
  } = useDiagramTheme();
504
491
  let t1;
505
492
  if ($[0] !== effects || $[1] !== ir || $[2] !== mode || $[3] !== paper || $[4] !== progress || $[5] !== stylePreset || $[6] !== title || $[7] !== viewport) {
506
- const layout = legacyGraphLayout(ir);
493
+ const layout = layoutGraph(ir);
507
494
  const {
508
495
  viewBox
509
496
  } = layout;
@@ -655,12 +642,11 @@ function GraphSVG(t0) {
655
642
  progress: progress,
656
643
  mode: mode,
657
644
  playhead: typeof effects === "object" ? effects.flow : undefined
658
- }), indexedEdges.map(t9), notes.map(note => /*#__PURE__*/_jsx(AnnotationText, {
645
+ }), indexedEdges.map(t9), notes.map(note => /*#__PURE__*/_jsx(NoteText, {
659
646
  note: note,
660
- annotations: ir.annotations,
661
647
  leaders: layout.leaders,
662
648
  progress: progress,
663
- start: ANNOTATION_REVEAL_START,
649
+ start: NOTE_REVEAL_START,
664
650
  end: 1
665
651
  }, note.node.id))]
666
652
  });
@@ -1 +1 @@
1
- {"version":3,"file":"graph-svg.js","names":["motion","useTransform","compileGraph","legacyGraphLayout","FONT_FAMILY","TEXT_SHAPING","DiagramFrame","useDiagramTheme","DiagramDefs","DiagramNodeIcon","EdgeOverlay","EdgeStroke","GroupRect","buildSegments","nodeFrameFill","nodeFrameStroke","nodeFrameStrokeWidth","nodeTextFill","nodeTexture","textureFill","rejectNodeContent","ANNOTATION_REVEAL_START","AnnotationText","NodeCaption","NodePorts","NodeStackFrames","SpecialNode","isSpecialNode","splitNotes","DiagramPaperRect","RunSpans","nodeTextParts","GraphFlowEffects","svgViewportProps","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","NodeRect","t0","$","_c","layout","progress","start","end","accent","themeAccent","ids","t1","t2","t3","Symbol","for","clamp","opacity","t4","t5","t6","translateY","node","box","radius","frame","t7","strokeWidth","t8","stroke","t9","boxFill","t10","texture","texturePattern","t11","fill","hidden","t12","y","t13","id","tone","children","x","width","w","height","h","pointerEvents","t14","NodeBody","t15","t16","t17","g","style","icon","bodyFontSize","bodyLineGap","textColor","title","description","items","firstTitle","firstDescription","size","color","textAnchor","anchor","fontFamily","font","face","fontSize","fontWeight","weight","letterSpacing","undefined","length","map","i","run","bullet","transform","cx","cy","r","text","SvgGraphDiagram","chrome","effects","graph","paper","viewport","ir","flat","lines","fit","mode","GraphSVG","stylePreset","viewBox","segments","nodes","edges","seg","kind","index","segment","find","candidate","Error","groupsSeg","indexedEdges","edgeLayout","index_0","layer","edge","filter","_temp","graphNodes","notes","viewportProps","join","d","d_0","index_1","segment_0","d_1","edge_0","index_2","segment_1","edgeLayout_0","preserveAspectRatio","role","groups","groupLayout","group","_temp2","nodeLayout","segNode","_temp3","playhead","flow","note","annotations","leaders","layer_0","Boolean"],"sources":["../../../../src/lib/renderers/svg/graph-svg.tsx"],"sourcesContent":["import { type MotionValue, motion, useTransform } from 'motion/react';\n\nimport { compileGraph } from '../../compiler/diagram-compile.ts';\nimport type { NodeLayout } from '../../layouts/graph/graph-layout-result.ts';\nimport { legacyGraphLayout } from '../../layouts/graph/legacy-graph-layout.ts';\nimport { FONT_FAMILY, TEXT_SHAPING } from '../../layouts/text/font.ts';\nimport type { DiagramGraphLayout } from '../../model/diagram-ir.ts';\nimport {\n DiagramFrame,\n type DiagramMode,\n useDiagramTheme,\n} from '../../react/chrome/index.ts';\nimport type { DiagramProps } from '../../react/diagram-types.ts';\nimport { DiagramDefs } from '../shared/defs.tsx';\nimport {\n DiagramNodeIcon,\n EdgeOverlay,\n EdgeStroke,\n GroupRect,\n type SegmentKind,\n buildSegments,\n nodeFrameFill,\n nodeFrameStroke,\n nodeFrameStrokeWidth,\n nodeTextFill,\n nodeTexture,\n textureFill,\n} from '../shared/graph-parts.tsx';\nimport { rejectNodeContent } from '../shared/node-content.ts';\nimport {\n ANNOTATION_REVEAL_START,\n AnnotationText,\n NodeCaption,\n NodePorts,\n NodeStackFrames,\n SpecialNode,\n isSpecialNode,\n splitNotes,\n} from '../shared/node-parts.tsx';\nimport { DiagramPaperRect } from '../shared/paper.tsx';\nimport { RunSpans } from '../shared/run-spans.tsx';\nimport { nodeTextParts } from '../shared/text-runs.ts';\nimport type { DiagramEffects, GraphRendererProps } from '../types.ts';\nimport { GraphFlowEffects } from '../webgpu/graph-flow-effects.tsx';\nimport { svgViewportProps } from './viewport.ts';\n\nfunction NodeRect({\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 } = layout;\n const frame = node.frame ?? 'solid';\n const strokeWidth = nodeFrameStrokeWidth(node);\n const stroke = nodeFrameStroke(node, frame, themeAccent);\n const boxFill = nodeFrameFill(node, frame);\n const texture = nodeTexture(node, frame);\n const texturePattern = textureFill(texture, ids);\n const fill = nodeTextFill(node, frame, themeAccent);\n if (node.hidden) return null;\n if (isSpecialNode(node)) {\n return (\n <SpecialNode\n layout={layout}\n progress={progress}\n start={start}\n end={end}\n />\n );\n }\n return (\n <motion.g style={{ opacity, y: translateY }}>\n {frame !== 'none' && (\n <>\n <NodeStackFrames\n layout={layout}\n fill={boxFill}\n stroke={stroke}\n strokeWidth={strokeWidth}\n />\n <rect\n data-diagram-node={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={boxFill}\n stroke={stroke}\n strokeWidth={strokeWidth}\n />\n {texturePattern && (\n <rect\n data-diagram-node-texture={`${node.id}:${texture}`}\n x={box.x}\n y={box.y}\n width={box.w}\n height={box.h}\n rx={radius}\n fill={texturePattern}\n pointerEvents=\"none\"\n />\n )}\n </>\n )}\n <NodeBody layout={layout} fill={fill} accent={themeAccent} />\n <NodePorts layout={layout} />\n <NodeCaption layout={layout} />\n </motion.g>\n );\n}\n\nfunction NodeBody({\n layout,\n fill,\n accent,\n}: {\n layout: NodeLayout;\n fill: string;\n accent: string;\n}) {\n const { node, icon } = layout;\n const { title, description, items } = nodeTextParts(layout);\n const [firstTitle] = title;\n const [firstDescription] = description;\n\n return (\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={node.textColor === 'accent' ? accent : fill}\n />\n )}\n {firstTitle && (\n <text\n x={firstTitle.x}\n y={firstTitle.y}\n textAnchor={firstTitle.anchor}\n fontFamily={FONT_FAMILY[firstTitle.font.face]}\n fontSize={firstTitle.font.size}\n fontWeight={firstTitle.font.weight}\n fill={fill}\n letterSpacing={firstTitle.font.face === 'mono' ? 0.6 : undefined}\n >\n <RunSpans runs={title} fill={fill} accent={accent} />\n </text>\n )}\n {firstDescription && (\n <text\n data-diagram-node-description={node.id}\n data-diagram-node-body-font-size={node.bodyFontSize}\n data-diagram-node-body-line-gap={node.bodyLineGap}\n x={firstDescription.x}\n y={firstDescription.y}\n textAnchor=\"start\"\n fontFamily={FONT_FAMILY[firstDescription.font.face]}\n fontSize={firstDescription.font.size}\n fontWeight={firstDescription.font.weight}\n fill={fill}\n >\n <RunSpans runs={description} />\n </text>\n )}\n {items.length > 0 && (\n <g>\n {items.map(({ run, bullet }, i) => (\n <g\n key={i}\n data-diagram-node-item={`${node.id}:${i}`}\n data-diagram-node-body-font-size={node.bodyFontSize}\n data-diagram-node-body-line-gap={node.bodyLineGap}\n transform={`translate(0 ${run.y})`}\n >\n <circle cx={bullet.x} cy={bullet.y - run.y} r={2.2} fill={fill} />\n <text\n x={run.x}\n y={0}\n textAnchor=\"start\"\n fontFamily={FONT_FAMILY[run.font.face]}\n fontSize={run.font.size}\n fontWeight={run.font.weight}\n fill={fill}\n >\n {run.text}\n </text>\n </g>\n ))}\n </g>\n )}\n </>\n );\n}\n\nexport type SvgGraphDiagramProps = DiagramProps & {\n graph?: DiagramGraphLayout;\n /** Moving signals over the graph edges, rendered with WebGPU. */\n effects?: DiagramEffects;\n};\n\nexport function SvgGraphDiagram({\n title,\n children,\n graph,\n viewport,\n paper,\n effects,\n ...chrome\n}: SvgGraphDiagramProps) {\n const ir = compileGraph(children, graph);\n rejectNodeContent(ir, 'SvgGraphDiagram');\n const lines = [title].flat();\n return (\n <DiagramFrame title={lines} fit={viewport?.fit} {...chrome}>\n {(progress, mode) => (\n <GraphSVG\n ir={ir}\n title={lines}\n progress={progress}\n viewport={viewport}\n paper={paper}\n effects={effects}\n mode={mode}\n />\n )}\n </DiagramFrame>\n );\n}\n\nfunction GraphSVG({\n ir,\n title,\n progress,\n viewport,\n paper,\n effects,\n mode,\n}: GraphRendererProps & {\n effects?: DiagramEffects | undefined;\n mode: DiagramMode;\n}) {\n const { stylePreset } = useDiagramTheme();\n const layout = legacyGraphLayout(ir);\n const { viewBox } = layout;\n const segments = buildSegments(ir.nodes.length, ir.edges.length);\n const seg = (kind: SegmentKind, index = 0) => {\n const segment = segments.find(\n (candidate) => candidate.kind === kind && candidate.index === index,\n );\n if (!segment) throw new Error(`segment ${kind}[${index}] missing`);\n return segment;\n };\n\n const groupsSeg = seg('groups');\n const indexedEdges = layout.edges\n .map((edgeLayout, index) => ({\n ...edgeLayout,\n index,\n segment: seg('edge', index),\n layer: edgeLayout.edge.layer ?? 'foreground',\n }))\n .filter(({ d }) => Boolean(d));\n const { graphNodes, notes } = splitNotes(layout.nodes);\n const viewportProps = svgViewportProps(viewBox, viewport);\n\n return (\n <svg\n data-diagram-style-preset={stylePreset}\n {...viewportProps}\n style={{ ...viewportProps.style, ...TEXT_SHAPING }}\n viewBox={`${viewBox.x} ${viewBox.y} ${viewBox.w} ${viewBox.h}`}\n preserveAspectRatio=\"xMidYMid meet\"\n role=\"img\"\n aria-label={title.join(' ')}\n >\n <title>{title.join(' ')}</title>\n <DiagramDefs />\n <DiagramPaperRect\n kind=\"graph\"\n paper={paper}\n x={viewBox.x}\n y={viewBox.y}\n width={viewBox.w}\n height={viewBox.h}\n />\n\n {layout.groups.map((groupLayout) => (\n <GroupRect\n key={`group-${groupLayout.group.id}`}\n layout={groupLayout}\n progress={progress}\n start={groupsSeg.start}\n end={groupsSeg.end}\n />\n ))}\n\n {indexedEdges\n .filter(({ layer }) => layer === 'background')\n .map(({ d, edge, index, segment }) => (\n <EdgeStroke\n key={`edge-background-${index}`}\n d={d}\n edge={edge}\n progress={progress}\n start={segment.start}\n end={segment.end}\n />\n ))}\n\n {graphNodes.map((nodeLayout, i) => {\n const segNode = seg('node', i);\n return (\n <NodeRect\n key={`node-${nodeLayout.node.id}`}\n layout={nodeLayout}\n progress={progress}\n start={segNode.start}\n end={segNode.end}\n />\n );\n })}\n\n {indexedEdges\n .filter(({ layer }) => layer === 'foreground')\n .map(({ d, edge, index, segment }) => (\n <EdgeStroke\n key={`edge-foreground-${index}`}\n d={d}\n edge={edge}\n progress={progress}\n start={segment.start}\n end={segment.end}\n />\n ))}\n\n {effects && (\n <GraphFlowEffects\n edges={indexedEdges}\n viewBox={viewBox}\n progress={progress}\n mode={mode}\n playhead={typeof effects === 'object' ? effects.flow : undefined}\n />\n )}\n\n {indexedEdges.map((edgeLayout) => (\n <EdgeOverlay\n key={`edge-overlay-${edgeLayout.index}`}\n layout={edgeLayout}\n progress={progress}\n start={edgeLayout.segment.start}\n end={edgeLayout.segment.end}\n />\n ))}\n\n {notes.map((note) => (\n <AnnotationText\n key={note.node.id}\n note={note}\n annotations={ir.annotations}\n leaders={layout.leaders}\n progress={progress}\n start={ANNOTATION_REVEAL_START}\n end={1}\n />\n ))}\n </svg>\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"graph-svg.js","names":["motion","useTransform","compileGraph","layoutGraph","FONT_FAMILY","TEXT_SHAPING","DiagramFrame","useDiagramTheme","DiagramDefs","DiagramNodeIcon","EdgeOverlay","EdgeStroke","GroupRect","buildSegments","nodeFrameFill","nodeFrameStroke","nodeFrameStrokeWidth","nodeTextFill","nodeTexture","textureFill","rejectNodeContent","NOTE_REVEAL_START","NodeCaption","NodePorts","NodeStackFrames","NoteText","SpecialNode","isSpecialNode","splitNotes","DiagramPaperRect","RunSpans","nodeTextParts","GraphFlowEffects","svgViewportProps","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","NodeRect","t0","$","_c","layout","progress","start","end","accent","themeAccent","ids","t1","t2","t3","Symbol","for","clamp","opacity","t4","t5","t6","translateY","node","box","radius","frame","t7","strokeWidth","t8","stroke","t9","boxFill","t10","texture","texturePattern","t11","fill","hidden","t12","y","t13","id","tone","children","x","width","w","height","h","pointerEvents","t14","NodeBody","t15","t16","t17","g","style","icon","textColor","title","description","items","firstTitle","firstDescription","size","color","textAnchor","anchor","fontFamily","font","face","fontSize","fontWeight","weight","length","map","i","run","bullet","cx","cy","r","text","SvgGraphDiagram","chrome","effects","paper","viewport","ir","flat","lines","fit","mode","GraphSVG","stylePreset","viewBox","segments","nodes","edges","seg","kind","index","undefined","segment","find","candidate","Error","groupsSeg","indexedEdges","edgeLayout","index_0","layer","edge","filter","_temp","graphNodes","notes","viewportProps","join","d","d_0","index_1","segment_0","d_1","edge_0","index_2","segment_1","edgeLayout_0","preserveAspectRatio","role","groups","groupLayout","group","_temp2","nodeLayout","segNode","_temp3","playhead","flow","note","leaders","layer_0","Boolean"],"sources":["../../../../src/lib/renderers/svg/graph-svg.tsx"],"sourcesContent":["import { type MotionValue, motion, useTransform } from 'motion/react';\n\nimport { compileGraph } from '../../compiler/diagram-compile.ts';\nimport type { NodeLayout } from '../../layouts/graph/graph-layout-result.ts';\nimport { layoutGraph } from '../../layouts/graph/layout.ts';\nimport { FONT_FAMILY, TEXT_SHAPING } from '../../layouts/text/font.ts';\nimport {\n DiagramFrame,\n type DiagramMode,\n useDiagramTheme,\n} from '../../react/chrome/index.ts';\nimport type { DiagramProps } from '../../react/diagram-types.ts';\nimport { DiagramDefs } from '../shared/defs.tsx';\nimport {\n DiagramNodeIcon,\n EdgeOverlay,\n EdgeStroke,\n GroupRect,\n type SegmentKind,\n buildSegments,\n nodeFrameFill,\n nodeFrameStroke,\n nodeFrameStrokeWidth,\n nodeTextFill,\n nodeTexture,\n textureFill,\n} from '../shared/graph-parts.tsx';\nimport { rejectNodeContent } from '../shared/node-content.ts';\nimport {\n NOTE_REVEAL_START,\n NodeCaption,\n NodePorts,\n NodeStackFrames,\n NoteText,\n SpecialNode,\n isSpecialNode,\n splitNotes,\n} from '../shared/node-parts.tsx';\nimport { DiagramPaperRect } from '../shared/paper.tsx';\nimport { RunSpans } from '../shared/run-spans.tsx';\nimport { nodeTextParts } from '../shared/text-runs.ts';\nimport type { DiagramEffects, GraphRendererProps } from '../types.ts';\nimport { GraphFlowEffects } from '../webgpu/graph-flow-effects.tsx';\nimport { svgViewportProps } from './viewport.ts';\n\nfunction NodeRect({\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 } = layout;\n const frame = node.frame ?? 'solid';\n const strokeWidth = nodeFrameStrokeWidth(node);\n const stroke = nodeFrameStroke(node, frame, themeAccent);\n const boxFill = nodeFrameFill(node, frame);\n const texture = nodeTexture(node, frame);\n const texturePattern = textureFill(texture, ids);\n const fill = nodeTextFill(node, frame, themeAccent);\n if (node.hidden) return null;\n if (isSpecialNode(node)) {\n return (\n <SpecialNode\n layout={layout}\n progress={progress}\n start={start}\n end={end}\n />\n );\n }\n return (\n <motion.g style={{ opacity, y: translateY }}>\n {frame !== 'none' && (\n <>\n <NodeStackFrames\n layout={layout}\n fill={boxFill}\n stroke={stroke}\n strokeWidth={strokeWidth}\n />\n <rect\n data-diagram-node={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={boxFill}\n stroke={stroke}\n strokeWidth={strokeWidth}\n />\n {texturePattern && (\n <rect\n data-diagram-node-texture={`${node.id}:${texture}`}\n x={box.x}\n y={box.y}\n width={box.w}\n height={box.h}\n rx={radius}\n fill={texturePattern}\n pointerEvents=\"none\"\n />\n )}\n </>\n )}\n <NodeBody layout={layout} fill={fill} accent={themeAccent} />\n <NodePorts layout={layout} />\n <NodeCaption layout={layout} />\n </motion.g>\n );\n}\n\nfunction NodeBody({\n layout,\n fill,\n accent,\n}: {\n layout: NodeLayout;\n fill: string;\n accent: string;\n}) {\n const { node, icon } = layout;\n const { title, description, items } = nodeTextParts(layout);\n const [firstTitle] = title;\n const [firstDescription] = description;\n\n return (\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={node.textColor === 'accent' ? accent : fill}\n />\n )}\n {firstTitle && (\n <text\n x={firstTitle.x}\n y={firstTitle.y}\n textAnchor={firstTitle.anchor}\n fontFamily={FONT_FAMILY[firstTitle.font.face]}\n fontSize={firstTitle.font.size}\n fontWeight={firstTitle.font.weight}\n fill={fill}\n >\n <RunSpans runs={title} fill={fill} accent={accent} />\n </text>\n )}\n {firstDescription && (\n <text\n data-diagram-node-description={node.id}\n x={firstDescription.x}\n y={firstDescription.y}\n textAnchor=\"start\"\n fontFamily={FONT_FAMILY[firstDescription.font.face]}\n fontSize={firstDescription.font.size}\n fontWeight={firstDescription.font.weight}\n fill={fill}\n >\n <RunSpans runs={description} />\n </text>\n )}\n {items.length > 0 && (\n <g>\n {items.map(({ run, bullet }, i) => (\n <g key={i} data-diagram-node-item={`${node.id}:${i}`}>\n <circle cx={bullet.x} cy={bullet.y} r={2.2} fill={fill} />\n <text\n x={run.x}\n y={run.y}\n textAnchor=\"start\"\n fontFamily={FONT_FAMILY[run.font.face]}\n fontSize={run.font.size}\n fontWeight={run.font.weight}\n fill={fill}\n >\n {run.text}\n </text>\n </g>\n ))}\n </g>\n )}\n </>\n );\n}\n\nexport type SvgGraphDiagramProps = DiagramProps & {\n /** Moving signals over the graph edges, rendered with WebGPU. */\n effects?: DiagramEffects;\n};\n\nexport function SvgGraphDiagram({\n title,\n children,\n viewport,\n paper,\n effects,\n ...chrome\n}: SvgGraphDiagramProps) {\n const ir = compileGraph(children);\n rejectNodeContent(ir, 'SvgGraphDiagram');\n const lines = [title].flat();\n return (\n <DiagramFrame title={lines} fit={viewport?.fit} {...chrome}>\n {(progress, mode) => (\n <GraphSVG\n ir={ir}\n title={lines}\n progress={progress}\n viewport={viewport}\n paper={paper}\n effects={effects}\n mode={mode}\n />\n )}\n </DiagramFrame>\n );\n}\n\nfunction GraphSVG({\n ir,\n title,\n progress,\n viewport,\n paper,\n effects,\n mode,\n}: GraphRendererProps & {\n effects?: DiagramEffects | undefined;\n mode: DiagramMode;\n}) {\n const { stylePreset } = useDiagramTheme();\n const layout = layoutGraph(ir);\n const { viewBox } = layout;\n const segments = buildSegments(ir.nodes.length, ir.edges.length);\n const seg = (kind: SegmentKind, index = 0) => {\n const segment = segments.find(\n (candidate) => candidate.kind === kind && candidate.index === index,\n );\n if (!segment) throw new Error(`segment ${kind}[${index}] missing`);\n return segment;\n };\n\n const groupsSeg = seg('groups');\n const indexedEdges = layout.edges\n .map((edgeLayout, index) => ({\n ...edgeLayout,\n index,\n segment: seg('edge', index),\n layer: edgeLayout.edge.layer ?? 'foreground',\n }))\n .filter(({ d }) => Boolean(d));\n const { graphNodes, notes } = splitNotes(layout.nodes);\n const viewportProps = svgViewportProps(viewBox, viewport);\n\n return (\n <svg\n data-diagram-style-preset={stylePreset}\n {...viewportProps}\n style={{ ...viewportProps.style, ...TEXT_SHAPING }}\n viewBox={`${viewBox.x} ${viewBox.y} ${viewBox.w} ${viewBox.h}`}\n preserveAspectRatio=\"xMidYMid meet\"\n role=\"img\"\n aria-label={title.join(' ')}\n >\n <title>{title.join(' ')}</title>\n <DiagramDefs />\n <DiagramPaperRect\n kind=\"graph\"\n paper={paper}\n x={viewBox.x}\n y={viewBox.y}\n width={viewBox.w}\n height={viewBox.h}\n />\n\n {layout.groups.map((groupLayout) => (\n <GroupRect\n key={`group-${groupLayout.group.id}`}\n layout={groupLayout}\n progress={progress}\n start={groupsSeg.start}\n end={groupsSeg.end}\n />\n ))}\n\n {indexedEdges\n .filter(({ layer }) => layer === 'background')\n .map(({ d, edge, index, segment }) => (\n <EdgeStroke\n key={`edge-background-${index}`}\n d={d}\n edge={edge}\n progress={progress}\n start={segment.start}\n end={segment.end}\n />\n ))}\n\n {graphNodes.map((nodeLayout, i) => {\n const segNode = seg('node', i);\n return (\n <NodeRect\n key={`node-${nodeLayout.node.id}`}\n layout={nodeLayout}\n progress={progress}\n start={segNode.start}\n end={segNode.end}\n />\n );\n })}\n\n {indexedEdges\n .filter(({ layer }) => layer === 'foreground')\n .map(({ d, edge, index, segment }) => (\n <EdgeStroke\n key={`edge-foreground-${index}`}\n d={d}\n edge={edge}\n progress={progress}\n start={segment.start}\n end={segment.end}\n />\n ))}\n\n {effects && (\n <GraphFlowEffects\n edges={indexedEdges}\n viewBox={viewBox}\n progress={progress}\n mode={mode}\n playhead={typeof effects === 'object' ? effects.flow : undefined}\n />\n )}\n\n {indexedEdges.map((edgeLayout) => (\n <EdgeOverlay\n key={`edge-overlay-${edgeLayout.index}`}\n layout={edgeLayout}\n progress={progress}\n start={edgeLayout.segment.start}\n end={edgeLayout.segment.end}\n />\n ))}\n\n {notes.map((note) => (\n <NoteText\n key={note.node.id}\n note={note}\n leaders={layout.leaders}\n progress={progress}\n start={NOTE_REVEAL_START}\n end={1}\n />\n ))}\n </svg>\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"timeline-svg.d.ts","sourceRoot":"","sources":["../../../../src/lib/renderers/svg/timeline-svg.tsx"],"names":[],"mappings":"AAuCA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAoVjE,MAAM,MAAM,uBAAuB,GAAG,YAAY,CAAC;AAEnD,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,GAAG,MAAM,EACV,EAAE,uBAAuB,+BAgBzB"}
1
+ {"version":3,"file":"timeline-svg.d.ts","sourceRoot":"","sources":["../../../../src/lib/renderers/svg/timeline-svg.tsx"],"names":[],"mappings":"AAuCA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAsVjE,MAAM,MAAM,uBAAuB,GAAG,YAAY,CAAC;AAEnD,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,GAAG,MAAM,EACV,EAAE,uBAAuB,+BAgBzB"}
@@ -2,7 +2,7 @@ import { c as _c } from "react/compiler-runtime";
2
2
  import { motion, useTransform } from 'motion/react';
3
3
  import { compileTimeline, validateTimeline } from "../../compiler/diagram-compile.js";
4
4
  import { FONT_FAMILY, TEXT_SHAPING } from "../../layouts/text/font.js";
5
- import { ACTOR_H, ACTOR_RX, ACTOR_W, DEFAULT_BOXED_STUB, FRAME_HEADER_H, SIGNAL_LABEL_BASELINE_GAP, SIGNAL_LABEL_FONT_SIZE, SIGNAL_LABEL_LINE_STEP, computeBoxedSignal, computeTimelineLayout, measureSignalLabel } from "../../layouts/timeline/timeline-layout.js";
5
+ import { ACTOR_H, ACTOR_RX, ACTOR_W, DEFAULT_BOXED_STUB, FRAME_HEADER_H, SIGNAL_LABEL_BASELINE_GAP, SIGNAL_LABEL_FONT, SIGNAL_LABEL_LINE_STEP, computeBoxedSignal, computeTimelineLayout, measureSignalLabel } from "../../layouts/timeline/timeline-layout.js";
6
6
  import { DIAGRAM_BG, DIAGRAM_DIM, DIAGRAM_LIFELINE, DIAGRAM_NEUTRAL, DIAGRAM_ON_ACCENT, DIAGRAM_TEXT, DiagramFrame, useDiagramTheme } from "../../react/chrome/index.js";
7
7
  import { DiagramDefs } from "../shared/defs.js";
8
8
  import { DiagramPaperRect } from "../shared/paper.js";
@@ -10,8 +10,8 @@ import { svgViewportProps } from "./viewport.js";
10
10
 
11
11
  // Measured in Chrome against StreamingTimelineDiagram: these land lane and
12
12
  // boxed-signal text within 0.4px of centred. Unlike the graph renderer, every
13
- // timeline text is mono at SIGNAL_LABEL_FONT_SIZE, so a fixed nudge stays
14
- // correct here; derive from text-metrics.ts only if the size becomes variable.
13
+ // timeline text is mono at SIGNAL_LABEL_FONT.size, so a fixed nudge stays
14
+ // correct here; derive from measure-text.ts only if the size becomes variable.
15
15
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
16
16
  function verticalTextOffset(lineCount) {
17
17
  return lineCount === 1 ? 4 : -3;
@@ -461,7 +461,8 @@ function SignalMessage(t0) {
461
461
  y: boxTextY,
462
462
  textAnchor: "middle",
463
463
  fontFamily: FONT_FAMILY.mono,
464
- fontSize: SIGNAL_LABEL_FONT_SIZE,
464
+ fontSize: SIGNAL_LABEL_FONT.size,
465
+ fontWeight: SIGNAL_LABEL_FONT.weight,
465
466
  fill: labelFill,
466
467
  children: t23
467
468
  });
@@ -576,7 +577,8 @@ function SignalMessage(t0) {
576
577
  y: labelBaseY,
577
578
  textAnchor: labelAnchor,
578
579
  fontFamily: FONT_FAMILY.mono,
579
- fontSize: SIGNAL_LABEL_FONT_SIZE,
580
+ fontSize: SIGNAL_LABEL_FONT.size,
581
+ fontWeight: SIGNAL_LABEL_FONT.weight,
580
582
  fill: labelFill,
581
583
  children: t16
582
584
  });