@diagrammo/dgmo 0.48.2 → 0.49.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 (216) hide show
  1. package/.cursorrules +8 -3
  2. package/.github/copilot-instructions.md +8 -3
  3. package/.windsurfrules +8 -3
  4. package/SKILL.md +8 -3
  5. package/dist/advanced.d.ts +444 -1
  6. package/dist/advanced.js +208 -146
  7. package/dist/auto.css +63 -0
  8. package/dist/auto.js +202 -102
  9. package/dist/auto.mjs +6849 -824
  10. package/dist/block.css +63 -0
  11. package/dist/block.d.ts +13 -5
  12. package/dist/block.js +137 -57
  13. package/dist/{charts-d3-QOZHKTCT.js → charts-d3-EW3YQTEA.js} +9 -8
  14. package/dist/chunk-26RVGM44.js +331 -0
  15. package/dist/{chunk-44CM72SQ.js → chunk-2WMBWZY2.js} +3 -3
  16. package/dist/{chunk-L66GEFB6.js → chunk-35BBZDFE.js} +4 -4
  17. package/dist/{chunk-4GRI7MEB.js → chunk-3BIAFYD2.js} +6 -6
  18. package/dist/chunk-3NFJWFNP.js +1474 -0
  19. package/dist/{chunk-76OWZ3BA.js → chunk-4BD7EVPK.js} +2 -2
  20. package/dist/{chunk-MITI6NOL.js → chunk-4FIV4K4Z.js} +9 -9
  21. package/dist/chunk-4HVNZ7WF.js +574 -0
  22. package/dist/{chunk-X5LCYCL5.js → chunk-4NQ3IKUM.js} +2 -2
  23. package/dist/{chunk-PWIHZ6NJ.js → chunk-4UDKKGHH.js} +4 -4
  24. package/dist/{chunk-6NYWYNBI.js → chunk-4XK3FLFB.js} +3 -3
  25. package/dist/chunk-4YNP6O47.js +607 -0
  26. package/dist/{chunk-3MQQNXPD.js → chunk-5FGDJIJX.js} +3 -3
  27. package/dist/{chunk-WCT3NYCV.js → chunk-5LWQH6QV.js} +1 -1
  28. package/dist/chunk-5XCM7UUW.js +261 -0
  29. package/dist/{chunk-RYEGFMUO.js → chunk-5ZZLLBFK.js} +2 -2
  30. package/dist/{chunk-EB6FPQUP.js → chunk-65RTDUZH.js} +3 -3
  31. package/dist/chunk-6CLKNXVP.js +664 -0
  32. package/dist/{chunk-H6PI3KJT.js → chunk-6IUAK7RZ.js} +2 -2
  33. package/dist/{chunk-ZGR7ULFJ.js → chunk-6SA7FJE4.js} +31 -19
  34. package/dist/{chunk-LIOHW36Z.js → chunk-6VE3VLWM.js} +3 -3
  35. package/dist/{chunk-AN2MOO5T.js → chunk-7OVSJI2V.js} +3 -3
  36. package/dist/{chunk-YAA6IID3.js → chunk-7UEMZREK.js} +2 -2
  37. package/dist/{chunk-FCIIHT24.js → chunk-7VLUGEMJ.js} +7 -7
  38. package/dist/{chunk-VOKGH627.js → chunk-AHGF2YYA.js} +13 -3
  39. package/dist/{chunk-3R5POCTZ.js → chunk-AJ2PEY7J.js} +6 -6
  40. package/dist/{chunk-PBHE5UG6.js → chunk-ALRHIR6I.js} +46 -12
  41. package/dist/{chunk-7JEGTRLD.js → chunk-B57V3DWN.js} +3 -3
  42. package/dist/{chunk-ILKORZ3H.js → chunk-BCT5G2VN.js} +7 -7
  43. package/dist/{chunk-TYS6CSS5.js → chunk-BCYVE3N5.js} +2 -2
  44. package/dist/{chunk-ZBWMSD5N.js → chunk-BGJV5ATD.js} +4 -4
  45. package/dist/{chunk-G2H74XJZ.js → chunk-BPIJLRYE.js} +8 -8
  46. package/dist/{chunk-YGJTDXVR.js → chunk-C4GQDB5L.js} +2 -2
  47. package/dist/{chunk-Y2ZE3MSG.js → chunk-C63UWAKM.js} +2 -2
  48. package/dist/{chunk-QEBUY5NY.js → chunk-CEHZOPGM.js} +4 -4
  49. package/dist/{chunk-725LDASD.js → chunk-CLD2OKV7.js} +2 -2
  50. package/dist/{chunk-5QXL4NYS.js → chunk-CLR4A2N2.js} +10 -5
  51. package/dist/{chunk-WBRZJOEC.js → chunk-CMCR5WBW.js} +3 -3
  52. package/dist/{chunk-SML67VPV.js → chunk-D5AVQCDN.js} +3 -3
  53. package/dist/{chunk-2LACINWN.js → chunk-DDTJ5N7Q.js} +9 -9
  54. package/dist/{chunk-FITOLXSX.js → chunk-EOFPYPAU.js} +26 -2
  55. package/dist/{chunk-B65G5DNL.js → chunk-EYN7VFKL.js} +3 -3
  56. package/dist/{chunk-4OHACBGX.js → chunk-F2L5GCQ4.js} +2 -2
  57. package/dist/{chunk-RVMRZAPB.js → chunk-F743CM2N.js} +3 -3
  58. package/dist/{chunk-3JLKYGBQ.js → chunk-F7BFXWNQ.js} +2 -2
  59. package/dist/{chunk-WCSOJFU3.js → chunk-FMKTYMP4.js} +3 -3
  60. package/dist/{chunk-RTLBSQ3G.js → chunk-FUCAB3KQ.js} +3 -3
  61. package/dist/{chunk-SGZYXELT.js → chunk-GB3YZTAM.js} +9 -6
  62. package/dist/{chunk-QLCCJEJI.js → chunk-HBVD67XG.js} +2 -2
  63. package/dist/{chunk-PBAHEPLQ.js → chunk-HGN652MU.js} +7 -6
  64. package/dist/{chunk-3SMGIJDD.js → chunk-HHXOONLX.js} +13 -1
  65. package/dist/{chunk-QOOUC2J5.js → chunk-HQCHYB5F.js} +2 -2
  66. package/dist/chunk-IAEC4KLA.js +492 -0
  67. package/dist/{chunk-J5FIXQRT.js → chunk-IBC35BTK.js} +4 -4
  68. package/dist/{chunk-NURGB5Z4.js → chunk-IFK3GIUW.js} +2 -2
  69. package/dist/{chunk-FANX6UJR.js → chunk-IHLSHCPZ.js} +11 -11
  70. package/dist/{chunk-GMR5MFHJ.js → chunk-IUK7AGD4.js} +2 -2
  71. package/dist/chunk-IVKC4GID.js +32 -0
  72. package/dist/{chunk-OJR3MQYV.js → chunk-JFPY3UJ7.js} +296 -57
  73. package/dist/{chunk-5MLYVTYM.js → chunk-K6HNAY5V.js} +2 -2
  74. package/dist/{chunk-P235SVAH.js → chunk-KQAEKMIX.js} +2 -2
  75. package/dist/{chunk-7DTWEFUE.js → chunk-KUBBJ2CD.js} +10 -10
  76. package/dist/{chunk-BUVJFRPY.js → chunk-KV6Y2HE6.js} +4 -4
  77. package/dist/{chunk-OURHMODR.js → chunk-LG4TWW4U.js} +13 -13
  78. package/dist/{chunk-XAKEUMEJ.js → chunk-LVHPTBO3.js} +3 -3
  79. package/dist/{chunk-ERLBPDGU.js → chunk-MJCG5K2O.js} +2 -2
  80. package/dist/{chunk-THXCFRTU.js → chunk-N4J5KGWG.js} +12 -12
  81. package/dist/{chunk-MZSBFAPJ.js → chunk-NVT6C2VE.js} +9 -9
  82. package/dist/{chunk-AELOBFW5.js → chunk-O5MQPK7E.js} +3 -3
  83. package/dist/{chunk-JM4LEPY3.js → chunk-O7NUCTFU.js} +2 -2
  84. package/dist/{chunk-JED6ZDEE.js → chunk-O7WP4ZD4.js} +2 -2
  85. package/dist/{chunk-ZO27FGJS.js → chunk-PH5X4GIP.js} +2 -2
  86. package/dist/{chunk-B7JUCQUA.js → chunk-PU3AUQPA.js} +4 -4
  87. package/dist/{chunk-YGJZWZTY.js → chunk-PZFVK3IH.js} +2 -2
  88. package/dist/chunk-QQJUTGQH.js +135 -0
  89. package/dist/{chunk-HSH73DP6.js → chunk-RI4NIMFP.js} +99 -39
  90. package/dist/{chunk-33LCUH4H.js → chunk-RTERS6S5.js} +3 -3
  91. package/dist/{chunk-T3UBLACL.js → chunk-SCQ5VPUF.js} +19 -5
  92. package/dist/chunk-SGHSY3LU.js +377 -0
  93. package/dist/{chunk-SRTU6HMQ.js → chunk-SJEGO2QL.js} +8 -8
  94. package/dist/chunk-SQDFK5ZQ.js +273 -0
  95. package/dist/{chunk-PZMETGLY.js → chunk-SVDWQGX2.js} +296 -121
  96. package/dist/{chunk-Z5CGSFJB.js → chunk-T7IKPCMI.js} +4 -4
  97. package/dist/chunk-TC3YWBFO.js +233 -0
  98. package/dist/{chunk-EVCVDTXE.js → chunk-TLKMTQYL.js} +3 -3
  99. package/dist/{chunk-IJZFN3HM.js → chunk-TWQUYVP3.js} +4 -4
  100. package/dist/{chunk-IZMRON6C.js → chunk-UVCXZEGU.js} +2 -2
  101. package/dist/{chunk-CKNVO24D.js → chunk-UWDO3O52.js} +2 -2
  102. package/dist/{chunk-RJE5JTVK.js → chunk-VC3TR4NL.js} +7 -7
  103. package/dist/{chunk-CI2G3OEB.js → chunk-X2CH42BN.js} +9 -9
  104. package/dist/{chunk-6HO5ZTXK.js → chunk-XCC2RENT.js} +2 -2
  105. package/dist/chunk-XHVV4NVW.js +51 -0
  106. package/dist/{chunk-ZJEL4H2R.js → chunk-XJ7J6WOO.js} +9 -9
  107. package/dist/{chunk-ULOEATBZ.js → chunk-XKTN7CZF.js} +106 -29
  108. package/dist/{chunk-IPWPWM6R.js → chunk-YM2BSPYW.js} +111 -10
  109. package/dist/{chunk-BUPDIHML.js → chunk-YRVLP7UU.js} +3 -3
  110. package/dist/{chunk-T2OE3YQB.js → chunk-YTN572Q2.js} +3 -3
  111. package/dist/{chunk-WVAJFAIA.js → chunk-YYX3SU6H.js} +3 -3
  112. package/dist/{chunk-MO5YHHMQ.js → chunk-ZDUQGL3N.js} +2 -2
  113. package/dist/{chunk-Y3J7VR52.js → chunk-ZNQX6QWH.js} +30 -2
  114. package/dist/{chunk-UWN33VNX.js → chunk-ZREZOIGS.js} +8 -8
  115. package/dist/{chunk-6SM5NJQH.js → chunk-ZTLWVRNS.js} +4 -4
  116. package/dist/{chunk-RUNNI6VE.js → chunk-ZXL6MB4R.js} +3 -3
  117. package/dist/cli.cjs +159 -122
  118. package/dist/dgmo-router-ODKPEJ3P.js +79 -0
  119. package/dist/dimensions-WSIJXT5Q.js +22 -0
  120. package/dist/editor.js +4 -1
  121. package/dist/element.js +203 -103
  122. package/dist/element.mjs +6849 -824
  123. package/dist/{flowchart-parser-ZNSKIBVR.js → flowchart-parser-IVZN7CQN.js} +4 -4
  124. package/dist/{flowchart-renderer-SNDSII4D.js → flowchart-renderer-GMI2U3DD.js} +9 -9
  125. package/dist/highlight.js +7 -1
  126. package/dist/index.d.ts +5 -1
  127. package/dist/index.js +193 -232
  128. package/dist/{layout-HRBZPFCN.js → layout-34CLNICW.js} +5 -5
  129. package/dist/{layout-5RA6QWR6.js → layout-4Z5JM7PT.js} +6 -6
  130. package/dist/layout-6RDJHS6E.js +9 -0
  131. package/dist/{layout-7QXCNOVS.js → layout-7H4H46CS.js} +3 -3
  132. package/dist/{layout-46N4JJYK.js → layout-7SKMFYHL.js} +5 -5
  133. package/dist/{layout-HWDSRX5E.js → layout-D42XE4RE.js} +6 -6
  134. package/dist/{layout-EE6GE46Y.js → layout-DC4TVXER.js} +5 -5
  135. package/dist/layout-FGQWRYYW.js +14 -0
  136. package/dist/layout-GZ2CWONU.js +14 -0
  137. package/dist/layout-HQMBPJVS.js +10 -0
  138. package/dist/{layout-UM5F4DJB.js → layout-K2ZN3Q42.js} +5 -5
  139. package/dist/{layout-S2QBYSK2.js → layout-NXG63LWH.js} +3 -3
  140. package/dist/{layout-N76NR4ZO.js → layout-PUQCB6AN.js} +7 -7
  141. package/dist/{layout-HYZPWAK5.js → layout-QNUQLEHU.js} +3 -3
  142. package/dist/layout-S3EK4IYO.js +14 -0
  143. package/dist/{layout-search-OYV77HHS.js → layout-search-QS44PI5R.js} +6 -6
  144. package/dist/{parser-KNSQSKQO.js → parser-4BKIFG2C.js} +5 -5
  145. package/dist/{parser-OV7NOBW6.js → parser-4ROBKVUR.js} +4 -4
  146. package/dist/parser-667RGSUW.js +13 -0
  147. package/dist/{parser-IXSZZQHY.js → parser-BL7Z72EY.js} +4 -4
  148. package/dist/{parser-AQETEVRW.js → parser-CLMFZWCC.js} +4 -4
  149. package/dist/{parser-XKRP7QKP.js → parser-D6ONJQFR.js} +3 -3
  150. package/dist/{parser-2EWECDSA.js → parser-DERPY5KC.js} +4 -4
  151. package/dist/{parser-4OGOBJJ4.js → parser-GFSOPDB7.js} +4 -4
  152. package/dist/{parser-2MFP2H2E.js → parser-HVJFTOXL.js} +3 -3
  153. package/dist/{parser-VQP2UJ6W.js → parser-IKZFTLOJ.js} +3 -3
  154. package/dist/parser-J3P2D6IP.js +13 -0
  155. package/dist/{parser-PQ3POX45.js → parser-JD7OQ2E6.js} +4 -4
  156. package/dist/{parser-O5J4VBII.js → parser-K647FRI4.js} +3 -3
  157. package/dist/{parser-NGU3ETO6.js → parser-KPMN5KKE.js} +4 -4
  158. package/dist/{parser-4FL2CMDG.js → parser-MBJSBTL5.js} +4 -4
  159. package/dist/{parser-TFZFBVWN.js → parser-MCJWF5G3.js} +3 -3
  160. package/dist/{parser-NRAI6O25.js → parser-MRBPXXIV.js} +4 -4
  161. package/dist/{parser-6BTRLKRZ.js → parser-OBQG655V.js} +4 -4
  162. package/dist/{parser-3STE62GB.js → parser-QJYS7KQQ.js} +4 -4
  163. package/dist/{parser-XDVELHRK.js → parser-SMBJO3XN.js} +4 -4
  164. package/dist/{parser-TRTHDFPP.js → parser-TITK4YW6.js} +5 -5
  165. package/dist/{parser-I6KXEYFK.js → parser-TNYX5S7E.js} +4 -4
  166. package/dist/{parser-Y6WTBU76.js → parser-UBGPTIZD.js} +3 -3
  167. package/dist/parser-UGA23PYK.js +14 -0
  168. package/dist/{parser-N5O4IHUN.js → parser-WISPH7LW.js} +4 -4
  169. package/dist/{parser-CFZD5IBL.js → parser-XWUDFJ7P.js} +4 -4
  170. package/dist/parser-ZKF5K2H2.js +15 -0
  171. package/dist/{parser-ZSDPZYQP.js → parser-ZYC3XGNS.js} +4 -4
  172. package/dist/{renderer-AWWAF6XD.js → renderer-4IUPINAE.js} +10 -10
  173. package/dist/renderer-6L3NBEY5.js +24 -0
  174. package/dist/{renderer-ZRNG54CW.js → renderer-6T3KK4S3.js} +11 -11
  175. package/dist/{renderer-KQB7UGDS.js → renderer-7RH2SI3B.js} +3 -3
  176. package/dist/{renderer-6EEZHMH4.js → renderer-A5VFZQQK.js} +9 -9
  177. package/dist/{renderer-5MYBMBYO.js → renderer-BB5PREMY.js} +5 -5
  178. package/dist/{renderer-BYCNMBF7.js → renderer-CGW7QPNA.js} +10 -10
  179. package/dist/{renderer-QIWVHWZO.js → renderer-DAXMXIKD.js} +3 -3
  180. package/dist/{renderer-7MVLWWQD.js → renderer-DKESNMU5.js} +9 -9
  181. package/dist/{renderer-UV6MI64M.js → renderer-HVCU2C3Z.js} +3 -3
  182. package/dist/{renderer-VACVQYML.js → renderer-LWGJFT3D.js} +8 -8
  183. package/dist/{renderer-PGX2TKVS.js → renderer-MFJ7HY2H.js} +8 -8
  184. package/dist/{renderer-B2OMQIQG.js → renderer-MJDDU27W.js} +15 -15
  185. package/dist/{renderer-4JHRUBE6.js → renderer-QL5KO6SK.js} +10 -10
  186. package/dist/{renderer-W4M6QLIJ.js → renderer-QNHUXCRL.js} +14 -14
  187. package/dist/{renderer-ZGNTUWC4.js → renderer-ROV756WT.js} +8 -8
  188. package/dist/{renderer-YY2OSF6E.js → renderer-SQ3JUAI7.js} +9 -9
  189. package/dist/renderer-THD6V5TL.js +22 -0
  190. package/dist/{renderer-5NDVNDAZ.js → renderer-TPIBXNOS.js} +9 -9
  191. package/dist/{renderer-RPOA5YPZ.js → renderer-TYXRHMRI.js} +13 -13
  192. package/dist/{renderer-N43WR5GV.js → renderer-UZF3JROD.js} +11 -11
  193. package/dist/{renderer-6W5462RB.js → renderer-V3JEMWMM.js} +9 -9
  194. package/dist/{renderer-JGBKUCZD.js → renderer-VFUVRNLK.js} +4 -4
  195. package/dist/{renderer-Z7I3W2PP.js → renderer-VICQ4WNY.js} +8 -8
  196. package/dist/renderer-W5RMOURB.js +21 -0
  197. package/dist/renderer-XEKIRPI6.js +23 -0
  198. package/dist/{renderer-CLJHQPBJ.js → renderer-YHXPN3GF.js} +12 -12
  199. package/dist/renderer-radial-MHO2VDXN.js +21 -0
  200. package/dist/{resolver-NOAA7ID7.js → resolver-FHBCO3PL.js} +3 -3
  201. package/dist/{state-parser-Z2V23ATR.js → state-parser-RX3GXOIB.js} +4 -4
  202. package/dist/{state-renderer-B4DQBM6M.js → state-renderer-AJUKGNWU.js} +9 -9
  203. package/docs/ai-integration.md +8 -3
  204. package/docs/language-reference.md +179 -5
  205. package/gallery/fixtures/family.dgmo +23 -0
  206. package/gallery/fixtures/sketch.dgmo +22 -0
  207. package/package.json +1 -1
  208. package/dist/chunk-ODZVHU3R.js +0 -153
  209. package/dist/dgmo-router-X35VLZLM.js +0 -73
  210. package/dist/dimensions-J3FHIMJ6.js +0 -22
  211. package/dist/layout-5T6RH5M6.js +0 -14
  212. package/dist/layout-G23F7LDH.js +0 -9
  213. package/dist/layout-OB3RI63S.js +0 -14
  214. package/dist/parser-JAL2HD4I.js +0 -13
  215. package/dist/renderer-SMIBCRVB.js +0 -24
  216. package/dist/renderer-radial-C32GPJQ7.js +0 -21
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  extractDatePrefix,
3
3
  parseTimelineDate
4
- } from "./chunk-GMR5MFHJ.js";
4
+ } from "./chunk-IUK7AGD4.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-QLCCJEJI.js";
14
+ } from "./chunk-HBVD67XG.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-Y3J7VR52.js";
24
+ } from "./chunk-ZNQX6QWH.js";
25
25
  import {
26
26
  emit,
27
27
  formatDgmoError,
@@ -134,7 +134,8 @@ function parseEventLine(content, palette) {
134
134
  side: "alternate",
135
135
  noTitle: false,
136
136
  noBox: false,
137
- noLegend: false
137
+ noLegend: false,
138
+ solidFill: false
138
139
  };
139
140
  const result = {
140
141
  type: "event-line",
@@ -293,6 +294,10 @@ function parseEventLine(content, palette) {
293
294
  options.noLegend = true;
294
295
  continue;
295
296
  }
297
+ if (trimmed.toLowerCase() === "solid-fill") {
298
+ options.solidFill = true;
299
+ continue;
300
+ }
296
301
  const dirMatch = trimmed.match(DIRECTION_RE);
297
302
  if (dirMatch) {
298
303
  const dir = dirMatch[1].toUpperCase();
@@ -550,4 +555,4 @@ export {
550
555
  EVENT_LINE_DIAGNOSTICS,
551
556
  parseEventLine
552
557
  };
553
- //# sourceMappingURL=chunk-5QXL4NYS.js.map
558
+ //# sourceMappingURL=chunk-CLR4A2N2.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  buildPlacedNotes
3
- } from "./chunk-JED6ZDEE.js";
3
+ } from "./chunk-O7WP4ZD4.js";
4
4
  import {
5
5
  noteCanvasShift
6
6
  } from "./chunk-6EK55ART.js";
7
7
  import {
8
8
  measureText
9
- } from "./chunk-WCT3NYCV.js";
9
+ } from "./chunk-5LWQH6QV.js";
10
10
  import {
11
11
  resolveNotes
12
12
  } from "./chunk-FMDSF3OV.js";
@@ -201,4 +201,4 @@ function layoutClassDiagram(parsed, options) {
201
201
  export {
202
202
  layoutClassDiagram
203
203
  };
204
- //# sourceMappingURL=chunk-WBRZJOEC.js.map
204
+ //# sourceMappingURL=chunk-CMCR5WBW.js.map
@@ -8,7 +8,7 @@ import {
8
8
  stripDefaultModifier,
9
9
  validateTagGroupNames,
10
10
  validateTagValues
11
- } from "./chunk-QLCCJEJI.js";
11
+ } from "./chunk-HBVD67XG.js";
12
12
  import {
13
13
  parseArrow,
14
14
  parseInArrowLabel
@@ -26,7 +26,7 @@ import {
26
26
  splitNameAndMeta,
27
27
  warnUnknownMetaKeys,
28
28
  withTagAliases
29
- } from "./chunk-Y3J7VR52.js";
29
+ } from "./chunk-ZNQX6QWH.js";
30
30
  import {
31
31
  NAME_DIAGNOSTIC_CODES,
32
32
  formatDgmoError,
@@ -1022,4 +1022,4 @@ export {
1022
1022
  parseSequenceDgmo,
1023
1023
  looksLikeSequence
1024
1024
  };
1025
- //# sourceMappingURL=chunk-SML67VPV.js.map
1025
+ //# sourceMappingURL=chunk-D5AVQCDN.js.map
@@ -8,22 +8,22 @@ import {
8
8
  import {
9
9
  renderInlineText
10
10
  } from "./chunk-3HDBAXF5.js";
11
- import {
12
- wrapDescriptionLines
13
- } from "./chunk-BMR4CIEO.js";
14
11
  import {
15
12
  EDGE_STROKE_WIDTH,
16
13
  NODE_STROKE_WIDTH
17
14
  } from "./chunk-3CIOJ5YJ.js";
18
15
  import {
19
- renderIntegratedLegend
20
- } from "./chunk-PWIHZ6NJ.js";
16
+ wrapDescriptionLines
17
+ } from "./chunk-BMR4CIEO.js";
21
18
  import {
22
19
  ScaleContext
23
20
  } from "./chunk-YYVTBZZC.js";
21
+ import {
22
+ renderIntegratedLegend
23
+ } from "./chunk-4UDKKGHH.js";
24
24
  import {
25
25
  getMaxLegendReservedHeight
26
- } from "./chunk-YAA6IID3.js";
26
+ } from "./chunk-7UEMZREK.js";
27
27
  import {
28
28
  TITLE_FONT_SIZE,
29
29
  TITLE_FONT_WEIGHT,
@@ -36,7 +36,7 @@ import {
36
36
  CHAR_WIDTH_RATIO,
37
37
  measureText,
38
38
  truncateText
39
- } from "./chunk-WCT3NYCV.js";
39
+ } from "./chunk-5LWQH6QV.js";
40
40
  import {
41
41
  contrastText,
42
42
  mix,
@@ -47,7 +47,7 @@ import {
47
47
  } from "./chunk-P6T66CCZ.js";
48
48
  import {
49
49
  resolveTagColor
50
- } from "./chunk-QLCCJEJI.js";
50
+ } from "./chunk-HBVD67XG.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-2LACINWN.js.map
786
+ //# sourceMappingURL=chunk-DDTJ5N7Q.js.map
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-I5IGB56C.js";
10
10
  import {
11
11
  MAP_DX
12
- } from "./chunk-3SMGIJDD.js";
12
+ } from "./chunk-HHXOONLX.js";
13
13
  import {
14
14
  emit,
15
15
  formatDgmoError,
@@ -420,11 +420,29 @@ function resolveMap(parsed, data) {
420
420
  if (fn && fn !== p.id && !declaredByName.has(fn))
421
421
  declaredByName.set(fn, p.id);
422
422
  }
423
+ const declaredByLabel = /* @__PURE__ */ new Map();
424
+ const ambiguousLabel = /* @__PURE__ */ new Set();
425
+ for (const p of pois) {
426
+ const fl = p.label ? fold(p.label) : void 0;
427
+ if (!fl) continue;
428
+ if (declaredByLabel.has(fl)) ambiguousLabel.add(fl);
429
+ else declaredByLabel.set(fl, p.id);
430
+ }
431
+ const resolveByLabel = (f) => {
432
+ if (ambiguousLabel.has(f)) return "ambiguous";
433
+ return declaredByLabel.get(f);
434
+ };
423
435
  const resolveEndpoint = (ref, line) => {
424
436
  const f = fold(ref);
425
437
  if (registry.has(f)) return f;
426
438
  const aliased = declaredByName.get(f);
427
439
  if (aliased) return aliased;
440
+ const byLabel = resolveByLabel(f);
441
+ if (byLabel === "ambiguous") {
442
+ diagnostics.push(emit(MAP_DX.AMBIGUOUS_LABEL, line, { name: ref }));
443
+ return null;
444
+ }
445
+ if (byLabel) return byLabel;
428
446
  const got = lookupName(ref, void 0, line, inferredCountry, true);
429
447
  if (got.kind !== "ok") return null;
430
448
  noteCountry(got.iso);
@@ -485,6 +503,12 @@ function resolveMap(parsed, data) {
485
503
  if (registry.has(f)) return f;
486
504
  const aliased = declaredByName.get(f);
487
505
  if (aliased) return aliased;
506
+ const byLabel = resolveByLabel(f);
507
+ if (byLabel === "ambiguous") {
508
+ diagnostics.push(emit(MAP_DX.AMBIGUOUS_LABEL, line, { name: pos.name }));
509
+ return null;
510
+ }
511
+ if (byLabel) return byLabel;
488
512
  const got = lookupName(pos.name, pos.scope, line, inferredScope, true);
489
513
  if (got.kind !== "ok") return null;
490
514
  noteCountry(got.iso);
@@ -711,4 +735,4 @@ export {
711
735
  isSubNationalUsExtent,
712
736
  resolveMap
713
737
  };
714
- //# sourceMappingURL=chunk-FITOLXSX.js.map
738
+ //# sourceMappingURL=chunk-EOFPYPAU.js.map
@@ -11,7 +11,7 @@ import {
11
11
  stripDefaultModifier,
12
12
  tagAttrKey,
13
13
  validateTagGroupNames
14
- } from "./chunk-QLCCJEJI.js";
14
+ } from "./chunk-HBVD67XG.js";
15
15
  import {
16
16
  parseInArrowLabel
17
17
  } from "./chunk-FFUN5D66.js";
@@ -27,7 +27,7 @@ import {
27
27
  splitNameAndMeta,
28
28
  warnUnknownMetaKeys,
29
29
  withTagAliases
30
- } from "./chunk-Y3J7VR52.js";
30
+ } from "./chunk-ZNQX6QWH.js";
31
31
  import {
32
32
  formatDgmoError,
33
33
  makeDgmoError,
@@ -804,4 +804,4 @@ function validateDeploymentRefs(result, knownNames, pushWarning) {
804
804
  export {
805
805
  parseC4
806
806
  };
807
- //# sourceMappingURL=chunk-B65G5DNL.js.map
807
+ //# sourceMappingURL=chunk-EYN7VFKL.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  measureText
3
- } from "./chunk-WCT3NYCV.js";
3
+ } from "./chunk-5LWQH6QV.js";
4
4
  import {
5
5
  formatDuration,
6
6
  formatScheduleValue,
@@ -603,4 +603,4 @@ export {
603
603
  layoutPert,
604
604
  relayoutPert
605
605
  };
606
- //# sourceMappingURL=chunk-4OHACBGX.js.map
606
+ //# sourceMappingURL=chunk-F2L5GCQ4.js.map
@@ -7,7 +7,7 @@ import {
7
7
  tagAttrKey,
8
8
  validateTagGroupNames,
9
9
  validateTagValues
10
- } from "./chunk-QLCCJEJI.js";
10
+ } from "./chunk-HBVD67XG.js";
11
11
  import {
12
12
  normalizeName
13
13
  } from "./chunk-NOTA6TEI.js";
@@ -20,7 +20,7 @@ import {
20
20
  splitNameAndMeta,
21
21
  warnUnknownMetaKeys,
22
22
  withTagAliases
23
- } from "./chunk-Y3J7VR52.js";
23
+ } from "./chunk-ZNQX6QWH.js";
24
24
  import {
25
25
  formatDgmoError,
26
26
  makeDgmoError,
@@ -351,4 +351,4 @@ export {
351
351
  looksLikeOrg,
352
352
  parseOrg
353
353
  };
354
- //# sourceMappingURL=chunk-RVMRZAPB.js.map
354
+ //# sourceMappingURL=chunk-F743CM2N.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  measureText,
3
3
  wrapTextToWidth
4
- } from "./chunk-WCT3NYCV.js";
4
+ } from "./chunk-5LWQH6QV.js";
5
5
  import {
6
6
  mix,
7
7
  shapeFill
@@ -287,4 +287,4 @@ export {
287
287
  scoreToCurveY,
288
288
  layoutJourneyMap
289
289
  };
290
- //# sourceMappingURL=chunk-3JLKYGBQ.js.map
290
+ //# sourceMappingURL=chunk-F7BFXWNQ.js.map
@@ -7,7 +7,7 @@ import {
7
7
  tagAttrKey,
8
8
  validateTagGroupNames,
9
9
  validateTagValues
10
- } from "./chunk-QLCCJEJI.js";
10
+ } from "./chunk-HBVD67XG.js";
11
11
  import {
12
12
  TREEMAP_REGISTRY,
13
13
  extractColor,
@@ -18,7 +18,7 @@ import {
18
18
  stripQuotes,
19
19
  warnUnknownMetaKeys,
20
20
  withTagAliases
21
- } from "./chunk-Y3J7VR52.js";
21
+ } from "./chunk-ZNQX6QWH.js";
22
22
  import {
23
23
  emit,
24
24
  formatDgmoError,
@@ -377,4 +377,4 @@ export {
377
377
  TREEMAP_DIAGNOSTICS,
378
378
  parseTreemap
379
379
  };
380
- //# sourceMappingURL=chunk-WCSOJFU3.js.map
380
+ //# sourceMappingURL=chunk-FMKTYMP4.js.map
@@ -14,7 +14,7 @@ import {
14
14
  tagAttrKey,
15
15
  validateTagGroupNames,
16
16
  validateTagValues
17
- } from "./chunk-QLCCJEJI.js";
17
+ } from "./chunk-HBVD67XG.js";
18
18
  import {
19
19
  normalizeName
20
20
  } from "./chunk-NOTA6TEI.js";
@@ -25,7 +25,7 @@ import {
25
25
  splitNameAndMeta,
26
26
  warnUnknownMetaKeys,
27
27
  withTagAliases
28
- } from "./chunk-Y3J7VR52.js";
28
+ } from "./chunk-ZNQX6QWH.js";
29
29
  import {
30
30
  emit,
31
31
  makeDgmoError,
@@ -1152,4 +1152,4 @@ export {
1152
1152
  extractPertSymbols,
1153
1153
  looksLikePert
1154
1154
  };
1155
- //# sourceMappingURL=chunk-RTLBSQ3G.js.map
1155
+ //# sourceMappingURL=chunk-FUCAB3KQ.js.map
@@ -1,6 +1,10 @@
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";
4
8
  import {
5
9
  ScaleContext
6
10
  } from "./chunk-YYVTBZZC.js";
@@ -16,11 +20,7 @@ import {
16
20
  measureText,
17
21
  truncateText,
18
22
  wrapTextToWidth
19
- } from "./chunk-WCT3NYCV.js";
20
- import {
21
- VARIANTS,
22
- allTasks
23
- } from "./chunk-RYEGFMUO.js";
23
+ } from "./chunk-5LWQH6QV.js";
24
24
  import {
25
25
  contrastText,
26
26
  mix,
@@ -260,6 +260,9 @@ function renderRaci(container, parsed, palette, isDark, handlers, exportDims) {
260
260
  const totalHeight = colBottomY + sVMargin;
261
261
  const svgHeight = exportDims ? totalHeight : Math.max(height, totalHeight);
262
262
  const svg = d3Selection.select(container).append("svg").attr("xmlns", "http://www.w3.org/2000/svg").attr("width", width).attr("height", svgHeight).attr("viewBox", `0 0 ${width} ${svgHeight}`).attr("preserveAspectRatio", "xMidYMin meet").attr("font-family", FONT_FAMILY);
263
+ if (!exportDims && svgHeight > totalHeight) {
264
+ svg.attr("data-content-height", Math.ceil(totalHeight));
265
+ }
263
266
  if (ctx.isBelowFloor) {
264
267
  svg.attr("width", "100%");
265
268
  }
@@ -744,4 +747,4 @@ export {
744
747
  renderRaci,
745
748
  renderRaciForExport
746
749
  };
747
- //# sourceMappingURL=chunk-SGZYXELT.js.map
750
+ //# sourceMappingURL=chunk-GB3YZTAM.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  stripQuotes,
3
3
  tokenizeQuoteAware
4
- } from "./chunk-Y3J7VR52.js";
4
+ } from "./chunk-ZNQX6QWH.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-QLCCJEJI.js.map
253
+ //# sourceMappingURL=chunk-HBVD67XG.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  measureText
3
- } from "./chunk-WCT3NYCV.js";
3
+ } from "./chunk-5LWQH6QV.js";
4
4
 
5
5
  // src/label-layout.ts
6
6
  function rectsOverlap(a, b) {
@@ -57,16 +57,16 @@ function segmentsCross(ax, ay, bx, by, cx, cy, dx, dy) {
57
57
  function computeQuadrantPointLabels(points, chartBounds, obstacles, pointRadius, fontSize) {
58
58
  const labelHeight = fontSize + 4;
59
59
  const stepSize = labelHeight + 2;
60
- const minGap = pointRadius + 4;
61
60
  const pointCircles = points.map((p) => ({
62
61
  cx: p.cx,
63
62
  cy: p.cy,
64
- r: pointRadius
63
+ r: p.r ?? pointRadius
65
64
  }));
66
65
  const placedLabels = [];
67
66
  const results = [];
68
67
  for (let i = 0; i < points.length; i++) {
69
68
  const pt = points[i];
69
+ const minGap = (pt.r ?? pointRadius) + 4;
70
70
  const labelWidth = measureText(pt.label, fontSize) + 8;
71
71
  let best = null;
72
72
  const directions = [
@@ -190,8 +190,9 @@ function computeQuadrantPointLabels(points, chartBounds, obstacles, pointRadius,
190
190
  const dx = best.textX - pt.cx;
191
191
  const dy = best.textY - pt.cy;
192
192
  const angle = Math.atan2(dy, dx);
193
- const x1 = pt.cx + Math.cos(angle) * pointRadius;
194
- const y1 = pt.cy + Math.sin(angle) * pointRadius;
193
+ const ptR = pt.r ?? pointRadius;
194
+ const x1 = pt.cx + Math.cos(angle) * ptR;
195
+ const y1 = pt.cy + Math.sin(angle) * ptR;
195
196
  const x2 = Math.max(
196
197
  best.rect.x,
197
198
  Math.min(pt.cx, best.rect.x + best.rect.w)
@@ -220,4 +221,4 @@ export {
220
221
  segmentsCross,
221
222
  computeQuadrantPointLabels
222
223
  };
223
- //# sourceMappingURL=chunk-PBAHEPLQ.js.map
224
+ //# sourceMappingURL=chunk-HGN652MU.js.map
@@ -70,6 +70,18 @@ var MAP_DX = {
70
70
  hint: "Multiple places share this name \u2014 add a scope or `locale <ISO>` to steer it.",
71
71
  example: "map\npoi Portland"
72
72
  },
73
+ AMBIGUOUS_LABEL: {
74
+ // Runtime severity: 'error' (matches E_ prefix). A route/edge referenced a
75
+ // POI by its `label:`, but two or more declared POIs share that label, so the
76
+ // reference can't bind to one. Disambiguate with a unique `as <alias>`.
77
+ code: "E_MAP_AMBIGUOUS_LABEL",
78
+ severity: "error",
79
+ chartType: "map",
80
+ title: "Ambiguous POI label",
81
+ message: (p) => `Reference "${p.name ?? ""}" matches the label of two or more POIs \u2014 give each a distinct \`as <alias>\` and reference the alias instead.`,
82
+ hint: "Multiple POIs share this label \u2014 reference a unique `as <alias>` rather than the label.",
83
+ example: "map\npoi 1 2 label: Depot\npoi 3 4 label: Depot"
84
+ },
73
85
  DUPLICATE_POI: {
74
86
  // Runtime severity: 'warning' (matches W_ prefix). Only a declared-over-
75
87
  // declared collision warns; an implicit endpoint never triggers it.
@@ -109,4 +121,4 @@ export {
109
121
  MAP_DX,
110
122
  MAP_DIAGNOSTICS
111
123
  };
112
- //# sourceMappingURL=chunk-3SMGIJDD.js.map
124
+ //# sourceMappingURL=chunk-HHXOONLX.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  measureText,
3
3
  truncateText
4
- } from "./chunk-WCT3NYCV.js";
4
+ } from "./chunk-5LWQH6QV.js";
5
5
 
6
6
  // src/utils/legend-constants.ts
7
7
  var LEGEND_HEIGHT = 28;
@@ -49,4 +49,4 @@ export {
49
49
  LEGEND_TOGGLE_OFF_OPACITY,
50
50
  LEGEND_GEAR_PILL_W
51
51
  };
52
- //# sourceMappingURL=chunk-QOOUC2J5.js.map
52
+ //# sourceMappingURL=chunk-HQCHYB5F.js.map