@diagrammo/dgmo 0.69.0 → 0.71.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 (190) hide show
  1. package/README.md +2 -0
  2. package/dist/advanced.d.ts +11 -4
  3. package/dist/advanced.js +90 -90
  4. package/dist/block.js +46 -46
  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-C6UIUGNF.js → charts-d3-6IHGTXBR.js} +5 -5
  10. package/dist/{chunk-J2IMCVKB.js → chunk-2JY7KE7C.js} +6 -6
  11. package/dist/{chunk-NPOUCNXP.js → chunk-376ATV2Q.js} +19 -5
  12. package/dist/{chunk-SI766DED.js → chunk-3HN32MEK.js} +2 -2
  13. package/dist/{chunk-EAGUQK5P.js → chunk-3SNE4CLI.js} +3 -3
  14. package/dist/{chunk-KO6FGEEG.js → chunk-4VUFJ7UA.js} +3 -3
  15. package/dist/{chunk-7YCHRBD3.js → chunk-5DYDPP7K.js} +2 -2
  16. package/dist/{chunk-R2UUKZ6R.js → chunk-5GTYY2XV.js} +3 -3
  17. package/dist/{chunk-42FSJTZB.js → chunk-6EDBUKC7.js} +2 -2
  18. package/dist/{chunk-IODPKTRZ.js → chunk-6PA32CUB.js} +2 -2
  19. package/dist/{chunk-QP773H5T.js → chunk-6S53NO3M.js} +5 -2
  20. package/dist/{chunk-GOR4VFYB.js → chunk-722TKHMS.js} +4 -4
  21. package/dist/{chunk-C3OPOLID.js → chunk-7BHM774H.js} +6 -6
  22. package/dist/{chunk-D6MVQTMK.js → chunk-7REARI5N.js} +2 -2
  23. package/dist/{chunk-JWJEYIQF.js → chunk-7SEQPFBX.js} +38 -7
  24. package/dist/{chunk-PUBBTLAA.js → chunk-7TSBM4BV.js} +3 -3
  25. package/dist/{chunk-3QLXP6QZ.js → chunk-AEYRSPVV.js} +2 -2
  26. package/dist/{chunk-C2YYMYNR.js → chunk-BYSRXYRW.js} +4 -4
  27. package/dist/{chunk-WVJ2S4LU.js → chunk-C3MVZ7EW.js} +3 -3
  28. package/dist/{chunk-WBFRYH52.js → chunk-CH4WODSG.js} +3 -3
  29. package/dist/{chunk-XQBZFQE2.js → chunk-CR5WIA6I.js} +2 -2
  30. package/dist/{chunk-U2OLG4PB.js → chunk-DEVZWCD5.js} +17 -5
  31. package/dist/{chunk-WKOQQDQO.js → chunk-DPGI742S.js} +31 -2
  32. package/dist/{chunk-GZY5WEOQ.js → chunk-E36Q5ABQ.js} +4 -4
  33. package/dist/{chunk-HC3I53WV.js → chunk-EETUTZ5C.js} +2 -2
  34. package/dist/{chunk-V6TRRCXS.js → chunk-ELIGVSLE.js} +10 -3
  35. package/dist/{chunk-7N7QLRR5.js → chunk-ENJWB5LU.js} +6 -6
  36. package/dist/{chunk-5B4ZSR6O.js → chunk-FAJS2N4O.js} +5 -5
  37. package/dist/{chunk-TDKWKVN3.js → chunk-FFD6A3B2.js} +22 -5
  38. package/dist/{chunk-LRGSJI5X.js → chunk-FLXDMH7B.js} +3 -3
  39. package/dist/{chunk-UJ4FJLBF.js → chunk-FX2USYOU.js} +13 -1
  40. package/dist/{chunk-5TESTTMF.js → chunk-HTGYAMOK.js} +3 -3
  41. package/dist/{chunk-6766D4YT.js → chunk-HWNF22ZZ.js} +20 -15
  42. package/dist/{chunk-Y37EDBPR.js → chunk-IFJIYUI6.js} +2 -2
  43. package/dist/{chunk-QQI4JTJB.js → chunk-IQ4W4Q2R.js} +2 -2
  44. package/dist/{chunk-2QCQHMQO.js → chunk-ISKO4MQ5.js} +4 -4
  45. package/dist/{chunk-4RYDF2IG.js → chunk-IWNHEK5K.js} +6 -6
  46. package/dist/{chunk-7LYXDGGT.js → chunk-JIWDWOYA.js} +3 -3
  47. package/dist/{chunk-HAGHVHR7.js → chunk-K6MQJ5IV.js} +2 -2
  48. package/dist/{chunk-MOMPLSQI.js → chunk-KJWIU5AM.js} +2 -2
  49. package/dist/{chunk-QILJY2UY.js → chunk-KOVRFBGR.js} +25 -4
  50. package/dist/{chunk-SHS3O7ZZ.js → chunk-LJS4Z326.js} +3 -3
  51. package/dist/{chunk-TXPB6TBM.js → chunk-LSHROB27.js} +3 -3
  52. package/dist/{chunk-Q7UM3R3Y.js → chunk-LTGOPJUV.js} +2 -2
  53. package/dist/{chunk-BQH75ZPE.js → chunk-LUI425JB.js} +3 -3
  54. package/dist/{chunk-N6P3F3FB.js → chunk-LXGUK56B.js} +5 -5
  55. package/dist/{chunk-KZZYRA5T.js → chunk-MC2H32SM.js} +3 -3
  56. package/dist/{chunk-GB5RPD4S.js → chunk-MFSTE3YG.js} +18 -4
  57. package/dist/{chunk-SICO5DVQ.js → chunk-MKNWMFZU.js} +15 -5
  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-76XAJN7L.js → chunk-NEC7R2CB.js} +2 -2
  61. package/dist/{chunk-DBWTM5IJ.js → chunk-NJKUTY4M.js} +3 -3
  62. package/dist/{chunk-D62K46CW.js → chunk-NNMNHE3J.js} +2 -2
  63. package/dist/{chunk-DTC6RVQX.js → chunk-NTBHGUXY.js} +13 -3
  64. package/dist/{chunk-YYFIZ3AO.js → chunk-NUF7YTHA.js} +2 -2
  65. package/dist/{chunk-ODSGYHFP.js → chunk-PBV2C3BW.js} +27 -6
  66. package/dist/{chunk-RXYYJRM5.js → chunk-PLSTP7P4.js} +40 -40
  67. package/dist/{chunk-CJGSCQNP.js → chunk-QAJFIXJE.js} +19 -5
  68. package/dist/{chunk-L44SMVRY.js → chunk-QPG55HGH.js} +3 -3
  69. package/dist/{chunk-VOYADVBN.js → chunk-REBTZP3W.js} +2 -2
  70. package/dist/{chunk-H7LQGRM3.js → chunk-RJI6MHHK.js} +3 -3
  71. package/dist/{chunk-CU56CB3V.js → chunk-RNSGPTOZ.js} +3 -3
  72. package/dist/{chunk-YN4VMZCL.js → chunk-T3LNWU7B.js} +6 -6
  73. package/dist/{chunk-G5UTJZFR.js → chunk-T7W5LM4N.js} +11 -3
  74. package/dist/{chunk-2VMPJRPH.js → chunk-TF7CFAZ5.js} +3 -3
  75. package/dist/{chunk-GJ42T24G.js → chunk-TGGKBY22.js} +58 -15
  76. package/dist/{chunk-F7SKUWWS.js → chunk-UIBPFSIT.js} +6 -6
  77. package/dist/{chunk-5J42K7HM.js → chunk-UNM2PX5D.js} +3 -3
  78. package/dist/{chunk-JR6H5MEF.js → chunk-UNTFANSM.js} +3 -3
  79. package/dist/{chunk-IPMHIKVA.js → chunk-UTVKOGFF.js} +2 -2
  80. package/dist/{chunk-XRDRIUUB.js → chunk-UVAOL2EO.js} +5 -5
  81. package/dist/{chunk-MGAWLZQE.js → chunk-UY77QQWU.js} +2 -2
  82. package/dist/{chunk-DR43UCVQ.js → chunk-VE7PPEU3.js} +105 -18
  83. package/dist/{chunk-MZBEPHFY.js → chunk-VGLSKDDI.js} +2 -2
  84. package/dist/{chunk-LPMYDZSO.js → chunk-VMXV2CL5.js} +21 -5
  85. package/dist/{chunk-5ZADM7W2.js → chunk-W27BULCB.js} +4 -4
  86. package/dist/{chunk-U4UKJPTE.js → chunk-W7SZKJR6.js} +3 -3
  87. package/dist/{chunk-XCWYBBKH.js → chunk-WEC3JPTN.js} +4 -4
  88. package/dist/{chunk-YUTT3PV7.js → chunk-WPXHTYET.js} +16 -11
  89. package/dist/{chunk-HQBY3N3S.js → chunk-X2NX2SK6.js} +2 -2
  90. package/dist/{chunk-ZEHF5OVE.js → chunk-XIZCHGP7.js} +3 -3
  91. package/dist/{chunk-VCNJRCG2.js → chunk-XJZSN42P.js} +188 -120
  92. package/dist/{chunk-GK2ZDR6X.js → chunk-XQW4KFJ4.js} +8 -8
  93. package/dist/{chunk-Z44WBXIC.js → chunk-YCOGUPHL.js} +4 -4
  94. package/dist/{chunk-RP53JR6M.js → chunk-YG35ZCNW.js} +20 -5
  95. package/dist/{chunk-Y65TFTLX.js → chunk-YH5KJIO5.js} +4 -4
  96. package/dist/{chunk-N5XT3OWL.js → chunk-YTFA4VTW.js} +2 -2
  97. package/dist/{chunk-F5DNAUXY.js → chunk-YYBQ55V2.js} +35 -74
  98. package/dist/{chunk-M2QQQWM3.js → chunk-ZJJWON5O.js} +15 -5
  99. package/dist/{chunk-MJDV4DKP.js → chunk-ZNHPCITV.js} +4 -4
  100. package/dist/collapse-JRGPUE67.js +13 -0
  101. package/dist/completion-registry.js +15 -10
  102. package/dist/dgmo-router-J6OWNMEJ.js +89 -0
  103. package/dist/{dgmo-router-EAW7XiBE.d.ts → dgmo-router-Lya7cs3R.d.ts} +28 -0
  104. package/dist/{dimensions-NB72XI2A.js → dimensions-EFEBIRS6.js} +5 -5
  105. package/dist/editor.js +6 -3
  106. package/dist/{flowchart-parser-A64T3OEL.js → flowchart-parser-LZF2GW2P.js} +4 -4
  107. package/dist/{flowchart-renderer-F6PDPKK7.js → flowchart-renderer-HB277GNE.js} +5 -5
  108. package/dist/highlight.d.ts +45 -1
  109. package/dist/highlight.js +30 -3
  110. package/dist/index.d.ts +1 -1
  111. package/dist/index.js +55 -46
  112. package/dist/{layout-2D6VKW6G.js → layout-2DVT24YY.js} +3 -3
  113. package/dist/{layout-FFCYSTW7.js → layout-AWPST2S3.js} +3 -3
  114. package/dist/{layout-RNPKIRS6.js → layout-BGXLVSXL.js} +4 -4
  115. package/dist/{layout-4ICO4K3X.js → layout-BNR6ZDB6.js} +4 -4
  116. package/dist/{layout-A5AYRVOR.js → layout-N6ZOOAYT.js} +4 -4
  117. package/dist/{layout-OQUUQ7YW.js → layout-PBB2RQJ4.js} +4 -4
  118. package/dist/{parser-NIDJMNWX.js → parser-2CXA7K5C.js} +4 -4
  119. package/dist/{parser-43YM7XW3.js → parser-4E2TVMOK.js} +4 -4
  120. package/dist/{parser-V7HFGTVF.js → parser-52AZJ3BA.js} +4 -4
  121. package/dist/{parser-LYCYRROE.js → parser-52BOCAVQ.js} +4 -4
  122. package/dist/{parser-BL3KLB75.js → parser-5IPCYVXY.js} +4 -4
  123. package/dist/{parser-S7IV6DOA.js → parser-6BF5TJQH.js} +4 -4
  124. package/dist/{parser-SEFSLUXW.js → parser-6VZISXFY.js} +3 -3
  125. package/dist/{parser-H2CUQVPH.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-RTT3NOQC.js → parser-AWNEAGMJ.js} +4 -4
  129. package/dist/{parser-WGCE3G7P.js → parser-C2QRTZPJ.js} +4 -4
  130. package/dist/{parser-DLIBNGNQ.js → parser-CBSYFN6U.js} +3 -3
  131. package/dist/{parser-FYBJYHSN.js → parser-CDMP3UVH.js} +4 -4
  132. package/dist/{parser-XMWFEFEH.js → parser-CNKHKQKZ.js} +4 -4
  133. package/dist/{parser-ZNGAQ6NR.js → parser-EX3AGFT5.js} +4 -4
  134. package/dist/{parser-QZJIGMZR.js → parser-GK3JWVHY.js} +5 -5
  135. package/dist/{parser-H2P45TGS.js → parser-GZKR6BFA.js} +4 -4
  136. package/dist/{parser-YCRATNR6.js → parser-K26KDCZN.js} +3 -3
  137. package/dist/{parser-GLFHIKQC.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-DRZMT3IZ.js → parser-SUAOF72Y.js} +4 -4
  143. package/dist/{parser-TPQUTZPP.js → parser-TJ3SP2MJ.js} +4 -4
  144. package/dist/{parser-GEELVJ4X.js → parser-W2HXBHNC.js} +3 -3
  145. package/dist/{parser-HIHYCA3P.js → parser-WF4R7225.js} +4 -4
  146. package/dist/{parser-XLPLW3PI.js → parser-XM6JC3UK.js} +4 -4
  147. package/dist/{parser-FUBDH74F.js → parser-XRZQ7SC7.js} +4 -4
  148. package/dist/{parser-ZXI4IQ5Y.js → parser-YRJAGBV7.js} +4 -4
  149. package/dist/{parser-VBYTR624.js → parser-Z3LN7P6G.js} +5 -5
  150. package/dist/{parser-GGZTPX6F.js → parser-ZIEEBJMU.js} +4 -4
  151. package/dist/{renderer-JP6BTAST.js → renderer-2MEPYGAP.js} +7 -7
  152. package/dist/{renderer-UNHVCJ5Z.js → renderer-35HBBPIQ.js} +5 -5
  153. package/dist/{renderer-FTGHCZOE.js → renderer-3DSU72CP.js} +7 -7
  154. package/dist/{renderer-CH5U3R2K.js → renderer-4CUV63GT.js} +7 -7
  155. package/dist/{renderer-GN3HCUY6.js → renderer-4ORE7HJ3.js} +5 -5
  156. package/dist/{renderer-TQCVWCW4.js → renderer-5FQFMCBZ.js} +7 -7
  157. package/dist/{renderer-CP56XH3X.js → renderer-5YV6KP4U.js} +7 -7
  158. package/dist/{renderer-CEFMVEWU.js → renderer-7BGC4KPZ.js} +5 -5
  159. package/dist/{renderer-72UWS5MQ.js → renderer-7VPABTMS.js} +7 -7
  160. package/dist/{renderer-SZTUE5TE.js → renderer-ANWAX5QO.js} +6 -6
  161. package/dist/{renderer-U7INHN4J.js → renderer-BQWAUDEF.js} +4 -4
  162. package/dist/renderer-DGZDRRJW.js +76 -0
  163. package/dist/{renderer-7AG5MS32.js → renderer-E3UQ24DE.js} +5 -5
  164. package/dist/{renderer-HVEITTJC.js → renderer-FCIOD2QK.js} +5 -5
  165. package/dist/{renderer-MFZE5HBB.js → renderer-H5QR3LC3.js} +4 -4
  166. package/dist/{renderer-KVRTLE2D.js → renderer-JFZVWH2G.js} +3 -3
  167. package/dist/{renderer-2F3JUDTX.js → renderer-JHWGW4Q7.js} +5 -5
  168. package/dist/{renderer-RY7RQQ37.js → renderer-JWSO5O2L.js} +3 -3
  169. package/dist/{renderer-NRHU4AZ6.js → renderer-KFWZPVYT.js} +7 -7
  170. package/dist/{renderer-KBZ223H6.js → renderer-KQIJV5WD.js} +5 -5
  171. package/dist/{renderer-TQJWTC62.js → renderer-LVAUI6T6.js} +6 -6
  172. package/dist/{renderer-PD3Q7VKJ.js → renderer-MZ4N2SVV.js} +5 -5
  173. package/dist/{renderer-4LUPOZH2.js → renderer-QMSFXMAL.js} +5 -5
  174. package/dist/{renderer-OXOAUAVI.js → renderer-QOWN3XDI.js} +8 -6
  175. package/dist/{renderer-5L6INN2B.js → renderer-S5MGQHRQ.js} +6 -6
  176. package/dist/{renderer-FJ6VAUNW.js → renderer-V3PN5ZQS.js} +5 -5
  177. package/dist/{renderer-33U3KRCL.js → renderer-VOXE7V6L.js} +7 -7
  178. package/dist/{renderer-LPA6UC62.js → renderer-WBG576LB.js} +5 -5
  179. package/dist/{renderer-ZOP3SXFR.js → renderer-YXYEP46H.js} +6 -6
  180. package/dist/{renderer-BT6TOWBE.js → renderer-ZEPPPA3W.js} +3 -3
  181. package/dist/{renderer-radial-AZLCCE4C.js → renderer-radial-KZ3W4WXI.js} +6 -6
  182. package/dist/{state-parser-W6OCOJ2S.js → state-parser-HJNCGIFT.js} +5 -5
  183. package/dist/{state-renderer-26JXGKT6.js → state-renderer-776LP3NE.js} +7 -7
  184. package/docs/ai-integration.md +1 -1
  185. package/docs/language-reference.md +49 -31
  186. package/gallery/fixtures/event-line-now-color.dgmo +23 -0
  187. package/package.json +2 -1
  188. package/dist/collapse-CLPJD2RL.js +0 -11
  189. package/dist/dgmo-router-ND3PUDVF.js +0 -89
  190. package/dist/renderer-6YEVDIZJ.js +0 -76
@@ -17,7 +17,7 @@ import {
17
17
  } from "./chunk-A4GOY3PE.js";
18
18
  import {
19
19
  renderIntegratedLegend
20
- } from "./chunk-QP773H5T.js";
20
+ } from "./chunk-6S53NO3M.js";
21
21
  import {
22
22
  getLegendExtent,
23
23
  getMaxLegendReservedHeight
@@ -36,16 +36,16 @@ import {
36
36
  isSequenceBlock,
37
37
  isSequenceNote,
38
38
  isSequenceSection
39
- } from "./chunk-TDKWKVN3.js";
39
+ } from "./chunk-FFD6A3B2.js";
40
40
  import {
41
41
  resolveActiveTagGroup,
42
42
  tagAttrKey
43
- } from "./chunk-WKOQQDQO.js";
43
+ } from "./chunk-DPGI742S.js";
44
44
  import {
45
45
  fillModeFromOptions,
46
46
  legendInlineRequested,
47
47
  legendSuppressed
48
- } from "./chunk-M2QQQWM3.js";
48
+ } from "./chunk-ZJJWON5O.js";
49
49
  import {
50
50
  contrastText,
51
51
  mix,
@@ -415,24 +415,40 @@ var SECTION_LABEL_CLEARANCE_ABOVE = 12;
415
415
  var SECTION_LABEL_CLEARANCE_BELOW = 5;
416
416
  function summarizeSectionParticipation(messages, msgIndices) {
417
417
  const summary = /* @__PURE__ */ new Map();
418
- const bump = (id, key) => {
419
- const entry = summary.get(id) ?? { sends: 0, receives: 0 };
418
+ const bump = (id, key, lineNumber) => {
419
+ const entry = summary.get(id) ?? {
420
+ sends: 0,
421
+ receives: 0,
422
+ firstLine: lineNumber
423
+ };
420
424
  entry[key] += 1;
421
425
  summary.set(id, entry);
422
426
  };
423
427
  for (const idx of msgIndices) {
424
428
  const msg = messages[idx];
425
429
  if (!msg) continue;
426
- bump(msg.from, "sends");
427
- bump(msg.to, "receives");
430
+ bump(msg.from, "sends", msg.lineNumber);
431
+ bump(msg.to, "receives", msg.lineNumber);
428
432
  }
429
433
  return summary;
430
434
  }
435
+ function collapsedGroupMemberLine(labels, maxWidth, fontSize) {
436
+ if (labels.length === 0) return "";
437
+ const full = labels.join(" \xB7 ");
438
+ if (measureText(full, fontSize) <= maxWidth) return full;
439
+ for (let keep = labels.length - 1; keep >= 1; keep--) {
440
+ const line = `${labels.slice(0, keep).join(" \xB7 ")} +${labels.length - keep}`;
441
+ if (measureText(line, fontSize) <= maxWidth) return line;
442
+ }
443
+ const count = labels.length === 1 ? "1 member" : `${labels.length} members`;
444
+ return measureText(count, fontSize) <= maxWidth ? count : "";
445
+ }
431
446
  function sectionMarkRadius(touches) {
432
447
  if (touches >= 4) return 6;
433
448
  if (touches >= 2) return 4.5;
434
449
  return 3.5;
435
450
  }
451
+ var SECTION_MARK_HIT_RADIUS = 9;
436
452
  function buildRenderSequence(messages) {
437
453
  const steps = [];
438
454
  const stack = [];
@@ -1036,6 +1052,12 @@ function renderSequenceDiagram(container, parsed, palette, isDark, _onNavigateTo
1036
1052
  const GROUP_PADDING_TOP = 22;
1037
1053
  const GROUP_PADDING_BOTTOM = 8;
1038
1054
  const GROUP_LABEL_SIZE = 11;
1055
+ const sGroupLabelSize = ctx.text(GROUP_LABEL_SIZE);
1056
+ const GROUP_LABEL_WEIGHT = "bold";
1057
+ const GROUP_MEMBER_SIZE = 9;
1058
+ const sGroupMemberSize = ctx.text(GROUP_MEMBER_SIZE);
1059
+ const GROUP_MEMBER_GAP = 3;
1060
+ const GROUP_MEMBER_PADDING_X = 6;
1039
1061
  const showTitle = !!title && parsedOptions["no-title"] !== "on";
1040
1062
  const titleOffset = showTitle ? sTitleHeight : 0;
1041
1063
  const LEGEND_FIXED_GAP = 8;
@@ -1363,10 +1385,18 @@ function renderSequenceDiagram(container, parsed, palette, isDark, _onNavigateTo
1363
1385
  collapsedGroupNames.add(group.name);
1364
1386
  collapsedGroupMeta.set(group.name, {
1365
1387
  lineNumber: group.lineNumber,
1388
+ participantIds: group.participantIds,
1366
1389
  ...group.metadata !== void 0 && { metadata: group.metadata }
1367
1390
  });
1368
1391
  }
1369
1392
  }
1393
+ const participantLabels = new Map(
1394
+ parsed.participants.map((p) => [String(p.id), p.label])
1395
+ );
1396
+ const groupToggleName = (groupName, memberIds) => {
1397
+ const labels = memberIds.map((id) => participantLabels.get(id) ?? id);
1398
+ return labels.length > 0 ? `${groupName}, ${labels.join(", ")}` : groupName;
1399
+ };
1370
1400
  const participantTagColor = (id) => {
1371
1401
  const direct = getTagColor(tagMap?.participants.get(id));
1372
1402
  if (direct) return direct;
@@ -1386,11 +1416,10 @@ function renderSequenceDiagram(container, parsed, palette, isDark, _onNavigateTo
1386
1416
  const groupTagColor = getTagColor(groupTagValue || void 0);
1387
1417
  const fillColor = groupTagColor ? mix(groupTagColor, themeBaseBg(palette, isDark), isDark ? 15 : 20) : isDark ? palette.surface : palette.bg;
1388
1418
  const strokeColor = groupTagColor || palette.textMuted;
1389
- const groupG = svg.append("g").attr("class", "group-box-wrapper").attr("data-group-toggle", "").attr("data-group-line", String(group.lineNumber)).attr("tabindex", "0").attr("role", "button").attr("aria-expanded", "true").attr("cursor", "pointer");
1390
- groupG.append("title").text("Click to collapse");
1419
+ const groupG = svg.append("g").attr("class", "group-box-wrapper").attr("data-group-toggle", "").attr("data-group-line", String(group.lineNumber)).attr("tabindex", "0").attr("role", "button").attr("aria-expanded", "true").attr("aria-label", groupToggleName(group.name, group.participantIds)).attr("cursor", "pointer");
1391
1420
  groupG.append("rect").attr("x", minX).attr("y", boxY).attr("width", maxX - minX).attr("height", boxH).attr("rx", 6).attr("fill", fillColor).attr("stroke", strokeColor).attr("stroke-width", 1).attr("stroke-opacity", 0.5).attr("pointer-events", "none").attr("class", "group-box");
1392
1421
  groupG.append("rect").attr("x", minX).attr("y", boxY).attr("width", maxX - minX).attr("height", participantStartY - boxY).attr("fill", "transparent").attr("class", "group-label-hit");
1393
- groupG.append("text").attr("x", (minX + maxX) / 2).attr("y", boxY + GROUP_LABEL_SIZE + 4).attr("text-anchor", "middle").attr("fill", strokeColor).attr("font-size", GROUP_LABEL_SIZE).attr("font-weight", "bold").attr("opacity", 0.7).attr("pointer-events", "none").attr("class", "group-label").text(group.name);
1422
+ groupG.append("text").attr("x", (minX + maxX) / 2).attr("y", boxY + sGroupLabelSize + 4).attr("text-anchor", "middle").attr("fill", strokeColor).attr("font-size", sGroupLabelSize).attr("font-weight", GROUP_LABEL_WEIGHT).attr("opacity", 0.7).attr("pointer-events", "none").attr("class", "group-label").text(group.name);
1394
1423
  }
1395
1424
  const bandLeftmostX = Math.min(...Array.from(participantX.values()));
1396
1425
  const bandRightmostX = Math.max(...Array.from(participantX.values()));
@@ -1461,12 +1490,24 @@ function renderSequenceDiagram(container, parsed, palette, isDark, _onNavigateTo
1461
1490
  const participantG = svg.select(
1462
1491
  `.participant[data-participant-id="${participant.id}"]`
1463
1492
  );
1464
- participantG.attr("data-group-toggle", "").attr("data-group-line", String(meta.lineNumber)).attr("tabindex", "0").attr("role", "button").attr("aria-expanded", "false").attr("cursor", "pointer");
1465
- participantG.append("title").text("Click to expand");
1493
+ participantG.attr("data-group-toggle", "").attr("data-group-line", String(meta.lineNumber)).attr("tabindex", "0").attr("role", "button").attr("aria-expanded", "false").attr(
1494
+ "aria-label",
1495
+ groupToggleName(participant.id, meta.participantIds)
1496
+ ).attr("cursor", "pointer");
1466
1497
  const pFill = effectiveTagColor ? mix(effectiveTagColor, themeBaseBg(palette, isDark), isDark ? 30 : 40) : isDark ? mix(palette.overlay, palette.surface, 50) : mix(palette.bg, palette.surface, 50);
1467
1498
  const pStroke = effectiveTagColor || palette.border;
1468
1499
  participantG.append("rect").attr("x", -boxW / 2).attr("y", -GROUP_PADDING_TOP).attr("width", boxW).attr("height", fullH).attr("rx", 6).attr("fill", pFill).attr("stroke", pStroke).attr("stroke-width", 1.5);
1469
- participantG.append("text").attr("x", 0).attr("y", -GROUP_PADDING_TOP + fullH / 2).attr("text-anchor", "middle").attr("dominant-baseline", "central").attr("fill", palette.text).attr("font-size", ctx.text(13)).attr("font-weight", 500).text(participant.label);
1500
+ const memberLine = collapsedGroupMemberLine(
1501
+ meta.participantIds.map((id) => participantLabels.get(id) ?? id),
1502
+ boxW - GROUP_MEMBER_PADDING_X * 2,
1503
+ sGroupMemberSize
1504
+ );
1505
+ const boxMidY = -GROUP_PADDING_TOP + fullH / 2;
1506
+ const nameY = memberLine ? boxMidY - (sGroupMemberSize + GROUP_MEMBER_GAP) / 2 : boxMidY;
1507
+ participantG.append("text").attr("x", 0).attr("y", nameY).attr("text-anchor", "middle").attr("dominant-baseline", "central").attr("fill", palette.text).attr("font-size", sGroupLabelSize).attr("font-weight", GROUP_LABEL_WEIGHT).attr("class", "collapsed-group-label").text(participant.label);
1508
+ if (memberLine) {
1509
+ participantG.append("text").attr("x", 0).attr("y", boxMidY + (sGroupLabelSize + GROUP_MEMBER_GAP) / 2).attr("text-anchor", "middle").attr("dominant-baseline", "central").attr("fill", palette.textMuted).attr("font-size", sGroupMemberSize).attr("class", "collapsed-group-members").text(memberLine);
1510
+ }
1470
1511
  participantG.append("clipPath").attr("id", clipId).append("rect").attr("x", -boxW / 2).attr("y", -GROUP_PADDING_TOP).attr("width", boxW).attr("height", fullH).attr("rx", 6);
1471
1512
  participantG.append("rect").attr("class", "sequence-drill-bar").attr("x", -boxW / 2).attr("y", -GROUP_PADDING_TOP + fullH - drillBarH).attr("width", boxW).attr("height", drillBarH).attr("fill", drillColor).attr("clip-path", `url(#${clipId})`);
1472
1513
  }
@@ -1752,6 +1793,7 @@ function renderSequenceDiagram(container, parsed, palette, isDark, _onNavigateTo
1752
1793
  }
1753
1794
  const markColor = participantTagColor(participant.id) ?? palette.text;
1754
1795
  const radius = sectionMarkRadius(part.sends + part.receives);
1796
+ sectionG.append("circle").attr("cx", markX).attr("cy", markY).attr("r", Math.max(radius, SECTION_MARK_HIT_RADIUS)).attr("fill", "transparent").attr("class", "section-mark-hit").attr("data-participant-id", participant.id).attr("data-section-mark-line", String(part.firstLine)).attr("cursor", "pointer");
1755
1797
  if (part.sends === 0) {
1756
1798
  mark.attr("r", radius).attr("fill", bandFill).attr("stroke", markColor).attr("stroke-width", 1.6).attr("class", "section-mark section-mark-receives");
1757
1799
  } else {
@@ -2015,6 +2057,7 @@ export {
2015
2057
  applyCollapseProjection,
2016
2058
  groupMessagesBySection,
2017
2059
  summarizeSectionParticipation,
2060
+ collapsedGroupMemberLine,
2018
2061
  buildRenderSequence,
2019
2062
  computeActivations,
2020
2063
  applyPositionOverrides,
@@ -2022,4 +2065,4 @@ export {
2022
2065
  renderSequenceDiagram,
2023
2066
  buildNoteMessageMap
2024
2067
  };
2025
- //# sourceMappingURL=chunk-GJ42T24G.js.map
2068
+ //# sourceMappingURL=chunk-TGGKBY22.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  computeNodeText,
3
3
  layoutMindmap
4
- } from "./chunk-42FSJTZB.js";
4
+ } from "./chunk-6EDBUKC7.js";
5
5
  import {
6
6
  extractExportSvg,
7
7
  runInExportContainer
@@ -26,7 +26,7 @@ import {
26
26
  } from "./chunk-A4GOY3PE.js";
27
27
  import {
28
28
  renderIntegratedLegend
29
- } from "./chunk-QP773H5T.js";
29
+ } from "./chunk-6S53NO3M.js";
30
30
  import {
31
31
  getLegendExtent,
32
32
  getMaxLegendReservedHeight
@@ -39,18 +39,18 @@ import {
39
39
  } from "./chunk-QX53GOI7.js";
40
40
  import {
41
41
  parseMindmap
42
- } from "./chunk-CJGSCQNP.js";
42
+ } from "./chunk-QAJFIXJE.js";
43
43
  import {
44
44
  preprocessDescriptionLine
45
45
  } from "./chunk-IYULMRBE.js";
46
46
  import {
47
47
  tagAttrKey
48
- } from "./chunk-WKOQQDQO.js";
48
+ } from "./chunk-DPGI742S.js";
49
49
  import {
50
50
  fillModeFromOptions,
51
51
  legendInlineRequested,
52
52
  legendSuppressed
53
- } from "./chunk-M2QQQWM3.js";
53
+ } from "./chunk-ZJJWON5O.js";
54
54
  import {
55
55
  contrastText,
56
56
  shapeFill
@@ -426,4 +426,4 @@ export {
426
426
  renderMindmap,
427
427
  renderMindmapForExport
428
428
  };
429
- //# sourceMappingURL=chunk-F7SKUWWS.js.map
429
+ //# sourceMappingURL=chunk-UIBPFSIT.js.map
@@ -9,13 +9,13 @@ import {
9
9
  matchTagBlockHeading,
10
10
  stripDefaultModifier,
11
11
  tagAttrKey
12
- } from "./chunk-WKOQQDQO.js";
12
+ } from "./chunk-DPGI742S.js";
13
13
  import {
14
14
  extractColor,
15
15
  fillModeFromToken,
16
16
  measureIndent,
17
17
  parseFirstLine
18
- } from "./chunk-M2QQQWM3.js";
18
+ } from "./chunk-ZJJWON5O.js";
19
19
  import {
20
20
  emit
21
21
  } from "./chunk-OLMWTJVU.js";
@@ -264,4 +264,4 @@ export {
264
264
  parseBody,
265
265
  extractSymbols
266
266
  };
267
- //# sourceMappingURL=chunk-5J42K7HM.js.map
267
+ //# sourceMappingURL=chunk-UNM2PX5D.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  tryCollectNote
3
- } from "./chunk-HK3JTWG3.js";
3
+ } from "./chunk-MX3BYU7V.js";
4
4
  import {
5
5
  resolveNotes
6
6
  } from "./chunk-7NK42OIB.js";
@@ -16,7 +16,7 @@ import {
16
16
  measureIndent,
17
17
  parseFirstLine,
18
18
  tryParseSharedOption
19
- } from "./chunk-M2QQQWM3.js";
19
+ } from "./chunk-ZJJWON5O.js";
20
20
  import {
21
21
  resolveColorWithDiagnostic
22
22
  } from "./chunk-EXNKNJ65.js";
@@ -445,4 +445,4 @@ export {
445
445
  looksLikeClassDiagram,
446
446
  extractSymbols
447
447
  };
448
- //# sourceMappingURL=chunk-JR6H5MEF.js.map
448
+ //# sourceMappingURL=chunk-UNTFANSM.js.map
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  isTagBlockHeading,
6
6
  matchTagBlockHeading
7
- } from "./chunk-WKOQQDQO.js";
7
+ } from "./chunk-DPGI742S.js";
8
8
  import {
9
9
  makeDgmoError
10
10
  } from "./chunk-OLMWTJVU.js";
@@ -402,4 +402,4 @@ export {
402
402
  normalizePertSourceForShare,
403
403
  resolveOrgImports
404
404
  };
405
- //# sourceMappingURL=chunk-IPMHIKVA.js.map
405
+ //# sourceMappingURL=chunk-UTVKOGFF.js.map
@@ -16,7 +16,7 @@ import {
16
16
  } from "./chunk-A4GOY3PE.js";
17
17
  import {
18
18
  renderIntegratedLegend
19
- } from "./chunk-QP773H5T.js";
19
+ } from "./chunk-6S53NO3M.js";
20
20
  import {
21
21
  getMaxLegendReservedHeight
22
22
  } from "./chunk-MTPKBSTR.js";
@@ -32,14 +32,14 @@ import {
32
32
  } from "./chunk-MTGGOCND.js";
33
33
  import {
34
34
  parseKanban
35
- } from "./chunk-SICO5DVQ.js";
35
+ } from "./chunk-MKNWMFZU.js";
36
36
  import {
37
37
  tagAttrKey
38
- } from "./chunk-WKOQQDQO.js";
38
+ } from "./chunk-DPGI742S.js";
39
39
  import {
40
40
  fillModeFromOptions,
41
41
  legendSuppressed
42
- } from "./chunk-M2QQQWM3.js";
42
+ } from "./chunk-ZJJWON5O.js";
43
43
  import {
44
44
  contrastText,
45
45
  mix,
@@ -892,4 +892,4 @@ export {
892
892
  renderKanban,
893
893
  renderKanbanForExport
894
894
  };
895
- //# sourceMappingURL=chunk-XRDRIUUB.js.map
895
+ //# sourceMappingURL=chunk-UVAOL2EO.js.map
@@ -12,7 +12,7 @@ import {
12
12
  normalizeNumericToken,
13
13
  parseFirstLine,
14
14
  parseSeriesNames
15
- } from "./chunk-M2QQQWM3.js";
15
+ } from "./chunk-ZJJWON5O.js";
16
16
  import {
17
17
  RECOGNIZED_COLOR_NAMES,
18
18
  resolveColorWithDiagnostic
@@ -1204,4 +1204,4 @@ export {
1204
1204
  getSimpleChartLegendGroups,
1205
1205
  getExtendedChartLegendGroups
1206
1206
  };
1207
- //# sourceMappingURL=chunk-MGAWLZQE.js.map
1207
+ //# sourceMappingURL=chunk-UY77QQWU.js.map
@@ -42,7 +42,7 @@ import {
42
42
  getSimpleChartLegendGroups,
43
43
  parseChart,
44
44
  parseExtendedChart
45
- } from "./chunk-MGAWLZQE.js";
45
+ } from "./chunk-UY77QQWU.js";
46
46
  import {
47
47
  EMPHASIS_DIM_OPACITY,
48
48
  EMPHASIS_DIM_TEXT_OPACITY,
@@ -50,7 +50,7 @@ import {
50
50
  } from "./chunk-2CW5ZTNH.js";
51
51
  import {
52
52
  tagAttrKey
53
- } from "./chunk-WKOQQDQO.js";
53
+ } from "./chunk-DPGI742S.js";
54
54
  import {
55
55
  contrastText,
56
56
  getSegmentColors,
@@ -282,6 +282,70 @@ function tagDatum(sel, o) {
282
282
  function drawValueLabel(svg, text, x, y, color, anchor = "middle") {
283
283
  svg.append("text").attr("x", x).attr("y", y).attr("text-anchor", anchor).attr("fill", color).attr("font-size", VALUE_FONT).attr("font-family", FONT_FAMILY).text(text);
284
284
  }
285
+ var LABEL_ROTATE_DEG = 40;
286
+ var LABEL_GAP = 8;
287
+ var LABEL_LINE_HEIGHT = 1.25;
288
+ function spreadIndices(total, count) {
289
+ if (total <= 0) return /* @__PURE__ */ new Set();
290
+ if (total === 1 || count <= 1) return /* @__PURE__ */ new Set([0]);
291
+ const n = Math.min(count, total);
292
+ const keep = /* @__PURE__ */ new Set();
293
+ for (let k = 0; k < n; k++) {
294
+ keep.add(Math.round(k * (total - 1) / (n - 1)));
295
+ }
296
+ return keep;
297
+ }
298
+ function planCategoryLabels(labels, slot, font = TICK_FONT) {
299
+ const n = labels.length;
300
+ if (n === 0) {
301
+ return { rotate: false, stride: 1, height: 18, keep: /* @__PURE__ */ new Set() };
302
+ }
303
+ const widest = Math.max(...labels.map((t) => measureText(t, font)));
304
+ const flatNeeds = widest + LABEL_GAP;
305
+ const flatHeight = Math.round(font * LABEL_LINE_HEIGHT) + 6;
306
+ const all = (stride2) => (
307
+ // How many labels fit at this spacing, both ends included.
308
+ spreadIndices(n, Math.floor((n - 1) / stride2) + 1)
309
+ );
310
+ if (slot <= 0 || flatNeeds <= slot) {
311
+ return {
312
+ rotate: false,
313
+ stride: 1,
314
+ height: flatHeight,
315
+ keep: spreadIndices(n, n)
316
+ };
317
+ }
318
+ const flatStride = Math.ceil(flatNeeds / slot);
319
+ if (flatStride <= 2) {
320
+ return { rotate: false, stride: 2, height: flatHeight, keep: all(2) };
321
+ }
322
+ const rad = LABEL_ROTATE_DEG * Math.PI / 180;
323
+ const rotNeeds = font * LABEL_LINE_HEIGHT / Math.sin(rad);
324
+ const stride = Math.max(1, Math.ceil(rotNeeds / slot));
325
+ return {
326
+ rotate: true,
327
+ stride,
328
+ height: Math.round(widest * Math.sin(rad)) + 12,
329
+ keep: all(stride)
330
+ };
331
+ }
332
+ function labelSurvives(plan, i) {
333
+ return plan.keep.has(i);
334
+ }
335
+ function drawCategoryLabels(svg, labels, plan, xFor, baseline, textColor, font = TICK_FONT) {
336
+ labels.forEach((label, i) => {
337
+ if (!labelSurvives(plan, i)) return;
338
+ const t = svg.append("text").attr("class", "dgmo-tick").attr("fill", textColor).attr("font-size", font).attr("font-family", FONT_FAMILY).text(label);
339
+ if (plan.rotate) {
340
+ t.attr(
341
+ "transform",
342
+ `translate(${xFor(i)},${baseline + font}) rotate(-${LABEL_ROTATE_DEG})`
343
+ ).attr("text-anchor", "end");
344
+ } else {
345
+ t.attr("x", xFor(i)).attr("y", baseline + font + 6).attr("text-anchor", "middle");
346
+ }
347
+ });
348
+ }
285
349
 
286
350
  // src/charts-d3/bar.ts
287
351
  import { scaleBand, scaleLinear } from "d3-scale";
@@ -332,13 +396,18 @@ function renderBar(svg, chart, width, height, colors, palette, isDark, textColor
332
396
  const loVal = Math.min(0, minVal);
333
397
  const niceMax = hiVal === 0 && loVal === 0 ? 1 : hiVal;
334
398
  const leftLabels = horizontal ? data.map((d) => d.label) : [fmtNum(niceMax), fmtNum(niceMax / 2), fmtNum(loVal), fmtNum(loVal / 2)];
399
+ const mLeft = computeLeftMargin(chart.ylabel, leftLabels);
400
+ const plotW = width - mLeft - 32;
401
+ const labelPlan = planCategoryLabels(
402
+ data.map((d) => d.label),
403
+ horizontal || data.length === 0 ? Infinity : plotW / data.length
404
+ );
335
405
  const m = {
336
406
  top: top + 8,
337
407
  right: 32,
338
- bottom: 64,
339
- left: computeLeftMargin(chart.ylabel, leftLabels)
408
+ bottom: horizontal ? 64 : Math.max(64, labelPlan.height + (chart.xlabel ? 40 : 18)),
409
+ left: mLeft
340
410
  };
341
- const plotW = width - m.left - m.right;
342
411
  const plotH = height - m.top - m.bottom;
343
412
  const horiz = horizontal;
344
413
  const catRange = horiz ? [m.top, m.top + plotH] : [m.left, m.left + plotW];
@@ -356,13 +425,20 @@ function renderBar(svg, chart, width, height, colors, palette, isDark, textColor
356
425
  svg.append("text").attr("x", m.left - 10).attr("y", y + 4).attr("text-anchor", "end").attr("fill", textColor).attr("font-size", TICK_FONT).attr("font-family", FONT_FAMILY).text(fmtNum(t));
357
426
  }
358
427
  }
359
- for (const d of data) {
360
- const c = (cat(d.label) ?? 0) + cat.bandwidth() / 2;
361
- if (horiz) {
428
+ if (horiz) {
429
+ for (const d of data) {
430
+ const c = (cat(d.label) ?? 0) + cat.bandwidth() / 2;
362
431
  svg.append("text").attr("x", m.left - 10).attr("y", c + 4).attr("text-anchor", "end").attr("fill", textColor).attr("font-size", TICK_FONT).attr("font-family", FONT_FAMILY).text(d.label);
363
- } else {
364
- svg.append("text").attr("x", c).attr("y", m.top + plotH + 18).attr("text-anchor", "middle").attr("fill", textColor).attr("font-size", TICK_FONT).attr("font-family", FONT_FAMILY).text(d.label);
365
432
  }
433
+ } else {
434
+ drawCategoryLabels(
435
+ svg,
436
+ data.map((d) => d.label),
437
+ labelPlan,
438
+ (i) => (cat(data[i].label) ?? 0) + cat.bandwidth() / 2,
439
+ m.top + plotH,
440
+ textColor
441
+ );
366
442
  }
367
443
  const zero = val(0);
368
444
  const inner = stacked ? null : scaleBand().domain(seriesNames.map((_, i) => i)).range([0, cat.bandwidth()]).padding(0.12);
@@ -554,13 +630,19 @@ function renderLine(svg, chart, width, height, colors, palette, isDark, textColo
554
630
  };
555
631
  const [loL, hiL] = extentFor("left");
556
632
  const [loR, hiR] = dual ? extentFor("right") : [0, 1];
633
+ const mLeft = computeLeftMargin(chart.ylabel, [fmtNum(hiL), fmtNum(loL)]);
634
+ const mRight = dual ? computeLeftMargin(chart.yrlabel, [fmtNum(hiR), fmtNum(loR)]) : 32;
635
+ const plotW = width - mLeft - mRight;
636
+ const labelPlan = planCategoryLabels(
637
+ data.map((d) => d.label),
638
+ data.length > 0 ? plotW / data.length : plotW
639
+ );
557
640
  const m = {
558
641
  top: top + 8,
559
- right: dual ? computeLeftMargin(chart.yrlabel, [fmtNum(hiR), fmtNum(loR)]) : 32,
560
- bottom: 64,
561
- left: computeLeftMargin(chart.ylabel, [fmtNum(hiL), fmtNum(loL)])
642
+ right: mRight,
643
+ bottom: Math.max(64, labelPlan.height + (chart.xlabel ? 40 : 18)),
644
+ left: mLeft
562
645
  };
563
- const plotW = width - m.left - m.right;
564
646
  const plotH = height - m.top - m.bottom;
565
647
  const x = scalePoint().domain(data.map((d) => d.label)).range([m.left, m.left + plotW]).padding(0.5);
566
648
  const yL = scaleLinear2().domain([loL, hiL]).nice().range([m.top + plotH, m.top]);
@@ -588,9 +670,14 @@ function renderLine(svg, chart, width, height, colors, palette, isDark, textColo
588
670
  svg.append("text").attr("class", "dgmo-tick").attr("x", m.left + plotW + 10).attr("y", yR(t) + 4).attr("text-anchor", "start").attr("fill", rightTint ?? textColor).attr("font-size", TICK_FONT).attr("font-family", FONT_FAMILY).text(fmtNum(t));
589
671
  }
590
672
  }
591
- for (const d of data) {
592
- svg.append("text").attr("class", "dgmo-tick").attr("x", x(d.label) ?? 0).attr("y", m.top + plotH + 18).attr("text-anchor", "middle").attr("fill", textColor).attr("font-size", TICK_FONT).attr("font-family", FONT_FAMILY).text(d.label);
593
- }
673
+ drawCategoryLabels(
674
+ svg,
675
+ data.map((d) => d.label),
676
+ labelPlan,
677
+ (i) => x(data[i].label) ?? 0,
678
+ m.top + plotH,
679
+ textColor
680
+ );
594
681
  svg.append("rect").attr("class", "dgmo-plot-rect").attr("x", m.left).attr("y", m.top).attr("width", plotW).attr("height", plotH).attr("fill", "transparent");
595
682
  for (let s = 0; s < seriesCount; s++) {
596
683
  const color = seriesColor(s);
@@ -2064,4 +2151,4 @@ export {
2064
2151
  supportsD3DataChart,
2065
2152
  renderDataChartD3
2066
2153
  };
2067
- //# sourceMappingURL=chunk-DR43UCVQ.js.map
2154
+ //# sourceMappingURL=chunk-VE7PPEU3.js.map
@@ -8,7 +8,7 @@ import {
8
8
  } from "./chunk-NOTA6TEI.js";
9
9
  import {
10
10
  peelQuotedName
11
- } from "./chunk-M2QQQWM3.js";
11
+ } from "./chunk-ZJJWON5O.js";
12
12
  import {
13
13
  makeDgmoError
14
14
  } from "./chunk-OLMWTJVU.js";
@@ -787,4 +787,4 @@ export {
787
787
  resolveTaskName,
788
788
  calculateSchedule
789
789
  };
790
- //# sourceMappingURL=chunk-MZBEPHFY.js.map
790
+ //# sourceMappingURL=chunk-VGLSKDDI.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  extractDatePrefix,
3
3
  parseTimelineDate
4
- } from "./chunk-D62K46CW.js";
4
+ } from "./chunk-NNMNHE3J.js";
5
5
  import {
6
6
  makeYearContext,
7
7
  parseDateToken,
@@ -16,7 +16,7 @@ import {
16
16
  tagAttrKey,
17
17
  validateTagGroupNames,
18
18
  validateTagValues
19
- } from "./chunk-WKOQQDQO.js";
19
+ } from "./chunk-DPGI742S.js";
20
20
  import {
21
21
  EVENT_LINE_REGISTRY,
22
22
  extractColor,
@@ -27,7 +27,7 @@ import {
27
27
  tryParseSharedOption,
28
28
  warnUnknownMetaKeys,
29
29
  withTagAliases
30
- } from "./chunk-M2QQQWM3.js";
30
+ } from "./chunk-ZJJWON5O.js";
31
31
  import {
32
32
  emit,
33
33
  formatDgmoError,
@@ -358,13 +358,28 @@ function parseEventLine(content, palette) {
358
358
  {
359
359
  const nowMatch = trimmed.match(NOW_RE);
360
360
  if (nowMatch) {
361
- const rest = nowMatch[1].trim();
361
+ let rest = nowMatch[1].trim();
362
+ let color = null;
363
+ if (rest) {
364
+ const token = rest.split(/\s+/).pop();
365
+ const ex = extractColor(
366
+ `x ${token}`,
367
+ palette,
368
+ result.diagnostics,
369
+ lineNumber
370
+ );
371
+ if (ex.color !== void 0) {
372
+ color = token;
373
+ rest = rest.slice(0, rest.length - token.length).trim();
374
+ }
375
+ }
362
376
  if (!rest) {
363
377
  result.now = {
364
378
  computed: true,
365
379
  date: null,
366
380
  dateValue: null,
367
381
  label: null,
382
+ color,
368
383
  lineNumber
369
384
  };
370
385
  } else {
@@ -376,6 +391,7 @@ function parseEventLine(content, palette) {
376
391
  date: prefix.startDate,
377
392
  dateValue: parseTimelineDate(prefix.startDate),
378
393
  label,
394
+ color,
379
395
  lineNumber
380
396
  };
381
397
  } else {
@@ -670,4 +686,4 @@ export {
670
686
  EVENT_LINE_DIAGNOSTICS,
671
687
  parseEventLine
672
688
  };
673
- //# sourceMappingURL=chunk-LPMYDZSO.js.map
689
+ //# sourceMappingURL=chunk-VMXV2CL5.js.map
@@ -22,7 +22,7 @@ import {
22
22
  } from "./chunk-A4GOY3PE.js";
23
23
  import {
24
24
  renderIntegratedLegend
25
- } from "./chunk-QP773H5T.js";
25
+ } from "./chunk-6S53NO3M.js";
26
26
  import {
27
27
  getLegendExtent,
28
28
  getMaxLegendReservedHeight
@@ -42,12 +42,12 @@ import {
42
42
  import {
43
43
  resolveTagColor,
44
44
  tagAttrKey
45
- } from "./chunk-WKOQQDQO.js";
45
+ } from "./chunk-DPGI742S.js";
46
46
  import {
47
47
  fillModeFromOptions,
48
48
  legendInlineRequested,
49
49
  legendSuppressed
50
- } from "./chunk-M2QQQWM3.js";
50
+ } from "./chunk-ZJJWON5O.js";
51
51
  import {
52
52
  contrastText,
53
53
  mix,
@@ -317,4 +317,4 @@ export {
317
317
  renderFamilyForExport,
318
318
  renderFamily
319
319
  };
320
- //# sourceMappingURL=chunk-5ZADM7W2.js.map
320
+ //# sourceMappingURL=chunk-W27BULCB.js.map
@@ -15,10 +15,10 @@ import {
15
15
  } from "./chunk-MTGGOCND.js";
16
16
  import {
17
17
  tagAttrKey
18
- } from "./chunk-WKOQQDQO.js";
18
+ } from "./chunk-DPGI742S.js";
19
19
  import {
20
20
  legendSuppressed
21
- } from "./chunk-M2QQQWM3.js";
21
+ } from "./chunk-ZJJWON5O.js";
22
22
 
23
23
  // src/c4/layout.ts
24
24
  import dagre from "@dagrejs/dagre";
@@ -1718,4 +1718,4 @@ export {
1718
1718
  layoutC4Components,
1719
1719
  layoutC4Deployment
1720
1720
  };
1721
- //# sourceMappingURL=chunk-U4UKJPTE.js.map
1721
+ //# sourceMappingURL=chunk-W7SZKJR6.js.map