@diagrammo/dgmo 0.70.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 (188) hide show
  1. package/README.md +2 -0
  2. package/dist/advanced.d.ts +37 -30
  3. package/dist/advanced.js +91 -91
  4. package/dist/block.js +47 -47
  5. package/dist/{calculator-GU4NVYE2.js → calculator-4CNL2GKU.js} +3 -3
  6. package/dist/{chart-meta-DNsYpNbh.d.ts → chart-meta-6JaOudSs.d.ts} +8 -1
  7. package/dist/chart-meta.d.ts +2 -2
  8. package/dist/chart-meta.js +42 -42
  9. package/dist/{charts-d3-HWKV46CS.js → charts-d3-6IHGTXBR.js} +5 -5
  10. package/dist/{chunk-YYVTBZZC.js → chunk-24YPR5EH.js} +1 -1
  11. package/dist/{chunk-USOLDMYO.js → chunk-2OTYNNHS.js} +6 -6
  12. package/dist/{chunk-SHS3O7ZZ.js → chunk-2VBJCTSG.js} +4 -4
  13. package/dist/{chunk-6WI76LHG.js → chunk-376ATV2Q.js} +19 -5
  14. package/dist/{chunk-PMDE3I53.js → chunk-3HN32MEK.js} +2 -2
  15. package/dist/{chunk-EHRME74D.js → chunk-3SNE4CLI.js} +3 -3
  16. package/dist/{chunk-V5VCGTS4.js → chunk-4VUFJ7UA.js} +3 -3
  17. package/dist/{chunk-7YCHRBD3.js → chunk-5DYDPP7K.js} +2 -2
  18. package/dist/{chunk-LK35AH5V.js → chunk-66VHK7PP.js} +5 -5
  19. package/dist/{chunk-R2VVBC52.js → chunk-6DGMS2WJ.js} +4 -4
  20. package/dist/{chunk-Z6G367CM.js → chunk-6OAKQTXQ.js} +3 -3
  21. package/dist/{chunk-IODPKTRZ.js → chunk-6PA32CUB.js} +2 -2
  22. package/dist/{chunk-VSZRPDIZ.js → chunk-6S53NO3M.js} +5 -2
  23. package/dist/{chunk-PP75ABA4.js → chunk-7BHM774H.js} +6 -6
  24. package/dist/{chunk-QRLNO6C7.js → chunk-7RAWNJI5.js} +192 -122
  25. package/dist/{chunk-YXW2ZYS3.js → chunk-7SEQPFBX.js} +38 -7
  26. package/dist/{chunk-VALNMR2Y.js → chunk-7TSBM4BV.js} +3 -3
  27. package/dist/{chunk-EDFUVEO6.js → chunk-7U3NDE7T.js} +7 -7
  28. package/dist/{chunk-3QLXP6QZ.js → chunk-AEYRSPVV.js} +2 -2
  29. package/dist/{chunk-BNJC5KVG.js → chunk-BYSRXYRW.js} +4 -4
  30. package/dist/{chunk-EC5USK74.js → chunk-DEVZWCD5.js} +17 -5
  31. package/dist/{chunk-FH3S7FDS.js → chunk-DHKVHP3Y.js} +5 -5
  32. package/dist/{chunk-PBXMUXBW.js → chunk-DPGI742S.js} +20 -2
  33. package/dist/{chunk-UFKFABSP.js → chunk-DZ34UUXC.js} +7 -7
  34. package/dist/{chunk-ASUFSCVV.js → chunk-E36Q5ABQ.js} +4 -4
  35. package/dist/{chunk-TJ5PDNGU.js → chunk-EETUTZ5C.js} +2 -2
  36. package/dist/{chunk-KVM4POFR.js → chunk-ELIGVSLE.js} +10 -3
  37. package/dist/{chunk-KSK6B35D.js → chunk-FFD6A3B2.js} +22 -5
  38. package/dist/{chunk-K3MUWASA.js → chunk-FLXDMH7B.js} +3 -3
  39. package/dist/{chunk-J3XFVPEU.js → chunk-FTPNAYL2.js} +18 -6
  40. package/dist/{chunk-UJ4FJLBF.js → chunk-FX2USYOU.js} +13 -1
  41. package/dist/{chunk-IOVJT4PE.js → chunk-GCTKJDLY.js} +5 -5
  42. package/dist/{chunk-WBPWR2CX.js → chunk-GK4AU57A.js} +4 -4
  43. package/dist/{chunk-5ECGBM5S.js → chunk-HKL66CKW.js} +25 -21
  44. package/dist/{chunk-Z4KRDDZC.js → chunk-HWNF22ZZ.js} +20 -15
  45. package/dist/{chunk-2QLYLYLN.js → chunk-HZQCKXPB.js} +70 -385
  46. package/dist/{chunk-ZCWEJ3VB.js → chunk-IXVK7XCN.js} +3 -3
  47. package/dist/{chunk-BQVCENFX.js → chunk-JIWDWOYA.js} +3 -3
  48. package/dist/{chunk-HAGHVHR7.js → chunk-K6MQJ5IV.js} +2 -2
  49. package/dist/{chunk-MOMPLSQI.js → chunk-KJWIU5AM.js} +2 -2
  50. package/dist/{chunk-65KNPZCC.js → chunk-KOVRFBGR.js} +25 -4
  51. package/dist/{chunk-B6MHT3A7.js → chunk-L3XB446I.js} +2 -2
  52. package/dist/{chunk-NZ2Z4ZEN.js → chunk-LSHROB27.js} +3 -3
  53. package/dist/{chunk-Q7UM3R3Y.js → chunk-LTGOPJUV.js} +2 -2
  54. package/dist/{chunk-MMYRNZRQ.js → chunk-MC2H32SM.js} +3 -3
  55. package/dist/{chunk-CE2Z3OXR.js → chunk-MFSTE3YG.js} +18 -4
  56. package/dist/{chunk-4FEPSBUH.js → chunk-MKNWMFZU.js} +15 -5
  57. package/dist/{chunk-FQ7OYKOS.js → chunk-MUVASOBD.js} +7 -7
  58. package/dist/{chunk-6NWCQCJV.js → chunk-MWWRIOEN.js} +2 -2
  59. package/dist/{chunk-HK3JTWG3.js → chunk-MX3BYU7V.js} +2 -2
  60. package/dist/{chunk-4CTCOHDS.js → chunk-N34OTOGH.js} +12 -3
  61. package/dist/{chunk-H4VRTBMS.js → chunk-N5247W2W.js} +59 -16
  62. package/dist/{chunk-76XAJN7L.js → chunk-NEC7R2CB.js} +2 -2
  63. package/dist/{chunk-56TCBKXP.js → chunk-NJKUTY4M.js} +3 -3
  64. package/dist/{chunk-D62K46CW.js → chunk-NNMNHE3J.js} +2 -2
  65. package/dist/{chunk-XDEVAAY4.js → chunk-NTBHGUXY.js} +13 -3
  66. package/dist/{chunk-YYFIZ3AO.js → chunk-NUF7YTHA.js} +2 -2
  67. package/dist/{chunk-TSY25V7W.js → chunk-O4OVVK6J.js} +4 -4
  68. package/dist/{chunk-R2UUKZ6R.js → chunk-P6RPHRX7.js} +4 -4
  69. package/dist/{chunk-AA6LBVBN.js → chunk-PBV2C3BW.js} +27 -6
  70. package/dist/{chunk-Y37EDBPR.js → chunk-PKTRDOBI.js} +3 -3
  71. package/dist/{chunk-CVMD5UWI.js → chunk-QAJFIXJE.js} +19 -5
  72. package/dist/{chunk-7LIDBQDO.js → chunk-QITH5XOX.js} +6 -6
  73. package/dist/{chunk-YA464EGR.js → chunk-QPG55HGH.js} +3 -3
  74. package/dist/{chunk-MUXI4Y6U.js → chunk-REBTZP3W.js} +2 -2
  75. package/dist/{chunk-H7LQGRM3.js → chunk-RJI6MHHK.js} +3 -3
  76. package/dist/{chunk-G5UTJZFR.js → chunk-T7W5LM4N.js} +11 -3
  77. package/dist/{chunk-GAK5UOKL.js → chunk-TF7CFAZ5.js} +3 -3
  78. package/dist/{chunk-XAPHRRQ4.js → chunk-U4NFAWQW.js} +5 -5
  79. package/dist/{chunk-HQBY3N3S.js → chunk-UCGEBFUC.js} +3 -3
  80. package/dist/{chunk-6KJMPC6H.js → chunk-UF3EALKC.js} +9 -9
  81. package/dist/{chunk-JCAINYVG.js → chunk-UKOOGXRF.js} +288 -26
  82. package/dist/{chunk-ZLPNK7U2.js → chunk-UNM2PX5D.js} +3 -3
  83. package/dist/{chunk-JR6H5MEF.js → chunk-UNTFANSM.js} +3 -3
  84. package/dist/{chunk-UG3MRJL6.js → chunk-UTVKOGFF.js} +2 -2
  85. package/dist/{chunk-MGAWLZQE.js → chunk-UY77QQWU.js} +2 -2
  86. package/dist/{chunk-7LMDJ3U7.js → chunk-VE7PPEU3.js} +105 -18
  87. package/dist/{chunk-MZBEPHFY.js → chunk-VGLSKDDI.js} +2 -2
  88. package/dist/{chunk-WN6V4ILM.js → chunk-VLXYWPPE.js} +5 -5
  89. package/dist/{chunk-5FBSYKPQ.js → chunk-VMXV2CL5.js} +4 -4
  90. package/dist/{chunk-FFI25S5O.js → chunk-W27BULCB.js} +4 -4
  91. package/dist/{chunk-NTXNVS47.js → chunk-W7SZKJR6.js} +3 -3
  92. package/dist/{chunk-MACY4WJ4.js → chunk-WEC3JPTN.js} +4 -4
  93. package/dist/{chunk-LQB3NKEA.js → chunk-WPXHTYET.js} +16 -11
  94. package/dist/{chunk-QQI4JTJB.js → chunk-WRWUZ2C4.js} +3 -3
  95. package/dist/{chunk-QQFO63AA.js → chunk-XIZCHGP7.js} +3 -3
  96. package/dist/{chunk-PYL2K5CE.js → chunk-YG35ZCNW.js} +20 -5
  97. package/dist/{chunk-6NEFSIL3.js → chunk-YH5KJIO5.js} +4 -4
  98. package/dist/{chunk-N5XT3OWL.js → chunk-YTFA4VTW.js} +2 -2
  99. package/dist/{chunk-SW36YNNE.js → chunk-YYBQ55V2.js} +35 -74
  100. package/dist/{chunk-M2QQQWM3.js → chunk-ZJJWON5O.js} +15 -5
  101. package/dist/collapse-JRGPUE67.js +13 -0
  102. package/dist/completion-registry.js +14 -9
  103. package/dist/{dgmo-router-EAW7XiBE.d.ts → dgmo-router-Lya7cs3R.d.ts} +28 -0
  104. package/dist/dgmo-router-O55I5UXN.js +89 -0
  105. package/dist/{dimensions-RIZPH26J.js → dimensions-EFEBIRS6.js} +5 -5
  106. package/dist/editor.js +6 -3
  107. package/dist/{flowchart-parser-A64T3OEL.js → flowchart-parser-LZF2GW2P.js} +4 -4
  108. package/dist/{flowchart-renderer-F6PDPKK7.js → flowchart-renderer-JMGOCLTQ.js} +6 -6
  109. package/dist/highlight.js +6 -3
  110. package/dist/index.d.ts +1 -1
  111. package/dist/index.js +60 -47
  112. package/dist/{layout-2D6VKW6G.js → layout-2DVT24YY.js} +3 -3
  113. package/dist/{layout-COGPMCW5.js → layout-4D5JRUHX.js} +4 -4
  114. package/dist/{layout-FFCYSTW7.js → layout-AWPST2S3.js} +3 -3
  115. package/dist/{layout-CYNBG5EP.js → layout-BGXLVSXL.js} +4 -4
  116. package/dist/{layout-36Z4NU4W.js → layout-VMDNULKS.js} +5 -5
  117. package/dist/{layout-2DUQIJOI.js → layout-VVTXA3W2.js} +4 -4
  118. package/dist/{parser-LGDW543A.js → parser-2CXA7K5C.js} +4 -4
  119. package/dist/{parser-6OWUGHKY.js → parser-4E2TVMOK.js} +4 -4
  120. package/dist/{parser-2PN2WRYX.js → parser-52AZJ3BA.js} +4 -4
  121. package/dist/{parser-A3B5KVPK.js → parser-52BOCAVQ.js} +4 -4
  122. package/dist/{parser-FNOWLKC4.js → parser-5IPCYVXY.js} +4 -4
  123. package/dist/{parser-U3T76HY2.js → parser-6BF5TJQH.js} +4 -4
  124. package/dist/{parser-SEFSLUXW.js → parser-6VZISXFY.js} +3 -3
  125. package/dist/{parser-VDD3N5SC.js → parser-6Y5BMNNJ.js} +5 -5
  126. package/dist/{parser-LJZIQJRA.js → parser-7HUZBXKW.js} +3 -3
  127. package/dist/{parser-PXI5UCVR.js → parser-AEJ73QJS.js} +3 -3
  128. package/dist/{parser-M7HBD7V2.js → parser-AWNEAGMJ.js} +4 -4
  129. package/dist/{parser-53ALMRAE.js → parser-C2QRTZPJ.js} +4 -4
  130. package/dist/{parser-DLIBNGNQ.js → parser-CBSYFN6U.js} +3 -3
  131. package/dist/{parser-IL4T3HCM.js → parser-CDMP3UVH.js} +4 -4
  132. package/dist/{parser-CDA5DGXA.js → parser-CNKHKQKZ.js} +4 -4
  133. package/dist/{parser-VQKLDBS7.js → parser-EX3AGFT5.js} +4 -4
  134. package/dist/{parser-SOOR27MC.js → parser-GK3JWVHY.js} +5 -5
  135. package/dist/{parser-4VIMOING.js → parser-GZKR6BFA.js} +4 -4
  136. package/dist/{parser-YCRATNR6.js → parser-K26KDCZN.js} +3 -3
  137. package/dist/{parser-SZXKUTVE.js → parser-LTJ5AKY4.js} +4 -4
  138. package/dist/{parser-Q2K7TDEA.js → parser-NIGB4EYX.js} +3 -3
  139. package/dist/{parser-DAMYSBVY.js → parser-O7GTECFP.js} +3 -3
  140. package/dist/{parser-3QXKYLDG.js → parser-OHWDJGCP.js} +3 -3
  141. package/dist/{parser-RZIIZ3EW.js → parser-QCVEWLCO.js} +3 -3
  142. package/dist/{parser-E33LTBYE.js → parser-SUAOF72Y.js} +4 -4
  143. package/dist/{parser-CLDLYMDI.js → parser-TJ3SP2MJ.js} +4 -4
  144. package/dist/{parser-GEELVJ4X.js → parser-W2HXBHNC.js} +3 -3
  145. package/dist/{parser-2QQJFTMD.js → parser-WF4R7225.js} +4 -4
  146. package/dist/{parser-5ETIIQIM.js → parser-XM6JC3UK.js} +4 -4
  147. package/dist/{parser-D5EZ6Y5I.js → parser-XRZQ7SC7.js} +4 -4
  148. package/dist/{parser-ZXI4IQ5Y.js → parser-YRJAGBV7.js} +4 -4
  149. package/dist/{parser-4CEHZFZG.js → parser-Z3LN7P6G.js} +5 -5
  150. package/dist/{parser-52SRJNP4.js → parser-ZIEEBJMU.js} +4 -4
  151. package/dist/{renderer-PR3AGJ37.js → renderer-2MEPYGAP.js} +7 -7
  152. package/dist/{renderer-P2MICJH5.js → renderer-2T2RAFWX.js} +8 -8
  153. package/dist/{renderer-SDCMF5AF.js → renderer-4DFEFP4X.js} +6 -6
  154. package/dist/{renderer-WPGW6FTW.js → renderer-ACGZ5KJG.js} +8 -8
  155. package/dist/{renderer-F75AZ6HF.js → renderer-B4Q6LUW2.js} +6 -6
  156. package/dist/{renderer-WA5K5VWA.js → renderer-CB44E262.js} +8 -8
  157. package/dist/{renderer-3VPTEQBU.js → renderer-CL4X5S3T.js} +6 -6
  158. package/dist/{renderer-PUYQ5CDE.js → renderer-E3UQ24DE.js} +5 -5
  159. package/dist/{renderer-3EN7ZSXI.js → renderer-E42I44WZ.js} +7 -7
  160. package/dist/{renderer-VK6KVXFB.js → renderer-H5QR3LC3.js} +4 -4
  161. package/dist/{renderer-RY7RQQ37.js → renderer-IH5C7NQT.js} +4 -4
  162. package/dist/{renderer-AF6DVUZH.js → renderer-IZFO3G22.js} +8 -8
  163. package/dist/{renderer-EVHFS3PP.js → renderer-JHWGW4Q7.js} +5 -5
  164. package/dist/{renderer-U7INHN4J.js → renderer-K73COK5L.js} +5 -5
  165. package/dist/{renderer-MGYWZFFR.js → renderer-KQIJV5WD.js} +5 -5
  166. package/dist/{renderer-52YQ3EYR.js → renderer-MZ4N2SVV.js} +5 -5
  167. package/dist/{renderer-KLRBL45Z.js → renderer-QMSFXMAL.js} +5 -5
  168. package/dist/{renderer-YZMFPZGC.js → renderer-UPTO25OX.js} +8 -8
  169. package/dist/{renderer-REULT7UI.js → renderer-VEN6AIWW.js} +8 -8
  170. package/dist/{renderer-QOI2SEEA.js → renderer-VOXE7V6L.js} +7 -7
  171. package/dist/{renderer-BT6TOWBE.js → renderer-VP4DPLDY.js} +4 -4
  172. package/dist/{renderer-KVRTLE2D.js → renderer-W7JC2CTQ.js} +4 -4
  173. package/dist/{renderer-XOPHJWNZ.js → renderer-WBG576LB.js} +5 -5
  174. package/dist/{renderer-4LLJHGIQ.js → renderer-WLA3NQCC.js} +7 -7
  175. package/dist/{renderer-UC2ZZISO.js → renderer-XR4SVKNE.js} +6 -6
  176. package/dist/{renderer-Q24E7LBF.js → renderer-Y3D36RIT.js} +6 -6
  177. package/dist/{renderer-SFYFVKVN.js → renderer-Y4VC3VH4.js} +9 -7
  178. package/dist/renderer-YROML2KW.js +76 -0
  179. package/dist/{renderer-RJLAM6G5.js → renderer-YXYEP46H.js} +6 -6
  180. package/dist/{renderer-VTP3QCCP.js → renderer-ZRHTC24Q.js} +7 -7
  181. package/dist/{renderer-radial-AVHNPO2N.js → renderer-radial-KZ3W4WXI.js} +6 -6
  182. package/dist/{state-parser-GSU2ZDVR.js → state-parser-HJNCGIFT.js} +5 -5
  183. package/dist/{state-renderer-Q6XQDK3W.js → state-renderer-FJ2GT4MU.js} +8 -8
  184. package/docs/language-reference.md +22 -1
  185. package/package.json +2 -1
  186. package/dist/collapse-CLPJD2RL.js +0 -11
  187. package/dist/dgmo-router-YFNEFJST.js +0 -89
  188. package/dist/renderer-BQORZPWF.js +0 -76
@@ -3,6 +3,7 @@ import {
3
3
  } from "./chunk-NOTA6TEI.js";
4
4
  import {
5
5
  AUTO_TAG_COLOR_SENTINEL,
6
+ activeTagNoMatchMessage,
6
7
  finalizeAutoTagColors,
7
8
  isTagBlockHeading,
8
9
  matchTagBlockHeading,
@@ -10,7 +11,7 @@ import {
10
11
  tagAttrKey,
11
12
  validateTagGroupNames,
12
13
  validateTagValues
13
- } from "./chunk-PBXMUXBW.js";
14
+ } from "./chunk-DPGI742S.js";
14
15
  import {
15
16
  OPTION_NOCOLON_RE,
16
17
  ORG_REGISTRY,
@@ -21,7 +22,7 @@ import {
21
22
  splitNameAndMeta,
22
23
  warnUnknownMetaKeys,
23
24
  withTagAliases
24
- } from "./chunk-M2QQQWM3.js";
25
+ } from "./chunk-ZJJWON5O.js";
25
26
  import {
26
27
  formatDgmoError,
27
28
  makeDgmoError,
@@ -30,7 +31,7 @@ import {
30
31
  } from "./chunk-OLMWTJVU.js";
31
32
 
32
33
  // src/org/parser.ts
33
- var CONTAINER_RE = /^\[([^\]]+)\]$/;
34
+ var CONTAINER_RE = /^\[([^\]]+)\](?:\s+collapsed:\s*(\S+))?$/;
34
35
  var METADATA_RE = /^([^:]+):\s*(.+)$/;
35
36
  var KNOWN_OPTIONS = /* @__PURE__ */ new Set([
36
37
  "sub-node-label",
@@ -75,8 +76,8 @@ function parseOrg(content, palette) {
75
76
  result.diagnostics.push(diag);
76
77
  if (!result.error) result.error = formatDgmoError(diag);
77
78
  };
78
- const pushWarning = (line, message) => {
79
- result.diagnostics.push(makeDgmoError(line, message, "warning"));
79
+ const pushWarning = (line, message, code) => {
80
+ result.diagnostics.push(makeDgmoError(line, message, "warning", code));
80
81
  };
81
82
  if (!content?.trim()) {
82
83
  return fail(0, "No content provided");
@@ -86,6 +87,7 @@ function parseOrg(content, palette) {
86
87
  let nodeCounter = 0;
87
88
  let containerCounter = 0;
88
89
  let focusOptionLine = 0;
90
+ let activeTagOptionLine = 0;
89
91
  let currentTagGroup = null;
90
92
  const metaAliasMap = /* @__PURE__ */ new Map();
91
93
  const nameAliasMap = /* @__PURE__ */ new Map();
@@ -167,6 +169,7 @@ function parseOrg(content, palette) {
167
169
  if (KNOWN_OPTIONS.has(key)) {
168
170
  options[key] = optMatch[2].trim();
169
171
  if (key === "focus") focusOptionLine = lineNumber;
172
+ if (key === "active-tag") activeTagOptionLine = lineNumber;
170
173
  continue;
171
174
  }
172
175
  }
@@ -229,7 +232,10 @@ function parseOrg(content, palette) {
229
232
  const node = {
230
233
  id: containerId,
231
234
  label,
232
- metadata: {},
235
+ // The same-line collapse marker (capture 2, §6.4.1). Goes into metadata
236
+ // rather than the typed field so the one post-parse lift handles every
237
+ // route — same-line here, indented under the header, or under a person.
238
+ metadata: containerMatch[2] !== void 0 ? { collapsed: containerMatch[2] } : {},
233
239
  children: [],
234
240
  parentId: null,
235
241
  isContainer: true,
@@ -300,6 +306,7 @@ function parseOrg(content, palette) {
300
306
  result.diagnostics.push(diag);
301
307
  result.error = formatDgmoError(diag);
302
308
  }
309
+ liftCollapsedMarkers(result.roots);
303
310
  const focusName = options["focus"];
304
311
  if (focusName && result.roots.length > 0) {
305
312
  if (!findOrgNodeIdByName(result.roots, focusName)) {
@@ -309,6 +316,17 @@ function parseOrg(content, palette) {
309
316
  );
310
317
  }
311
318
  }
319
+ const activeTagWarning = activeTagNoMatchMessage(
320
+ options["active-tag"],
321
+ result.tagGroups
322
+ );
323
+ if (activeTagWarning) {
324
+ pushWarning(
325
+ activeTagOptionLine || 1,
326
+ activeTagWarning,
327
+ "W_ACTIVE_TAG_NO_MATCH"
328
+ );
329
+ }
312
330
  result.direction = options["direction-lr"] ? "LR" : "TB";
313
331
  return result;
314
332
  }
@@ -354,6 +372,19 @@ function parseNodeLabel(trimmed, _indent, lineNumber, _palette, counter, metaAli
354
372
  lineNumber
355
373
  };
356
374
  }
375
+ function liftCollapsedMarkers(nodes) {
376
+ for (const node of nodes) {
377
+ const n = node;
378
+ const raw = n.metadata["collapsed"];
379
+ if (raw !== void 0) {
380
+ const meta = { ...n.metadata };
381
+ delete meta["collapsed"];
382
+ n.metadata = meta;
383
+ if (raw.toLowerCase() === "true") n.collapsed = true;
384
+ }
385
+ liftCollapsedMarkers(n.children);
386
+ }
387
+ }
357
388
  function attachNode(node, indent, indentStack, result) {
358
389
  while (indentStack.length > 0) {
359
390
  const top = indentStack[indentStack.length - 1];
@@ -387,4 +418,4 @@ export {
387
418
  parseOrg,
388
419
  findOrgNodeIdByName
389
420
  };
390
- //# sourceMappingURL=chunk-YXW2ZYS3.js.map
421
+ //# sourceMappingURL=chunk-7SEQPFBX.js.map
@@ -12,10 +12,10 @@ import {
12
12
  import {
13
13
  resolveTagColor,
14
14
  tagAttrKey
15
- } from "./chunk-PBXMUXBW.js";
15
+ } from "./chunk-DPGI742S.js";
16
16
  import {
17
17
  fillModeFromOptions
18
- } from "./chunk-M2QQQWM3.js";
18
+ } from "./chunk-ZJJWON5O.js";
19
19
  import {
20
20
  contrastText,
21
21
  mix,
@@ -401,4 +401,4 @@ function drawCenteredLabel(g, label, cx, cy, fill, fontSize, tight = false, halo
401
401
  export {
402
402
  renderSwimlaneForExport
403
403
  };
404
- //# sourceMappingURL=chunk-VALNMR2Y.js.map
404
+ //# sourceMappingURL=chunk-7TSBM4BV.js.map
@@ -3,7 +3,7 @@ import {
3
3
  layoutJourneyMap,
4
4
  scoreToColor,
5
5
  scoreToCurveY
6
- } from "./chunk-6NWCQCJV.js";
6
+ } from "./chunk-MWWRIOEN.js";
7
7
  import {
8
8
  wrapNoteBody
9
9
  } from "./chunk-MU3CJPJF.js";
@@ -18,13 +18,13 @@ 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";
25
25
  import {
26
26
  renderIntegratedLegend
27
- } from "./chunk-VSZRPDIZ.js";
27
+ } from "./chunk-6S53NO3M.js";
28
28
  import {
29
29
  FONT_FAMILY
30
30
  } from "./chunk-UTCPNJND.js";
@@ -35,14 +35,14 @@ import {
35
35
  } from "./chunk-MTGGOCND.js";
36
36
  import {
37
37
  parseJourneyMap
38
- } from "./chunk-6WI76LHG.js";
38
+ } from "./chunk-376ATV2Q.js";
39
39
  import {
40
40
  resolveActiveTagGroup,
41
41
  tagAttrKey
42
- } from "./chunk-PBXMUXBW.js";
42
+ } from "./chunk-DPGI742S.js";
43
43
  import {
44
44
  fillModeFromOptions
45
- } from "./chunk-M2QQQWM3.js";
45
+ } from "./chunk-ZJJWON5O.js";
46
46
  import {
47
47
  contrastText,
48
48
  mix,
@@ -877,4 +877,4 @@ export {
877
877
  renderJourneyMap,
878
878
  renderJourneyMapForExport
879
879
  };
880
- //# sourceMappingURL=chunk-EDFUVEO6.js.map
880
+ //# sourceMappingURL=chunk-7U3NDE7T.js.map
@@ -2,7 +2,7 @@ import {
2
2
  extractColor,
3
3
  measureIndent,
4
4
  parseFirstLine
5
- } from "./chunk-M2QQQWM3.js";
5
+ } from "./chunk-ZJJWON5O.js";
6
6
  import {
7
7
  emit,
8
8
  formatDgmoError,
@@ -507,4 +507,4 @@ export {
507
507
  VERSION_CONTROL_DIAGNOSTICS,
508
508
  parseVersionControl
509
509
  };
510
- //# sourceMappingURL=chunk-3QLXP6QZ.js.map
510
+ //# sourceMappingURL=chunk-AEYRSPVV.js.map
@@ -6,7 +6,7 @@ import {
6
6
  mapLegendConfig,
7
7
  mapLegendGroups,
8
8
  parsePathRings
9
- } from "./chunk-MUXI4Y6U.js";
9
+ } from "./chunk-REBTZP3W.js";
10
10
  import {
11
11
  TITLE_FONT_SIZE,
12
12
  TITLE_FONT_WEIGHT,
@@ -14,7 +14,7 @@ import {
14
14
  } from "./chunk-A4GOY3PE.js";
15
15
  import {
16
16
  renderIntegratedLegend
17
- } from "./chunk-VSZRPDIZ.js";
17
+ } from "./chunk-6S53NO3M.js";
18
18
  import {
19
19
  FONT_FAMILY
20
20
  } from "./chunk-UTCPNJND.js";
@@ -23,7 +23,7 @@ import {
23
23
  } from "./chunk-MTGGOCND.js";
24
24
  import {
25
25
  parseClock
26
- } from "./chunk-76XAJN7L.js";
26
+ } from "./chunk-NEC7R2CB.js";
27
27
  import {
28
28
  fixedParts,
29
29
  formatTime,
@@ -781,4 +781,4 @@ export {
781
781
  renderMap,
782
782
  renderMapForExport
783
783
  };
784
- //# sourceMappingURL=chunk-BNJC5KVG.js.map
784
+ //# sourceMappingURL=chunk-BYSRXYRW.js.map
@@ -11,12 +11,13 @@ import {
11
11
  normalizeName
12
12
  } from "./chunk-NOTA6TEI.js";
13
13
  import {
14
+ activeTagNoMatchMessage,
14
15
  finalizeAutoTagColors,
15
16
  matchTagBlockHeading,
16
17
  stripDefaultModifier,
17
18
  tagAttrKey,
18
19
  validateTagGroupNames
19
- } from "./chunk-PBXMUXBW.js";
20
+ } from "./chunk-DPGI742S.js";
20
21
  import {
21
22
  GANTT_BOOLEAN_SET,
22
23
  GANTT_OPTION_SET,
@@ -30,7 +31,7 @@ import {
30
31
  splitNameAndMeta,
31
32
  warnUnknownMetaKeys,
32
33
  withTagAliases
33
- } from "./chunk-M2QQQWM3.js";
34
+ } from "./chunk-ZJJWON5O.js";
34
35
  import {
35
36
  getSeriesColors
36
37
  } from "./chunk-KWRW6BLG.js";
@@ -168,8 +169,8 @@ function parseGantt(content, palette) {
168
169
  result.error = formatDgmoError(diag);
169
170
  return result;
170
171
  };
171
- const warn = (line, message) => {
172
- diagnostics.push(makeDgmoError(line, message, "warning"));
172
+ const warn = (line, message, code) => {
173
+ diagnostics.push(makeDgmoError(line, message, "warning", code));
173
174
  };
174
175
  const softError = (line, message) => {
175
176
  diagnostics.push(makeDgmoError(line, message, "error"));
@@ -1080,6 +1081,17 @@ function parseGantt(content, palette) {
1080
1081
  diagnostics.push(diag);
1081
1082
  if (!result.error) result.error = formatDgmoError(diag);
1082
1083
  });
1084
+ const activeTagWarning = activeTagNoMatchMessage(
1085
+ result.options.activeTag,
1086
+ result.tagGroups
1087
+ );
1088
+ if (activeTagWarning) {
1089
+ warn(
1090
+ result.options.optionLineNumbers["active-tag"] || 1,
1091
+ activeTagWarning,
1092
+ "W_ACTIVE_TAG_NO_MATCH"
1093
+ );
1094
+ }
1083
1095
  const hasSprintOption = result.options.sprintLength !== null || result.options.sprintNumber !== null || result.options.sprintStart !== null;
1084
1096
  const hasSprintUnit = hasSprintDurationUnit(result.nodes);
1085
1097
  if (hasSprintOption) {
@@ -1360,4 +1372,4 @@ export {
1360
1372
  GANTT_KNOWN_OPTIONS,
1361
1373
  GANTT_KNOWN_BOOLEANS
1362
1374
  };
1363
- //# sourceMappingURL=chunk-EC5USK74.js.map
1375
+ //# sourceMappingURL=chunk-DEVZWCD5.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
@@ -36,7 +36,7 @@ import {
36
36
  } from "./chunk-A4GOY3PE.js";
37
37
  import {
38
38
  renderIntegratedLegend
39
- } from "./chunk-VSZRPDIZ.js";
39
+ } from "./chunk-6S53NO3M.js";
40
40
  import {
41
41
  getLegendExtent
42
42
  } from "./chunk-MTPKBSTR.js";
@@ -53,7 +53,7 @@ import {
53
53
  } from "./chunk-MTGGOCND.js";
54
54
  import {
55
55
  parsePert
56
- } from "./chunk-XDEVAAY4.js";
56
+ } from "./chunk-NTBHGUXY.js";
57
57
  import {
58
58
  addCalendarDays,
59
59
  formatDuration,
@@ -64,7 +64,7 @@ import {
64
64
  import {
65
65
  resolveActiveTagGroup,
66
66
  resolveTagColor
67
- } from "./chunk-PBXMUXBW.js";
67
+ } from "./chunk-DPGI742S.js";
68
68
  import {
69
69
  contrastText,
70
70
  mix,
@@ -1871,4 +1871,4 @@ export {
1871
1871
  measurePertAnalysisBlock,
1872
1872
  renderPertAnalysisBlock
1873
1873
  };
1874
- //# sourceMappingURL=chunk-FH3S7FDS.js.map
1874
+ //# sourceMappingURL=chunk-DHKVHP3Y.js.map
@@ -2,12 +2,15 @@ import {
2
2
  peelQuotedName,
3
3
  stripQuotes,
4
4
  tokenizeQuoteAware
5
- } from "./chunk-M2QQQWM3.js";
5
+ } from "./chunk-ZJJWON5O.js";
6
6
  import {
7
7
  CATEGORICAL_COLOR_ORDER,
8
8
  RECOGNIZED_COLOR_NAMES,
9
9
  resolveColor
10
10
  } from "./chunk-EXNKNJ65.js";
11
+ import {
12
+ suggest
13
+ } from "./chunk-OLMWTJVU.js";
11
14
 
12
15
  // src/utils/tag-groups.ts
13
16
  function tagAttrKey(name) {
@@ -253,6 +256,20 @@ function resolveActiveTagGroup(tagGroups, explicitActiveTag, programmaticOverrid
253
256
  if (tagGroups.length > 0) return tagGroups[0].name;
254
257
  return null;
255
258
  }
259
+ function activeTagNoMatchMessage(activeTag, tagGroups, extraNames = [], extraLabel) {
260
+ const at = activeTag?.trim();
261
+ if (!at) return null;
262
+ const lower = at.toLowerCase();
263
+ if (lower === "none") return null;
264
+ const valid = [...tagGroups.map((g) => g.name), ...extraNames];
265
+ if (valid.some((n) => n.toLowerCase() === lower || tagAttrKey(n) === lower)) {
266
+ return null;
267
+ }
268
+ const subject = extraLabel ? `a declared tag group or ${extraLabel}` : "a declared tag group";
269
+ const available = valid.length ? ` Available: ${valid.join(", ")}, none.` : " No tag groups are declared.";
270
+ const didYouMean = suggest(at, valid);
271
+ return `active-tag "${at}" does not match ${subject}.` + available + (didYouMean ? ` ${didYouMean}` : "");
272
+ }
256
273
  function matchTagBlockHeading(trimmed) {
257
274
  return parseTagDeclaration(trimmed);
258
275
  }
@@ -270,6 +287,7 @@ export {
270
287
  cascadeTagMetadata,
271
288
  injectDefaultTagMetadata,
272
289
  resolveActiveTagGroup,
290
+ activeTagNoMatchMessage,
273
291
  matchTagBlockHeading
274
292
  };
275
- //# sourceMappingURL=chunk-PBXMUXBW.js.map
293
+ //# sourceMappingURL=chunk-DPGI742S.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";
@@ -35,7 +35,7 @@ import {
35
35
  } from "./chunk-A4GOY3PE.js";
36
36
  import {
37
37
  renderIntegratedLegend
38
- } from "./chunk-VSZRPDIZ.js";
38
+ } from "./chunk-6S53NO3M.js";
39
39
  import {
40
40
  getLegendExtent,
41
41
  getMaxLegendReservedHeight
@@ -59,12 +59,12 @@ import {
59
59
  } from "./chunk-IYULMRBE.js";
60
60
  import {
61
61
  tagAttrKey
62
- } from "./chunk-PBXMUXBW.js";
62
+ } from "./chunk-DPGI742S.js";
63
63
  import {
64
64
  fillModeFromOptions,
65
65
  legendInlineRequested,
66
66
  legendSuppressed
67
- } from "./chunk-M2QQQWM3.js";
67
+ } from "./chunk-ZJJWON5O.js";
68
68
  import {
69
69
  contrastText,
70
70
  mix,
@@ -449,8 +449,8 @@ function renderLegend(parent, legendGroups, palette, isDark, activeTagGroup, fix
449
449
  }
450
450
  }
451
451
  async function renderSitemapForExport(content, theme, palette) {
452
- const { parseSitemap } = await import("./parser-SZXKUTVE.js");
453
- const { layoutSitemap } = await import("./layout-2DUQIJOI.js");
452
+ const { parseSitemap } = await import("./parser-LTJ5AKY4.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-UFKFABSP.js.map
503
+ //# sourceMappingURL=chunk-DZ34UUXC.js.map
@@ -6,10 +6,10 @@ import {
6
6
  formatPct,
7
7
  resolveCellColor,
8
8
  resolveColorMode
9
- } from "./chunk-PMDE3I53.js";
9
+ } from "./chunk-3HN32MEK.js";
10
10
  import {
11
11
  renderIntegratedLegend
12
- } from "./chunk-VSZRPDIZ.js";
12
+ } from "./chunk-6S53NO3M.js";
13
13
  import {
14
14
  getMaxLegendReservedHeight
15
15
  } from "./chunk-MTPKBSTR.js";
@@ -24,7 +24,7 @@ import {
24
24
  } from "./chunk-MTGGOCND.js";
25
25
  import {
26
26
  tagAttrKey
27
- } from "./chunk-PBXMUXBW.js";
27
+ } from "./chunk-DPGI742S.js";
28
28
  import {
29
29
  contrastRatio,
30
30
  contrastText,
@@ -423,4 +423,4 @@ export {
423
423
  renderTreemapRadialForExport,
424
424
  renderTreemapRadial
425
425
  };
426
- //# sourceMappingURL=chunk-ASUFSCVV.js.map
426
+ //# sourceMappingURL=chunk-E36Q5ABQ.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  buildMapProjection
3
- } from "./chunk-MUXI4Y6U.js";
3
+ } from "./chunk-REBTZP3W.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-TJ5PDNGU.js.map
54
+ //# sourceMappingURL=chunk-EETUTZ5C.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  compactNumber
3
- } from "./chunk-PMDE3I53.js";
3
+ } from "./chunk-3HN32MEK.js";
4
4
  import {
5
5
  parseInlineMarkdown
6
6
  } from "./chunk-WGC42WJU.js";
@@ -179,9 +179,16 @@ function renderBar(svg, parsed, metrics, paint) {
179
179
  const barCy = y + trackH / 2;
180
180
  const g = svg.append("g").attr("class", "goal-bar");
181
181
  g.append("rect").attr("x", x).attr("y", y).attr("width", trackW).attr("height", trackH).attr("rx", r).attr("fill", paint.track);
182
+ const clipId = "dgmo-goal-track-clip";
183
+ g.append("clipPath").attr("id", clipId).append("rect").attr("x", x).attr("y", y).attr("width", trackW).attr("height", trackH).attr("rx", r);
182
184
  const fillW = trackW * metrics.fillFrac;
183
185
  if (fillW > 0.5) {
184
- g.append("rect").attr("x", x).attr("y", y).attr("width", fillW).attr("height", trackH).attr("rx", r).attr("fill", paint.fill).attr("stroke", paint.base).attr("stroke-width", parsed.options.fillMode === "outline" ? 1.5 : 2);
186
+ const clipped = g.append("g").attr("clip-path", `url(#${clipId})`);
187
+ clipped.append("rect").attr("x", x).attr("y", y).attr("width", fillW).attr("height", trackH).attr("fill", paint.fill);
188
+ const levelW = parsed.options.fillMode === "outline" ? 1.5 : 2;
189
+ if (fillW < trackW - 0.5) {
190
+ clipped.append("rect").attr("x", x + fillW - levelW).attr("y", y).attr("width", levelW).attr("height", trackH).attr("fill", paint.base);
191
+ }
185
192
  }
186
193
  if (!parsed.options.noValue) {
187
194
  const valX = Math.max(x + fillW - 16, x + 52);
@@ -361,4 +368,4 @@ export {
361
368
  renderGoal,
362
369
  renderGoalForExport
363
370
  };
364
- //# sourceMappingURL=chunk-KVM4POFR.js.map
371
+ //# sourceMappingURL=chunk-ELIGVSLE.js.map
@@ -11,12 +11,13 @@ import {
11
11
  } from "./chunk-NOTA6TEI.js";
12
12
  import {
13
13
  AUTO_TAG_COLOR_SENTINEL,
14
+ activeTagNoMatchMessage,
14
15
  finalizeAutoTagColors,
15
16
  matchTagBlockHeading,
16
17
  stripDefaultModifier,
17
18
  validateTagGroupNames,
18
19
  validateTagValues
19
- } from "./chunk-PBXMUXBW.js";
20
+ } from "./chunk-DPGI742S.js";
20
21
  import {
21
22
  FILL_FAMILY_TOKENS,
22
23
  OPTION_NOCOLON_RE,
@@ -29,7 +30,7 @@ import {
29
30
  splitNameAndMeta,
30
31
  warnUnknownMetaKeys,
31
32
  withTagAliases
32
- } from "./chunk-M2QQQWM3.js";
33
+ } from "./chunk-ZJJWON5O.js";
33
34
  import {
34
35
  NAME_DIAGNOSTIC_CODES,
35
36
  formatDgmoError,
@@ -220,8 +221,8 @@ function parseSequenceDgmo(content, palette) {
220
221
  result.diagnostics.push(diag);
221
222
  if (!result.error) result.error = formatDgmoError(diag);
222
223
  };
223
- const pushWarning = (line, message) => {
224
- result.diagnostics.push(makeDgmoError(line, message, "warning"));
224
+ const pushWarning = (line, message, code) => {
225
+ result.diagnostics.push(makeDgmoError(line, message, "warning", code));
225
226
  };
226
227
  if (!content?.trim()) {
227
228
  return fail(0, "Empty content");
@@ -229,6 +230,7 @@ function parseSequenceDgmo(content, palette) {
229
230
  const lines = content.split("\n");
230
231
  let hasExplicitChart = false;
231
232
  let contentStarted = false;
233
+ let activeTagOptionLine = 0;
232
234
  let bodyStarted = false;
233
235
  let firstLineIndex = -1;
234
236
  for (let fi = 0; fi < lines.length; fi++) {
@@ -568,6 +570,7 @@ function parseSequenceDgmo(content, palette) {
568
570
  continue;
569
571
  }
570
572
  result.options[optKey] = optVal;
573
+ if (optKey === "active-tag") activeTagOptionLine = lineNumber;
571
574
  continue;
572
575
  }
573
576
  }
@@ -1029,6 +1032,20 @@ function parseSequenceDgmo(content, palette) {
1029
1032
  validateTagValues(entities, result.tagGroups, pushWarning, suggest);
1030
1033
  validateTagGroupNames(result.tagGroups, pushWarning, pushError);
1031
1034
  }
1035
+ const activeTagWarning = activeTagNoMatchMessage(
1036
+ result.options["active-tag"],
1037
+ // What was DECLARED. The renderer narrows this to groups with entries
1038
+ // (`sequence/renderer.ts`), and checking against that filtered list would
1039
+ // report a group the author can plainly see in their source.
1040
+ result.tagGroups
1041
+ );
1042
+ if (activeTagWarning) {
1043
+ pushWarning(
1044
+ activeTagOptionLine || 1,
1045
+ activeTagWarning,
1046
+ "W_ACTIVE_TAG_NO_MATCH"
1047
+ );
1048
+ }
1032
1049
  return result;
1033
1050
  }
1034
1051
  function looksLikeSequence(content) {
@@ -1048,4 +1065,4 @@ export {
1048
1065
  parseSequenceDgmo,
1049
1066
  looksLikeSequence
1050
1067
  };
1051
- //# sourceMappingURL=chunk-KSK6B35D.js.map
1068
+ //# sourceMappingURL=chunk-FFD6A3B2.js.map
@@ -13,7 +13,7 @@ import {
13
13
  tagAttrKey,
14
14
  validateTagGroupNames,
15
15
  validateTagValues
16
- } from "./chunk-PBXMUXBW.js";
16
+ } from "./chunk-DPGI742S.js";
17
17
  import {
18
18
  ALL_CHART_TYPES,
19
19
  OPTION_NOCOLON_RE,
@@ -26,7 +26,7 @@ import {
26
26
  tryParseSharedOption,
27
27
  warnUnknownMetaKeys,
28
28
  withTagAliases
29
- } from "./chunk-M2QQQWM3.js";
29
+ } from "./chunk-ZJJWON5O.js";
30
30
  import {
31
31
  formatDgmoError,
32
32
  makeDgmoError,
@@ -521,4 +521,4 @@ export {
521
521
  looksLikeSitemap,
522
522
  parseSitemap
523
523
  };
524
- //# sourceMappingURL=chunk-K3MUWASA.js.map
524
+ //# sourceMappingURL=chunk-FLXDMH7B.js.map
@@ -19,10 +19,10 @@ import {
19
19
  injectDefaultTagMetadata,
20
20
  resolveTagColor,
21
21
  tagAttrKey
22
- } from "./chunk-PBXMUXBW.js";
22
+ } from "./chunk-DPGI742S.js";
23
23
  import {
24
24
  legendSuppressed
25
- } from "./chunk-M2QQQWM3.js";
25
+ } from "./chunk-ZJJWON5O.js";
26
26
 
27
27
  // src/org/layout.ts
28
28
  import { hierarchy, tree } from "d3-hierarchy";
@@ -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-J3XFVPEU.js.map
885
+ //# sourceMappingURL=chunk-FTPNAYL2.js.map