@diagrammo/dgmo 0.49.0 → 0.50.1

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 (198) hide show
  1. package/.cursorrules +6 -2
  2. package/.github/copilot-instructions.md +6 -2
  3. package/.windsurfrules +6 -2
  4. package/SKILL.md +6 -2
  5. package/dist/advanced.js +557 -195
  6. package/dist/auto.js +129 -119
  7. package/dist/auto.mjs +19496 -12761
  8. package/dist/block.js +145 -48
  9. package/dist/{charts-d3-EW3YQTEA.js → charts-d3-LR6D3D7A.js} +5 -5
  10. package/dist/{chunk-5FGDJIJX.js → chunk-2C56LEML.js} +3 -3
  11. package/dist/{chunk-XJ7J6WOO.js → chunk-2KGXHFYK.js} +4 -4
  12. package/dist/{chunk-T7IKPCMI.js → chunk-3LH5CLP4.js} +3 -3
  13. package/dist/{chunk-ZDUQGL3N.js → chunk-3LKM6FMW.js} +2 -2
  14. package/dist/{chunk-4FIV4K4Z.js → chunk-3NODSS6A.js} +7 -7
  15. package/dist/{chunk-4BD7EVPK.js → chunk-3P2DKJCG.js} +2 -2
  16. package/dist/{chunk-TC3YWBFO.js → chunk-3UIKSPFB.js} +35 -9
  17. package/dist/{chunk-SJEGO2QL.js → chunk-3XGZF2QJ.js} +4 -4
  18. package/dist/chunk-3XPUDB7B.js +420 -0
  19. package/dist/{chunk-O5MQPK7E.js → chunk-3Y2DRD7S.js} +3 -3
  20. package/dist/chunk-3YPY3OXD.js +354 -0
  21. package/dist/{chunk-N4J5KGWG.js → chunk-4MJ7M6YL.js} +8 -8
  22. package/dist/{chunk-JFPY3UJ7.js → chunk-4S52SK6G.js} +8 -8
  23. package/dist/{chunk-ALRHIR6I.js → chunk-5GJYGP5Z.js} +4 -4
  24. package/dist/{chunk-SQDFK5ZQ.js → chunk-5OWVC2A6.js} +3 -3
  25. package/dist/{chunk-7VLUGEMJ.js → chunk-66NVRO4K.js} +4 -4
  26. package/dist/{chunk-ZREZOIGS.js → chunk-66RUL3XF.js} +6 -6
  27. package/dist/{chunk-MJCG5K2O.js → chunk-6BFZKBGD.js} +2 -2
  28. package/dist/{chunk-2WMBWZY2.js → chunk-6HJBFVLO.js} +3 -3
  29. package/dist/{chunk-XCC2RENT.js → chunk-6IAA2QQ2.js} +2 -2
  30. package/dist/{chunk-B57V3DWN.js → chunk-7L3R6I3U.js} +3 -3
  31. package/dist/chunk-7PQYTZMA.js +681 -0
  32. package/dist/{chunk-6SA7FJE4.js → chunk-7QKLIMRZ.js} +10 -10
  33. package/dist/{chunk-YTN572Q2.js → chunk-7TV5Y53Y.js} +2 -2
  34. package/dist/{chunk-6CLKNXVP.js → chunk-BBGDM4NQ.js} +457 -78
  35. package/dist/{chunk-3NFJWFNP.js → chunk-BDXC7MDK.js} +1045 -124
  36. package/dist/{chunk-D5AVQCDN.js → chunk-BH3UYK36.js} +3 -3
  37. package/dist/chunk-BTUTZMPT.js +482 -0
  38. package/dist/{chunk-LVHPTBO3.js → chunk-C2CVAM3U.js} +4 -4
  39. package/dist/{chunk-BCT5G2VN.js → chunk-DFTFPYUD.js} +5 -5
  40. package/dist/{chunk-KV6Y2HE6.js → chunk-DSWVNQVS.js} +4 -4
  41. package/dist/{chunk-4YNP6O47.js → chunk-DZXYF2F5.js} +13 -3
  42. package/dist/{chunk-FUCAB3KQ.js → chunk-EAMEADTV.js} +3 -3
  43. package/dist/chunk-FA6K3FWM.js +940 -0
  44. package/dist/{chunk-HBVD67XG.js → chunk-FJUNPCYI.js} +2 -2
  45. package/dist/{chunk-6VE3VLWM.js → chunk-GBE54KY6.js} +6 -5
  46. package/dist/{chunk-YRVLP7UU.js → chunk-GKC3HILQ.js} +4 -4
  47. package/dist/{chunk-ZXL6MB4R.js → chunk-GL5UZ6NY.js} +3 -3
  48. package/dist/{chunk-GB3YZTAM.js → chunk-H73FP42Q.js} +5 -5
  49. package/dist/{chunk-4UDKKGHH.js → chunk-HEVYAHLW.js} +2 -2
  50. package/dist/{chunk-DDTJ5N7Q.js → chunk-HLJVEAOF.js} +6 -6
  51. package/dist/{chunk-CLR4A2N2.js → chunk-HTMN2Z6U.js} +4 -4
  52. package/dist/{chunk-TLKMTQYL.js → chunk-I2WKW7C7.js} +3 -3
  53. package/dist/{chunk-IUK7AGD4.js → chunk-I7F2A35O.js} +2 -2
  54. package/dist/{chunk-IBC35BTK.js → chunk-IUMPEA64.js} +2 -2
  55. package/dist/{chunk-5XCM7UUW.js → chunk-J6K7RP6P.js} +100 -36
  56. package/dist/{chunk-AJ2PEY7J.js → chunk-JJUOHGX2.js} +2 -2
  57. package/dist/{chunk-CEHZOPGM.js → chunk-KFZYNWWO.js} +2 -2
  58. package/dist/{chunk-4NQ3IKUM.js → chunk-KHEYDLMT.js} +5 -5
  59. package/dist/{chunk-YM2BSPYW.js → chunk-LE4MYMLI.js} +2 -2
  60. package/dist/{chunk-PU3AUQPA.js → chunk-M5RXSRO2.js} +2 -2
  61. package/dist/{chunk-XKTN7CZF.js → chunk-MCZ5LBZD.js} +4 -4
  62. package/dist/{chunk-35BBZDFE.js → chunk-NU3XLTGP.js} +4 -4
  63. package/dist/{chunk-BPIJLRYE.js → chunk-NWED7CYO.js} +3 -3
  64. package/dist/{chunk-YYX3SU6H.js → chunk-OMNGQPEZ.js} +257 -101
  65. package/dist/{chunk-BGJV5ATD.js → chunk-ONA5KPV3.js} +2 -2
  66. package/dist/{chunk-ZNQX6QWH.js → chunk-OTAL43EH.js} +6 -2
  67. package/dist/{chunk-F743CM2N.js → chunk-OTQKUHRS.js} +3 -3
  68. package/dist/{chunk-KUBBJ2CD.js → chunk-P7CE7LXL.js} +6 -6
  69. package/dist/{chunk-UVCXZEGU.js → chunk-PFHVU7UA.js} +2 -2
  70. package/dist/{chunk-5ZZLLBFK.js → chunk-PGEGPSCZ.js} +2 -2
  71. package/dist/chunk-Q4V4XQWV.js +158 -0
  72. package/dist/{chunk-IHLSHCPZ.js → chunk-QJP6PG7F.js} +5 -5
  73. package/dist/{chunk-EYN7VFKL.js → chunk-QROYX7TT.js} +3 -3
  74. package/dist/chunk-QXKWYZNR.js +379 -0
  75. package/dist/{chunk-VC3TR4NL.js → chunk-RZ6YKEUJ.js} +3 -3
  76. package/dist/{chunk-K6HNAY5V.js → chunk-SCHXJTZL.js} +2 -2
  77. package/dist/{chunk-7OVSJI2V.js → chunk-SQLNBA64.js} +3 -3
  78. package/dist/{chunk-65RTDUZH.js → chunk-SXRTRMEE.js} +3 -3
  79. package/dist/{chunk-3BIAFYD2.js → chunk-T4VOVZT5.js} +2 -2
  80. package/dist/{chunk-UWDO3O52.js → chunk-TN35C5KM.js} +2 -2
  81. package/dist/{chunk-IFK3GIUW.js → chunk-TSA237IM.js} +2 -2
  82. package/dist/{chunk-DKEPS5LH.js → chunk-U2HGPLZS.js} +36 -2
  83. package/dist/{chunk-4HVNZ7WF.js → chunk-VBYSIOOY.js} +3 -3
  84. package/dist/{chunk-ZTLWVRNS.js → chunk-VDOOQZUD.js} +2 -2
  85. package/dist/{chunk-RTERS6S5.js → chunk-VUJGMJE6.js} +4 -4
  86. package/dist/{chunk-X2CH42BN.js → chunk-VVW3F3MD.js} +7 -7
  87. package/dist/{chunk-RI4NIMFP.js → chunk-VVZRV54S.js} +75 -35
  88. package/dist/{chunk-LG4TWW4U.js → chunk-WW32K72E.js} +8 -8
  89. package/dist/{chunk-NVT6C2VE.js → chunk-X6EZPSW6.js} +4 -4
  90. package/dist/{chunk-KQAEKMIX.js → chunk-XDXNDSKO.js} +2 -2
  91. package/dist/{chunk-FMKTYMP4.js → chunk-XJLKLU4D.js} +3 -3
  92. package/dist/chunk-Y4RNXEAO.js +952 -0
  93. package/dist/{chunk-26RVGM44.js → chunk-YIA4LEX4.js} +15 -7
  94. package/dist/chunk-YNRDWYZP.js +295 -0
  95. package/dist/{chunk-SGHSY3LU.js → chunk-Z6XJQ6KO.js} +81 -6
  96. package/dist/{chunk-SVDWQGX2.js → chunk-ZAD4HV2G.js} +139 -78
  97. package/dist/cli.cjs +153 -144
  98. package/dist/clock.d.ts +10 -0
  99. package/dist/clock.js +235 -0
  100. package/dist/countdown.d.ts +12 -0
  101. package/dist/countdown.js +450 -0
  102. package/dist/dgmo-router-YTU3ENAX.js +84 -0
  103. package/dist/{dimensions-WSIJXT5Q.js → dimensions-OTBKC5M6.js} +5 -5
  104. package/dist/editor.js +39 -1
  105. package/dist/element.js +131 -121
  106. package/dist/element.mjs +19496 -12761
  107. package/dist/{flowchart-parser-IVZN7CQN.js → flowchart-parser-OE4WHLTF.js} +4 -4
  108. package/dist/{flowchart-renderer-GMI2U3DD.js → flowchart-renderer-GPCSMTOR.js} +6 -6
  109. package/dist/highlight.d.ts +17 -1
  110. package/dist/highlight.js +156 -5
  111. package/dist/index.js +50 -45
  112. package/dist/{layout-HQMBPJVS.js → layout-46366KBT.js} +2 -2
  113. package/dist/{layout-D42XE4RE.js → layout-5BG6DFCU.js} +3 -3
  114. package/dist/{layout-K2ZN3Q42.js → layout-7MZ5NF2N.js} +4 -4
  115. package/dist/{layout-4Z5JM7PT.js → layout-FWODLIMP.js} +4 -4
  116. package/dist/{layout-GZ2CWONU.js → layout-J36454XU.js} +4 -4
  117. package/dist/{layout-S3EK4IYO.js → layout-LD6XTLD6.js} +4 -4
  118. package/dist/{parser-CLMFZWCC.js → parser-36HVKU5U.js} +5 -5
  119. package/dist/{parser-MCJWF5G3.js → parser-4AI5ZN5F.js} +3 -3
  120. package/dist/{parser-DERPY5KC.js → parser-4NO6VZ6S.js} +4 -4
  121. package/dist/parser-4WQQQXCG.js +13 -0
  122. package/dist/{parser-4ROBKVUR.js → parser-5OXGPNBF.js} +5 -5
  123. package/dist/{parser-XWUDFJ7P.js → parser-AGVYTQXV.js} +4 -4
  124. package/dist/{parser-TITK4YW6.js → parser-AXKBDGNO.js} +5 -5
  125. package/dist/parser-B5FVS7O6.js +11 -0
  126. package/dist/parser-CSFUN3CT.js +14 -0
  127. package/dist/parser-CVMEDULU.js +15 -0
  128. package/dist/{parser-KPMN5KKE.js → parser-D5VILGN2.js} +4 -4
  129. package/dist/{parser-IKZFTLOJ.js → parser-DFFEDKHH.js} +3 -3
  130. package/dist/{parser-JD7OQ2E6.js → parser-H3XEPFPV.js} +4 -4
  131. package/dist/{parser-UBGPTIZD.js → parser-HYRTF3DO.js} +3 -3
  132. package/dist/{parser-K647FRI4.js → parser-IBWNAPY4.js} +3 -3
  133. package/dist/{parser-4BKIFG2C.js → parser-IJBMRXMC.js} +5 -5
  134. package/dist/{parser-MBJSBTL5.js → parser-JJR52VAT.js} +5 -5
  135. package/dist/{parser-SMBJO3XN.js → parser-K3XXLMUW.js} +4 -4
  136. package/dist/{parser-OBQG655V.js → parser-KCR2WS3V.js} +4 -4
  137. package/dist/{parser-HVJFTOXL.js → parser-LWKKBNSA.js} +3 -3
  138. package/dist/{parser-ZYC3XGNS.js → parser-MPCE5JBG.js} +4 -4
  139. package/dist/{parser-QJYS7KQQ.js → parser-MTOMTWTD.js} +4 -4
  140. package/dist/{parser-GFSOPDB7.js → parser-O4HIUN6G.js} +4 -4
  141. package/dist/{parser-BL7Z72EY.js → parser-PSA4UBSP.js} +4 -4
  142. package/dist/{parser-TNYX5S7E.js → parser-RV4M6AS2.js} +4 -4
  143. package/dist/parser-RZPVAQVX.js +11 -0
  144. package/dist/{parser-UGA23PYK.js → parser-TGQZJ5OT.js} +4 -4
  145. package/dist/parser-TXND652E.js +13 -0
  146. package/dist/{parser-WISPH7LW.js → parser-VKOJM7KS.js} +4 -4
  147. package/dist/{parser-ZKF5K2H2.js → parser-W4PQUGX3.js} +4 -4
  148. package/dist/{parser-MRBPXXIV.js → parser-WAV5JRPT.js} +4 -4
  149. package/dist/{parser-D6ONJQFR.js → parser-YS7TOS2K.js} +3 -3
  150. package/dist/pert.d.ts +8 -0
  151. package/dist/{renderer-VFUVRNLK.js → renderer-2AZ5HJFK.js} +4 -4
  152. package/dist/{renderer-V3JEMWMM.js → renderer-2QPMJ2DA.js} +6 -6
  153. package/dist/renderer-45PSOL3E.js +19 -0
  154. package/dist/{renderer-BB5PREMY.js → renderer-4ITCHBT7.js} +4 -4
  155. package/dist/{renderer-XEKIRPI6.js → renderer-5DSEWF74.js} +5 -5
  156. package/dist/{renderer-QNHUXCRL.js → renderer-6OKF44KS.js} +9 -9
  157. package/dist/renderer-72LGR2YF.js +14 -0
  158. package/dist/{renderer-YHXPN3GF.js → renderer-7SD6MSBS.js} +7 -7
  159. package/dist/renderer-A5VE5BCI.js +24 -0
  160. package/dist/{renderer-A5VFZQQK.js → renderer-AUW2BE6G.js} +6 -6
  161. package/dist/{renderer-LWGJFT3D.js → renderer-B5TBNZJE.js} +5 -5
  162. package/dist/{renderer-4IUPINAE.js → renderer-BSR2O2H6.js} +7 -7
  163. package/dist/{renderer-DKESNMU5.js → renderer-CYB4LK3G.js} +6 -6
  164. package/dist/{renderer-MFJ7HY2H.js → renderer-FF24KZCI.js} +5 -5
  165. package/dist/{renderer-CGW7QPNA.js → renderer-FPE3J5VZ.js} +7 -7
  166. package/dist/{renderer-6T3KK4S3.js → renderer-FYSVXL7M.js} +7 -7
  167. package/dist/{renderer-THD6V5TL.js → renderer-HDCCZURL.js} +9 -7
  168. package/dist/{renderer-TPIBXNOS.js → renderer-JCCHNECZ.js} +6 -6
  169. package/dist/{renderer-QL5KO6SK.js → renderer-KS7YZJE2.js} +7 -7
  170. package/dist/{renderer-SQ3JUAI7.js → renderer-NGXZTRK6.js} +6 -6
  171. package/dist/{renderer-MJDDU27W.js → renderer-ODUUOPVT.js} +10 -10
  172. package/dist/renderer-PJM35LJN.js +17 -0
  173. package/dist/{renderer-TYXRHMRI.js → renderer-PPIHO5FI.js} +9 -9
  174. package/dist/{renderer-W5RMOURB.js → renderer-PSMMZCKH.js} +6 -6
  175. package/dist/{renderer-UZF3JROD.js → renderer-QAOBLRXV.js} +8 -8
  176. package/dist/{renderer-ROV756WT.js → renderer-R2WNIC2C.js} +5 -5
  177. package/dist/{renderer-VICQ4WNY.js → renderer-SBS3YWU5.js} +5 -5
  178. package/dist/{renderer-6L3NBEY5.js → renderer-UYMQQCJK.js} +6 -6
  179. package/dist/{renderer-radial-MHO2VDXN.js → renderer-radial-F7X5F2VU.js} +6 -6
  180. package/dist/{state-parser-RX3GXOIB.js → state-parser-3REXRK3R.js} +4 -4
  181. package/dist/{state-renderer-AJUKGNWU.js → state-renderer-XYLNRWXR.js} +6 -6
  182. package/docs/ai-integration.md +6 -2
  183. package/docs/language-reference.md +253 -22
  184. package/gallery/fixtures/body.dgmo +17 -0
  185. package/gallery/fixtures/bracket.dgmo +30 -0
  186. package/gallery/fixtures/clock.dgmo +8 -0
  187. package/gallery/fixtures/countdown.dgmo +3 -0
  188. package/gallery/fixtures/goal.dgmo +4 -0
  189. package/package.json +12 -4
  190. package/dist/advanced.d.ts +0 -6162
  191. package/dist/auto.d.ts +0 -54
  192. package/dist/block.d.ts +0 -123
  193. package/dist/dgmo-router-ODKPEJ3P.js +0 -79
  194. package/dist/element.d.ts +0 -62
  195. package/dist/index.d.ts +0 -166
  196. package/dist/parser-667RGSUW.js +0 -13
  197. package/dist/parser-J3P2D6IP.js +0 -13
  198. package/dist/themes-1-CuKpeH.d.ts +0 -908
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  stripQuotes,
3
3
  tokenizeQuoteAware
4
- } from "./chunk-ZNQX6QWH.js";
4
+ } from "./chunk-OTAL43EH.js";
5
5
  import {
6
6
  CATEGORICAL_COLOR_ORDER,
7
7
  RECOGNIZED_COLOR_NAMES,
@@ -250,4 +250,4 @@ export {
250
250
  resolveActiveTagGroup,
251
251
  matchTagBlockHeading
252
252
  };
253
- //# sourceMappingURL=chunk-HBVD67XG.js.map
253
+ //# sourceMappingURL=chunk-FJUNPCYI.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-I46X5VUA.js";
4
4
  import {
5
5
  tryCollectNote
6
- } from "./chunk-K6HNAY5V.js";
6
+ } from "./chunk-SCHXJTZL.js";
7
7
  import {
8
8
  resolveNotes
9
9
  } from "./chunk-FMDSF3OV.js";
@@ -20,7 +20,7 @@ import {
20
20
  measureIndent,
21
21
  parseFirstLine,
22
22
  tryParseSharedOption
23
- } from "./chunk-ZNQX6QWH.js";
23
+ } from "./chunk-OTAL43EH.js";
24
24
  import {
25
25
  NAME_DIAGNOSTIC_CODES,
26
26
  emit,
@@ -367,8 +367,9 @@ function parseFlowchart(content, palette) {
367
367
  continue;
368
368
  }
369
369
  if (!contentStarted) {
370
- if (/^direction-lr$/i.test(trimmed)) {
371
- result.direction = "LR";
370
+ const dirMatch = trimmed.match(/^direction[-\s]+(lr|tb)$/i);
371
+ if (dirMatch) {
372
+ result.direction = dirMatch[1].toUpperCase();
372
373
  continue;
373
374
  }
374
375
  if (/^solid-fill$/i.test(trimmed)) {
@@ -466,4 +467,4 @@ export {
466
467
  looksLikeFlowchart,
467
468
  extractSymbols
468
469
  };
469
- //# sourceMappingURL=chunk-6VE3VLWM.js.map
470
+ //# sourceMappingURL=chunk-GBE54KY6.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  MAP_DIRECTIVE_KEY_SET
3
- } from "./chunk-DKEPS5LH.js";
3
+ } from "./chunk-U2HGPLZS.js";
4
4
  import {
5
5
  AUTO_TAG_COLOR_SENTINEL,
6
6
  finalizeAutoTagColors,
@@ -8,7 +8,7 @@ import {
8
8
  stripDefaultModifier,
9
9
  tagAttrKey,
10
10
  validateTagGroupNames
11
- } from "./chunk-HBVD67XG.js";
11
+ } from "./chunk-FJUNPCYI.js";
12
12
  import {
13
13
  parseInArrowLabel
14
14
  } from "./chunk-FFUN5D66.js";
@@ -19,7 +19,7 @@ import {
19
19
  peelRampColors,
20
20
  splitNameAndMeta,
21
21
  withTagAliases
22
- } from "./chunk-ZNQX6QWH.js";
22
+ } from "./chunk-OTAL43EH.js";
23
23
  import {
24
24
  formatDgmoError,
25
25
  makeDgmoError
@@ -610,4 +610,4 @@ export {
610
610
  looksLikeMap,
611
611
  parseMap
612
612
  };
613
- //# sourceMappingURL=chunk-YRVLP7UU.js.map
613
+ //# sourceMappingURL=chunk-GKC3HILQ.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  tryCollectNote
3
- } from "./chunk-K6HNAY5V.js";
3
+ } from "./chunk-SCHXJTZL.js";
4
4
  import {
5
5
  resolveNotes
6
6
  } from "./chunk-FMDSF3OV.js";
@@ -16,7 +16,7 @@ import {
16
16
  measureIndent,
17
17
  parseFirstLine,
18
18
  tryParseSharedOption
19
- } from "./chunk-ZNQX6QWH.js";
19
+ } from "./chunk-OTAL43EH.js";
20
20
  import {
21
21
  resolveColorWithDiagnostic
22
22
  } from "./chunk-TLVIHFRO.js";
@@ -445,4 +445,4 @@ export {
445
445
  looksLikeClassDiagram,
446
446
  extractSymbols
447
447
  };
448
- //# sourceMappingURL=chunk-ZXL6MB4R.js.map
448
+ //# sourceMappingURL=chunk-GL5UZ6NY.js.map
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  NODE_STROKE_WIDTH
3
3
  } from "./chunk-3CIOJ5YJ.js";
4
- import {
5
- VARIANTS,
6
- allTasks
7
- } from "./chunk-5ZZLLBFK.js";
8
4
  import {
9
5
  ScaleContext
10
6
  } from "./chunk-YYVTBZZC.js";
7
+ import {
8
+ VARIANTS,
9
+ allTasks
10
+ } from "./chunk-PGEGPSCZ.js";
11
11
  import {
12
12
  TITLE_FONT_SIZE,
13
13
  TITLE_FONT_WEIGHT,
@@ -747,4 +747,4 @@ export {
747
747
  renderRaci,
748
748
  renderRaciForExport
749
749
  };
750
- //# sourceMappingURL=chunk-GB3YZTAM.js.map
750
+ //# sourceMappingURL=chunk-H73FP42Q.js.map
@@ -21,7 +21,7 @@ import {
21
21
  } from "./chunk-P6T66CCZ.js";
22
22
  import {
23
23
  tagAttrKey
24
- } from "./chunk-HBVD67XG.js";
24
+ } from "./chunk-FJUNPCYI.js";
25
25
 
26
26
  // src/utils/legend-d3.ts
27
27
  var LEGEND_TEXT_DY = "0.32em";
@@ -293,4 +293,4 @@ export {
293
293
  renderLegendD3,
294
294
  renderIntegratedLegend
295
295
  };
296
- //# sourceMappingURL=chunk-4UDKKGHH.js.map
296
+ //# sourceMappingURL=chunk-HEVYAHLW.js.map
@@ -8,19 +8,19 @@ import {
8
8
  import {
9
9
  renderInlineText
10
10
  } from "./chunk-3HDBAXF5.js";
11
+ import {
12
+ wrapDescriptionLines
13
+ } from "./chunk-BMR4CIEO.js";
11
14
  import {
12
15
  EDGE_STROKE_WIDTH,
13
16
  NODE_STROKE_WIDTH
14
17
  } from "./chunk-3CIOJ5YJ.js";
15
- import {
16
- wrapDescriptionLines
17
- } from "./chunk-BMR4CIEO.js";
18
18
  import {
19
19
  ScaleContext
20
20
  } from "./chunk-YYVTBZZC.js";
21
21
  import {
22
22
  renderIntegratedLegend
23
- } from "./chunk-4UDKKGHH.js";
23
+ } from "./chunk-HEVYAHLW.js";
24
24
  import {
25
25
  getMaxLegendReservedHeight
26
26
  } from "./chunk-7UEMZREK.js";
@@ -47,7 +47,7 @@ import {
47
47
  } from "./chunk-P6T66CCZ.js";
48
48
  import {
49
49
  resolveTagColor
50
- } from "./chunk-HBVD67XG.js";
50
+ } from "./chunk-FJUNPCYI.js";
51
51
  import {
52
52
  resolveColor
53
53
  } from "./chunk-TLVIHFRO.js";
@@ -783,4 +783,4 @@ export {
783
783
  renderBoxesAndLines,
784
784
  renderBoxesAndLinesForExport
785
785
  };
786
- //# sourceMappingURL=chunk-DDTJ5N7Q.js.map
786
+ //# sourceMappingURL=chunk-HLJVEAOF.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  extractDatePrefix,
3
3
  parseTimelineDate
4
- } from "./chunk-IUK7AGD4.js";
4
+ } from "./chunk-I7F2A35O.js";
5
5
  import {
6
6
  AUTO_TAG_COLOR_SENTINEL,
7
7
  finalizeAutoTagColors,
@@ -11,7 +11,7 @@ import {
11
11
  tagAttrKey,
12
12
  validateTagGroupNames,
13
13
  validateTagValues
14
- } from "./chunk-HBVD67XG.js";
14
+ } from "./chunk-FJUNPCYI.js";
15
15
  import {
16
16
  EVENT_LINE_REGISTRY,
17
17
  extractColor,
@@ -21,7 +21,7 @@ import {
21
21
  tryParseSharedOption,
22
22
  warnUnknownMetaKeys,
23
23
  withTagAliases
24
- } from "./chunk-ZNQX6QWH.js";
24
+ } from "./chunk-OTAL43EH.js";
25
25
  import {
26
26
  emit,
27
27
  formatDgmoError,
@@ -555,4 +555,4 @@ export {
555
555
  EVENT_LINE_DIAGNOSTICS,
556
556
  parseEventLine
557
557
  };
558
- //# sourceMappingURL=chunk-CLR4A2N2.js.map
558
+ //# sourceMappingURL=chunk-HTMN2Z6U.js.map
@@ -5,14 +5,14 @@ import {
5
5
  matchTagBlockHeading,
6
6
  stripDefaultModifier,
7
7
  validateTagGroupNames
8
- } from "./chunk-HBVD67XG.js";
8
+ } from "./chunk-FJUNPCYI.js";
9
9
  import {
10
10
  OPTION_NOCOLON_RE,
11
11
  extractColor,
12
12
  measureIndent,
13
13
  parseFirstLine,
14
14
  tryParseSharedOption
15
- } from "./chunk-ZNQX6QWH.js";
15
+ } from "./chunk-OTAL43EH.js";
16
16
  import {
17
17
  formatDgmoError,
18
18
  makeDgmoError
@@ -729,4 +729,4 @@ export {
729
729
  resetWireframeIds,
730
730
  parseWireframe
731
731
  };
732
- //# sourceMappingURL=chunk-TLKMTQYL.js.map
732
+ //# sourceMappingURL=chunk-I2WKW7C7.js.map
@@ -3,7 +3,7 @@ import {
3
3
  splitNameAndMeta,
4
4
  warnUnknownMetaKeys,
5
5
  withTagAliases
6
- } from "./chunk-ZNQX6QWH.js";
6
+ } from "./chunk-OTAL43EH.js";
7
7
  import {
8
8
  makeDgmoError
9
9
  } from "./chunk-CXK4DZH3.js";
@@ -336,4 +336,4 @@ export {
336
336
  parseTimelineDate,
337
337
  parseTimelineEventLine
338
338
  };
339
- //# sourceMappingURL=chunk-IUK7AGD4.js.map
339
+ //# sourceMappingURL=chunk-I7F2A35O.js.map
@@ -19,7 +19,7 @@ import {
19
19
  injectDefaultTagMetadata,
20
20
  resolveTagColor,
21
21
  tagAttrKey
22
- } from "./chunk-HBVD67XG.js";
22
+ } from "./chunk-FJUNPCYI.js";
23
23
 
24
24
  // src/org/layout.ts
25
25
  import { hierarchy, tree } from "d3-hierarchy";
@@ -810,4 +810,4 @@ function layoutOrg(parsed, hiddenCounts, activeTagGroup, hiddenAttributes, expan
810
810
  export {
811
811
  layoutOrg
812
812
  };
813
- //# sourceMappingURL=chunk-IBC35BTK.js.map
813
+ //# sourceMappingURL=chunk-IUMPEA64.js.map
@@ -1,10 +1,11 @@
1
+ import {
2
+ renderIntegratedLegend
3
+ } from "./chunk-HEVYAHLW.js";
1
4
  import {
2
5
  getFigure,
6
+ getPartGeom,
3
7
  resolvePartKey
4
- } from "./chunk-3NFJWFNP.js";
5
- import {
6
- renderIntegratedLegend
7
- } from "./chunk-4UDKKGHH.js";
8
+ } from "./chunk-BDXC7MDK.js";
8
9
  import {
9
10
  FONT_FAMILY
10
11
  } from "./chunk-6KFWC4CO.js";
@@ -14,8 +15,9 @@ import {
14
15
  } from "./chunk-P6T66CCZ.js";
15
16
  import {
16
17
  resolveActiveTagGroup,
17
- resolveTagColor
18
- } from "./chunk-HBVD67XG.js";
18
+ resolveTagColor,
19
+ tagAttrKey
20
+ } from "./chunk-FJUNPCYI.js";
19
21
  import {
20
22
  resolveColor
21
23
  } from "./chunk-TLVIHFRO.js";
@@ -33,17 +35,33 @@ var OUTER_MARGIN = 30;
33
35
  var CENTER_COL = 420;
34
36
  var LABEL_FONT = 23;
35
37
  var NOTE_FONT = 17;
36
- function renderFigureBody(fig, parts, partColor, form, palette, defs) {
38
+ function pathStartX(d) {
39
+ const m = d.match(/[Mm]\s*(-?[\d.]+)/);
40
+ return m ? parseFloat(m[1]) : 0;
41
+ }
42
+ function partKey(part) {
43
+ return (part.side ? `${part.side} ` : "") + part.name.toLowerCase();
44
+ }
45
+ function partLabel(part) {
46
+ return part.side ? `${part.side} ${part.name}` : part.name;
47
+ }
48
+ function sideCenter(centers, side, view) {
49
+ const wantScreenRight = view === "front" ? side === "left" : side === "right";
50
+ return centers.reduce(
51
+ (best, c) => wantScreenRight ? c.x > best.x ? c : best : c.x < best.x ? c : best
52
+ );
53
+ }
54
+ function renderFigureBody(fig, view, parts, partColor, emphKey, form, palette, defs) {
37
55
  const [vx, vy, vw, vh] = fig.viewBox.split(" ").map(Number);
38
56
  const muscleFill = mix(palette.bg, palette.border, 0.7);
39
57
  const seam = palette.bg;
40
58
  const outlineStroke = palette.textMuted;
59
+ const gid = `body-skin-${vx}-${vy}`;
60
+ defs.push(
61
+ `<linearGradient id="${gid}" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="${mix(palette.surface, palette.bg, 0.4)}"/><stop offset="1" stop-color="${mix(palette.border, palette.bg, 0.3)}"/></linearGradient>`
62
+ );
41
63
  let out = "";
42
64
  if (form === "skin") {
43
- const gid = `body-skin-${vx}-${vy}`;
44
- defs.push(
45
- `<linearGradient id="${gid}" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="${mix(palette.surface, palette.bg, 0.4)}"/><stop offset="1" stop-color="${mix(palette.border, palette.bg, 0.3)}"/></linearGradient>`
46
- );
47
65
  out += `<path d="${fig.outline}" fill="url(#${gid})"/>`;
48
66
  for (const d of fig.headPaths) {
49
67
  out += `<path d="${d}" fill="url(#${gid})" stroke="${outlineStroke}" stroke-width="2.5"/>`;
@@ -53,55 +71,95 @@ function renderFigureBody(fig, parts, partColor, form, palette, defs) {
53
71
  out += `<path d="${d}" fill="${hairFill}" stroke="${outlineStroke}" stroke-width="1.5"/>`;
54
72
  }
55
73
  } else {
74
+ out += `<path d="${fig.outline}" fill="url(#${gid})"/>`;
56
75
  for (const d of fig.base) {
57
- out += `<path d="${d}" fill="${muscleFill}" stroke="${seam}" stroke-width="1"/>`;
76
+ out += `<path d="${d}" fill="${muscleFill}" fill-opacity="0.55" stroke="${seam}" stroke-width="1"/>`;
77
+ }
78
+ for (const d of fig.headPaths) {
79
+ out += `<path d="${d}" fill="url(#${gid})" stroke="${outlineStroke}" stroke-width="2.5"/>`;
80
+ }
81
+ for (const d of fig.hairPaths) {
82
+ out += `<path d="${d}" fill="none" stroke="${outlineStroke}" stroke-width="2.5"/>`;
58
83
  }
59
84
  }
60
85
  const anchors = /* @__PURE__ */ new Map();
86
+ const cxMid = vx + vw / 2;
61
87
  for (const part of parts) {
62
88
  const key = resolvePartKey(fig, part.name);
63
89
  if (!key) continue;
64
- const geom = fig.parts[key];
90
+ const geom = getPartGeom(fig, key);
65
91
  const color = partColor(part);
66
- const dataLine = ` class="dgmo-body-part" data-line-number="${part.lineNumber}"`;
92
+ const emph = emphKey(part).toLowerCase();
93
+ const dataLine = ` class="dgmo-body-part" data-line-number="${part.lineNumber}" data-emph-key="${esc(emph)}"`;
94
+ let paths = geom.paths;
95
+ if (part.side) {
96
+ const wantScreenRight = view === "front" ? part.side === "left" : part.side === "right";
97
+ const sidePaths = geom.paths.filter(
98
+ (d) => wantScreenRight ? pathStartX(d) >= cxMid : pathStartX(d) < cxMid
99
+ );
100
+ if (sidePaths.length) paths = sidePaths;
101
+ }
67
102
  if (form === "skin") {
68
- for (const d of geom.paths) {
103
+ for (const d of paths) {
69
104
  out += `<path${dataLine} d="${d}" fill="${color}" fill-opacity="0.5" stroke="${color}" stroke-width="1.5"/>`;
70
105
  }
71
106
  } else {
72
- for (const d of geom.paths) {
73
- out += `<path${dataLine} d="${d}" fill="${color}" stroke="${seam}" stroke-width="1"/>`;
107
+ const lightFill = mix(color, palette.bg, 70);
108
+ for (const d of paths) {
109
+ out += `<path${dataLine} d="${d}" fill="${lightFill}" stroke="${color}" stroke-width="1.5"/>`;
74
110
  }
75
111
  }
76
- anchors.set(part.name.toLowerCase(), {
77
- x: geom.anchor.x,
78
- y: geom.anchor.y,
112
+ const allCenters = geom.centers?.length ? geom.centers.map((c) => ({ x: c.x, y: c.y })) : [{ x: geom.anchor.x, y: geom.anchor.y }];
113
+ const chosen = part.side && allCenters.length > 1 ? sideCenter(allCenters, part.side, view) : null;
114
+ anchors.set(partKey(part), {
115
+ x: chosen?.x ?? geom.anchor.x,
116
+ y: chosen?.y ?? geom.anchor.y,
117
+ centers: chosen ? [chosen] : allCenters,
79
118
  color,
119
+ emph,
80
120
  part
81
121
  });
82
122
  }
83
123
  out += `<path d="${fig.outline}" fill="none" stroke="${outlineStroke}" stroke-width="2.5"/>`;
84
124
  return { fig, body: out, anchors, vx, vy, vw, vh };
85
125
  }
126
+ function nearestCenter(a, targetX) {
127
+ let best = a.centers[0] ?? { x: a.x, y: a.y };
128
+ let bestD = Math.abs(best.x - targetX);
129
+ for (const c of a.centers) {
130
+ const d = Math.abs(c.x - targetX);
131
+ if (d < bestD) {
132
+ bestD = d;
133
+ best = c;
134
+ }
135
+ }
136
+ return best;
137
+ }
86
138
  function gutterLabels(r, palette) {
87
139
  const { vx, vw, vh } = r;
88
140
  const cx = vx + vw / 2;
89
141
  const list = [...r.anchors.values()];
90
- const left = list.filter((a) => a.x < cx).sort((a, b) => a.y - b.y);
91
- const right = list.filter((a) => a.x >= cx).sort((a, b) => a.y - b.y);
142
+ const band = vw * 0.1;
143
+ const left = list.filter((a) => a.x < cx - band);
144
+ const right = list.filter((a) => a.x > cx + band);
145
+ const mid = list.filter((a) => a.x >= cx - band && a.x <= cx + band).sort((a, b) => a.y - b.y);
146
+ for (const a of mid) (left.length <= right.length ? left : right).push(a);
92
147
  let labels = "";
93
148
  const place = (arr, side) => {
94
149
  const gx = side === "L" ? vx - 14 : vx + vw + 14;
150
+ const sx = side === "L" ? gx + 26 : gx - 26;
95
151
  const anchorX = side === "L" ? "end" : "start";
96
152
  const minGap = vh * 0.05;
153
+ const rows = arr.map((a) => ({ a, tgt: nearestCenter(a, gx) })).sort((p, q) => p.tgt.y - q.tgt.y);
97
154
  let prevY = -1e9;
98
- for (const a of arr) {
99
- const ly = Math.max(a.y - 6, prevY + minGap);
155
+ for (const { a, tgt } of rows) {
156
+ const ly = Math.max(tgt.y, prevY + minGap);
100
157
  prevY = ly;
101
158
  const note = a.part.notes.length ? a.part.notes[0] : "";
102
- labels += `<path d="M${gx} ${ly} L${a.x} ${a.y}" stroke="${a.color}" stroke-width="1.6" fill="none" opacity="0.75"/><circle cx="${a.x}" cy="${a.y}" r="5" fill="${a.color}"/><text x="${gx}" y="${ly - 3}" text-anchor="${anchorX}" font-size="${LABEL_FONT}" font-weight="700" fill="${palette.text}">${esc(a.part.name)}</text>`;
159
+ const dl = ` class="dgmo-body-part" data-line-number="${a.part.lineNumber}" data-emph-key="${esc(a.emph)}"`;
160
+ labels += `<path${dl} d="M${sx} ${ly} L${tgt.x} ${tgt.y}" stroke="${a.color}" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke" fill="none" opacity="0.85"/><circle${dl} cx="${tgt.x}" cy="${tgt.y}" r="5.5" fill="${a.color}" stroke="${palette.bg}" stroke-width="2" vector-effect="non-scaling-stroke"/><text${dl} x="${gx}" y="${ly + (note ? -2 : 7)}" text-anchor="${anchorX}" font-size="${LABEL_FONT}" font-weight="700" fill="${palette.text}">${esc(partLabel(a.part))}</text>`;
103
161
  if (note) {
104
- labels += `<text x="${gx}" y="${ly + 21}" text-anchor="${anchorX}" font-size="${NOTE_FONT}" fill="${palette.textMuted}">${esc(note)}</text>`;
162
+ labels += `<text${dl} x="${gx}" y="${ly + 22}" text-anchor="${anchorX}" font-size="${NOTE_FONT}" fill="${palette.textMuted}">${esc(note)}</text>`;
105
163
  }
106
164
  }
107
165
  };
@@ -117,12 +175,15 @@ function renderBody(container, parsed, palette, _isDark, _onClickItem, exportDim
117
175
  tagOverride
118
176
  );
119
177
  const partColor = (part) => resolveTagColor(part.metadata, parsed.tagGroups, activeGroup) ?? accent;
178
+ const emphKey = (part) => activeGroup ? part.metadata[tagAttrKey(activeGroup)] ?? "" : "";
120
179
  const defs = [];
121
180
  const rendered = parsed.options.views.map(
122
181
  (view) => renderFigureBody(
123
182
  getFigure(parsed.options.sex, view),
183
+ view,
124
184
  parsed.parts,
125
185
  partColor,
186
+ emphKey,
126
187
  parsed.options.form,
127
188
  palette,
128
189
  defs
@@ -166,19 +227,21 @@ function renderBody(container, parsed, palette, _isDark, _onClickItem, exportDim
166
227
  const seen = /* @__PURE__ */ new Set();
167
228
  const items = [];
168
229
  for (const part of parsed.parts) {
169
- const nm = part.name.toLowerCase();
230
+ const nm = partKey(part);
170
231
  if (seen.has(nm)) continue;
171
232
  const aL = fL.anchors.get(nm);
172
233
  const aR = fR.anchors.get(nm);
173
234
  if (!aL && !aR) continue;
174
235
  seen.add(nm);
175
- const left = aL ? mapL(aL) : void 0;
176
- const right = aR ? mapR(aR) : void 0;
236
+ const left = aL ? mapL(nearestCenter(aL, fL.vx + fL.vw)) : void 0;
237
+ const right = aR ? mapR(nearestCenter(aR, fR.vx)) : void 0;
177
238
  const ys = [left?.y, right?.y].filter((v) => v != null);
178
239
  items.push({
179
- name: part.name,
240
+ name: partLabel(part),
180
241
  note: part.notes.length ? part.notes[0] : "",
181
242
  color: (aL ?? aR).color,
243
+ emph: (aL ?? aR).emph,
244
+ line: part.lineNumber,
182
245
  ...left && { left },
183
246
  ...right && { right },
184
247
  y: ys.reduce((s, v) => s + v, 0) / ys.length
@@ -194,15 +257,16 @@ function renderBody(container, parsed, palette, _isDark, _onClickItem, exportDim
194
257
  let labels = "";
195
258
  const stub = 96;
196
259
  for (const it of items) {
260
+ const dl = ` class="dgmo-body-part" data-line-number="${it.line}" data-emph-key="${esc(it.emph)}"`;
197
261
  if (it.left) {
198
- labels += `<path d="M${(centerX - stub).toFixed(1)} ${it.y.toFixed(1)} L${it.left.x.toFixed(1)} ${it.left.y.toFixed(1)}" stroke="${it.color}" stroke-width="1.6" fill="none" opacity="0.75"/><circle cx="${it.left.x.toFixed(1)}" cy="${it.left.y.toFixed(1)}" r="5" fill="${it.color}"/>`;
262
+ labels += `<path${dl} d="M${(centerX - stub).toFixed(1)} ${it.y.toFixed(1)} L${it.left.x.toFixed(1)} ${it.left.y.toFixed(1)}" stroke="${it.color}" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke" fill="none" opacity="0.85"/><circle${dl} cx="${it.left.x.toFixed(1)}" cy="${it.left.y.toFixed(1)}" r="5.5" fill="${it.color}" stroke="${palette.bg}" stroke-width="2" vector-effect="non-scaling-stroke"/>`;
199
263
  }
200
264
  if (it.right) {
201
- labels += `<path d="M${(centerX + stub).toFixed(1)} ${it.y.toFixed(1)} L${it.right.x.toFixed(1)} ${it.right.y.toFixed(1)}" stroke="${it.color}" stroke-width="1.6" fill="none" opacity="0.75"/><circle cx="${it.right.x.toFixed(1)}" cy="${it.right.y.toFixed(1)}" r="5" fill="${it.color}"/>`;
265
+ labels += `<path${dl} d="M${(centerX + stub).toFixed(1)} ${it.y.toFixed(1)} L${it.right.x.toFixed(1)} ${it.right.y.toFixed(1)}" stroke="${it.color}" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke" fill="none" opacity="0.85"/><circle${dl} cx="${it.right.x.toFixed(1)}" cy="${it.right.y.toFixed(1)}" r="5.5" fill="${it.color}" stroke="${palette.bg}" stroke-width="2" vector-effect="non-scaling-stroke"/>`;
202
266
  }
203
- labels += `<text x="${centerX}" y="${(it.y - 3).toFixed(1)}" text-anchor="middle" font-size="${LABEL_FONT}" font-weight="700" fill="${palette.text}">${esc(it.name)}</text>`;
267
+ labels += `<text${dl} x="${centerX}" y="${(it.y - 3).toFixed(1)}" text-anchor="middle" font-size="${LABEL_FONT}" font-weight="700" fill="${palette.text}">${esc(it.name)}</text>`;
204
268
  if (it.note) {
205
- labels += `<text x="${centerX}" y="${(it.y + 20).toFixed(1)}" text-anchor="middle" font-size="${NOTE_FONT}" fill="${palette.textMuted}">${esc(it.note)}</text>`;
269
+ labels += `<text${dl} x="${centerX}" y="${(it.y + 20).toFixed(1)}" text-anchor="middle" font-size="${NOTE_FONT}" fill="${palette.textMuted}">${esc(it.note)}</text>`;
206
270
  }
207
271
  }
208
272
  body += labels;
@@ -218,7 +282,7 @@ function renderBody(container, parsed, palette, _isDark, _onClickItem, exportDim
218
282
  ).attr("preserveAspectRatio", "xMidYMin meet").attr("xmlns", "http://www.w3.org/2000/svg").style("font-family", FONT_FAMILY);
219
283
  if (defs.length) svg.append("defs").html(defs.join(""));
220
284
  svg.append("g").html(body);
221
- if (parsed.title) {
285
+ if (parsed.title && !parsed.options.noTitle) {
222
286
  svg.append("text").attr("x", totalW / 2).attr("y", 40).attr("text-anchor", "middle").attr("font-size", 34).attr("font-weight", 700).attr("fill", palette.text).text(parsed.title);
223
287
  }
224
288
  if (!parsed.options.noLegend && parsed.tagGroups.length) {
@@ -258,4 +322,4 @@ export {
258
322
  renderBody,
259
323
  renderBodyForExport
260
324
  };
261
- //# sourceMappingURL=chunk-5XCM7UUW.js.map
325
+ //# sourceMappingURL=chunk-J6K7RP6P.js.map
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-YYVTBZZC.js";
10
10
  import {
11
11
  renderIntegratedLegend
12
- } from "./chunk-4UDKKGHH.js";
12
+ } from "./chunk-HEVYAHLW.js";
13
13
  import {
14
14
  TITLE_FONT_SIZE,
15
15
  TITLE_FONT_WEIGHT,
@@ -964,4 +964,4 @@ export {
964
964
  renderCycle,
965
965
  renderCycleForExport
966
966
  };
967
- //# sourceMappingURL=chunk-AJ2PEY7J.js.map
967
+ //# sourceMappingURL=chunk-JJUOHGX2.js.map
@@ -15,7 +15,7 @@ import {
15
15
  } from "./chunk-5LWQH6QV.js";
16
16
  import {
17
17
  tagAttrKey
18
- } from "./chunk-HBVD67XG.js";
18
+ } from "./chunk-FJUNPCYI.js";
19
19
 
20
20
  // src/c4/layout.ts
21
21
  import dagre from "@dagrejs/dagre";
@@ -1682,4 +1682,4 @@ export {
1682
1682
  layoutC4Components,
1683
1683
  layoutC4Deployment
1684
1684
  };
1685
- //# sourceMappingURL=chunk-CEHZOPGM.js.map
1685
+ //# sourceMappingURL=chunk-KFZYNWWO.js.map
@@ -17,7 +17,7 @@ import {
17
17
  import {
18
18
  resolveTagColor,
19
19
  tagAttrKey
20
- } from "./chunk-HBVD67XG.js";
20
+ } from "./chunk-FJUNPCYI.js";
21
21
  import {
22
22
  CATEGORICAL_COLOR_ORDER,
23
23
  resolveColor
@@ -113,7 +113,7 @@ function renderSwimlaneForExport(container, parsed, layout, palette, isDark, opt
113
113
  });
114
114
  const root = svg.append("g").attr("transform", `translate(0, ${titleOffset})`);
115
115
  if (parsed.title) {
116
- svg.append("text").attr("x", width / 2).attr("y", TITLE_Y).attr("text-anchor", "middle").attr("font-size", TITLE_FONT_SIZE).attr("font-weight", TITLE_FONT_WEIGHT).attr("fill", palette.text).text(parsed.title);
116
+ svg.append("text").attr("class", "chart-title").attr("x", width / 2).attr("y", TITLE_Y).attr("text-anchor", "middle").attr("font-size", TITLE_FONT_SIZE).attr("font-weight", TITLE_FONT_WEIGHT).attr("fill", palette.text).attr("data-line-number", String(parsed.titleLineNumber ?? 1)).text(parsed.title);
117
117
  }
118
118
  const laneColorById = /* @__PURE__ */ new Map();
119
119
  parsed.lanes.forEach((lane, i) => {
@@ -223,7 +223,7 @@ function renderSwimlaneForExport(container, parsed, layout, palette, isDark, opt
223
223
  marker = `sw-arrow-${ev.success.replace("#", "")}`;
224
224
  }
225
225
  const d = roundedPolyline(e.points, EDGE_CORNER_R);
226
- edgeG.append("path").attr("d", d).attr("fill", "none").attr("stroke", stroke).attr("stroke-width", EDGE_STROKE).attr("stroke-dasharray", e.back ? "5 4" : null).attr("marker-end", `url(#${marker})`).attr("data-line-number", String(e.lineNumber));
226
+ edgeG.append("path").attr("class", "sw-edge sw-edge-group").attr("d", d).attr("fill", "none").attr("stroke", stroke).attr("stroke-width", EDGE_STROKE).attr("stroke-dasharray", e.back ? "5 4" : null).attr("marker-end", `url(#${marker})`).attr("data-line-number", String(e.lineNumber));
227
227
  if (e.label) {
228
228
  const segLen = [];
229
229
  let total = 0;
@@ -300,7 +300,7 @@ function renderSwimlaneForExport(container, parsed, layout, palette, isDark, opt
300
300
  const nodesG = root.append("g").attr("class", "dgmo-swimlane-nodes");
301
301
  for (const n of layout.nodes) {
302
302
  const { fill, stroke } = nodeFill(n);
303
- const g = nodesG.append("g").attr("data-line-number", String(n.lineNumber)).attr("data-lane", n.lane);
303
+ const g = nodesG.append("g").attr("class", "sw-node").attr("data-node-id", n.id).attr("data-line-number", String(n.lineNumber)).attr("data-lane", n.lane);
304
304
  const cx = n.x;
305
305
  const cy = n.y;
306
306
  if (n.shape === "exclusive" || n.shape === "parallel") {
@@ -391,4 +391,4 @@ function drawCenteredLabel(g, label, cx, cy, fill, fontSize, tight = false, halo
391
391
  export {
392
392
  renderSwimlaneForExport
393
393
  };
394
- //# sourceMappingURL=chunk-4NQ3IKUM.js.map
394
+ //# sourceMappingURL=chunk-KHEYDLMT.js.map
@@ -29,7 +29,7 @@ import {
29
29
  } from "./chunk-P6T66CCZ.js";
30
30
  import {
31
31
  tagAttrKey
32
- } from "./chunk-HBVD67XG.js";
32
+ } from "./chunk-FJUNPCYI.js";
33
33
  import {
34
34
  resolveColor
35
35
  } from "./chunk-TLVIHFRO.js";
@@ -3177,4 +3177,4 @@ export {
3177
3177
  albersSkewFallback,
3178
3178
  layoutMap
3179
3179
  };
3180
- //# sourceMappingURL=chunk-YM2BSPYW.js.map
3180
+ //# sourceMappingURL=chunk-LE4MYMLI.js.map
@@ -39,7 +39,7 @@ import {
39
39
  } from "./chunk-P6T66CCZ.js";
40
40
  import {
41
41
  parseFlowchart
42
- } from "./chunk-6VE3VLWM.js";
42
+ } from "./chunk-GBE54KY6.js";
43
43
 
44
44
  // src/graph/flowchart-renderer.ts
45
45
  import * as d3Selection from "d3-selection";
@@ -527,4 +527,4 @@ export {
527
527
  renderFlowchart,
528
528
  renderFlowchartForExport
529
529
  };
530
- //# sourceMappingURL=chunk-PU3AUQPA.js.map
530
+ //# sourceMappingURL=chunk-M5RXSRO2.js.map
@@ -5,10 +5,10 @@ import {
5
5
  formatPct,
6
6
  resolveCellColor,
7
7
  resolveColorMode
8
- } from "./chunk-UVCXZEGU.js";
8
+ } from "./chunk-PFHVU7UA.js";
9
9
  import {
10
10
  renderIntegratedLegend
11
- } from "./chunk-4UDKKGHH.js";
11
+ } from "./chunk-HEVYAHLW.js";
12
12
  import {
13
13
  getMaxLegendReservedHeight
14
14
  } from "./chunk-7UEMZREK.js";
@@ -31,7 +31,7 @@ import {
31
31
  } from "./chunk-P6T66CCZ.js";
32
32
  import {
33
33
  tagAttrKey
34
- } from "./chunk-HBVD67XG.js";
34
+ } from "./chunk-FJUNPCYI.js";
35
35
 
36
36
  // src/treemap/renderer-radial.ts
37
37
  import * as d3Selection from "d3-selection";
@@ -421,4 +421,4 @@ export {
421
421
  renderTreemapRadialForExport,
422
422
  renderTreemapRadial
423
423
  };
424
- //# sourceMappingURL=chunk-XKTN7CZF.js.map
424
+ //# sourceMappingURL=chunk-MCZ5LBZD.js.map