@diagrammo/dgmo 0.75.0 → 0.77.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 (120) hide show
  1. package/dist/advanced.d.ts +181 -12
  2. package/dist/advanced.js +267 -60
  3. package/dist/block.css +20 -3
  4. package/dist/block.d.ts +12 -4
  5. package/dist/block.js +35 -18
  6. package/dist/{chart-meta-lP8Rl19E.d.ts → chart-meta-Cf_jkApJ.d.ts} +2 -2
  7. package/dist/chart-meta.d.ts +3 -3
  8. package/dist/chart-meta.js +6 -6
  9. package/dist/{charts-d3-SQEVMIAM.js → charts-d3-HMEMHSSW.js} +5 -5
  10. package/dist/{chunk-E3BJVEMZ.js → chunk-2MTM4E6M.js} +2 -2
  11. package/dist/{chunk-UBW53CNS.js → chunk-3E4YB6TY.js} +2 -2
  12. package/dist/{chunk-IFC3JXCT.js → chunk-3O7ZYVJV.js} +2 -2
  13. package/dist/{chunk-Q6BAFS7I.js → chunk-43AJKH2U.js} +3 -3
  14. package/dist/{chunk-2NRIGEHZ.js → chunk-46KVXDUJ.js} +10 -3
  15. package/dist/chunk-53SEVJQM.js +9 -0
  16. package/dist/{chunk-UTTRJ6KN.js → chunk-5ZD4DDG7.js} +4 -4
  17. package/dist/{chunk-AFR6GWXD.js → chunk-6BVAW7KI.js} +4 -4
  18. package/dist/{chunk-CLQJAGWL.js → chunk-6IN4F4RH.js} +4 -4
  19. package/dist/{chunk-76IBFEYW.js → chunk-6ZZKEYBS.js} +4 -4
  20. package/dist/{chunk-QUYYL3LP.js → chunk-7CXW6EGX.js} +5 -5
  21. package/dist/chunk-7IATMZSA.js +72 -0
  22. package/dist/{chunk-HOIAQ3P2.js → chunk-B52RL5VV.js} +2 -2
  23. package/dist/{chunk-IGQW7TKM.js → chunk-BH3BQICT.js} +5 -5
  24. package/dist/{chunk-3LJNQ6LR.js → chunk-CF3I5SOG.js} +5 -5
  25. package/dist/{chunk-ZMKCG3FT.js → chunk-CHOK7NCJ.js} +6 -6
  26. package/dist/{chunk-U74EGVOA.js → chunk-CIWFL2LM.js} +4 -4
  27. package/dist/{chunk-OUJG73YJ.js → chunk-CYMYZYLI.js} +5 -5
  28. package/dist/{chunk-BCB24FG7.js → chunk-D3B6YEZK.js} +3 -3
  29. package/dist/{chunk-XHROEQ23.js → chunk-DSXWJAOA.js} +4 -4
  30. package/dist/{chunk-RT7ACF77.js → chunk-EGY3TS62.js} +6 -6
  31. package/dist/{chunk-CQKD6GOC.js → chunk-EUVUOPRC.js} +4 -4
  32. package/dist/{chunk-TDHD3HNO.js → chunk-F4X5NVKY.js} +37 -16
  33. package/dist/{chunk-7G4XMHDB.js → chunk-FF7LRT5L.js} +4 -4
  34. package/dist/{chunk-6DYZ2JM6.js → chunk-FR5EVD2X.js} +206 -32
  35. package/dist/{chunk-R5JPMW2F.js → chunk-FTTB64OJ.js} +5 -5
  36. package/dist/{chunk-U7AO6FRL.js → chunk-H7BYMIVK.js} +312 -118
  37. package/dist/{chunk-M3IVOGZE.js → chunk-HDLRRY3N.js} +61 -55
  38. package/dist/{chunk-F4CPZRG2.js → chunk-J76YDS4V.js} +2 -2
  39. package/dist/{chunk-SUA56ZSB.js → chunk-LTTZX6RD.js} +6 -2
  40. package/dist/{chunk-7EZ5AKBK.js → chunk-LYJ53DBK.js} +8 -6
  41. package/dist/{chunk-JQ575OAK.js → chunk-MZEGUDTA.js} +2 -2
  42. package/dist/{chunk-IHUOYDLN.js → chunk-N5NQIZ56.js} +5 -5
  43. package/dist/{chunk-GE5RO4BS.js → chunk-N6MZSBOL.js} +5 -1
  44. package/dist/{chunk-DU3OIBQE.js → chunk-NWNSXHA5.js} +6 -2
  45. package/dist/{chunk-32MOGTKT.js → chunk-OO2L2LWV.js} +4 -4
  46. package/dist/{chunk-XCAEHWQB.js → chunk-OZOHREFQ.js} +3 -3
  47. package/dist/{chunk-DSH7NJ2G.js → chunk-QBM5BURJ.js} +4 -4
  48. package/dist/{chunk-YVDBBWEP.js → chunk-QXMHBIQG.js} +4 -4
  49. package/dist/{chunk-UWYZIGCB.js → chunk-RGW26UAR.js} +2 -2
  50. package/dist/{chunk-QI4Q5ZZH.js → chunk-RV5A3EGI.js} +4 -4
  51. package/dist/{chunk-HGFKDSKZ.js → chunk-SI3PYDL4.js} +4 -4
  52. package/dist/{chunk-CAPR5DET.js → chunk-SSEAULA5.js} +2 -2
  53. package/dist/{chunk-AYM472K3.js → chunk-SWUQJ5VR.js} +3 -3
  54. package/dist/{chunk-HFCKU73Y.js → chunk-TI4YUUW6.js} +3 -3
  55. package/dist/{chunk-LYLRNAX2.js → chunk-TKIPK5P6.js} +3 -3
  56. package/dist/{chunk-QT5UMFPE.js → chunk-U4DS2ODO.js} +3 -3
  57. package/dist/{chunk-XFLLYY3V.js → chunk-UBDVAHGK.js} +36 -52
  58. package/dist/{chunk-JL7BDLC6.js → chunk-UH5YTZN7.js} +4 -4
  59. package/dist/{chunk-GEURKGZS.js → chunk-V4NHFY22.js} +4 -4
  60. package/dist/{chunk-4SXHMFFP.js → chunk-VRPV6QXR.js} +23 -12
  61. package/dist/{chunk-BFTRW24X.js → chunk-WHWUVDYK.js} +65 -24
  62. package/dist/{chunk-U5B3TUEW.js → chunk-XCFIAGT7.js} +2 -2
  63. package/dist/{chunk-COCMMQXW.js → chunk-XFXJXLK7.js} +2 -2
  64. package/dist/{chunk-YDA46XHI.js → chunk-XPBJVSRY.js} +2 -2
  65. package/dist/{chunk-VV6HZQ5K.js → chunk-YM5RMLFO.js} +2 -2
  66. package/dist/{d3--y67plmW.d.ts → d3-BiaJtaSw.d.ts} +1 -1
  67. package/dist/{dgmo-router-KYNLRE7S.js → dgmo-router-A3LIHT6H.js} +7 -7
  68. package/dist/{dgmo-router-CY5j16Pl.d.ts → dgmo-router-BwXHZ_P3.d.ts} +1 -1
  69. package/dist/{dimensions-NLQ64ED5.js → dimensions-OFF4GRFL.js} +4 -4
  70. package/dist/{flowchart-parser-LY5GGQL2.js → flowchart-parser-NVBP3C5D.js} +2 -2
  71. package/dist/{flowchart-renderer-RIJ5FZKO.js → flowchart-renderer-BBJUPORB.js} +6 -6
  72. package/dist/index.d.ts +7 -7
  73. package/dist/index.js +14 -14
  74. package/dist/{layout-UJ62RQQ3.js → layout-2OJ25STS.js} +2 -2
  75. package/dist/{layout-DAYQ46PS.js → layout-Y2V3LYV7.js} +3 -3
  76. package/dist/{parser-LUOINP6H.js → parser-QYAIFXLP.js} +3 -3
  77. package/dist/{parser-L7RXUKYN.js → parser-WVE6SKB7.js} +2 -2
  78. package/dist/{parser-JYIZEKAS.js → parser-ZYAFHXKQ.js} +2 -2
  79. package/dist/{renderer-FUJNSC5X.js → renderer-2ANDPQWC.js} +3 -3
  80. package/dist/{renderer-UYZSP7MF.js → renderer-2LDT4TUX.js} +5 -5
  81. package/dist/{renderer-4EWGZLJ6.js → renderer-2NYQDW37.js} +3 -3
  82. package/dist/{renderer-LBNVKVO3.js → renderer-2RIIIO34.js} +5 -5
  83. package/dist/{renderer-PKRKLOYR.js → renderer-3HFU3DTO.js} +5 -5
  84. package/dist/{renderer-UUP6OX6F.js → renderer-4BF6ILP6.js} +5 -5
  85. package/dist/{renderer-MUW4G2N6.js → renderer-5E2AH5TO.js} +7 -7
  86. package/dist/{renderer-DKW273R7.js → renderer-62SLWRYF.js} +6 -5
  87. package/dist/{renderer-WDSBFDQ2.js → renderer-ANJUDBOS.js} +6 -6
  88. package/dist/{renderer-OTHBTGBN.js → renderer-CVWQD442.js} +3 -3
  89. package/dist/{renderer-GJDVPXI3.js → renderer-D6GJ6EVK.js} +6 -6
  90. package/dist/{renderer-KMOGGMM7.js → renderer-DNFV2IQI.js} +5 -5
  91. package/dist/{renderer-UYYBJ7OB.js → renderer-EDVCGIQO.js} +10 -10
  92. package/dist/{renderer-73QHYZ2Q.js → renderer-EFQSMHID.js} +6 -6
  93. package/dist/{renderer-EP4GRCDX.js → renderer-FTX67CYZ.js} +3 -3
  94. package/dist/{renderer-GF6S5ZX6.js → renderer-G2DPKJAN.js} +5 -5
  95. package/dist/{renderer-QAMOXOZ2.js → renderer-GHBF5PRH.js} +3 -3
  96. package/dist/{renderer-5W3HWIUL.js → renderer-GZLRX764.js} +5 -5
  97. package/dist/{renderer-CO5O5VR5.js → renderer-H2HYLFN3.js} +3 -3
  98. package/dist/{renderer-JMJ7Q5OC.js → renderer-IR5655M7.js} +5 -5
  99. package/dist/{renderer-4PNVGHVA.js → renderer-L237AOOZ.js} +3 -3
  100. package/dist/{renderer-A2YWSBPY.js → renderer-LSJWYGOL.js} +7 -7
  101. package/dist/{renderer-PR3KLNST.js → renderer-LWXDMZOV.js} +5 -5
  102. package/dist/{renderer-3FB56573.js → renderer-MYSVPERC.js} +5 -5
  103. package/dist/{renderer-FGGDZZFQ.js → renderer-OL5QSZPC.js} +6 -6
  104. package/dist/{renderer-XBL6CLN2.js → renderer-P26HH3NA.js} +5 -5
  105. package/dist/{renderer-D7N7PPB7.js → renderer-R5HIRN2M.js} +3 -3
  106. package/dist/{renderer-BUEFD2IF.js → renderer-RNFECJ5D.js} +5 -5
  107. package/dist/{renderer-F24V3RD3.js → renderer-RPZVNCTF.js} +5 -5
  108. package/dist/{renderer-PIEPRK6M.js → renderer-SDNWZDUY.js} +5 -5
  109. package/dist/{renderer-RUHC6D3B.js → renderer-UKHH4UWV.js} +5 -5
  110. package/dist/{renderer-CGOPX4HW.js → renderer-VF7X66SL.js} +5 -5
  111. package/dist/{renderer-ZAJ5353N.js → renderer-Y3Y7PEUS.js} +3 -3
  112. package/dist/{renderer-radial-MZP3SVTZ.js → renderer-radial-QNGCGKZP.js} +5 -5
  113. package/dist/{state-renderer-454ADT7E.js → state-renderer-ELWDRXD6.js} +7 -7
  114. package/dist/{tag-groups-DrHT2tEc.d.ts → tag-groups-BAtkq0b_.d.ts} +39 -1
  115. package/dist/{themes-GWhsabnx.d.ts → themes-DpsyRSO7.d.ts} +2 -2
  116. package/docs/language-reference.md +3 -3
  117. package/gallery/fixtures/sketch.dgmo +1 -1
  118. package/package.json +5 -4
  119. package/dist/chunk-PDKUANDZ.js +0 -35
  120. package/dist/chunk-UTCPNJND.js +0 -7
@@ -3,13 +3,13 @@ import {
3
3
  } from "./chunk-EOYPX6SF.js";
4
4
  import {
5
5
  renderDataChartD3
6
- } from "./chunk-JL7BDLC6.js";
6
+ } from "./chunk-UH5YTZN7.js";
7
7
  import {
8
8
  computeQuadrantPointLabels
9
9
  } from "./chunk-L65WI4HO.js";
10
10
  import {
11
11
  renderTimeline
12
- } from "./chunk-YVDBBWEP.js";
12
+ } from "./chunk-QXMHBIQG.js";
13
13
  import {
14
14
  ScaleContext
15
15
  } from "./chunk-24YPR5EH.js";
@@ -24,13 +24,13 @@ import {
24
24
  renderChartTitle,
25
25
  resolveExportPalette,
26
26
  showTooltip
27
- } from "./chunk-UBW53CNS.js";
27
+ } from "./chunk-3E4YB6TY.js";
28
28
  import {
29
29
  legendInlineSupported
30
30
  } from "./chunk-MG3DE3VO.js";
31
31
  import {
32
32
  FONT_FAMILY
33
- } from "./chunk-UTCPNJND.js";
33
+ } from "./chunk-53SEVJQM.js";
34
34
  import {
35
35
  measureText,
36
36
  wrapTextToWidth
@@ -45,7 +45,7 @@ import {
45
45
  parseVenn,
46
46
  parseVisualization,
47
47
  parseWordcloud
48
- } from "./chunk-R5JPMW2F.js";
48
+ } from "./chunk-FTTB64OJ.js";
49
49
  import {
50
50
  resolveActiveTagGroup,
51
51
  tagAttrKey
@@ -1947,13 +1947,13 @@ 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-KYNLRE7S.js");
1950
+ const { parseDgmoChartType } = await import("./dgmo-router-A3LIHT6H.js");
1951
1951
  const detectedTypeRaw = parseDgmoChartType(content);
1952
1952
  const override = resolveArcChordOverride(content, detectedTypeRaw, palette);
1953
1953
  const renderContent = override?.content ?? content;
1954
1954
  const detectedType = override?.type ?? detectedTypeRaw;
1955
1955
  if (detectedType !== null) {
1956
- const { supportsD3DataChart, renderDataChartD3: renderDataChartD32 } = await import("./charts-d3-SQEVMIAM.js");
1956
+ const { supportsD3DataChart, renderDataChartD3: renderDataChartD32 } = await import("./charts-d3-HMEMHSSW.js");
1957
1957
  if (supportsD3DataChart(detectedType)) {
1958
1958
  return renderDataChartD32(renderContent, theme, palette);
1959
1959
  }
@@ -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-PR3OR3LO.js");
1981
- const { renderEventLineForExport } = await import("./renderer-MUW4G2N6.js");
1981
+ const { renderEventLineForExport } = await import("./renderer-5E2AH5TO.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 "";
@@ -1997,7 +1997,7 @@ async function exportEventLine(ctx) {
1997
1997
  async function exportBody(ctx) {
1998
1998
  const { content, theme, palette } = ctx;
1999
1999
  const { parseBody } = await import("./parser-WWRRG2DV.js");
2000
- const { renderBodyForExport } = await import("./renderer-BUEFD2IF.js");
2000
+ const { renderBodyForExport } = await import("./renderer-RNFECJ5D.js");
2001
2001
  const effectivePalette = await resolveExportPalette(theme, palette);
2002
2002
  const parsed = parseBody(content, effectivePalette);
2003
2003
  if (parsed.error) return "";
@@ -2015,7 +2015,7 @@ async function exportBody(ctx) {
2015
2015
  async function exportVersionControl(ctx) {
2016
2016
  const { content, theme, palette } = ctx;
2017
2017
  const { parseVersionControl } = await import("./parser-4DLU4SNG.js");
2018
- const { renderVersionControlForExport } = await import("./renderer-QAMOXOZ2.js");
2018
+ const { renderVersionControlForExport } = await import("./renderer-GHBF5PRH.js");
2019
2019
  const effectivePalette = await resolveExportPalette(theme, palette);
2020
2020
  const parsed = parseVersionControl(content, effectivePalette);
2021
2021
  if (parsed.error || parsed.nodes.length === 0) return "";
@@ -2042,7 +2042,7 @@ async function exportOrg(ctx) {
2042
2042
  const { parseOrg, findOrgNodeIdByName } = await import("./parser-QOIZGW7I.js");
2043
2043
  const { layoutOrg } = await import("./layout-5ILNODTP.js");
2044
2044
  const { collapseOrgTree, focusOrgTree, unionCollapsedOrgNodes } = await import("./collapse-JRGPUE67.js");
2045
- const { renderOrg, ancestorTrailReserve } = await import("./renderer-FGGDZZFQ.js");
2045
+ const { renderOrg, ancestorTrailReserve } = await import("./renderer-OL5QSZPC.js");
2046
2046
  const isDark = ctx.isDark;
2047
2047
  const effectivePalette = await resolveExportPalette(theme, palette);
2048
2048
  const orgParsed = parseOrg(content, effectivePalette);
@@ -2106,7 +2106,7 @@ async function exportSitemap(ctx) {
2106
2106
  const { parseSitemap } = await import("./parser-2GMHFSTS.js");
2107
2107
  const { layoutSitemap } = await import("./layout-VUZ3MLOI.js");
2108
2108
  const { collapseSitemapTree } = await import("./collapse-ZWUFFCK2.js");
2109
- const { renderSitemap } = await import("./renderer-JMJ7Q5OC.js");
2109
+ const { renderSitemap } = await import("./renderer-IR5655M7.js");
2110
2110
  const isDark = ctx.isDark;
2111
2111
  const effectivePalette = await resolveExportPalette(theme, palette);
2112
2112
  const sitemapParsed = parseSitemap(content, effectivePalette);
@@ -2156,7 +2156,7 @@ async function exportSitemap(ctx) {
2156
2156
  async function exportKanban(ctx) {
2157
2157
  const { content, theme, palette, viewState, exportMode } = ctx;
2158
2158
  const { parseKanban } = await import("./parser-6FUESG4N.js");
2159
- const { renderKanban } = await import("./renderer-UUP6OX6F.js");
2159
+ const { renderKanban } = await import("./renderer-4BF6ILP6.js");
2160
2160
  const effectivePalette = await resolveExportPalette(theme, palette);
2161
2161
  const kanbanParsed = parseKanban(content, effectivePalette);
2162
2162
  if (kanbanParsed.error || kanbanParsed.columns.length === 0) return "";
@@ -2187,9 +2187,9 @@ async function exportKanban(ctx) {
2187
2187
  }
2188
2188
  async function exportClass(ctx) {
2189
2189
  const { content, theme, palette, exportMode } = ctx;
2190
- const { parseClassDiagram } = await import("./parser-JYIZEKAS.js");
2190
+ const { parseClassDiagram } = await import("./parser-ZYAFHXKQ.js");
2191
2191
  const { layoutClassDiagram } = await import("./layout-ROORJQ4X.js");
2192
- const { renderClassDiagram } = await import("./renderer-A2YWSBPY.js");
2192
+ const { renderClassDiagram } = await import("./renderer-LSJWYGOL.js");
2193
2193
  const effectivePalette = await resolveExportPalette(theme, palette);
2194
2194
  const classParsed = parseClassDiagram(content, effectivePalette);
2195
2195
  if (classParsed.error || classParsed.classes.length === 0) return "";
@@ -2216,7 +2216,7 @@ async function exportEr(ctx) {
2216
2216
  const { content, theme, palette, viewState, exportMode } = ctx;
2217
2217
  const { parseERDiagram } = await import("./parser-EQ4I3TSH.js");
2218
2218
  const { layoutERDiagram } = await import("./layout-KQUSB45X.js");
2219
- const { renderERDiagram } = await import("./renderer-LBNVKVO3.js");
2219
+ const { renderERDiagram } = await import("./renderer-2RIIIO34.js");
2220
2220
  const effectivePalette = await resolveExportPalette(theme, palette);
2221
2221
  const erParsed = parseERDiagram(content, effectivePalette);
2222
2222
  if (erParsed.error || erParsed.tables.length === 0) return "";
@@ -2248,14 +2248,14 @@ async function exportEr(ctx) {
2248
2248
  }
2249
2249
  async function exportSketch(ctx) {
2250
2250
  const { content, theme, viewState, exportMode } = ctx;
2251
- const { parseSketch } = await import("./parser-LUOINP6H.js");
2251
+ const { parseSketch } = await import("./parser-QYAIFXLP.js");
2252
2252
  const effectivePalette = await resolveExportPalette(theme, ctx.palette);
2253
2253
  const parsed = parseSketch(content, effectivePalette);
2254
2254
  if (parsed.error || parsed.nodes.length === 0 && parsed.boxes.length === 0) {
2255
2255
  return "";
2256
2256
  }
2257
- const { layoutSketch } = await import("./layout-DAYQ46PS.js");
2258
- const { renderSketchForExport } = await import("./renderer-DKW273R7.js");
2257
+ const { layoutSketch } = await import("./layout-Y2V3LYV7.js");
2258
+ const { renderSketchForExport } = await import("./renderer-62SLWRYF.js");
2259
2259
  const collapsedBoxes = viewState?.cg ? new Set(viewState.cg) : void 0;
2260
2260
  const skLayout = layoutSketch(parsed, {
2261
2261
  ...collapsedBoxes !== void 0 && { collapsedBoxes }
@@ -2293,7 +2293,7 @@ async function exportBoxesAndLines(ctx) {
2293
2293
  blHiddenTagValues.set(k, new Set(v));
2294
2294
  }
2295
2295
  }
2296
- const { renderBoxesAndLinesForExport } = await import("./renderer-PR3KLNST.js");
2296
+ const { renderBoxesAndLinesForExport } = await import("./renderer-LWXDMZOV.js");
2297
2297
  const { layoutBoxesAndLines } = await import("./layout-B5GQVXXY.js");
2298
2298
  const blLayout = await layoutBoxesAndLines(blParsed);
2299
2299
  const PADDING = 20;
@@ -2325,7 +2325,7 @@ async function exportSwimlane(ctx) {
2325
2325
  const { content, theme, palette } = ctx;
2326
2326
  const { parseSwimlane } = await import("./parser-E3OHNNTH.js");
2327
2327
  const { layoutSwimlane } = await import("./layout-OHAIIXBC.js");
2328
- const { renderSwimlaneForExport } = await import("./renderer-4PNVGHVA.js");
2328
+ const { renderSwimlaneForExport } = await import("./renderer-L237AOOZ.js");
2329
2329
  const effectivePalette = await resolveExportPalette(theme, palette);
2330
2330
  const swimParsed = parseSwimlane(content, effectivePalette);
2331
2331
  if (swimParsed.error || swimParsed.nodes.length === 0) return "";
@@ -2357,7 +2357,7 @@ async function exportFamily(ctx) {
2357
2357
  const { content, theme, palette } = ctx;
2358
2358
  const { parseFamily } = await import("./parser-3AOMUX5D.js");
2359
2359
  const { layoutFamily } = await import("./layout-6SKHNQYO.js");
2360
- const { renderFamilyForExport } = await import("./renderer-PKRKLOYR.js");
2360
+ const { renderFamilyForExport } = await import("./renderer-3HFU3DTO.js");
2361
2361
  const effectivePalette = await resolveExportPalette(theme, palette);
2362
2362
  const parsed = parseFamily(content, effectivePalette);
2363
2363
  if (parsed.error || parsed.persons.size === 0) return "";
@@ -2390,7 +2390,7 @@ async function exportMindmap(ctx) {
2390
2390
  const { parseMindmap } = await import("./parser-LV7PQBUG.js");
2391
2391
  const { layoutMindmap } = await import("./layout-RV2T2YTT.js");
2392
2392
  const { collapseMindmapTree } = await import("./collapse-SLINJQW6.js");
2393
- const { renderMindmap } = await import("./renderer-GJDVPXI3.js");
2393
+ const { renderMindmap } = await import("./renderer-D6GJ6EVK.js");
2394
2394
  const isDark = ctx.isDark;
2395
2395
  const effectivePalette = await resolveExportPalette(theme, palette);
2396
2396
  const mmParsed = parseMindmap(content, effectivePalette);
@@ -2442,7 +2442,7 @@ async function exportWireframe(ctx) {
2442
2442
  const { content, theme, palette } = ctx;
2443
2443
  const { parseWireframe } = await import("./parser-WMJEPZDC.js");
2444
2444
  const { layoutWireframe } = await import("./layout-IN53LAE6.js");
2445
- const { renderWireframe } = await import("./renderer-FUJNSC5X.js");
2445
+ const { renderWireframe } = await import("./renderer-2ANDPQWC.js");
2446
2446
  const effectivePalette = await resolveExportPalette(theme, palette);
2447
2447
  const wireframeParsed = parseWireframe(content);
2448
2448
  if (wireframeParsed.error || wireframeParsed.roots.length === 0 && wireframeParsed.modals.length === 0)
@@ -2472,7 +2472,7 @@ async function exportC4(ctx) {
2472
2472
  layoutC4Components,
2473
2473
  layoutC4Deployment
2474
2474
  } = await import("./layout-ZAGUFT2G.js");
2475
- const { renderC4Context, renderC4Containers } = await import("./renderer-GF6S5ZX6.js");
2475
+ const { renderC4Context, renderC4Containers } = await import("./renderer-G2DPKJAN.js");
2476
2476
  const effectivePalette = await resolveExportPalette(theme, palette);
2477
2477
  const c4Parsed = parseC4(content, effectivePalette);
2478
2478
  if (c4Parsed.error || c4Parsed.elements.length === 0) return "";
@@ -2506,9 +2506,9 @@ async function exportC4(ctx) {
2506
2506
  }
2507
2507
  async function exportFlowchart(ctx) {
2508
2508
  const { content, theme, palette } = ctx;
2509
- const { parseFlowchart } = await import("./flowchart-parser-LY5GGQL2.js");
2510
- const { layoutGraph } = await import("./layout-UJ62RQQ3.js");
2511
- const { renderFlowchart } = await import("./flowchart-renderer-RIJ5FZKO.js");
2509
+ const { parseFlowchart } = await import("./flowchart-parser-NVBP3C5D.js");
2510
+ const { layoutGraph } = await import("./layout-2OJ25STS.js");
2511
+ const { renderFlowchart } = await import("./flowchart-renderer-BBJUPORB.js");
2512
2512
  const effectivePalette = await resolveExportPalette(theme, palette);
2513
2513
  const fcParsed = parseFlowchart(content, effectivePalette);
2514
2514
  if (fcParsed.error || fcParsed.nodes.length === 0) return "";
@@ -2527,10 +2527,10 @@ async function exportFlowchart(ctx) {
2527
2527
  }
2528
2528
  async function exportInfra(ctx) {
2529
2529
  const { content, theme, palette, viewState } = ctx;
2530
- const { parseInfra } = await import("./parser-L7RXUKYN.js");
2530
+ const { parseInfra } = await import("./parser-WVE6SKB7.js");
2531
2531
  const { computeInfra } = await import("./compute-JAP5E2E4.js");
2532
2532
  const { layoutInfra } = await import("./layout-4LNMXLVK.js");
2533
- const { renderInfra, computeInfraLegendGroups } = await import("./renderer-WDSBFDQ2.js");
2533
+ const { renderInfra, computeInfraLegendGroups } = await import("./renderer-ANJUDBOS.js");
2534
2534
  const effectivePalette = await resolveExportPalette(theme, palette);
2535
2535
  const infraParsed = parseInfra(content);
2536
2536
  if (infraParsed.error || infraParsed.nodes.length === 0) return "";
@@ -2580,7 +2580,7 @@ async function exportPert(ctx) {
2580
2580
  const { parsePert } = await import("./parser-ZT3PU2HT.js");
2581
2581
  const { analyzePert } = await import("./analyzer-QTDQEMS5.js");
2582
2582
  const { layoutPert } = await import("./layout-SGYR6HBX.js");
2583
- const { renderPert, measurePertAnalysisBlock } = await import("./renderer-KMOGGMM7.js");
2583
+ const { renderPert, measurePertAnalysisBlock } = await import("./renderer-DNFV2IQI.js");
2584
2584
  const effectivePalette = await resolveExportPalette(theme, palette);
2585
2585
  const pertParsed = parsePert(content, { palette: effectivePalette });
2586
2586
  if (pertParsed.error || pertParsed.activities.length === 0) return "";
@@ -2625,7 +2625,7 @@ async function exportGantt(ctx) {
2625
2625
  const { content, theme, palette, viewState, exportMode } = ctx;
2626
2626
  const { parseGantt } = await import("./parser-5XFGK5C5.js");
2627
2627
  const { calculateSchedule } = await import("./calculator-CVQ54JNE.js");
2628
- const { renderGantt } = await import("./renderer-F24V3RD3.js");
2628
+ const { renderGantt } = await import("./renderer-RPZVNCTF.js");
2629
2629
  const effectivePalette = await resolveExportPalette(theme, palette);
2630
2630
  const ganttParsed = parseGantt(content, effectivePalette);
2631
2631
  const resolved = calculateSchedule(ganttParsed);
@@ -2667,8 +2667,8 @@ async function exportGantt(ctx) {
2667
2667
  async function exportState(ctx) {
2668
2668
  const { content, theme, palette, viewState } = ctx;
2669
2669
  const { parseState } = await import("./state-parser-TPA67IXM.js");
2670
- const { layoutGraph } = await import("./layout-UJ62RQQ3.js");
2671
- const { renderState } = await import("./state-renderer-454ADT7E.js");
2670
+ const { layoutGraph } = await import("./layout-2OJ25STS.js");
2671
+ const { renderState } = await import("./state-renderer-ELWDRXD6.js");
2672
2672
  const { collapseStateGroups } = await import("./state-collapse-HCGD6IVJ.js");
2673
2673
  const effectivePalette = await resolveExportPalette(theme, palette);
2674
2674
  const stateParsed = parseState(content, effectivePalette);
@@ -2706,7 +2706,7 @@ async function exportState(ctx) {
2706
2706
  async function exportTechRadar(ctx) {
2707
2707
  const { content, theme, palette, viewState, exportMode } = ctx;
2708
2708
  const { parseTechRadar } = await import("./parser-3KQONLXZ.js");
2709
- const { renderTechRadarForExport } = await import("./renderer-3FB56573.js");
2709
+ const { renderTechRadarForExport } = await import("./renderer-MYSVPERC.js");
2710
2710
  const effectivePalette = await resolveExportPalette(theme, palette);
2711
2711
  const radarParsed = parseTechRadar(content);
2712
2712
  if (radarParsed.error || radarParsed.quadrants.length === 0) return "";
@@ -2727,7 +2727,7 @@ async function exportTechRadar(ctx) {
2727
2727
  async function exportJourneyMap(ctx) {
2728
2728
  const { content, theme, palette, exportMode } = ctx;
2729
2729
  const { parseJourneyMap } = await import("./parser-ML3LVNDV.js");
2730
- const { renderJourneyMap } = await import("./renderer-XBL6CLN2.js");
2730
+ const { renderJourneyMap } = await import("./renderer-P26HH3NA.js");
2731
2731
  const { layoutJourneyMap } = await import("./layout-EM4DLMAX.js");
2732
2732
  const effectivePalette = await resolveExportPalette(theme, palette);
2733
2733
  const jmParsed = parseJourneyMap(content, effectivePalette);
@@ -2749,7 +2749,7 @@ async function exportJourneyMap(ctx) {
2749
2749
  async function exportCycle(ctx) {
2750
2750
  const { content, theme, palette, viewState, exportMode } = ctx;
2751
2751
  const { parseCycle } = await import("./parser-WCFG3DZA.js");
2752
- const { renderCycleForExport } = await import("./renderer-5W3HWIUL.js");
2752
+ const { renderCycleForExport } = await import("./renderer-GZLRX764.js");
2753
2753
  const effectivePalette = await resolveExportPalette(theme, palette);
2754
2754
  const cycleParsed = parseCycle(content);
2755
2755
  if (cycleParsed.error || cycleParsed.nodes.length === 0) return "";
@@ -2769,8 +2769,8 @@ async function exportMap(ctx) {
2769
2769
  const { content, theme, palette, options } = ctx;
2770
2770
  const { parseMap } = await import("./parser-GCVSRQPY.js");
2771
2771
  const { resolveMap } = await import("./resolver-H5E6V7LJ.js");
2772
- const { renderMapForExport } = await import("./renderer-73QHYZ2Q.js");
2773
- const { mapExportDimensions } = await import("./dimensions-NLQ64ED5.js");
2772
+ const { renderMapForExport } = await import("./renderer-EFQSMHID.js");
2773
+ const { mapExportDimensions } = await import("./dimensions-OFF4GRFL.js");
2774
2774
  const effectivePalette = await resolveExportPalette(theme, palette);
2775
2775
  const mapParsed = parseMap(content, effectivePalette);
2776
2776
  const { data: mapData, reason } = await resolveMapDataSource(
@@ -2804,7 +2804,7 @@ async function exportMap(ctx) {
2804
2804
  async function exportPyramid(ctx) {
2805
2805
  const { content, theme, palette } = ctx;
2806
2806
  const { parsePyramid } = await import("./parser-B2XQNHZM.js");
2807
- const { renderPyramidForExport } = await import("./renderer-4EWGZLJ6.js");
2807
+ const { renderPyramidForExport } = await import("./renderer-2NYQDW37.js");
2808
2808
  const effectivePalette = await resolveExportPalette(theme, palette);
2809
2809
  const pyramidParsed = parsePyramid(content);
2810
2810
  if (pyramidParsed.error || pyramidParsed.layers.length === 0) return "";
@@ -2821,7 +2821,7 @@ async function exportPyramid(ctx) {
2821
2821
  async function exportRing(ctx) {
2822
2822
  const { content, theme, palette } = ctx;
2823
2823
  const { parseRing } = await import("./parser-XVSDFO56.js");
2824
- const { renderRingForExport } = await import("./renderer-ZAJ5353N.js");
2824
+ const { renderRingForExport } = await import("./renderer-Y3Y7PEUS.js");
2825
2825
  const effectivePalette = await resolveExportPalette(theme, palette);
2826
2826
  const ringParsed = parseRing(content);
2827
2827
  if (ringParsed.error || ringParsed.layers.length === 0) return "";
@@ -2841,7 +2841,7 @@ async function exportTreemap(ctx) {
2841
2841
  const container = createExportContainer(ctx.width, ctx.height);
2842
2842
  const dims = { width: ctx.width, height: ctx.height };
2843
2843
  if (treemapParsed.options.radial) {
2844
- const { renderTreemapRadialForExport } = await import("./renderer-radial-MZP3SVTZ.js");
2844
+ const { renderTreemapRadialForExport } = await import("./renderer-radial-QNGCGKZP.js");
2845
2845
  renderTreemapRadialForExport(
2846
2846
  container,
2847
2847
  treemapParsed,
@@ -2850,7 +2850,7 @@ async function exportTreemap(ctx) {
2850
2850
  dims
2851
2851
  );
2852
2852
  } else {
2853
- const { renderTreemapForExport } = await import("./renderer-PIEPRK6M.js");
2853
+ const { renderTreemapForExport } = await import("./renderer-SDNWZDUY.js");
2854
2854
  renderTreemapForExport(
2855
2855
  container,
2856
2856
  treemapParsed,
@@ -2864,14 +2864,14 @@ async function exportTreemap(ctx) {
2864
2864
  async function exportLiveLink(ctx) {
2865
2865
  const { content, theme, palette } = ctx;
2866
2866
  const { parseLiveLink } = await import("./parser-WQNT7T2P.js");
2867
- const { renderLiveLinkCard } = await import("./renderer-UYYBJ7OB.js");
2867
+ const { renderLiveLinkCard } = await import("./renderer-EDVCGIQO.js");
2868
2868
  const effectivePalette = await resolveExportPalette(theme, palette);
2869
2869
  return renderLiveLinkCard(parseLiveLink(content), effectivePalette, theme);
2870
2870
  }
2871
2871
  async function exportBlock(ctx) {
2872
2872
  const { content, theme, palette } = ctx;
2873
2873
  const { parseBlock } = await import("./parser-UTR5WE4O.js");
2874
- const { renderBlockForExport } = await import("./renderer-UYZSP7MF.js");
2874
+ const { renderBlockForExport } = await import("./renderer-2LDT4TUX.js");
2875
2875
  const effectivePalette = await resolveExportPalette(theme, palette);
2876
2876
  const blockParsed = parseBlock(content, effectivePalette);
2877
2877
  if (blockParsed.error || blockParsed.top.rows.length === 0) return "";
@@ -2885,7 +2885,7 @@ async function exportBlock(ctx) {
2885
2885
  async function exportGoal(ctx) {
2886
2886
  const { content, theme, palette } = ctx;
2887
2887
  const { parseGoal } = await import("./parser-4KFJKLP2.js");
2888
- const { renderGoalForExport } = await import("./renderer-CO5O5VR5.js");
2888
+ const { renderGoalForExport } = await import("./renderer-H2HYLFN3.js");
2889
2889
  const effectivePalette = await resolveExportPalette(theme, palette);
2890
2890
  const parsed = parseGoal(content, effectivePalette);
2891
2891
  if (parsed.error) return "";
@@ -2899,7 +2899,7 @@ async function exportGoal(ctx) {
2899
2899
  async function exportCountdown(ctx) {
2900
2900
  const { content, theme, palette } = ctx;
2901
2901
  const { parseCountdown } = await import("./parser-ZXQZZK6W.js");
2902
- const { renderCountdownForExport } = await import("./renderer-EP4GRCDX.js");
2902
+ const { renderCountdownForExport } = await import("./renderer-FTX67CYZ.js");
2903
2903
  const effectivePalette = await resolveExportPalette(theme, palette);
2904
2904
  const parsed = parseCountdown(content, effectivePalette);
2905
2905
  if (parsed.error) return "";
@@ -2913,7 +2913,7 @@ async function exportCountdown(ctx) {
2913
2913
  async function exportClock(ctx) {
2914
2914
  const { content, theme, palette } = ctx;
2915
2915
  const { parseClock } = await import("./parser-F4ZKDGUZ.js");
2916
- const { renderClockForExport } = await import("./renderer-OTHBTGBN.js");
2916
+ const { renderClockForExport } = await import("./renderer-CVWQD442.js");
2917
2917
  const effectivePalette = await resolveExportPalette(theme, palette);
2918
2918
  const parsed = parseClock(content, effectivePalette);
2919
2919
  if (parsed.error) return "";
@@ -2927,7 +2927,7 @@ async function exportClock(ctx) {
2927
2927
  async function exportBracket(ctx) {
2928
2928
  const { content, theme, palette } = ctx;
2929
2929
  const { parseBracket } = await import("./parser-CJNP7RKR.js");
2930
- const { renderBracketForExport, bracketExportDimensions } = await import("./renderer-RUHC6D3B.js");
2930
+ const { renderBracketForExport, bracketExportDimensions } = await import("./renderer-UKHH4UWV.js");
2931
2931
  const effectivePalette = await resolveExportPalette(theme, palette);
2932
2932
  const parsed = parseBracket(content, effectivePalette);
2933
2933
  if (parsed.error) return "";
@@ -2942,7 +2942,7 @@ async function exportBracket(ctx) {
2942
2942
  async function exportRaci(ctx) {
2943
2943
  const { content, theme, palette } = ctx;
2944
2944
  const { parseRaci } = await import("./parser-H4ZUNLX4.js");
2945
- const { renderRaciForExport } = await import("./renderer-D7N7PPB7.js");
2945
+ const { renderRaciForExport } = await import("./renderer-R5HIRN2M.js");
2946
2946
  const effectivePalette = await resolveExportPalette(theme, palette);
2947
2947
  const raciParsed = parseRaci(content, effectivePalette);
2948
2948
  if (raciParsed.error) return "";
@@ -3075,7 +3075,7 @@ async function exportVisualization(ctx) {
3075
3075
  const isDark = ctx.isDark;
3076
3076
  const container = createExportContainer(ctx.width, ctx.height);
3077
3077
  const { parseSequenceDgmo } = await import("./parser-L7T7FY3H.js");
3078
- const { renderSequenceDiagram } = await import("./renderer-CGOPX4HW.js");
3078
+ const { renderSequenceDiagram } = await import("./renderer-VF7X66SL.js");
3079
3079
  const seqParsed = parseSequenceDgmo(content, effectivePalette);
3080
3080
  if (seqParsed.error || seqParsed.participants.length === 0) return "";
3081
3081
  const collapsedSections = viewState?.cs ? new Set(viewState.cs) : void 0;
@@ -3340,7 +3340,9 @@ var HOVER_SPECS = {
3340
3340
  hoverAttr: "data-activity-id",
3341
3341
  edgeSelector: ".pert-edge",
3342
3342
  fromAttr: "data-source",
3343
- toAttr: "data-target"
3343
+ toAttr: "data-target",
3344
+ legend: true,
3345
+ emphasis: "dim"
3344
3346
  },
3345
3347
  // ── CROSS-FREE tag-group charts — active group discovered at scan time ──
3346
3348
  // The mark carries `data-tag-<slug>` for the ONE active tag group; the
@@ -3389,7 +3391,9 @@ var HOVER_SPECS = {
3389
3391
  hoverAttr: "data-node-id",
3390
3392
  edgeSelector: ".st-edge-group",
3391
3393
  fromAttr: "data-source",
3392
- toAttr: "data-target"
3394
+ toAttr: "data-target",
3395
+ legend: true,
3396
+ emphasis: "dim"
3393
3397
  },
3394
3398
  "boxes-and-lines": {
3395
3399
  markSelector: ".bl-node",
@@ -3451,7 +3455,9 @@ var HOVER_SPECS = {
3451
3455
  hoverAttr: "data-node-id",
3452
3456
  edgeSelector: ".er-edge-group",
3453
3457
  fromAttr: "data-source",
3454
- toAttr: "data-target"
3458
+ toAttr: "data-target",
3459
+ legend: true,
3460
+ emphasis: "dim"
3455
3461
  },
3456
3462
  org: {
3457
3463
  markSelector: ".org-node",
@@ -3806,4 +3812,4 @@ export {
3806
3812
  renderForExport,
3807
3813
  render
3808
3814
  };
3809
- //# sourceMappingURL=chunk-M3IVOGZE.js.map
3815
+ //# sourceMappingURL=chunk-HDLRRY3N.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  buildMapProjection
3
- } from "./chunk-BFTRW24X.js";
3
+ } from "./chunk-WHWUVDYK.js";
4
4
  import {
5
5
  TITLE_FONT_SIZE,
6
6
  TITLE_Y
@@ -51,4 +51,4 @@ export {
51
51
  mapContentAspect,
52
52
  mapExportDimensions
53
53
  };
54
- //# sourceMappingURL=chunk-F4CPZRG2.js.map
54
+ //# sourceMappingURL=chunk-J76YDS4V.js.map
@@ -421,6 +421,7 @@ function looksLikeClassDiagram(content) {
421
421
  }
422
422
  function extractSymbols(docText) {
423
423
  const entities = [];
424
+ const seen = /* @__PURE__ */ new Set();
424
425
  let inMetadata = true;
425
426
  for (const rawLine of docText.split("\n")) {
426
427
  const line = rawLine.trim();
@@ -436,7 +437,10 @@ function extractSymbols(docText) {
436
437
  const m = CLASS_DECL_RE.exec(line);
437
438
  if (m) {
438
439
  const name = (m[2] ?? m[3] ?? "").trim();
439
- if (name && !entities.includes(name)) entities.push(name);
440
+ if (name && !seen.has(name)) {
441
+ seen.add(name);
442
+ entities.push(name);
443
+ }
440
444
  }
441
445
  }
442
446
  return {
@@ -450,4 +454,4 @@ export {
450
454
  looksLikeClassDiagram,
451
455
  extractSymbols
452
456
  };
453
- //# sourceMappingURL=chunk-SUA56ZSB.js.map
457
+ //# sourceMappingURL=chunk-LTTZX6RD.js.map
@@ -13,6 +13,8 @@ import {
13
13
  stripInlineMarkdown
14
14
  } from "./chunk-WGC42WJU.js";
15
15
  import {
16
+ CARD_RADIUS,
17
+ CONTAINER_RADIUS,
16
18
  EDGE_LABEL_KNOCKOUT_OPACITY,
17
19
  EDGE_STROKE_WIDTH,
18
20
  NODE_STROKE_WIDTH
@@ -30,14 +32,14 @@ import {
30
32
  } from "./chunk-DEW62ON3.js";
31
33
  import {
32
34
  renderIntegratedLegend
33
- } from "./chunk-QT5UMFPE.js";
35
+ } from "./chunk-U4DS2ODO.js";
34
36
  import {
35
37
  getLegendExtent,
36
38
  getMaxLegendReservedHeight
37
- } from "./chunk-4SXHMFFP.js";
39
+ } from "./chunk-VRPV6QXR.js";
38
40
  import {
39
41
  FONT_FAMILY
40
- } from "./chunk-UTCPNJND.js";
42
+ } from "./chunk-53SEVJQM.js";
41
43
  import {
42
44
  CHAR_WIDTH_RATIO,
43
45
  measureText,
@@ -70,7 +72,7 @@ var DIAGRAM_PADDING = 20;
70
72
  var NODE_FONT_SIZE = 11;
71
73
  var MIN_NODE_FONT_SIZE = 9;
72
74
  var EDGE_LABEL_FONT_SIZE = 11;
73
- var NODE_RX = 8;
75
+ var NODE_RX = CARD_RADIUS;
74
76
  var COLLAPSE_BAR_HEIGHT = 4;
75
77
  var ARROWHEAD_W = 5;
76
78
  var ARROWHEAD_H = 4;
@@ -78,7 +80,7 @@ var DESC_FONT_SIZE = 10;
78
80
  var DESC_LINE_HEIGHT = 1.4;
79
81
  var MAX_DESC_LINES = 6;
80
82
  var NODE_TEXT_PADDING = 12;
81
- var GROUP_RX = 8;
83
+ var GROUP_RX = CONTAINER_RADIUS;
82
84
  var GROUP_LABEL_FONT_SIZE = 14;
83
85
  var GROUP_LABEL_ZONE = 32;
84
86
  var RAMP_FLOOR = 15;
@@ -838,4 +840,4 @@ export {
838
840
  renderBoxesAndLines,
839
841
  renderBoxesAndLinesForExport
840
842
  };
841
- //# sourceMappingURL=chunk-7EZ5AKBK.js.map
843
+ //# sourceMappingURL=chunk-LYJ53DBK.js.map
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-DEW62ON3.js";
8
8
  import {
9
9
  FONT_FAMILY
10
- } from "./chunk-UTCPNJND.js";
10
+ } from "./chunk-53SEVJQM.js";
11
11
  import {
12
12
  measureText
13
13
  } from "./chunk-MTGGOCND.js";
@@ -554,4 +554,4 @@ function renderModal(parent, node, ctx) {
554
554
  export {
555
555
  renderWireframe
556
556
  };
557
- //# sourceMappingURL=chunk-JQ575OAK.js.map
557
+ //# sourceMappingURL=chunk-MZEGUDTA.js.map
@@ -5,7 +5,7 @@ import {
5
5
  import {
6
6
  extractExportSvg,
7
7
  runInExportContainer
8
- } from "./chunk-VV6HZQ5K.js";
8
+ } from "./chunk-YM5RMLFO.js";
9
9
  import {
10
10
  renderInlineText
11
11
  } from "./chunk-WGC42WJU.js";
@@ -26,14 +26,14 @@ import {
26
26
  } from "./chunk-DEW62ON3.js";
27
27
  import {
28
28
  renderIntegratedLegend
29
- } from "./chunk-QT5UMFPE.js";
29
+ } from "./chunk-U4DS2ODO.js";
30
30
  import {
31
31
  getLegendExtent,
32
32
  getMaxLegendReservedHeight
33
- } from "./chunk-4SXHMFFP.js";
33
+ } from "./chunk-VRPV6QXR.js";
34
34
  import {
35
35
  FONT_FAMILY
36
- } from "./chunk-UTCPNJND.js";
36
+ } from "./chunk-53SEVJQM.js";
37
37
  import {
38
38
  LEGEND_GROUP_GAP
39
39
  } from "./chunk-YT5ICQ4R.js";
@@ -426,4 +426,4 @@ export {
426
426
  renderMindmap,
427
427
  renderMindmapForExport
428
428
  };
429
- //# sourceMappingURL=chunk-IHUOYDLN.js.map
429
+ //# sourceMappingURL=chunk-N5NQIZ56.js.map
@@ -283,6 +283,10 @@ function layoutGraph(graph, options) {
283
283
  for (const group of layoutGroups) {
284
284
  extend(group.x, group.y, group.x + group.width, group.y + group.height);
285
285
  }
286
+ for (const edge of layoutEdges) {
287
+ if (edge.source !== edge.target) continue;
288
+ for (const pt of edge.points) extend(pt.x, pt.y, pt.x, pt.y);
289
+ }
286
290
  if (!Number.isFinite(bbMinX)) {
287
291
  bbMinX = 0;
288
292
  bbMinY = 0;
@@ -311,4 +315,4 @@ function layoutGraph(graph, options) {
311
315
  export {
312
316
  layoutGraph
313
317
  };
314
- //# sourceMappingURL=chunk-GE5RO4BS.js.map
318
+ //# sourceMappingURL=chunk-N6MZSBOL.js.map
@@ -452,6 +452,7 @@ function looksLikeFlowchart(content) {
452
452
  var NODE_ID_RE = /^([a-zA-Z_][\w-]*)[\s([</{]/;
453
453
  function extractSymbols(docText) {
454
454
  const entities = [];
455
+ const seen = /* @__PURE__ */ new Set();
455
456
  let inMetadata = true;
456
457
  for (const rawLine of docText.split("\n")) {
457
458
  const line = rawLine.trim();
@@ -460,7 +461,10 @@ function extractSymbols(docText) {
460
461
  inMetadata = false;
461
462
  if (line.length === 0 || /^\s/.test(rawLine)) continue;
462
463
  const m = NODE_ID_RE.exec(line);
463
- if (m && !entities.includes(m[1])) entities.push(m[1]);
464
+ if (m && !seen.has(m[1])) {
465
+ seen.add(m[1]);
466
+ entities.push(m[1]);
467
+ }
464
468
  }
465
469
  return { kind: "flowchart", entities };
466
470
  }
@@ -470,4 +474,4 @@ export {
470
474
  looksLikeFlowchart,
471
475
  extractSymbols
472
476
  };
473
- //# sourceMappingURL=chunk-DU3OIBQE.js.map
477
+ //# sourceMappingURL=chunk-NWNSXHA5.js.map
@@ -35,13 +35,13 @@ import {
35
35
  } from "./chunk-DEW62ON3.js";
36
36
  import {
37
37
  renderIntegratedLegend
38
- } from "./chunk-QT5UMFPE.js";
38
+ } from "./chunk-U4DS2ODO.js";
39
39
  import {
40
40
  getLegendExtent
41
- } from "./chunk-4SXHMFFP.js";
41
+ } from "./chunk-VRPV6QXR.js";
42
42
  import {
43
43
  FONT_FAMILY
44
- } from "./chunk-UTCPNJND.js";
44
+ } from "./chunk-53SEVJQM.js";
45
45
  import {
46
46
  LEGEND_HEIGHT
47
47
  } from "./chunk-YT5ICQ4R.js";
@@ -1708,4 +1708,4 @@ export {
1708
1708
  measurePertAnalysisBlock,
1709
1709
  renderPertAnalysisBlock
1710
1710
  };
1711
- //# sourceMappingURL=chunk-32MOGTKT.js.map
1711
+ //# sourceMappingURL=chunk-OO2L2LWV.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  FONT_FAMILY
3
- } from "./chunk-UTCPNJND.js";
3
+ } from "./chunk-53SEVJQM.js";
4
4
  import {
5
5
  measureText,
6
6
  truncateText
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-U7VO6JAA.js";
11
11
  import {
12
12
  parseDgmoChartType
13
- } from "./chunk-R5JPMW2F.js";
13
+ } from "./chunk-FTTB64OJ.js";
14
14
  import {
15
15
  chartTypes
16
16
  } from "./chunk-M5OOAP65.js";
@@ -204,4 +204,4 @@ export {
204
204
  MONO_FAMILY,
205
205
  renderErrorCard
206
206
  };
207
- //# sourceMappingURL=chunk-XCAEHWQB.js.map
207
+ //# sourceMappingURL=chunk-OZOHREFQ.js.map