@diagrammo/dgmo 0.71.0 → 0.72.0

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 (62) hide show
  1. package/dist/advanced.d.ts +34 -26
  2. package/dist/advanced.js +30 -30
  3. package/dist/block.js +5 -5
  4. package/dist/chart-meta.js +1 -1
  5. package/dist/{chunk-YYVTBZZC.js → chunk-24YPR5EH.js} +1 -1
  6. package/dist/{chunk-LXGUK56B.js → chunk-2OTYNNHS.js} +2 -2
  7. package/dist/{chunk-LJS4Z326.js → chunk-2VBJCTSG.js} +2 -2
  8. package/dist/{chunk-2JY7KE7C.js → chunk-66VHK7PP.js} +2 -2
  9. package/dist/{chunk-C3MVZ7EW.js → chunk-6DGMS2WJ.js} +2 -2
  10. package/dist/{chunk-HTGYAMOK.js → chunk-6OAKQTXQ.js} +2 -2
  11. package/dist/{chunk-XJZSN42P.js → chunk-7RAWNJI5.js} +33 -31
  12. package/dist/{chunk-IWNHEK5K.js → chunk-7U3NDE7T.js} +2 -2
  13. package/dist/{chunk-ISKO4MQ5.js → chunk-DHKVHP3Y.js} +2 -2
  14. package/dist/{chunk-T3LNWU7B.js → chunk-DZ34UUXC.js} +3 -3
  15. package/dist/{chunk-CH4WODSG.js → chunk-FTPNAYL2.js} +16 -4
  16. package/dist/{chunk-722TKHMS.js → chunk-GCTKJDLY.js} +2 -2
  17. package/dist/{chunk-LUI425JB.js → chunk-GK4AU57A.js} +2 -2
  18. package/dist/{chunk-ENJWB5LU.js → chunk-HKL66CKW.js} +21 -17
  19. package/dist/{chunk-PLSTP7P4.js → chunk-HZQCKXPB.js} +31 -346
  20. package/dist/{chunk-6EDBUKC7.js → chunk-IXVK7XCN.js} +2 -2
  21. package/dist/{chunk-7REARI5N.js → chunk-L3XB446I.js} +2 -2
  22. package/dist/{chunk-UIBPFSIT.js → chunk-MUVASOBD.js} +3 -3
  23. package/dist/{chunk-CR5WIA6I.js → chunk-N34OTOGH.js} +11 -2
  24. package/dist/{chunk-TGGKBY22.js → chunk-N5247W2W.js} +2 -2
  25. package/dist/{chunk-RNSGPTOZ.js → chunk-O4OVVK6J.js} +2 -2
  26. package/dist/{chunk-5GTYY2XV.js → chunk-P6RPHRX7.js} +2 -2
  27. package/dist/{chunk-IFJIYUI6.js → chunk-PKTRDOBI.js} +2 -2
  28. package/dist/{chunk-FAJS2N4O.js → chunk-QITH5XOX.js} +2 -2
  29. package/dist/{chunk-YCOGUPHL.js → chunk-U4NFAWQW.js} +2 -2
  30. package/dist/{chunk-X2NX2SK6.js → chunk-UCGEBFUC.js} +2 -2
  31. package/dist/{chunk-XQW4KFJ4.js → chunk-UF3EALKC.js} +2 -2
  32. package/dist/{chunk-UVAOL2EO.js → chunk-UKOOGXRF.js} +284 -22
  33. package/dist/{chunk-ZNHPCITV.js → chunk-VLXYWPPE.js} +2 -2
  34. package/dist/{chunk-IQ4W4Q2R.js → chunk-WRWUZ2C4.js} +2 -2
  35. package/dist/{dgmo-router-J6OWNMEJ.js → dgmo-router-O55I5UXN.js} +2 -2
  36. package/dist/{flowchart-renderer-HB277GNE.js → flowchart-renderer-JMGOCLTQ.js} +3 -3
  37. package/dist/index.js +9 -5
  38. package/dist/{layout-BNR6ZDB6.js → layout-4D5JRUHX.js} +2 -2
  39. package/dist/{layout-N6ZOOAYT.js → layout-VMDNULKS.js} +3 -3
  40. package/dist/{layout-PBB2RQJ4.js → layout-VVTXA3W2.js} +2 -2
  41. package/dist/{renderer-7VPABTMS.js → renderer-2T2RAFWX.js} +4 -4
  42. package/dist/{renderer-35HBBPIQ.js → renderer-4DFEFP4X.js} +3 -3
  43. package/dist/{renderer-4CUV63GT.js → renderer-ACGZ5KJG.js} +3 -3
  44. package/dist/{renderer-V3PN5ZQS.js → renderer-B4Q6LUW2.js} +3 -3
  45. package/dist/{renderer-3DSU72CP.js → renderer-CB44E262.js} +4 -4
  46. package/dist/{renderer-4ORE7HJ3.js → renderer-CL4X5S3T.js} +3 -3
  47. package/dist/{renderer-S5MGQHRQ.js → renderer-E42I44WZ.js} +3 -3
  48. package/dist/{renderer-JWSO5O2L.js → renderer-IH5C7NQT.js} +3 -3
  49. package/dist/{renderer-5FQFMCBZ.js → renderer-IZFO3G22.js} +3 -3
  50. package/dist/{renderer-BQWAUDEF.js → renderer-K73COK5L.js} +3 -3
  51. package/dist/{renderer-5YV6KP4U.js → renderer-UPTO25OX.js} +4 -4
  52. package/dist/{renderer-KFWZPVYT.js → renderer-VEN6AIWW.js} +3 -3
  53. package/dist/{renderer-ZEPPPA3W.js → renderer-VP4DPLDY.js} +3 -3
  54. package/dist/{renderer-JFZVWH2G.js → renderer-W7JC2CTQ.js} +3 -3
  55. package/dist/{renderer-LVAUI6T6.js → renderer-WLA3NQCC.js} +3 -3
  56. package/dist/{renderer-FCIOD2QK.js → renderer-XR4SVKNE.js} +3 -3
  57. package/dist/{renderer-7BGC4KPZ.js → renderer-Y3D36RIT.js} +3 -3
  58. package/dist/{renderer-QOWN3XDI.js → renderer-Y4VC3VH4.js} +3 -3
  59. package/dist/{renderer-DGZDRRJW.js → renderer-YROML2KW.js} +4 -4
  60. package/dist/{renderer-ANWAX5QO.js → renderer-ZRHTC24Q.js} +3 -3
  61. package/dist/{state-renderer-776LP3NE.js → state-renderer-FJ2GT4MU.js} +3 -3
  62. package/package.json +1 -1
@@ -9,10 +9,10 @@ import {
9
9
  } from "./chunk-L65WI4HO.js";
10
10
  import {
11
11
  renderTimeline
12
- } from "./chunk-ZNHPCITV.js";
12
+ } from "./chunk-VLXYWPPE.js";
13
13
  import {
14
14
  ScaleContext
15
- } from "./chunk-YYVTBZZC.js";
15
+ } from "./chunk-24YPR5EH.js";
16
16
  import {
17
17
  EXPORT_HEIGHT,
18
18
  EXPORT_WIDTH,
@@ -45,7 +45,7 @@ import {
45
45
  parseVenn,
46
46
  parseVisualization,
47
47
  parseWordcloud
48
- } from "./chunk-PLSTP7P4.js";
48
+ } from "./chunk-HZQCKXPB.js";
49
49
  import {
50
50
  resolveActiveTagGroup,
51
51
  tagAttrKey
@@ -1947,7 +1947,7 @@ function resolveArcChordOverride(content, detectedType, palette) {
1947
1947
  }
1948
1948
  async function renderForExport(content, theme, palette, viewState, options) {
1949
1949
  const exportMode = options?.exportMode ?? false;
1950
- const { parseDgmoChartType } = await import("./dgmo-router-J6OWNMEJ.js");
1950
+ const { parseDgmoChartType } = await import("./dgmo-router-O55I5UXN.js");
1951
1951
  const detectedTypeRaw = parseDgmoChartType(content);
1952
1952
  const override = resolveArcChordOverride(content, detectedTypeRaw, palette);
1953
1953
  const renderContent = override?.content ?? content;
@@ -1978,7 +1978,7 @@ function ctxTagOverride(ctx) {
1978
1978
  async function exportEventLine(ctx) {
1979
1979
  const { content, theme, palette } = ctx;
1980
1980
  const { parseEventLine } = await import("./parser-6Y5BMNNJ.js");
1981
- const { renderEventLineForExport } = await import("./renderer-7VPABTMS.js");
1981
+ const { renderEventLineForExport } = await import("./renderer-2T2RAFWX.js");
1982
1982
  const effectivePalette = await resolveExportPalette(theme, palette);
1983
1983
  const parsed = parseEventLine(content, effectivePalette);
1984
1984
  if (parsed.error || parsed.events.length === 0) return "";
@@ -2040,9 +2040,9 @@ function unionHiddenAttributes(hideOption, ha) {
2040
2040
  async function exportOrg(ctx) {
2041
2041
  const { content, theme, palette, viewState, exportMode } = ctx;
2042
2042
  const { parseOrg, findOrgNodeIdByName } = await import("./parser-52AZJ3BA.js");
2043
- const { layoutOrg } = await import("./layout-BNR6ZDB6.js");
2043
+ const { layoutOrg } = await import("./layout-4D5JRUHX.js");
2044
2044
  const { collapseOrgTree, focusOrgTree, unionCollapsedOrgNodes } = await import("./collapse-JRGPUE67.js");
2045
- const { renderOrg, ancestorTrailReserve } = await import("./renderer-5YV6KP4U.js");
2045
+ const { renderOrg, ancestorTrailReserve } = await import("./renderer-UPTO25OX.js");
2046
2046
  const isDark = ctx.isDark;
2047
2047
  const effectivePalette = await resolveExportPalette(theme, palette);
2048
2048
  const orgParsed = parseOrg(content, effectivePalette);
@@ -2080,7 +2080,9 @@ async function exportOrg(ctx) {
2080
2080
  );
2081
2081
  const PADDING = 20;
2082
2082
  const titleOffset = effectiveParsed.title ? 30 : 0;
2083
- const trailReserve = ancestorTrailReserve(ancestorPath?.length ?? 0);
2083
+ const rootIds = new Set(effectiveParsed.roots.map((r) => r.id));
2084
+ const rootTop = orgLayout.nodes.find((n) => rootIds.has(n.id))?.y ?? orgLayout.containers.find((c) => rootIds.has(c.nodeId))?.y ?? 0;
2085
+ const trailReserve = ancestorTrailReserve(ancestorPath?.length ?? 0, rootTop);
2084
2086
  const exportWidth = orgLayout.width + PADDING * 2;
2085
2087
  const exportHeight = orgLayout.height + PADDING * 2 + titleOffset + trailReserve;
2086
2088
  const container = createExportContainer(exportWidth, exportHeight);
@@ -2102,9 +2104,9 @@ async function exportOrg(ctx) {
2102
2104
  async function exportSitemap(ctx) {
2103
2105
  const { content, theme, palette, viewState, exportMode } = ctx;
2104
2106
  const { parseSitemap } = await import("./parser-LTJ5AKY4.js");
2105
- const { layoutSitemap } = await import("./layout-PBB2RQJ4.js");
2107
+ const { layoutSitemap } = await import("./layout-VVTXA3W2.js");
2106
2108
  const { collapseSitemapTree } = await import("./collapse-ZWUFFCK2.js");
2107
- const { renderSitemap } = await import("./renderer-7BGC4KPZ.js");
2109
+ const { renderSitemap } = await import("./renderer-Y3D36RIT.js");
2108
2110
  const isDark = ctx.isDark;
2109
2111
  const effectivePalette = await resolveExportPalette(theme, palette);
2110
2112
  const sitemapParsed = parseSitemap(content, effectivePalette);
@@ -2154,7 +2156,7 @@ async function exportSitemap(ctx) {
2154
2156
  async function exportKanban(ctx) {
2155
2157
  const { content, theme, palette, viewState, exportMode } = ctx;
2156
2158
  const { parseKanban } = await import("./parser-SUAOF72Y.js");
2157
- const { renderKanban } = await import("./renderer-ANWAX5QO.js");
2159
+ const { renderKanban } = await import("./renderer-ZRHTC24Q.js");
2158
2160
  const effectivePalette = await resolveExportPalette(theme, palette);
2159
2161
  const kanbanParsed = parseKanban(content, effectivePalette);
2160
2162
  if (kanbanParsed.error || kanbanParsed.columns.length === 0) return "";
@@ -2187,7 +2189,7 @@ async function exportClass(ctx) {
2187
2189
  const { content, theme, palette, exportMode } = ctx;
2188
2190
  const { parseClassDiagram } = await import("./parser-YRJAGBV7.js");
2189
2191
  const { layoutClassDiagram } = await import("./layout-WIMQIHBU.js");
2190
- const { renderClassDiagram } = await import("./renderer-4CUV63GT.js");
2192
+ const { renderClassDiagram } = await import("./renderer-ACGZ5KJG.js");
2191
2193
  const effectivePalette = await resolveExportPalette(theme, palette);
2192
2194
  const classParsed = parseClassDiagram(content, effectivePalette);
2193
2195
  if (classParsed.error || classParsed.classes.length === 0) return "";
@@ -2214,7 +2216,7 @@ async function exportEr(ctx) {
2214
2216
  const { content, theme, palette, viewState, exportMode } = ctx;
2215
2217
  const { parseERDiagram } = await import("./parser-Z3LN7P6G.js");
2216
2218
  const { layoutERDiagram } = await import("./layout-LVMWK4QY.js");
2217
- const { renderERDiagram } = await import("./renderer-5FQFMCBZ.js");
2219
+ const { renderERDiagram } = await import("./renderer-IZFO3G22.js");
2218
2220
  const effectivePalette = await resolveExportPalette(theme, palette);
2219
2221
  const erParsed = parseERDiagram(content, effectivePalette);
2220
2222
  if (erParsed.error || erParsed.tables.length === 0) return "";
@@ -2291,7 +2293,7 @@ async function exportBoxesAndLines(ctx) {
2291
2293
  blHiddenTagValues.set(k, new Set(v));
2292
2294
  }
2293
2295
  }
2294
- const { renderBoxesAndLinesForExport } = await import("./renderer-4ORE7HJ3.js");
2296
+ const { renderBoxesAndLinesForExport } = await import("./renderer-CL4X5S3T.js");
2295
2297
  const { layoutBoxesAndLines } = await import("./layout-RD7GDM4I.js");
2296
2298
  const blLayout = await layoutBoxesAndLines(blParsed);
2297
2299
  const PADDING = 20;
@@ -2386,9 +2388,9 @@ async function exportFamily(ctx) {
2386
2388
  async function exportMindmap(ctx) {
2387
2389
  const { content, theme, palette, viewState, exportMode } = ctx;
2388
2390
  const { parseMindmap } = await import("./parser-XRZQ7SC7.js");
2389
- const { layoutMindmap } = await import("./layout-N6ZOOAYT.js");
2391
+ const { layoutMindmap } = await import("./layout-VMDNULKS.js");
2390
2392
  const { collapseMindmapTree } = await import("./collapse-SLINJQW6.js");
2391
- const { renderMindmap } = await import("./renderer-3DSU72CP.js");
2393
+ const { renderMindmap } = await import("./renderer-CB44E262.js");
2392
2394
  const isDark = ctx.isDark;
2393
2395
  const effectivePalette = await resolveExportPalette(theme, palette);
2394
2396
  const mmParsed = parseMindmap(content, effectivePalette);
@@ -2440,7 +2442,7 @@ async function exportWireframe(ctx) {
2440
2442
  const { content, theme, palette } = ctx;
2441
2443
  const { parseWireframe } = await import("./parser-XM6JC3UK.js");
2442
2444
  const { layoutWireframe } = await import("./layout-IN53LAE6.js");
2443
- const { renderWireframe } = await import("./renderer-JFZVWH2G.js");
2445
+ const { renderWireframe } = await import("./renderer-W7JC2CTQ.js");
2444
2446
  const effectivePalette = await resolveExportPalette(theme, palette);
2445
2447
  const wireframeParsed = parseWireframe(content);
2446
2448
  if (wireframeParsed.error || wireframeParsed.roots.length === 0 && wireframeParsed.modals.length === 0)
@@ -2506,7 +2508,7 @@ async function exportFlowchart(ctx) {
2506
2508
  const { content, theme, palette } = ctx;
2507
2509
  const { parseFlowchart } = await import("./flowchart-parser-LZF2GW2P.js");
2508
2510
  const { layoutGraph } = await import("./layout-AWPST2S3.js");
2509
- const { renderFlowchart } = await import("./flowchart-renderer-HB277GNE.js");
2511
+ const { renderFlowchart } = await import("./flowchart-renderer-JMGOCLTQ.js");
2510
2512
  const effectivePalette = await resolveExportPalette(theme, palette);
2511
2513
  const fcParsed = parseFlowchart(content, effectivePalette);
2512
2514
  if (fcParsed.error || fcParsed.nodes.length === 0) return "";
@@ -2528,7 +2530,7 @@ async function exportInfra(ctx) {
2528
2530
  const { parseInfra } = await import("./parser-ZIEEBJMU.js");
2529
2531
  const { computeInfra } = await import("./compute-JAP5E2E4.js");
2530
2532
  const { layoutInfra } = await import("./layout-4LNMXLVK.js");
2531
- const { renderInfra, computeInfraLegendGroups } = await import("./renderer-LVAUI6T6.js");
2533
+ const { renderInfra, computeInfraLegendGroups } = await import("./renderer-WLA3NQCC.js");
2532
2534
  const effectivePalette = await resolveExportPalette(theme, palette);
2533
2535
  const infraParsed = parseInfra(content);
2534
2536
  if (infraParsed.error || infraParsed.nodes.length === 0) return "";
@@ -2578,7 +2580,7 @@ async function exportPert(ctx) {
2578
2580
  const { parsePert } = await import("./parser-EX3AGFT5.js");
2579
2581
  const { analyzePert } = await import("./analyzer-HQUXKZ5J.js");
2580
2582
  const { layoutPert } = await import("./layout-SGYR6HBX.js");
2581
- const { renderPert, measurePertAnalysisBlock } = await import("./renderer-S5MGQHRQ.js");
2583
+ const { renderPert, measurePertAnalysisBlock } = await import("./renderer-E42I44WZ.js");
2582
2584
  const effectivePalette = await resolveExportPalette(theme, palette);
2583
2585
  const pertParsed = parsePert(content, { palette: effectivePalette });
2584
2586
  if (pertParsed.error || pertParsed.activities.length === 0) return "";
@@ -2618,7 +2620,7 @@ async function exportGantt(ctx) {
2618
2620
  const { content, theme, palette, viewState, exportMode } = ctx;
2619
2621
  const { parseGantt } = await import("./parser-CDMP3UVH.js");
2620
2622
  const { calculateSchedule } = await import("./calculator-4CNL2GKU.js");
2621
- const { renderGantt } = await import("./renderer-35HBBPIQ.js");
2623
+ const { renderGantt } = await import("./renderer-4DFEFP4X.js");
2622
2624
  const effectivePalette = await resolveExportPalette(theme, palette);
2623
2625
  const ganttParsed = parseGantt(content, effectivePalette);
2624
2626
  const resolved = calculateSchedule(ganttParsed);
@@ -2661,7 +2663,7 @@ async function exportState(ctx) {
2661
2663
  const { content, theme, palette, viewState } = ctx;
2662
2664
  const { parseState } = await import("./state-parser-HJNCGIFT.js");
2663
2665
  const { layoutGraph } = await import("./layout-AWPST2S3.js");
2664
- const { renderState } = await import("./state-renderer-776LP3NE.js");
2666
+ const { renderState } = await import("./state-renderer-FJ2GT4MU.js");
2665
2667
  const { collapseStateGroups } = await import("./state-collapse-HCGD6IVJ.js");
2666
2668
  const effectivePalette = await resolveExportPalette(theme, palette);
2667
2669
  const stateParsed = parseState(content, effectivePalette);
@@ -2699,7 +2701,7 @@ async function exportState(ctx) {
2699
2701
  async function exportTechRadar(ctx) {
2700
2702
  const { content, theme, palette, viewState, exportMode } = ctx;
2701
2703
  const { parseTechRadar } = await import("./parser-6VZISXFY.js");
2702
- const { renderTechRadarForExport } = await import("./renderer-FCIOD2QK.js");
2704
+ const { renderTechRadarForExport } = await import("./renderer-XR4SVKNE.js");
2703
2705
  const effectivePalette = await resolveExportPalette(theme, palette);
2704
2706
  const radarParsed = parseTechRadar(content);
2705
2707
  if (radarParsed.error || radarParsed.quadrants.length === 0) return "";
@@ -2720,7 +2722,7 @@ async function exportTechRadar(ctx) {
2720
2722
  async function exportJourneyMap(ctx) {
2721
2723
  const { content, theme, palette, exportMode } = ctx;
2722
2724
  const { parseJourneyMap } = await import("./parser-2CXA7K5C.js");
2723
- const { renderJourneyMap } = await import("./renderer-KFWZPVYT.js");
2725
+ const { renderJourneyMap } = await import("./renderer-VEN6AIWW.js");
2724
2726
  const { layoutJourneyMap } = await import("./layout-2DVT24YY.js");
2725
2727
  const effectivePalette = await resolveExportPalette(theme, palette);
2726
2728
  const jmParsed = parseJourneyMap(content, effectivePalette);
@@ -2742,7 +2744,7 @@ async function exportJourneyMap(ctx) {
2742
2744
  async function exportCycle(ctx) {
2743
2745
  const { content, theme, palette, viewState, exportMode } = ctx;
2744
2746
  const { parseCycle } = await import("./parser-CBSYFN6U.js");
2745
- const { renderCycleForExport } = await import("./renderer-V3PN5ZQS.js");
2747
+ const { renderCycleForExport } = await import("./renderer-B4Q6LUW2.js");
2746
2748
  const effectivePalette = await resolveExportPalette(theme, palette);
2747
2749
  const cycleParsed = parseCycle(content);
2748
2750
  if (cycleParsed.error || cycleParsed.nodes.length === 0) return "";
@@ -2797,7 +2799,7 @@ async function exportMap(ctx) {
2797
2799
  async function exportPyramid(ctx) {
2798
2800
  const { content, theme, palette } = ctx;
2799
2801
  const { parsePyramid } = await import("./parser-W2HXBHNC.js");
2800
- const { renderPyramidForExport } = await import("./renderer-JWSO5O2L.js");
2802
+ const { renderPyramidForExport } = await import("./renderer-IH5C7NQT.js");
2801
2803
  const effectivePalette = await resolveExportPalette(theme, palette);
2802
2804
  const pyramidParsed = parsePyramid(content);
2803
2805
  if (pyramidParsed.error || pyramidParsed.layers.length === 0) return "";
@@ -2814,7 +2816,7 @@ async function exportPyramid(ctx) {
2814
2816
  async function exportRing(ctx) {
2815
2817
  const { content, theme, palette } = ctx;
2816
2818
  const { parseRing } = await import("./parser-K26KDCZN.js");
2817
- const { renderRingForExport } = await import("./renderer-ZEPPPA3W.js");
2819
+ const { renderRingForExport } = await import("./renderer-VP4DPLDY.js");
2818
2820
  const effectivePalette = await resolveExportPalette(theme, palette);
2819
2821
  const ringParsed = parseRing(content);
2820
2822
  if (ringParsed.error || ringParsed.layers.length === 0) return "";
@@ -2857,7 +2859,7 @@ async function exportTreemap(ctx) {
2857
2859
  async function exportLiveLink(ctx) {
2858
2860
  const { content, theme, palette } = ctx;
2859
2861
  const { parseLiveLink } = await import("./parser-O7GTECFP.js");
2860
- const { renderLiveLinkCard } = await import("./renderer-DGZDRRJW.js");
2862
+ const { renderLiveLinkCard } = await import("./renderer-YROML2KW.js");
2861
2863
  const effectivePalette = await resolveExportPalette(theme, palette);
2862
2864
  return renderLiveLinkCard(parseLiveLink(content), effectivePalette, theme);
2863
2865
  }
@@ -2935,7 +2937,7 @@ async function exportBracket(ctx) {
2935
2937
  async function exportRaci(ctx) {
2936
2938
  const { content, theme, palette } = ctx;
2937
2939
  const { parseRaci } = await import("./parser-QCVEWLCO.js");
2938
- const { renderRaciForExport } = await import("./renderer-BQWAUDEF.js");
2940
+ const { renderRaciForExport } = await import("./renderer-K73COK5L.js");
2939
2941
  const effectivePalette = await resolveExportPalette(theme, palette);
2940
2942
  const raciParsed = parseRaci(content, effectivePalette);
2941
2943
  if (raciParsed.error) return "";
@@ -3068,7 +3070,7 @@ async function exportVisualization(ctx) {
3068
3070
  const isDark = ctx.isDark;
3069
3071
  const container = createExportContainer(ctx.width, ctx.height);
3070
3072
  const { parseSequenceDgmo } = await import("./parser-TJ3SP2MJ.js");
3071
- const { renderSequenceDiagram } = await import("./renderer-QOWN3XDI.js");
3073
+ const { renderSequenceDiagram } = await import("./renderer-Y4VC3VH4.js");
3072
3074
  const seqParsed = parseSequenceDgmo(content, effectivePalette);
3073
3075
  if (seqParsed.error || seqParsed.participants.length === 0) return "";
3074
3076
  const collapsedSections = viewState?.cs ? new Set(viewState.cs) : void 0;
@@ -3799,4 +3801,4 @@ export {
3799
3801
  renderForExport,
3800
3802
  render
3801
3803
  };
3802
- //# sourceMappingURL=chunk-XJZSN42P.js.map
3804
+ //# sourceMappingURL=chunk-7RAWNJI5.js.map
@@ -18,7 +18,7 @@ import {
18
18
  } from "./chunk-FJ57274M.js";
19
19
  import {
20
20
  ScaleContext
21
- } from "./chunk-YYVTBZZC.js";
21
+ } from "./chunk-24YPR5EH.js";
22
22
  import {
23
23
  serializeSvg
24
24
  } from "./chunk-RU2HHHYA.js";
@@ -877,4 +877,4 @@ export {
877
877
  renderJourneyMap,
878
878
  renderJourneyMapForExport
879
879
  };
880
- //# sourceMappingURL=chunk-IWNHEK5K.js.map
880
+ //# sourceMappingURL=chunk-7U3NDE7T.js.map
@@ -15,7 +15,7 @@ import {
15
15
  } from "./chunk-FJ57274M.js";
16
16
  import {
17
17
  ScaleContext
18
- } from "./chunk-YYVTBZZC.js";
18
+ } from "./chunk-24YPR5EH.js";
19
19
  import {
20
20
  INLINE_HEADER_PAD,
21
21
  layoutInlineHeader
@@ -1871,4 +1871,4 @@ export {
1871
1871
  measurePertAnalysisBlock,
1872
1872
  renderPertAnalysisBlock
1873
1873
  };
1874
- //# sourceMappingURL=chunk-ISKO4MQ5.js.map
1874
+ //# sourceMappingURL=chunk-DHKVHP3Y.js.map
@@ -22,7 +22,7 @@ import {
22
22
  } from "./chunk-FJ57274M.js";
23
23
  import {
24
24
  ScaleContext
25
- } from "./chunk-YYVTBZZC.js";
25
+ } from "./chunk-24YPR5EH.js";
26
26
  import {
27
27
  layoutInlineHeader
28
28
  } from "./chunk-6CLC26GU.js";
@@ -450,7 +450,7 @@ function renderLegend(parent, legendGroups, palette, isDark, activeTagGroup, fix
450
450
  }
451
451
  async function renderSitemapForExport(content, theme, palette) {
452
452
  const { parseSitemap } = await import("./parser-LTJ5AKY4.js");
453
- const { layoutSitemap } = await import("./layout-PBB2RQJ4.js");
453
+ const { layoutSitemap } = await import("./layout-VVTXA3W2.js");
454
454
  const { getPalette } = await import("./palettes-WQZ2TPVZ.js");
455
455
  const isDark = theme === "dark";
456
456
  const effectivePalette = palette ?? (isDark ? getPalette("nord").dark : getPalette("nord").light);
@@ -500,4 +500,4 @@ export {
500
500
  renderSitemap,
501
501
  renderSitemapForExport
502
502
  };
503
- //# sourceMappingURL=chunk-T3LNWU7B.js.map
503
+ //# sourceMappingURL=chunk-DZ34UUXC.js.map
@@ -197,7 +197,8 @@ function layoutOrg(parsed, hiddenCounts, activeTagGroup, hiddenAttributes, expan
197
197
  containers: [],
198
198
  legend: [],
199
199
  width: 0,
200
- height: 0
200
+ height: 0,
201
+ legendShift: 0
201
202
  };
202
203
  }
203
204
  let cy = MARGIN;
@@ -214,7 +215,8 @@ function layoutOrg(parsed, hiddenCounts, activeTagGroup, hiddenAttributes, expan
214
215
  containers: [],
215
216
  legend: legendGroups2,
216
217
  width: maxWidth2 + MARGIN * 2,
217
- height: cy - LEGEND_GROUP_GAP + MARGIN
218
+ height: cy - LEGEND_GROUP_GAP + MARGIN,
219
+ legendShift: 0
218
220
  };
219
221
  }
220
222
  const isLR = parsed.direction === "LR";
@@ -836,8 +838,10 @@ function layoutOrg(parsed, hiddenCounts, activeTagGroup, hiddenAttributes, expan
836
838
  ) : legendGroups;
837
839
  const allExpanded = expandAllLegend && activeTagGroup == null;
838
840
  const effectiveW = (g) => activeTagGroup != null || allExpanded ? g.width : g.minifiedWidth;
841
+ let appliedLegendShift = 0;
839
842
  if (visibleGroups.length > 0) {
840
843
  const legendShift = LEGEND_HEIGHT + LEGEND_GROUP_GAP;
844
+ appliedLegendShift = legendShift;
841
845
  for (const n of layoutNodes) n.y += legendShift;
842
846
  for (const c of containers) c.y += legendShift;
843
847
  for (const e of layoutEdges) {
@@ -854,7 +858,14 @@ function layoutOrg(parsed, hiddenCounts, activeTagGroup, hiddenAttributes, expan
854
858
  finalHeight += legendShift;
855
859
  const neededWidth = totalGroupsWidth + MARGIN * 2;
856
860
  if (neededWidth > finalWidth) {
861
+ const shift = (neededWidth - finalWidth) / 2;
857
862
  finalWidth = neededWidth;
863
+ for (const n of layoutNodes) n.x += shift;
864
+ for (const c of containers) c.x += shift;
865
+ for (const e of layoutEdges) {
866
+ for (const p of e.points)
867
+ p.x += shift;
868
+ }
858
869
  }
859
870
  }
860
871
  return {
@@ -863,11 +874,12 @@ function layoutOrg(parsed, hiddenCounts, activeTagGroup, hiddenAttributes, expan
863
874
  containers,
864
875
  legend: legendGroups,
865
876
  width: finalWidth,
866
- height: finalHeight
877
+ height: finalHeight,
878
+ legendShift: appliedLegendShift
867
879
  };
868
880
  }
869
881
 
870
882
  export {
871
883
  layoutOrg
872
884
  };
873
- //# sourceMappingURL=chunk-CH4WODSG.js.map
885
+ //# sourceMappingURL=chunk-FTPNAYL2.js.map
@@ -18,7 +18,7 @@ import {
18
18
  } from "./chunk-FJ57274M.js";
19
19
  import {
20
20
  ScaleContext
21
- } from "./chunk-YYVTBZZC.js";
21
+ } from "./chunk-24YPR5EH.js";
22
22
  import {
23
23
  layoutInlineHeader
24
24
  } from "./chunk-6CLC26GU.js";
@@ -448,4 +448,4 @@ export {
448
448
  renderClassDiagram,
449
449
  renderClassDiagramForExport
450
450
  };
451
- //# sourceMappingURL=chunk-722TKHMS.js.map
451
+ //# sourceMappingURL=chunk-GCTKJDLY.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-WGC42WJU.js";
5
5
  import {
6
6
  ScaleContext
7
- } from "./chunk-YYVTBZZC.js";
7
+ } from "./chunk-24YPR5EH.js";
8
8
  import {
9
9
  renderIntegratedLegend
10
10
  } from "./chunk-6S53NO3M.js";
@@ -1603,4 +1603,4 @@ export {
1603
1603
  renderTechRadar,
1604
1604
  renderTechRadarForExport
1605
1605
  };
1606
- //# sourceMappingURL=chunk-LUI425JB.js.map
1606
+ //# sourceMappingURL=chunk-GK4AU57A.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-VV6HZQ5K.js";
5
5
  import {
6
6
  layoutOrg
7
- } from "./chunk-CH4WODSG.js";
7
+ } from "./chunk-FTPNAYL2.js";
8
8
  import {
9
9
  renderCollapseBar,
10
10
  renderNodeCard
@@ -28,7 +28,7 @@ import {
28
28
  } from "./chunk-FJ57274M.js";
29
29
  import {
30
30
  ScaleContext
31
- } from "./chunk-YYVTBZZC.js";
31
+ } from "./chunk-24YPR5EH.js";
32
32
  import {
33
33
  TITLE_FONT_SIZE,
34
34
  TITLE_FONT_WEIGHT
@@ -47,7 +47,6 @@ import {
47
47
  EYE_OPEN_PATH,
48
48
  LEGEND_EYE_GAP,
49
49
  LEGEND_EYE_SIZE,
50
- LEGEND_GROUP_GAP,
51
50
  LEGEND_HEIGHT
52
51
  } from "./chunk-QX53GOI7.js";
53
52
  import {
@@ -79,8 +78,11 @@ var ANCESTOR_DOT_R = 4;
79
78
  var ANCESTOR_LABEL_FONT_SIZE = 11;
80
79
  var ANCESTOR_ROW_HEIGHT = 22;
81
80
  var ANCESTOR_TRAIL_BOTTOM_GAP = 16;
82
- function ancestorTrailReserve(count) {
83
- return count > 0 ? count * ANCESTOR_ROW_HEIGHT + ANCESTOR_TRAIL_BOTTOM_GAP : 0;
81
+ var ANCESTOR_TRAIL_TOP_INK = ANCESTOR_DOT_R + 2;
82
+ function ancestorTrailReserve(count, headroom = 0) {
83
+ if (count < 1) return 0;
84
+ const inkAboveRoot = ANCESTOR_TRAIL_BOTTOM_GAP + (count - 1) * ANCESTOR_ROW_HEIGHT + ANCESTOR_TRAIL_TOP_INK;
85
+ return Math.max(0, inkAboveRoot - headroom);
84
86
  }
85
87
  var LEGEND_FIXED_GAP = 8;
86
88
  function nodeFill(palette, isDark, nodeColor, fillMode) {
@@ -131,7 +133,7 @@ function renderOrg(container, parsed, layout, palette, isDark, onClickItem, expo
131
133
  const titleOffset = showTitle ? sTitleHeight : 0;
132
134
  const legendOnly = layout.nodes.length === 0;
133
135
  const hasLegend = layout.legend.length > 0;
134
- const layoutLegendShift = LEGEND_HEIGHT + LEGEND_GROUP_GAP;
136
+ const layoutLegendShift = layout.legendShift;
135
137
  const fixedLegend = !exportDims && hasLegend && !legendOnly;
136
138
  const legendReserve = fixedLegend ? getMaxLegendReservedHeight(
137
139
  {
@@ -146,11 +148,18 @@ function renderOrg(container, parsed, layout, palette, isDark, onClickItem, expo
146
148
  const titleReserve = fixedTitle ? sTitleHeight : 0;
147
149
  const hasAncestorTrail = ancestorPath && ancestorPath.length > 0;
148
150
  const ancestorTrailHeight = hasAncestorTrail ? ancestorPath.length * sAncestorRowHeight + sAncestorTrailBottomGap : 0;
151
+ const rootNodeIds = new Set(parsed.roots.map((r) => r.id));
152
+ const rootLayoutNode = layout.nodes.find((n) => rootNodeIds.has(n.id));
153
+ const rootLayoutContainer = rootLayoutNode ? null : layout.containers.find((c) => rootNodeIds.has(c.nodeId));
154
+ const rootCenterX = rootLayoutNode ? rootLayoutNode.x : rootLayoutContainer ? rootLayoutContainer.x + rootLayoutContainer.width / 2 : null;
155
+ const rootTopY = rootLayoutNode ? rootLayoutNode.y : rootLayoutContainer ? rootLayoutContainer.y : null;
156
+ const legendUnshift = fixedLegend ? layoutLegendShift : 0;
157
+ const trailShift = hasAncestorTrail && rootTopY !== null ? ancestorTrailReserve(
158
+ ancestorPath.length,
159
+ Math.max(0, rootTopY - legendUnshift)
160
+ ) : ancestorTrailHeight;
149
161
  const diagramW = layout.width;
150
- let diagramH = layout.height + (fixedTitle ? 0 : titleOffset) + ancestorTrailHeight;
151
- if (fixedLegend) {
152
- diagramH -= layoutLegendShift;
153
- }
162
+ const diagramH = layout.height + (fixedTitle ? 0 : titleOffset) - legendUnshift + trailShift;
154
163
  const availH = height - sDiagramPadding * 2 - legendReserve - titleReserve;
155
164
  const scaleX = (width - sDiagramPadding * 2) / diagramW;
156
165
  const scaleY = availH / diagramH;
@@ -182,13 +191,12 @@ function renderOrg(container, parsed, layout, palette, isDark, onClickItem, expo
182
191
  }
183
192
  }
184
193
  }
185
- const contentYShift = (fixedTitle ? 0 : titleOffset) + ancestorTrailHeight;
194
+ const contentYShift = (fixedTitle ? 0 : titleOffset) - legendUnshift + trailShift;
186
195
  const contentG = mainG.append("g").attr("transform", `translate(0, ${contentYShift})`);
187
196
  const displayNames = /* @__PURE__ */ new Map();
188
197
  for (const group of parsed.tagGroups) {
189
198
  displayNames.set(tagAttrKey(group.name), group.name);
190
199
  }
191
- const rootNodeIds = new Set(parsed.roots.map((r) => r.id));
192
200
  const colorOff = parsed.options?.["color"] === "off";
193
201
  for (const c of layout.containers) {
194
202
  const cG = contentG.append("g").attr("transform", `translate(${c.x}, ${c.y})`).attr("class", "org-container").attr("data-line-number", String(c.lineNumber));
@@ -355,10 +363,6 @@ function renderOrg(container, parsed, layout, palette, isDark, onClickItem, expo
355
363
  }
356
364
  }
357
365
  if (hasAncestorTrail) {
358
- const rootNode = layout.nodes.find((n) => rootNodeIds.has(n.id));
359
- const rootContainer = !rootNode ? layout.containers.find((c) => rootNodeIds.has(c.nodeId)) : null;
360
- const rootCenterX = rootNode ? rootNode.x : rootContainer ? rootContainer.x + rootContainer.width / 2 : null;
361
- const rootTopY = rootNode ? rootNode.y : rootContainer ? rootContainer.y : null;
362
366
  if (rootCenterX !== null && rootTopY !== null) {
363
367
  const trailBottomY = rootTopY - sAncestorTrailBottomGap;
364
368
  const trailG = contentG.append("g").attr("class", "org-ancestor-trail");
@@ -489,4 +493,4 @@ export {
489
493
  renderOrg,
490
494
  renderOrgForExport
491
495
  };
492
- //# sourceMappingURL=chunk-ENJWB5LU.js.map
496
+ //# sourceMappingURL=chunk-HKL66CKW.js.map