@diagrammo/dgmo 0.64.1 → 0.65.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 (148) hide show
  1. package/LICENSE +1 -1
  2. package/dist/advanced.d.ts +6771 -0
  3. package/dist/advanced.js +71 -71
  4. package/dist/block.d.ts +142 -0
  5. package/dist/block.js +15 -15
  6. package/dist/chart-meta-D98NbYDp.d.ts +238 -0
  7. package/dist/chart-meta.d.ts +2 -0
  8. package/dist/chart-meta.js +3 -3
  9. package/dist/{charts-d3-ZTXJWEHI.js → charts-d3-I6OE5K3B.js} +9 -9
  10. package/dist/{chunk-C6DMG2V6.js → chunk-27YPE7NO.js} +28 -12
  11. package/dist/{chunk-RBAW7VUG.js → chunk-2EPV7CLY.js} +5 -7
  12. package/dist/{chunk-SCJ7CAJF.js → chunk-3HOCNSPD.js} +2 -2
  13. package/dist/{chunk-Z2ADWRSW.js → chunk-3PSPUYT5.js} +3 -3
  14. package/dist/{chunk-RBBJIHNL.js → chunk-4IE42ODL.js} +11 -11
  15. package/dist/{chunk-SMCUX42K.js → chunk-4TM7MWU4.js} +7 -6
  16. package/dist/{chunk-H3HFC3SQ.js → chunk-5GM6BZO7.js} +3 -3
  17. package/dist/{chunk-7T3A2UK3.js → chunk-5T7K6QND.js} +15 -16
  18. package/dist/{chunk-NKRCPBTJ.js → chunk-6BOPYGJC.js} +6 -6
  19. package/dist/{chunk-37EHGTQ2.js → chunk-6E5YZR4S.js} +18 -16
  20. package/dist/{chunk-MHI6W6XS.js → chunk-6IUL6LER.js} +10 -7
  21. package/dist/{chunk-S5RWWISJ.js → chunk-7L53J53J.js} +4 -4
  22. package/dist/{chunk-WDJ4HAGO.js → chunk-A6CTYC7O.js} +2 -2
  23. package/dist/{chunk-CDMF7P5A.js → chunk-BBCKUAUR.js} +2 -2
  24. package/dist/{chunk-AA4M6F2P.js → chunk-BBY57XAA.js} +3 -3
  25. package/dist/{chunk-NKRVFQGO.js → chunk-BDI25HWH.js} +18 -6
  26. package/dist/{chunk-SVR3YFM3.js → chunk-C666LP3O.js} +20 -15
  27. package/dist/{chunk-KRTO7NRK.js → chunk-D2WHS23S.js} +2 -2
  28. package/dist/{chunk-LYTEVE2N.js → chunk-DBF4IM4U.js} +20 -15
  29. package/dist/{chunk-PCWPYOT4.js → chunk-ET4R3AU5.js} +4 -4
  30. package/dist/{chunk-2KOBOIB2.js → chunk-FBD5ASMB.js} +2 -2
  31. package/dist/{chunk-ES66QH6J.js → chunk-FG24NXKN.js} +2 -2
  32. package/dist/{chunk-3CIOJ5YJ.js → chunk-FJ57274M.js} +3 -1
  33. package/dist/{chunk-6BVIZW5N.js → chunk-FLFBY5GN.js} +14 -12
  34. package/dist/{chunk-XUN3MIO3.js → chunk-G64OVYUT.js} +2 -2
  35. package/dist/{chunk-RQL25P3U.js → chunk-G7QZF6T3.js} +9 -9
  36. package/dist/{chunk-IGIJZHB6.js → chunk-GC7CBX6C.js} +6 -6
  37. package/dist/{chunk-B6AONGTI.js → chunk-GDQN2TPX.js} +21 -14
  38. package/dist/{chunk-CZUSH6NI.js → chunk-GMLSYNFP.js} +10 -9
  39. package/dist/{chunk-R6HCNSP6.js → chunk-GOW5VO6M.js} +2 -2
  40. package/dist/{chunk-SPHC4RYF.js → chunk-GXOMKWQ5.js} +10 -9
  41. package/dist/{chunk-MQHOKBJ6.js → chunk-IJ4FUFTR.js} +5 -5
  42. package/dist/{chunk-V3UQSKWJ.js → chunk-IJSFEU4J.js} +9 -9
  43. package/dist/{chunk-LSFZDBAP.js → chunk-IKHV5IJB.js} +2 -2
  44. package/dist/{chunk-LMXAB4YM.js → chunk-IZ6RWMBM.js} +9 -9
  45. package/dist/{chunk-6VJCURWU.js → chunk-J2EXBAPZ.js} +4 -5
  46. package/dist/{chunk-IX6N5MCY.js → chunk-JCL4K7AK.js} +12 -11
  47. package/dist/{chunk-OBKM6GIJ.js → chunk-JTUDM7S4.js} +10 -10
  48. package/dist/{chunk-CVVICCSB.js → chunk-L65WI4HO.js} +4 -4
  49. package/dist/{chunk-67D4MN2H.js → chunk-LK6LTSLH.js} +2 -2
  50. package/dist/{chunk-KOHIF4LD.js → chunk-MBODBL7C.js} +6 -5
  51. package/dist/chunk-MTGGOCND.js +638 -0
  52. package/dist/{chunk-VJARCVMH.js → chunk-MU3CJPJF.js} +2 -2
  53. package/dist/{chunk-RKTIIU7Z.js → chunk-N6XI5VTA.js} +4 -4
  54. package/dist/{chunk-ODUT5WMC.js → chunk-NVOU7N6C.js} +2 -2
  55. package/dist/{chunk-T4QXHE34.js → chunk-OWUWLZJT.js} +13 -11
  56. package/dist/{chunk-LDVUPGWC.js → chunk-OWVDD5EC.js} +2 -2
  57. package/dist/{chunk-M4HYPDER.js → chunk-P5OCINCI.js} +8 -8
  58. package/dist/{chunk-JU2VMFYC.js → chunk-PZOFMBF3.js} +2 -2
  59. package/dist/{chunk-YLK3JNWP.js → chunk-QNCXONBR.js} +2 -2
  60. package/dist/{chunk-DB2KQ5DN.js → chunk-QRWY5QTA.js} +5 -5
  61. package/dist/{chunk-I2ATN25N.js → chunk-R4XM44BW.js} +25 -16
  62. package/dist/{chunk-DJCZWQ2A.js → chunk-RTTZIX34.js} +4 -4
  63. package/dist/{chunk-OMTBYLKN.js → chunk-TPKNA2U5.js} +9 -7
  64. package/dist/{chunk-DN5HEDE4.js → chunk-TT5B36WO.js} +16 -20
  65. package/dist/{chunk-SF3JAWMY.js → chunk-TWILCDUE.js} +3 -3
  66. package/dist/{chunk-NIZM3LAG.js → chunk-UINRIO77.js} +10 -10
  67. package/dist/{chunk-5H2LIQIH.js → chunk-UJXCDF4E.js} +4 -4
  68. package/dist/{chunk-Z5ID35YP.js → chunk-UTCPNJND.js} +2 -4
  69. package/dist/{chunk-U42ZEK7L.js → chunk-V4BYBIBU.js} +24 -15
  70. package/dist/{chunk-L4IN4OBB.js → chunk-VLI5SYXW.js} +7 -7
  71. package/dist/{chunk-43E26CDA.js → chunk-VS2M72PF.js} +4 -4
  72. package/dist/{chunk-KZ3PCDUJ.js → chunk-VV6HZQ5K.js} +2 -2
  73. package/dist/{chunk-Z5BTSBWW.js → chunk-WF2HDQPG.js} +4 -4
  74. package/dist/{chunk-TAJ2XFTT.js → chunk-XKMCL2YJ.js} +19 -16
  75. package/dist/{chunk-7GUYGQR4.js → chunk-XVEPB2UU.js} +4 -4
  76. package/dist/{chunk-YHTKDIF2.js → chunk-YGFNITPC.js} +11 -11
  77. package/dist/{chunk-I24O2RWT.js → chunk-YJOOIOSR.js} +84 -14
  78. package/dist/{chunk-KPX2OWZR.js → chunk-YKWHUPBP.js} +13 -14
  79. package/dist/{chunk-FRC4LDTQ.js → chunk-YMYPFX4O.js} +36 -30
  80. package/dist/{chunk-VOJOARA6.js → chunk-ZZXPYVS4.js} +82 -77
  81. package/dist/cloud-reference.d.ts +96 -0
  82. package/dist/completion-registry.d.ts +129 -0
  83. package/dist/{dgmo-router-QWRF7ZKM.js → dgmo-router-464FE256.js} +4 -4
  84. package/dist/dgmo-router-Dd5PTjxl.d.ts +540 -0
  85. package/dist/{dimensions-ES6O2T4H.js → dimensions-ILAVBRQ3.js} +7 -7
  86. package/dist/{flowchart-renderer-EXMRHFTQ.js → flowchart-renderer-6JKM2FA4.js} +7 -7
  87. package/dist/index.d.ts +207 -0
  88. package/dist/index.js +15 -15
  89. package/dist/{layout-HBWT2G23.js → layout-4LNMXLVK.js} +3 -3
  90. package/dist/{layout-UU4VJTOP.js → layout-62ERBWCM.js} +3 -3
  91. package/dist/{layout-N6X46MWG.js → layout-6SKHNQYO.js} +4 -4
  92. package/dist/{layout-OH4VQ3OI.js → layout-7JULRP4Y.js} +4 -4
  93. package/dist/{layout-QTZO6CW5.js → layout-FA37VP7V.js} +4 -4
  94. package/dist/layout-IN53LAE6.js +9 -0
  95. package/dist/{layout-H4H4OFE4.js → layout-IO6ORC5T.js} +3 -3
  96. package/dist/{layout-54P3DAXY.js → layout-LVMWK4QY.js} +5 -5
  97. package/dist/{layout-WCOEZPOI.js → layout-MNOTDWXW.js} +4 -4
  98. package/dist/{layout-2T2VCCTM.js → layout-RD7GDM4I.js} +5 -5
  99. package/dist/{layout-SKQMIXTG.js → layout-SBQTN2YM.js} +4 -4
  100. package/dist/{layout-5E2NQZNM.js → layout-SGYR6HBX.js} +3 -3
  101. package/dist/{layout-W3ZBJOIK.js → layout-WIMQIHBU.js} +5 -5
  102. package/dist/{layout-search-AJ6VUVUI.js → layout-search-C44CJQOB.js} +5 -5
  103. package/dist/{legend-constants-QQU3QYBF.js → legend-constants-RGINV5SF.js} +3 -3
  104. package/dist/live-link-resolve.d.ts +73 -0
  105. package/dist/{parser-KSIYWKYF.js → parser-CSKF2KNO.js} +8 -4
  106. package/dist/{parser-2BGDJJ2L.js → parser-WLL63XH7.js} +2 -2
  107. package/dist/{renderer-XLEYPLVL.js → renderer-2UIQVKXK.js} +8 -8
  108. package/dist/{renderer-KOWVTTYR.js → renderer-3GG2DEFQ.js} +7 -7
  109. package/dist/{renderer-XLPNUOYA.js → renderer-6NDYVZXQ.js} +10 -10
  110. package/dist/{renderer-2ARNFXSC.js → renderer-6ST44AVP.js} +10 -10
  111. package/dist/{renderer-YLM4CGBG.js → renderer-ALP46W2X.js} +8 -8
  112. package/dist/{renderer-NHFRVCDC.js → renderer-AOFIEF2T.js} +9 -9
  113. package/dist/{renderer-HLWEJQJW.js → renderer-BEVY3UP5.js} +5 -5
  114. package/dist/{renderer-H6AQ4UIR.js → renderer-BXPWSNTJ.js} +13 -13
  115. package/dist/{renderer-BYWLJDT4.js → renderer-EWTETTII.js} +8 -8
  116. package/dist/{renderer-KK2534AF.js → renderer-FHXAWDNI.js} +4 -4
  117. package/dist/{renderer-OB77AT7V.js → renderer-FI4IKF4I.js} +7 -7
  118. package/dist/{renderer-DMVUBKP7.js → renderer-GHYH6DLG.js} +4 -4
  119. package/dist/{renderer-LSBXYOID.js → renderer-GYYJ4APT.js} +10 -10
  120. package/dist/{renderer-M43ROWET.js → renderer-JFOHE3YB.js} +9 -9
  121. package/dist/{renderer-OA7FSZ4A.js → renderer-L5QGQTLV.js} +3 -3
  122. package/dist/{renderer-7OOC2ZO2.js → renderer-L7S6YVM6.js} +4 -4
  123. package/dist/{renderer-YELZR4QT.js → renderer-LCHVBTV4.js} +12 -12
  124. package/dist/{renderer-IN3UPTZS.js → renderer-M4DAYNWC.js} +3 -3
  125. package/dist/{renderer-WN47AMUM.js → renderer-NXIK3LOA.js} +8 -8
  126. package/dist/{renderer-QR5343AR.js → renderer-OWUXQDHM.js} +3 -3
  127. package/dist/{renderer-FCO42JLK.js → renderer-PJNJOCLB.js} +8 -8
  128. package/dist/{renderer-OYTERGAO.js → renderer-QQBUBD66.js} +9 -9
  129. package/dist/{renderer-PM7JPC3J.js → renderer-REFE3YFH.js} +11 -11
  130. package/dist/{renderer-C6KOE774.js → renderer-RL2JGVPC.js} +10 -10
  131. package/dist/{renderer-ZNTLBQ45.js → renderer-RVFPPKWN.js} +9 -9
  132. package/dist/{renderer-QEHUJHRK.js → renderer-SFQHFPC5.js} +10 -10
  133. package/dist/{renderer-LO4FXQHP.js → renderer-T4CMBGA5.js} +8 -8
  134. package/dist/{renderer-M3PQKXK2.js → renderer-TJD6A3AK.js} +13 -13
  135. package/dist/{renderer-2E7LQC32.js → renderer-URPIVAPI.js} +3 -3
  136. package/dist/{renderer-T5CUGSXP.js → renderer-WENGQEX6.js} +7 -7
  137. package/dist/{renderer-WR3FA3FF.js → renderer-WR6J7NKH.js} +8 -8
  138. package/dist/{renderer-YBEZ5V2H.js → renderer-X3V2G4UL.js} +3 -3
  139. package/dist/{renderer-KPEQ72FY.js → renderer-YAW4VHAI.js} +11 -11
  140. package/dist/{renderer-radial-XWAKJACV.js → renderer-radial-HOUGPUPW.js} +7 -7
  141. package/dist/{state-renderer-LIESKSBO.js → state-renderer-JJSQJZEL.js} +11 -11
  142. package/dist/themes-DiUAG4Bf.d.ts +631 -0
  143. package/docs/ai-integration.md +1 -1
  144. package/docs/language-reference.md +5 -0
  145. package/gallery/fixtures/er.dgmo +1 -1
  146. package/package.json +5 -3
  147. package/dist/chunk-4ASYQ347.js +0 -185
  148. package/dist/layout-5XGYNYVT.js +0 -9
@@ -3,13 +3,13 @@ import {
3
3
  } from "./chunk-EOYPX6SF.js";
4
4
  import {
5
5
  renderDataChartD3
6
- } from "./chunk-7T3A2UK3.js";
6
+ } from "./chunk-5T7K6QND.js";
7
7
  import {
8
8
  computeQuadrantPointLabels
9
- } from "./chunk-CVVICCSB.js";
9
+ } from "./chunk-L65WI4HO.js";
10
10
  import {
11
11
  renderTimeline
12
- } from "./chunk-OMTBYLKN.js";
12
+ } from "./chunk-TPKNA2U5.js";
13
13
  import {
14
14
  ScaleContext
15
15
  } from "./chunk-YYVTBZZC.js";
@@ -24,17 +24,17 @@ import {
24
24
  renderChartTitle,
25
25
  resolveExportPalette,
26
26
  showTooltip
27
- } from "./chunk-67D4MN2H.js";
27
+ } from "./chunk-LK6LTSLH.js";
28
28
  import {
29
29
  legendInlineSupported
30
- } from "./chunk-6VJCURWU.js";
30
+ } from "./chunk-J2EXBAPZ.js";
31
31
  import {
32
32
  FONT_FAMILY
33
- } from "./chunk-Z5ID35YP.js";
33
+ } from "./chunk-UTCPNJND.js";
34
34
  import {
35
35
  measureText,
36
36
  wrapTextToWidth
37
- } from "./chunk-4ASYQ347.js";
37
+ } from "./chunk-MTGGOCND.js";
38
38
  import {
39
39
  getRenderCategory,
40
40
  parseArc,
@@ -45,7 +45,7 @@ import {
45
45
  parseVenn,
46
46
  parseVisualization,
47
47
  parseWordcloud
48
- } from "./chunk-AA4M6F2P.js";
48
+ } from "./chunk-BBY57XAA.js";
49
49
  import {
50
50
  resolveActiveTagGroup,
51
51
  tagAttrKey
@@ -710,7 +710,7 @@ function hasCanvas2d() {
710
710
  }
711
711
  }
712
712
  function estimateWordWidth(text, size) {
713
- return measureText(text, size);
713
+ return measureText(text, size, { bold: true });
714
714
  }
715
715
  function layoutWordsNoCanvas(words, width, height, padding, rotateFn) {
716
716
  const sorted = [...words].sort((a, b) => b.size - a.size);
@@ -1038,12 +1038,13 @@ function renderVenn(container, parsed, palette, _isDark, onClickItem, exportDims
1038
1038
  const lines = wrapTextToWidth(
1039
1039
  ov.label,
1040
1040
  OVERLAP_FONT,
1041
- OVERLAP_WRAP_TARGET_W
1041
+ OVERLAP_WRAP_TARGET_W,
1042
+ { bold: true }
1042
1043
  );
1043
1044
  wrappedOverlapLabels.set(ov, lines);
1044
1045
  const dir = predictOverlapDirRaw(idxs);
1045
1046
  const labelW = lines.reduce(
1046
- (m, l) => Math.max(m, measureText(l, OVERLAP_FONT)),
1047
+ (m, l) => Math.max(m, measureText(l, OVERLAP_FONT, { bold: true })),
1047
1048
  0
1048
1049
  );
1049
1050
  const labelH = lines.length * OVERLAP_LINE_H;
@@ -1203,12 +1204,12 @@ function renderVenn(container, parsed, palette, _isDark, onClickItem, exportDims
1203
1204
  const inside = circles.map((_, j) => j === i);
1204
1205
  const centroid = regionCentroid(circles, inside);
1205
1206
  const availW = exclusiveHSpan(centroid.x, centroid.y, i);
1206
- const textWidthPerPx = measureText(text, 1);
1207
+ const textWidthPerPx = measureText(text, 1, { bold: true });
1207
1208
  const fitFont = Math.min(
1208
1209
  MAX_FONT,
1209
1210
  Math.max(MIN_FONT, (availW - INTERNAL_PAD * 2) / textWidthPerPx)
1210
1211
  );
1211
- const estTextW = measureText(text, fitFont);
1212
+ const estTextW = measureText(text, fitFont, { bold: true });
1212
1213
  const fitsInside = estTextW + INTERNAL_PAD * 2 < availW && pointInCircle({ x: centroid.x, y: centroid.y - fitFont / 2 }, c) && pointInCircle({ x: centroid.x, y: centroid.y + fitFont / 2 }, c);
1213
1214
  const setKey = String(i);
1214
1215
  const labelG = labelGroup.append("g").style("cursor", "default").on("mouseenter", () => showRegionOverlay([i])).on("mouseleave", () => hideAllOverlays());
@@ -1243,7 +1244,7 @@ function renderVenn(container, parsed, palette, _isDark, onClickItem, exportDims
1243
1244
  const textAnchor = isRight ? "start" : "end";
1244
1245
  let textX = stubEndX + (isRight ? labelTextPad : -labelTextPad);
1245
1246
  const textY = stubEndY;
1246
- const estW = measureText(text, sSetLabelFont);
1247
+ const estW = measureText(text, sSetLabelFont, { bold: true });
1247
1248
  if (isRight) textX = Math.min(textX, width - estW - 4);
1248
1249
  else textX = Math.max(textX, estW + 4);
1249
1250
  const renderedTextY = Math.max(
@@ -1251,7 +1252,7 @@ function renderVenn(container, parsed, palette, _isDark, onClickItem, exportDims
1251
1252
  Math.min(height - 4, textY)
1252
1253
  );
1253
1254
  labelG.append("text").attr("x", textX).attr("y", renderedTextY).attr("text-anchor", textAnchor).attr("dominant-baseline", "central").attr("fill", textColor).attr("font-size", `${sSetLabelFont}px`).attr("font-weight", "bold").text(text);
1254
- const externalEstW = measureText(text, sSetLabelFont);
1255
+ const externalEstW = measureText(text, sSetLabelFont, { bold: true });
1255
1256
  setLabelBBoxes[i] = {
1256
1257
  x: isRight ? textX : textX - externalEstW,
1257
1258
  y: renderedTextY - sSetLabelFont / 2,
@@ -1422,7 +1423,7 @@ function renderVenn(container, parsed, palette, _isDark, onClickItem, exportDims
1422
1423
  textY = stubEndY + sign * OVERLAP_TEXT_GAP;
1423
1424
  }
1424
1425
  const blockW = lines.reduce(
1425
- (m, l) => Math.max(m, measureText(l, OVERLAP_FONT)),
1426
+ (m, l) => Math.max(m, measureText(l, OVERLAP_FONT, { bold: true })),
1426
1427
  0
1427
1428
  );
1428
1429
  const blockH = lines.length * OVERLAP_LINE_H;
@@ -1644,14 +1645,14 @@ function renderQuadrant(container, parsed, palette, isDark, onClickItem, exportD
1644
1645
  const quadrantLabelLayout = (text, qw2, qh2) => {
1645
1646
  const availW = qw2 - LABEL_PAD;
1646
1647
  const availH = qh2 - LABEL_PAD;
1647
- if (measureText(text, LABEL_MAX_FONT) <= availW) {
1648
+ if (measureText(text, LABEL_MAX_FONT, { bold: true }) <= availW) {
1648
1649
  const fs = Math.min(LABEL_MAX_FONT, availH);
1649
1650
  return {
1650
1651
  lines: [text],
1651
1652
  fontSize: Math.max(LABEL_MIN_FONT, Math.round(fs))
1652
1653
  };
1653
1654
  }
1654
- const wrapLines = (fs) => wrapTextToWidth(text, fs, availW);
1655
+ const wrapLines = (fs) => wrapTextToWidth(text, fs, availW, { bold: true });
1655
1656
  let lo = LABEL_MIN_FONT;
1656
1657
  let hi = LABEL_MAX_FONT;
1657
1658
  let bestLines = wrapLines(lo);
@@ -1660,7 +1661,9 @@ function renderQuadrant(container, parsed, palette, isDark, onClickItem, exportD
1660
1661
  const mid = Math.round((lo + hi) / 2);
1661
1662
  const lines = wrapLines(mid);
1662
1663
  const totalH = lines.length * mid * 1.2;
1663
- const maxLineW = Math.max(...lines.map((l) => measureText(l, mid)));
1664
+ const maxLineW = Math.max(
1665
+ ...lines.map((l) => measureText(l, mid, { bold: true }))
1666
+ );
1664
1667
  if (maxLineW <= availW && totalH <= availH) {
1665
1668
  bestFs = mid;
1666
1669
  bestLines = lines;
@@ -1801,7 +1804,9 @@ function renderQuadrant(container, parsed, palette, isDark, onClickItem, exportD
1801
1804
  { left: 0, top: 0, right: chartWidth, bottom: chartHeight },
1802
1805
  quadrantLabelObstacles,
1803
1806
  POINT_RADIUS,
1804
- POINT_LABEL_FONT_SIZE
1807
+ POINT_LABEL_FONT_SIZE,
1808
+ // Point labels are drawn at 700 here.
1809
+ true
1805
1810
  );
1806
1811
  const pointsG = chartG.append("g").attr("class", "points");
1807
1812
  quadrantPoints.forEach((point, i) => {
@@ -1942,13 +1947,13 @@ function resolveArcChordOverride(content, detectedType, palette) {
1942
1947
  }
1943
1948
  async function renderForExport(content, theme, palette, viewState, options) {
1944
1949
  const exportMode = options?.exportMode ?? false;
1945
- const { parseDgmoChartType } = await import("./dgmo-router-QWRF7ZKM.js");
1950
+ const { parseDgmoChartType } = await import("./dgmo-router-464FE256.js");
1946
1951
  const detectedTypeRaw = parseDgmoChartType(content);
1947
1952
  const override = resolveArcChordOverride(content, detectedTypeRaw, palette);
1948
1953
  const renderContent = override?.content ?? content;
1949
1954
  const detectedType = override?.type ?? detectedTypeRaw;
1950
1955
  if (detectedType !== null) {
1951
- const { supportsD3DataChart, renderDataChartD3: renderDataChartD32 } = await import("./charts-d3-ZTXJWEHI.js");
1956
+ const { supportsD3DataChart, renderDataChartD3: renderDataChartD32 } = await import("./charts-d3-I6OE5K3B.js");
1952
1957
  if (supportsD3DataChart(detectedType)) {
1953
1958
  return renderDataChartD32(renderContent, theme, palette);
1954
1959
  }
@@ -1973,7 +1978,7 @@ function ctxTagOverride(ctx) {
1973
1978
  async function exportEventLine(ctx) {
1974
1979
  const { content, theme, palette } = ctx;
1975
1980
  const { parseEventLine } = await import("./parser-OEBFJHT4.js");
1976
- const { renderEventLineForExport } = await import("./renderer-YELZR4QT.js");
1981
+ const { renderEventLineForExport } = await import("./renderer-LCHVBTV4.js");
1977
1982
  const effectivePalette = await resolveExportPalette(theme, palette);
1978
1983
  const parsed = parseEventLine(content, effectivePalette);
1979
1984
  if (parsed.error || parsed.events.length === 0) return "";
@@ -1992,7 +1997,7 @@ async function exportEventLine(ctx) {
1992
1997
  async function exportBody(ctx) {
1993
1998
  const { content, theme, palette } = ctx;
1994
1999
  const { parseBody } = await import("./parser-JZPSIWRC.js");
1995
- const { renderBodyForExport } = await import("./renderer-KOWVTTYR.js");
2000
+ const { renderBodyForExport } = await import("./renderer-3GG2DEFQ.js");
1996
2001
  const effectivePalette = await resolveExportPalette(theme, palette);
1997
2002
  const parsed = parseBody(content, effectivePalette);
1998
2003
  if (parsed.error) return "";
@@ -2010,7 +2015,7 @@ async function exportBody(ctx) {
2010
2015
  async function exportVersionControl(ctx) {
2011
2016
  const { content, theme, palette } = ctx;
2012
2017
  const { parseVersionControl } = await import("./parser-RBY2UFTE.js");
2013
- const { renderVersionControlForExport } = await import("./renderer-YBEZ5V2H.js");
2018
+ const { renderVersionControlForExport } = await import("./renderer-X3V2G4UL.js");
2014
2019
  const effectivePalette = await resolveExportPalette(theme, palette);
2015
2020
  const parsed = parseVersionControl(content, effectivePalette);
2016
2021
  if (parsed.error || parsed.nodes.length === 0) return "";
@@ -2035,9 +2040,9 @@ function unionHiddenAttributes(hideOption, ha) {
2035
2040
  async function exportOrg(ctx) {
2036
2041
  const { content, theme, palette, viewState, exportMode } = ctx;
2037
2042
  const { parseOrg } = await import("./parser-AZZHRVJF.js");
2038
- const { layoutOrg } = await import("./layout-OH4VQ3OI.js");
2043
+ const { layoutOrg } = await import("./layout-7JULRP4Y.js");
2039
2044
  const { collapseOrgTree } = await import("./collapse-CLPJD2RL.js");
2040
- const { renderOrg } = await import("./renderer-KPEQ72FY.js");
2045
+ const { renderOrg } = await import("./renderer-YAW4VHAI.js");
2041
2046
  const isDark = ctx.isDark;
2042
2047
  const effectivePalette = await resolveExportPalette(theme, palette);
2043
2048
  const orgParsed = parseOrg(content, effectivePalette);
@@ -2084,9 +2089,9 @@ async function exportOrg(ctx) {
2084
2089
  async function exportSitemap(ctx) {
2085
2090
  const { content, theme, palette, viewState, exportMode } = ctx;
2086
2091
  const { parseSitemap } = await import("./parser-3KFNCRLD.js");
2087
- const { layoutSitemap } = await import("./layout-SKQMIXTG.js");
2092
+ const { layoutSitemap } = await import("./layout-SBQTN2YM.js");
2088
2093
  const { collapseSitemapTree } = await import("./collapse-ZWUFFCK2.js");
2089
- const { renderSitemap } = await import("./renderer-QEHUJHRK.js");
2094
+ const { renderSitemap } = await import("./renderer-SFQHFPC5.js");
2090
2095
  const isDark = ctx.isDark;
2091
2096
  const effectivePalette = await resolveExportPalette(theme, palette);
2092
2097
  const sitemapParsed = parseSitemap(content, effectivePalette);
@@ -2114,7 +2119,7 @@ async function exportSitemap(ctx) {
2114
2119
  const {
2115
2120
  LEGEND_HEIGHT: SITEMAP_LEGEND_HEIGHT,
2116
2121
  LEGEND_GROUP_GAP: SITEMAP_LEGEND_GROUP_GAP
2117
- } = await import("./legend-constants-QQU3QYBF.js");
2122
+ } = await import("./legend-constants-RGINV5SF.js");
2118
2123
  const suppressedLegendBand = sitemapLayout.legend.length > 0 && effectiveParsed.options["no-legend"] === "on" ? SITEMAP_LEGEND_HEIGHT + SITEMAP_LEGEND_GROUP_GAP : 0;
2119
2124
  const exportWidth = sitemapLayout.width + PADDING * 2;
2120
2125
  const exportHeight = sitemapLayout.height + PADDING * 2 + titleOffset - suppressedLegendBand;
@@ -2136,7 +2141,7 @@ async function exportSitemap(ctx) {
2136
2141
  async function exportKanban(ctx) {
2137
2142
  const { content, theme, palette, viewState, exportMode } = ctx;
2138
2143
  const { parseKanban } = await import("./parser-6VNVZO5F.js");
2139
- const { renderKanban } = await import("./renderer-FCO42JLK.js");
2144
+ const { renderKanban } = await import("./renderer-PJNJOCLB.js");
2140
2145
  const effectivePalette = await resolveExportPalette(theme, palette);
2141
2146
  const kanbanParsed = parseKanban(content, effectivePalette);
2142
2147
  if (kanbanParsed.error || kanbanParsed.columns.length === 0) return "";
@@ -2168,8 +2173,8 @@ async function exportKanban(ctx) {
2168
2173
  async function exportClass(ctx) {
2169
2174
  const { content, theme, palette, exportMode } = ctx;
2170
2175
  const { parseClassDiagram } = await import("./parser-5ZUEF4WE.js");
2171
- const { layoutClassDiagram } = await import("./layout-W3ZBJOIK.js");
2172
- const { renderClassDiagram } = await import("./renderer-M3PQKXK2.js");
2176
+ const { layoutClassDiagram } = await import("./layout-WIMQIHBU.js");
2177
+ const { renderClassDiagram } = await import("./renderer-TJD6A3AK.js");
2173
2178
  const effectivePalette = await resolveExportPalette(theme, palette);
2174
2179
  const classParsed = parseClassDiagram(content, effectivePalette);
2175
2180
  if (classParsed.error || classParsed.classes.length === 0) return "";
@@ -2194,9 +2199,9 @@ async function exportClass(ctx) {
2194
2199
  }
2195
2200
  async function exportEr(ctx) {
2196
2201
  const { content, theme, palette, viewState, exportMode } = ctx;
2197
- const { parseERDiagram } = await import("./parser-2BGDJJ2L.js");
2198
- const { layoutERDiagram } = await import("./layout-54P3DAXY.js");
2199
- const { renderERDiagram } = await import("./renderer-H6AQ4UIR.js");
2202
+ const { parseERDiagram } = await import("./parser-WLL63XH7.js");
2203
+ const { layoutERDiagram } = await import("./layout-LVMWK4QY.js");
2204
+ const { renderERDiagram } = await import("./renderer-BXPWSNTJ.js");
2200
2205
  const effectivePalette = await resolveExportPalette(theme, palette);
2201
2206
  const erParsed = parseERDiagram(content, effectivePalette);
2202
2207
  if (erParsed.error || erParsed.tables.length === 0) return "";
@@ -2235,7 +2240,7 @@ async function exportSketch(ctx) {
2235
2240
  return "";
2236
2241
  }
2237
2242
  const { layoutSketch } = await import("./layout-NX37NSRY.js");
2238
- const { renderSketchForExport } = await import("./renderer-XLPNUOYA.js");
2243
+ const { renderSketchForExport } = await import("./renderer-6NDYVZXQ.js");
2239
2244
  const collapsedBoxes = viewState?.cg ? new Set(viewState.cg) : void 0;
2240
2245
  const skLayout = layoutSketch(parsed, {
2241
2246
  ...collapsedBoxes !== void 0 && { collapsedBoxes }
@@ -2273,8 +2278,8 @@ async function exportBoxesAndLines(ctx) {
2273
2278
  blHiddenTagValues.set(k, new Set(v));
2274
2279
  }
2275
2280
  }
2276
- const { renderBoxesAndLinesForExport } = await import("./renderer-M43ROWET.js");
2277
- const { layoutBoxesAndLines } = await import("./layout-2T2VCCTM.js");
2281
+ const { renderBoxesAndLinesForExport } = await import("./renderer-JFOHE3YB.js");
2282
+ const { layoutBoxesAndLines } = await import("./layout-RD7GDM4I.js");
2278
2283
  const blLayout = await layoutBoxesAndLines(blParsed);
2279
2284
  const PADDING = 20;
2280
2285
  const titleOffset = blParsed.title ? 40 : 0;
@@ -2305,7 +2310,7 @@ async function exportSwimlane(ctx) {
2305
2310
  const { content, theme, palette } = ctx;
2306
2311
  const { parseSwimlane } = await import("./parser-SSUMVOJA.js");
2307
2312
  const { layoutSwimlane } = await import("./layout-OHAIIXBC.js");
2308
- const { renderSwimlaneForExport } = await import("./renderer-QR5343AR.js");
2313
+ const { renderSwimlaneForExport } = await import("./renderer-OWUXQDHM.js");
2309
2314
  const effectivePalette = await resolveExportPalette(theme, palette);
2310
2315
  const swimParsed = parseSwimlane(content, effectivePalette);
2311
2316
  if (swimParsed.error || swimParsed.nodes.length === 0) return "";
@@ -2336,8 +2341,8 @@ async function exportSwimlane(ctx) {
2336
2341
  async function exportFamily(ctx) {
2337
2342
  const { content, theme, palette } = ctx;
2338
2343
  const { parseFamily } = await import("./parser-P7T2BGAI.js");
2339
- const { layoutFamily } = await import("./layout-N6X46MWG.js");
2340
- const { renderFamilyForExport } = await import("./renderer-OYTERGAO.js");
2344
+ const { layoutFamily } = await import("./layout-6SKHNQYO.js");
2345
+ const { renderFamilyForExport } = await import("./renderer-QQBUBD66.js");
2341
2346
  const effectivePalette = await resolveExportPalette(theme, palette);
2342
2347
  const parsed = parseFamily(content, effectivePalette);
2343
2348
  if (parsed.error || parsed.persons.size === 0) return "";
@@ -2368,9 +2373,9 @@ async function exportFamily(ctx) {
2368
2373
  async function exportMindmap(ctx) {
2369
2374
  const { content, theme, palette, viewState, exportMode } = ctx;
2370
2375
  const { parseMindmap } = await import("./parser-YO2JBE52.js");
2371
- const { layoutMindmap } = await import("./layout-UU4VJTOP.js");
2376
+ const { layoutMindmap } = await import("./layout-62ERBWCM.js");
2372
2377
  const { collapseMindmapTree } = await import("./collapse-SLINJQW6.js");
2373
- const { renderMindmap } = await import("./renderer-PM7JPC3J.js");
2378
+ const { renderMindmap } = await import("./renderer-REFE3YFH.js");
2374
2379
  const isDark = ctx.isDark;
2375
2380
  const effectivePalette = await resolveExportPalette(theme, palette);
2376
2381
  const mmParsed = parseMindmap(content, effectivePalette);
@@ -2421,8 +2426,8 @@ async function exportMindmap(ctx) {
2421
2426
  async function exportWireframe(ctx) {
2422
2427
  const { content, theme, palette } = ctx;
2423
2428
  const { parseWireframe } = await import("./parser-63BQDUWB.js");
2424
- const { layoutWireframe } = await import("./layout-5XGYNYVT.js");
2425
- const { renderWireframe } = await import("./renderer-DMVUBKP7.js");
2429
+ const { layoutWireframe } = await import("./layout-IN53LAE6.js");
2430
+ const { renderWireframe } = await import("./renderer-GHYH6DLG.js");
2426
2431
  const effectivePalette = await resolveExportPalette(theme, palette);
2427
2432
  const wireframeParsed = parseWireframe(content);
2428
2433
  if (wireframeParsed.error || wireframeParsed.roots.length === 0 && wireframeParsed.modals.length === 0)
@@ -2451,8 +2456,8 @@ async function exportC4(ctx) {
2451
2456
  layoutC4Containers,
2452
2457
  layoutC4Components,
2453
2458
  layoutC4Deployment
2454
- } = await import("./layout-WCOEZPOI.js");
2455
- const { renderC4Context, renderC4Containers } = await import("./renderer-ZNTLBQ45.js");
2459
+ } = await import("./layout-MNOTDWXW.js");
2460
+ const { renderC4Context, renderC4Containers } = await import("./renderer-RVFPPKWN.js");
2456
2461
  const effectivePalette = await resolveExportPalette(theme, palette);
2457
2462
  const c4Parsed = parseC4(content, effectivePalette);
2458
2463
  if (c4Parsed.error || c4Parsed.elements.length === 0) return "";
@@ -2487,8 +2492,8 @@ async function exportC4(ctx) {
2487
2492
  async function exportFlowchart(ctx) {
2488
2493
  const { content, theme, palette } = ctx;
2489
2494
  const { parseFlowchart } = await import("./flowchart-parser-T4XZRSA7.js");
2490
- const { layoutGraph } = await import("./layout-QTZO6CW5.js");
2491
- const { renderFlowchart } = await import("./flowchart-renderer-EXMRHFTQ.js");
2495
+ const { layoutGraph } = await import("./layout-FA37VP7V.js");
2496
+ const { renderFlowchart } = await import("./flowchart-renderer-6JKM2FA4.js");
2492
2497
  const effectivePalette = await resolveExportPalette(theme, palette);
2493
2498
  const fcParsed = parseFlowchart(content, effectivePalette);
2494
2499
  if (fcParsed.error || fcParsed.nodes.length === 0) return "";
@@ -2509,8 +2514,8 @@ async function exportInfra(ctx) {
2509
2514
  const { content, theme, palette, viewState } = ctx;
2510
2515
  const { parseInfra } = await import("./parser-WHDC7OV2.js");
2511
2516
  const { computeInfra } = await import("./compute-JAP5E2E4.js");
2512
- const { layoutInfra } = await import("./layout-HBWT2G23.js");
2513
- const { renderInfra, computeInfraLegendGroups } = await import("./renderer-C6KOE774.js");
2517
+ const { layoutInfra } = await import("./layout-4LNMXLVK.js");
2518
+ const { renderInfra, computeInfraLegendGroups } = await import("./renderer-RL2JGVPC.js");
2514
2519
  const effectivePalette = await resolveExportPalette(theme, palette);
2515
2520
  const infraParsed = parseInfra(content);
2516
2521
  if (infraParsed.error || infraParsed.nodes.length === 0) return "";
@@ -2559,8 +2564,8 @@ async function exportPert(ctx) {
2559
2564
  const { content, theme, palette, viewState } = ctx;
2560
2565
  const { parsePert } = await import("./parser-FTC7FZ6Z.js");
2561
2566
  const { analyzePert } = await import("./analyzer-HQUXKZ5J.js");
2562
- const { layoutPert } = await import("./layout-5E2NQZNM.js");
2563
- const { renderPert, measurePertAnalysisBlock } = await import("./renderer-LSBXYOID.js");
2567
+ const { layoutPert } = await import("./layout-SGYR6HBX.js");
2568
+ const { renderPert, measurePertAnalysisBlock } = await import("./renderer-GYYJ4APT.js");
2564
2569
  const effectivePalette = await resolveExportPalette(theme, palette);
2565
2570
  const pertParsed = parsePert(content, { palette: effectivePalette });
2566
2571
  if (pertParsed.error || pertParsed.activities.length === 0) return "";
@@ -2600,7 +2605,7 @@ async function exportGantt(ctx) {
2600
2605
  const { content, theme, palette, viewState, exportMode } = ctx;
2601
2606
  const { parseGantt } = await import("./parser-RAKD267X.js");
2602
2607
  const { calculateSchedule } = await import("./calculator-M326KQFW.js");
2603
- const { renderGantt } = await import("./renderer-WR3FA3FF.js");
2608
+ const { renderGantt } = await import("./renderer-WR6J7NKH.js");
2604
2609
  const effectivePalette = await resolveExportPalette(theme, palette);
2605
2610
  const ganttParsed = parseGantt(content, effectivePalette);
2606
2611
  const resolved = calculateSchedule(ganttParsed);
@@ -2642,8 +2647,8 @@ async function exportGantt(ctx) {
2642
2647
  async function exportState(ctx) {
2643
2648
  const { content, theme, palette, viewState } = ctx;
2644
2649
  const { parseState } = await import("./state-parser-3U4232LJ.js");
2645
- const { layoutGraph } = await import("./layout-QTZO6CW5.js");
2646
- const { renderState } = await import("./state-renderer-LIESKSBO.js");
2650
+ const { layoutGraph } = await import("./layout-FA37VP7V.js");
2651
+ const { renderState } = await import("./state-renderer-JJSQJZEL.js");
2647
2652
  const { collapseStateGroups } = await import("./state-collapse-HCGD6IVJ.js");
2648
2653
  const effectivePalette = await resolveExportPalette(theme, palette);
2649
2654
  const stateParsed = parseState(content, effectivePalette);
@@ -2681,7 +2686,7 @@ async function exportState(ctx) {
2681
2686
  async function exportTechRadar(ctx) {
2682
2687
  const { content, theme, palette, viewState, exportMode } = ctx;
2683
2688
  const { parseTechRadar } = await import("./parser-2K4Z7RNT.js");
2684
- const { renderTechRadarForExport } = await import("./renderer-T5CUGSXP.js");
2689
+ const { renderTechRadarForExport } = await import("./renderer-WENGQEX6.js");
2685
2690
  const effectivePalette = await resolveExportPalette(theme, palette);
2686
2691
  const radarParsed = parseTechRadar(content);
2687
2692
  if (radarParsed.error || radarParsed.quadrants.length === 0) return "";
@@ -2702,8 +2707,8 @@ async function exportTechRadar(ctx) {
2702
2707
  async function exportJourneyMap(ctx) {
2703
2708
  const { content, theme, palette, exportMode } = ctx;
2704
2709
  const { parseJourneyMap } = await import("./parser-56746U6W.js");
2705
- const { renderJourneyMap } = await import("./renderer-2ARNFXSC.js");
2706
- const { layoutJourneyMap } = await import("./layout-H4H4OFE4.js");
2710
+ const { renderJourneyMap } = await import("./renderer-6ST44AVP.js");
2711
+ const { layoutJourneyMap } = await import("./layout-IO6ORC5T.js");
2707
2712
  const effectivePalette = await resolveExportPalette(theme, palette);
2708
2713
  const jmParsed = parseJourneyMap(content, effectivePalette);
2709
2714
  if (jmParsed.error || jmParsed.phases.length === 0 && jmParsed.steps.length === 0)
@@ -2724,7 +2729,7 @@ async function exportJourneyMap(ctx) {
2724
2729
  async function exportCycle(ctx) {
2725
2730
  const { content, theme, palette, viewState, exportMode } = ctx;
2726
2731
  const { parseCycle } = await import("./parser-MUYBWGUB.js");
2727
- const { renderCycleForExport } = await import("./renderer-OB77AT7V.js");
2732
+ const { renderCycleForExport } = await import("./renderer-FI4IKF4I.js");
2728
2733
  const effectivePalette = await resolveExportPalette(theme, palette);
2729
2734
  const cycleParsed = parseCycle(content);
2730
2735
  if (cycleParsed.error || cycleParsed.nodes.length === 0) return "";
@@ -2744,8 +2749,8 @@ async function exportMap(ctx) {
2744
2749
  const { content, theme, palette, options } = ctx;
2745
2750
  const { parseMap } = await import("./parser-UKQC7N6K.js");
2746
2751
  const { resolveMap } = await import("./resolver-B3TXWNWF.js");
2747
- const { renderMapForExport } = await import("./renderer-NHFRVCDC.js");
2748
- const { mapExportDimensions } = await import("./dimensions-ES6O2T4H.js");
2752
+ const { renderMapForExport } = await import("./renderer-AOFIEF2T.js");
2753
+ const { mapExportDimensions } = await import("./dimensions-ILAVBRQ3.js");
2749
2754
  const effectivePalette = await resolveExportPalette(theme, palette);
2750
2755
  const mapParsed = parseMap(content, effectivePalette);
2751
2756
  const { data: mapData, reason } = await resolveMapDataSource(
@@ -2779,7 +2784,7 @@ async function exportMap(ctx) {
2779
2784
  async function exportPyramid(ctx) {
2780
2785
  const { content, theme, palette } = ctx;
2781
2786
  const { parsePyramid } = await import("./parser-DSNINT2K.js");
2782
- const { renderPyramidForExport } = await import("./renderer-7OOC2ZO2.js");
2787
+ const { renderPyramidForExport } = await import("./renderer-L7S6YVM6.js");
2783
2788
  const effectivePalette = await resolveExportPalette(theme, palette);
2784
2789
  const pyramidParsed = parsePyramid(content);
2785
2790
  if (pyramidParsed.error || pyramidParsed.layers.length === 0) return "";
@@ -2796,7 +2801,7 @@ async function exportPyramid(ctx) {
2796
2801
  async function exportRing(ctx) {
2797
2802
  const { content, theme, palette } = ctx;
2798
2803
  const { parseRing } = await import("./parser-VMGTNHP2.js");
2799
- const { renderRingForExport } = await import("./renderer-KK2534AF.js");
2804
+ const { renderRingForExport } = await import("./renderer-FHXAWDNI.js");
2800
2805
  const effectivePalette = await resolveExportPalette(theme, palette);
2801
2806
  const ringParsed = parseRing(content);
2802
2807
  if (ringParsed.error || ringParsed.layers.length === 0) return "";
@@ -2816,7 +2821,7 @@ async function exportTreemap(ctx) {
2816
2821
  const container = createExportContainer(ctx.width, ctx.height);
2817
2822
  const dims = { width: ctx.width, height: ctx.height };
2818
2823
  if (treemapParsed.options.radial) {
2819
- const { renderTreemapRadialForExport } = await import("./renderer-radial-XWAKJACV.js");
2824
+ const { renderTreemapRadialForExport } = await import("./renderer-radial-HOUGPUPW.js");
2820
2825
  renderTreemapRadialForExport(
2821
2826
  container,
2822
2827
  treemapParsed,
@@ -2825,7 +2830,7 @@ async function exportTreemap(ctx) {
2825
2830
  dims
2826
2831
  );
2827
2832
  } else {
2828
- const { renderTreemapForExport } = await import("./renderer-XLEYPLVL.js");
2833
+ const { renderTreemapForExport } = await import("./renderer-2UIQVKXK.js");
2829
2834
  renderTreemapForExport(
2830
2835
  container,
2831
2836
  treemapParsed,
@@ -2838,15 +2843,15 @@ async function exportTreemap(ctx) {
2838
2843
  }
2839
2844
  async function exportLiveLink(ctx) {
2840
2845
  const { content, theme, palette } = ctx;
2841
- const { parseLiveLink } = await import("./parser-KSIYWKYF.js");
2842
- const { renderLiveLinkCard } = await import("./renderer-WN47AMUM.js");
2846
+ const { parseLiveLink } = await import("./parser-CSKF2KNO.js");
2847
+ const { renderLiveLinkCard } = await import("./renderer-NXIK3LOA.js");
2843
2848
  const effectivePalette = await resolveExportPalette(theme, palette);
2844
2849
  return renderLiveLinkCard(parseLiveLink(content), effectivePalette, theme);
2845
2850
  }
2846
2851
  async function exportBlock(ctx) {
2847
2852
  const { content, theme, palette } = ctx;
2848
2853
  const { parseBlock } = await import("./parser-MCUKPCYE.js");
2849
- const { renderBlockForExport } = await import("./renderer-LO4FXQHP.js");
2854
+ const { renderBlockForExport } = await import("./renderer-T4CMBGA5.js");
2850
2855
  const effectivePalette = await resolveExportPalette(theme, palette);
2851
2856
  const blockParsed = parseBlock(content, effectivePalette);
2852
2857
  if (blockParsed.error || blockParsed.top.rows.length === 0) return "";
@@ -2860,7 +2865,7 @@ async function exportBlock(ctx) {
2860
2865
  async function exportGoal(ctx) {
2861
2866
  const { content, theme, palette } = ctx;
2862
2867
  const { parseGoal } = await import("./parser-KN7H2RQC.js");
2863
- const { renderGoalForExport } = await import("./renderer-OA7FSZ4A.js");
2868
+ const { renderGoalForExport } = await import("./renderer-L5QGQTLV.js");
2864
2869
  const effectivePalette = await resolveExportPalette(theme, palette);
2865
2870
  const parsed = parseGoal(content, effectivePalette);
2866
2871
  if (parsed.error) return "";
@@ -2874,7 +2879,7 @@ async function exportGoal(ctx) {
2874
2879
  async function exportCountdown(ctx) {
2875
2880
  const { content, theme, palette } = ctx;
2876
2881
  const { parseCountdown } = await import("./parser-BGX5ODHF.js");
2877
- const { renderCountdownForExport } = await import("./renderer-2E7LQC32.js");
2882
+ const { renderCountdownForExport } = await import("./renderer-URPIVAPI.js");
2878
2883
  const effectivePalette = await resolveExportPalette(theme, palette);
2879
2884
  const parsed = parseCountdown(content, effectivePalette);
2880
2885
  if (parsed.error) return "";
@@ -2888,7 +2893,7 @@ async function exportCountdown(ctx) {
2888
2893
  async function exportClock(ctx) {
2889
2894
  const { content, theme, palette } = ctx;
2890
2895
  const { parseClock } = await import("./parser-4CMMKTRS.js");
2891
- const { renderClockForExport } = await import("./renderer-IN3UPTZS.js");
2896
+ const { renderClockForExport } = await import("./renderer-M4DAYNWC.js");
2892
2897
  const effectivePalette = await resolveExportPalette(theme, palette);
2893
2898
  const parsed = parseClock(content, effectivePalette);
2894
2899
  if (parsed.error) return "";
@@ -2902,7 +2907,7 @@ async function exportClock(ctx) {
2902
2907
  async function exportBracket(ctx) {
2903
2908
  const { content, theme, palette } = ctx;
2904
2909
  const { parseBracket } = await import("./parser-J75RSQFI.js");
2905
- const { renderBracketForExport, bracketExportDimensions } = await import("./renderer-BYWLJDT4.js");
2910
+ const { renderBracketForExport, bracketExportDimensions } = await import("./renderer-EWTETTII.js");
2906
2911
  const effectivePalette = await resolveExportPalette(theme, palette);
2907
2912
  const parsed = parseBracket(content, effectivePalette);
2908
2913
  if (parsed.error) return "";
@@ -2917,7 +2922,7 @@ async function exportBracket(ctx) {
2917
2922
  async function exportRaci(ctx) {
2918
2923
  const { content, theme, palette } = ctx;
2919
2924
  const { parseRaci } = await import("./parser-DLUOCPMD.js");
2920
- const { renderRaciForExport } = await import("./renderer-HLWEJQJW.js");
2925
+ const { renderRaciForExport } = await import("./renderer-BEVY3UP5.js");
2921
2926
  const effectivePalette = await resolveExportPalette(theme, palette);
2922
2927
  const raciParsed = parseRaci(content, effectivePalette);
2923
2928
  if (raciParsed.error) return "";
@@ -3050,7 +3055,7 @@ async function exportVisualization(ctx) {
3050
3055
  const isDark = ctx.isDark;
3051
3056
  const container = createExportContainer(ctx.width, ctx.height);
3052
3057
  const { parseSequenceDgmo } = await import("./parser-5WIZGKNE.js");
3053
- const { renderSequenceDiagram } = await import("./renderer-YLM4CGBG.js");
3058
+ const { renderSequenceDiagram } = await import("./renderer-ALP46W2X.js");
3054
3059
  const seqParsed = parseSequenceDgmo(content, effectivePalette);
3055
3060
  if (seqParsed.error || seqParsed.participants.length === 0) return "";
3056
3061
  const collapsedSections = viewState?.cs ? new Set(viewState.cs) : void 0;
@@ -3713,4 +3718,4 @@ export {
3713
3718
  renderForExport,
3714
3719
  render
3715
3720
  };
3716
- //# sourceMappingURL=chunk-VOJOARA6.js.map
3721
+ //# sourceMappingURL=chunk-ZZXPYVS4.js.map
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Live links — the shared resolver (Diagrammo Cloud story 10.6).
3
+ *
4
+ * A live link points at a diagram living in Diagrammo Cloud instead of at bytes
5
+ * pasted into a document. The point of it is CURRENCY: a linked diagram is
6
+ * never stale, which is true for a team of one and needs no distribution to be
7
+ * worth having.
8
+ *
9
+ * There are three SPELLINGS and exactly ONE parser, because each spelling is
10
+ * native to where it gets typed:
11
+ *
12
+ * | Surface | Form |
13
+ * |------------------------|-----------------------------|
14
+ * | docs frameworks | `live-link abc123` in a fence|
15
+ * | Obsidian, desktop app | `![[live-link:abc123]]` |
16
+ * | anywhere taking a URL | the plain URL |
17
+ *
18
+ * The keyword was `cloud` until 2026-08-01 (decision #53). `cloud` named where
19
+ * the thing lives; `live-link` names what it is, and it is the publish dialog's
20
+ * own phrase, so one word now spans both sides of the exchange. Pre-1.0 there
21
+ * is no dual-accept window — `cloud abc123` simply stops resolving. The module
22
+ * and its package subpath keep the old name deliberately: renaming a subpath
23
+ * export breaks the app's `pnpm dev` while the production build stays green.
24
+ *
25
+ * 🔴 EVERY future modifier must land in all three (A9), and
26
+ * `cloud-reference.test.ts` asserts parity across the forms from ONE table so a
27
+ * modifier cannot ship into a single spelling. If you are adding a modifier and
28
+ * only touching one branch below, the tests are about to tell you so.
29
+ *
30
+ * A reference ALWAYS FLOATS — it resolves to the current revision, which is the
31
+ * whole point (a referenced diagram is never stale). A date pin (`@2026-03-12`)
32
+ * was designed and then dropped on 2026-07-30: the server retains a bounded
33
+ * number of versions and prunes on every push, so a pin would fail on exactly
34
+ * the diagrams that are edited most. Anything carrying a modifier therefore
35
+ * parses to NULL rather than silently floating — a document that asked to be
36
+ * frozen must not quietly get the latest instead.
37
+ *
38
+ * This module is deliberately dependency-free and does no I/O: it is imported by
39
+ * every wrapper and by the CLI, and a parser that reached the network would make
40
+ * each of them harder to test than the thing they are testing.
41
+ */
42
+ /** Default origin of the Cloud API. Overridable for self-host / staging / tests. */
43
+ declare const CLOUD_API_BASE = "https://api.diagrammo.app";
44
+ /** Where human-facing share links live — the URLs people actually copy. */
45
+ declare const CLOUD_APP_BASE = "https://online.diagrammo.app";
46
+ /** A parsed reference. An id, and — for now — deliberately nothing else. */
47
+ interface CloudReference {
48
+ id: string;
49
+ }
50
+ /**
51
+ * Parse any of the three spellings, wherever it appears.
52
+ *
53
+ * 🔴 **A `dgmo` fence must NOT use this — use `parseCloudReferenceFence`.** The
54
+ * embed spelling is host markdown, and inside a fence the content is DGMO, so
55
+ * accepting `![[live-link:<id>]]` there is a category error: markdown nested in
56
+ * a code fence that is itself in markdown. It was accepted until 2026-08-05 and
57
+ * the showcase content taught it. Removed rather than deprecated — pre-1.0.
58
+ *
59
+ * This union survives for a host scanning raw note text, where any of the three
60
+ * may legitimately turn up. Returns null for anything that is not a reference,
61
+ * so it must not throw and must not guess.
62
+ */
63
+ declare function parseCloudReference(text: string): CloudReference | null;
64
+ /**
65
+ * What may appear as the whole body of a `dgmo` fence: the keyword form, or a
66
+ * plain link somebody pasted. **Not** the embed spelling — see above.
67
+ */
68
+ declare function parseCloudReferenceFence(text: string): CloudReference | null;
69
+ /**
70
+ * The note spelling — `![[live-link:<id>]]` — which extends the
71
+ * `![[foo.dgmo]]` transclusion Obsidian and the desktop app already understand.
72
+ * Takes the text as TYPED, brackets included, because that is the thing being
73
+ * recognised; a host holding only the inside of the brackets puts them back.
74
+ */
75
+ declare function parseCloudReferenceEmbed(text: string): CloudReference | null;
76
+ /** The URL spelling, split out because hosts that only take URLs need just this. */
77
+ declare function parseCloudReferenceUrl(text: string): CloudReference | null;
78
+ interface ResolveUrlOptions {
79
+ /** Origin of the Cloud API. */
80
+ base?: string;
81
+ }
82
+ /** The URL to fetch a reference's source from. Always the current revision. */
83
+ declare function referenceSourceUrl(ref: CloudReference, options?: ResolveUrlOptions): string;
84
+ /** The human share link for a reference — what a "view this in Diagrammo" link points at. */
85
+ declare function referenceShareUrl(ref: CloudReference, options?: {
86
+ base?: string;
87
+ }): string;
88
+ /** The shape of a source response, so consumers don't re-declare it per wrapper. */
89
+ interface CloudReferenceSource {
90
+ id: string;
91
+ source: string;
92
+ dgmoVersion: string;
93
+ updatedAt: number;
94
+ }
95
+
96
+ export { CLOUD_API_BASE, CLOUD_APP_BASE, type CloudReference, type CloudReferenceSource, type ResolveUrlOptions, parseCloudReference, parseCloudReferenceEmbed, parseCloudReferenceFence, parseCloudReferenceUrl, referenceShareUrl, referenceSourceUrl };