@diagrammo/dgmo 0.88.0 → 0.90.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 (230) hide show
  1. package/README.md +5 -3
  2. package/dist/advanced.d.ts +472 -22
  3. package/dist/advanced.js +401 -240
  4. package/dist/{analyzer-R5UBTRO2.js → analyzer-7ZGAZIE6.js} +2 -2
  5. package/dist/block.d.ts +1 -1
  6. package/dist/block.js +95 -72
  7. package/dist/{calculator-35YVW4QO.js → calculator-PX3JHKAS.js} +2 -2
  8. package/dist/{chart-meta-PbgpGwYo.d.ts → chart-meta-B_WTMP0y.d.ts} +1 -1
  9. package/dist/chart-meta.d.ts +2 -2
  10. package/dist/chart-meta.js +22 -21
  11. package/dist/{chart-types-Db_EGf1o.d.ts → chart-types-V2NcgN5O.d.ts} +5 -1
  12. package/dist/{charts-d3-3BZRSZV6.js → charts-d3-QW4ERNUE.js} +13 -12
  13. package/dist/{chunk-O6MMQQLF.js → chunk-2EDJPHXQ.js} +17 -17
  14. package/dist/{chunk-7WGCQE2E.js → chunk-2ZVLI6GQ.js} +1 -1
  15. package/dist/{chunk-JLETTWUJ.js → chunk-3BQCSQQJ.js} +57 -28
  16. package/dist/{chunk-MVCPO6LI.js → chunk-3HBR3YAN.js} +37 -27
  17. package/dist/chunk-3UR4F7FE.js +14 -0
  18. package/dist/{chunk-IDJGV6VM.js → chunk-4HG4PYHM.js} +209 -1
  19. package/dist/{chunk-YMG7JDEY.js → chunk-4IYJOXGS.js} +78 -31
  20. package/dist/{chunk-BOO24UMJ.js → chunk-4YO7VJTP.js} +1 -1
  21. package/dist/{chunk-AAMCXQPP.js → chunk-54YUDXGP.js} +6 -6
  22. package/dist/{chunk-UG2XG57E.js → chunk-5M52RPAS.js} +2 -2
  23. package/dist/{chunk-UNAP6O26.js → chunk-5M6PMV5Z.js} +14 -14
  24. package/dist/{chunk-BMUWF77V.js → chunk-5MDQMB6A.js} +4 -4
  25. package/dist/{chunk-WPL5PFXE.js → chunk-5TZPIKNV.js} +5 -5
  26. package/dist/{chunk-VPASQOR3.js → chunk-62VWZ3SE.js} +6 -5
  27. package/dist/{chunk-N4XHXBDQ.js → chunk-64KSPLU2.js} +6 -5
  28. package/dist/{chunk-VEPIAUSK.js → chunk-6BQSDF77.js} +1 -5
  29. package/dist/{chunk-LNO3ASX5.js → chunk-A5EE66RQ.js} +2 -2
  30. package/dist/{chunk-5KGM44TG.js → chunk-A5PUOHIS.js} +4 -4
  31. package/dist/{chunk-UNNJCSSQ.js → chunk-AAC3XQWV.js} +3 -3
  32. package/dist/{chunk-VJ2KROJ5.js → chunk-AHWA36O7.js} +1 -1
  33. package/dist/{chunk-FKZ2Y3Q5.js → chunk-C4W62JZO.js} +2 -2
  34. package/dist/{chunk-6I5UN4FD.js → chunk-CDT33RHG.js} +4 -4
  35. package/dist/{chunk-3DOQOXXI.js → chunk-CNUN5GO6.js} +1 -1
  36. package/dist/{chunk-NF5YKFRH.js → chunk-COPSI54O.js} +3 -3
  37. package/dist/{chunk-GUTZCRBT.js → chunk-CUY56BK4.js} +2 -2
  38. package/dist/{chunk-HSRQDWV7.js → chunk-CYF2X3CG.js} +2 -11
  39. package/dist/{chunk-NGC3IZRY.js → chunk-DNMICILX.js} +2 -2
  40. package/dist/{chunk-CFBY77QJ.js → chunk-DXPT2HPH.js} +145 -156
  41. package/dist/{chunk-J7Q4VPBJ.js → chunk-EB7AEM2H.js} +28 -22
  42. package/dist/{chunk-MGBV4JEI.js → chunk-EDXGEQW3.js} +1 -1
  43. package/dist/{chunk-H2GEIFUF.js → chunk-EEYQFJVK.js} +154 -48
  44. package/dist/{chunk-FPXMCGS5.js → chunk-EK7JYFCL.js} +2 -2
  45. package/dist/{chunk-3C2FWS2J.js → chunk-EWERNTOX.js} +1 -1
  46. package/dist/{chunk-WZ23JJ7U.js → chunk-FDRHBQUG.js} +26 -24
  47. package/dist/{chunk-FJNXXGTR.js → chunk-FS2LZBHG.js} +2 -2
  48. package/dist/{chunk-ERNCPKD4.js → chunk-G2KHLANR.js} +1 -1
  49. package/dist/{chunk-XVSJYAK7.js → chunk-G5BGW4BX.js} +2 -2
  50. package/dist/{chunk-33FQ6HNV.js → chunk-GQVXYRPC.js} +9 -9
  51. package/dist/{chunk-MHAYUS65.js → chunk-GXP344YZ.js} +3 -3
  52. package/dist/{chunk-NJIGYGZS.js → chunk-GYBKG4Z6.js} +15 -10
  53. package/dist/{chunk-MSXRNVHB.js → chunk-HIVJBESO.js} +311 -72
  54. package/dist/{chunk-UY6TEJJH.js → chunk-HJRP6PXL.js} +1 -1
  55. package/dist/{chunk-DOXBS7F5.js → chunk-HLE5QGZJ.js} +4 -4
  56. package/dist/{chunk-L5AFONQU.js → chunk-HX2KJEPD.js} +1 -1
  57. package/dist/{chunk-LL6D3MES.js → chunk-I6FWHICD.js} +19 -19
  58. package/dist/{chunk-RH2PROYG.js → chunk-I6GGMCTV.js} +4 -2
  59. package/dist/{chunk-3RYBTEF5.js → chunk-I74AQRVD.js} +6 -12
  60. package/dist/{chunk-PLE2432T.js → chunk-ICYPGWOV.js} +3 -3
  61. package/dist/chunk-IHK3Y2HG.js +781 -0
  62. package/dist/{chunk-JD4RHBNX.js → chunk-IMHNZITR.js} +9 -9
  63. package/dist/{chunk-GUYVKGFN.js → chunk-IRVQT4GR.js} +3 -3
  64. package/dist/{chunk-XUDGZJTJ.js → chunk-J3ODKAWN.js} +8 -8
  65. package/dist/{chunk-UMRZPRAN.js → chunk-JRQ4LBQI.js} +20 -20
  66. package/dist/{chunk-MY6GUH26.js → chunk-JX4RCC6B.js} +2 -2
  67. package/dist/{chunk-DSG6GBUQ.js → chunk-K4GUO7FV.js} +8 -8
  68. package/dist/{chunk-HAH5X345.js → chunk-KATED53P.js} +1 -1
  69. package/dist/{chunk-J64NZ6NF.js → chunk-KSZHIAI2.js} +1 -1
  70. package/dist/{chunk-7HWY4QAJ.js → chunk-L24LESXF.js} +1 -0
  71. package/dist/{chunk-UIUXIDBX.js → chunk-LBRHDWEA.js} +5 -5
  72. package/dist/{chunk-GSYZZFI5.js → chunk-LC5LY5V2.js} +2 -2
  73. package/dist/{chunk-P5V63L35.js → chunk-LNQDICFJ.js} +22 -22
  74. package/dist/{chunk-PIXJL77H.js → chunk-M6J25PAZ.js} +1 -1
  75. package/dist/{chunk-RGI64U3A.js → chunk-MIVSVEK4.js} +14 -14
  76. package/dist/{chunk-6K7RODXG.js → chunk-MKFQ5E7J.js} +1 -1
  77. package/dist/{chunk-44GP7PD5.js → chunk-MPJQMMBZ.js} +12 -0
  78. package/dist/{chunk-WQ6G6FFM.js → chunk-NFWRIC2V.js} +1 -1
  79. package/dist/{chunk-LHL6HDUL.js → chunk-NJYA4QSN.js} +84 -12
  80. package/dist/{chunk-RU725VCJ.js → chunk-NMKLX57Y.js} +10 -35
  81. package/dist/{chunk-PPH6ILHL.js → chunk-NP2SE6MQ.js} +4 -4
  82. package/dist/{chunk-FM3WAVB6.js → chunk-NS7L7YKH.js} +1 -1
  83. package/dist/{chunk-HEYGGSNQ.js → chunk-NTJ5HVV6.js} +5 -5
  84. package/dist/{chunk-BAZT6CIF.js → chunk-NUYWNKHH.js} +9 -9
  85. package/dist/{chunk-DV2VEJCC.js → chunk-NWSPPGIE.js} +6 -6
  86. package/dist/{chunk-AYOVY75O.js → chunk-NY56FM55.js} +3 -3
  87. package/dist/{chunk-LD2JSKU3.js → chunk-OOCVGX4W.js} +15 -0
  88. package/dist/{chunk-A4XPI4YN.js → chunk-OSIUWQ3N.js} +29 -2
  89. package/dist/{chunk-LJFXC3IP.js → chunk-OWJVSJLA.js} +17 -17
  90. package/dist/{chunk-GDJW64XE.js → chunk-OYKNMFUY.js} +1 -1
  91. package/dist/{chunk-YK4N6TBN.js → chunk-PIHAUVA4.js} +10 -10
  92. package/dist/{chunk-C7QRRTAW.js → chunk-PNCKZFPE.js} +2 -2
  93. package/dist/{chunk-D4M25W6R.js → chunk-POBNN5DP.js} +6 -6
  94. package/dist/{chunk-N7XRBWXA.js → chunk-PQ5NW3QZ.js} +15 -15
  95. package/dist/{chunk-HTPZDZKQ.js → chunk-PXEUQ7EG.js} +22 -22
  96. package/dist/{chunk-XWYR5T52.js → chunk-QOZ4RVQY.js} +19 -19
  97. package/dist/{chunk-BV6PKJUS.js → chunk-QRIW46LR.js} +8 -8
  98. package/dist/{chunk-LSQGJN5H.js → chunk-R2PTZ6QM.js} +21 -21
  99. package/dist/{chunk-VW52W5F6.js → chunk-RCBHL2B5.js} +229 -159
  100. package/dist/{chunk-66YFDTT6.js → chunk-RJYFHEP4.js} +3 -3
  101. package/dist/{chunk-P3SKSKJI.js → chunk-RNXX2GOQ.js} +2 -2
  102. package/dist/{chunk-BT2WH2XT.js → chunk-RRBV4HIM.js} +3 -3
  103. package/dist/{chunk-WXPBP4IT.js → chunk-RY5RRKYN.js} +14 -14
  104. package/dist/{chunk-NZCSVD4M.js → chunk-S4LLHDGK.js} +8 -8
  105. package/dist/chunk-S7C32S2T.js +825 -0
  106. package/dist/{chunk-QFIXL3OK.js → chunk-SEKNYIMO.js} +1 -1
  107. package/dist/{chunk-JRUEIRJB.js → chunk-SLO22FPS.js} +2 -2
  108. package/dist/{chunk-47E5UTXE.js → chunk-SMEVBJJJ.js} +2 -2
  109. package/dist/{chunk-QFHWYWQL.js → chunk-SVQDLYX7.js} +1 -1
  110. package/dist/{chunk-WP2RLGDI.js → chunk-TCX5PMEY.js} +1 -1
  111. package/dist/{chunk-5LD7SHXO.js → chunk-TQ644YGV.js} +18 -18
  112. package/dist/{chunk-PUVTFUNH.js → chunk-U762HK4D.js} +28 -28
  113. package/dist/{chunk-DAX42XVH.js → chunk-VCHYS3RD.js} +14 -9
  114. package/dist/{chunk-XIFK423U.js → chunk-W7QN5BC5.js} +4 -4
  115. package/dist/{chunk-7UDAIP6W.js → chunk-WHRIN7N3.js} +1 -1
  116. package/dist/{chunk-ZUCXFXLD.js → chunk-X3WYJ5T7.js} +2 -2
  117. package/dist/{chunk-RE6TVIAV.js → chunk-X6IZP2BD.js} +4 -4
  118. package/dist/{chunk-LCJURK7L.js → chunk-Y6GQQ4Y2.js} +1 -1
  119. package/dist/{chunk-HTWH2XQL.js → chunk-YE7D2S75.js} +2 -2
  120. package/dist/{chunk-B7CU2HW5.js → chunk-YKGUSW6D.js} +17 -17
  121. package/dist/{chunk-AQIBKTPG.js → chunk-YWRZG6GN.js} +10 -10
  122. package/dist/{chunk-JQ57AWDL.js → chunk-ZJ4PYTCK.js} +1 -1
  123. package/dist/completion-registry.d.ts +7 -1
  124. package/dist/completion-registry.js +64 -20
  125. package/dist/countdown.js +1 -1
  126. package/dist/{d3-B6524aaP.d.ts → d3-2S3PrXik.d.ts} +11 -0
  127. package/dist/dgmo-router-BJBXSZMV.js +94 -0
  128. package/dist/{dimensions-6QAWEGIR.js → dimensions-AMA2S7RO.js} +7 -7
  129. package/dist/editor.js +12 -0
  130. package/dist/{flowchart-parser-GG7XBLQH.js → flowchart-parser-ADZIFVCH.js} +3 -3
  131. package/dist/{flowchart-renderer-THC6Y7EH.js → flowchart-renderer-CAG6ZNJ6.js} +10 -9
  132. package/dist/highlight.js +12 -0
  133. package/dist/index.d.ts +26 -5
  134. package/dist/index.js +94 -67
  135. package/dist/{layout-P6DTD4RT.js → layout-4RRC7XU7.js} +2 -2
  136. package/dist/{layout-LUQKAGGT.js → layout-6OSF2UGP.js} +5 -5
  137. package/dist/{layout-AM57TGN5.js → layout-C6MKMOBI.js} +3 -3
  138. package/dist/{layout-EHTYSMV4.js → layout-H4K54IW3.js} +2 -2
  139. package/dist/{layout-XUW444O5.js → layout-QS2SESBU.js} +3 -3
  140. package/dist/{layout-5NPBHV5F.js → layout-T2PGKQUQ.js} +4 -4
  141. package/dist/{layout-CUFA7XJD.js → layout-UFB2O4AO.js} +5 -5
  142. package/dist/{layout-MSSHF45T.js → layout-UPQGIT3N.js} +2 -2
  143. package/dist/{layout-QX5T6ZNE.js → layout-VQ2USZJ3.js} +5 -5
  144. package/dist/{layout-SOPAVXIH.js → layout-VRJ5YFUE.js} +3 -3
  145. package/dist/{layout-BOVTLAOT.js → layout-ZP7XYVXF.js} +2 -2
  146. package/dist/{layout-search-VKSBUCDM.js → layout-search-YKUL4VBV.js} +105 -6
  147. package/dist/{legend-constants-ZVO4FLAK.js → legend-constants-HE7FVDJP.js} +4 -2
  148. package/dist/{palettes-BIV54XLS.js → palettes-WQHELGVQ.js} +7 -4
  149. package/dist/{parser-KYPP2DX6.js → parser-223VOHSB.js} +4 -4
  150. package/dist/{parser-JOOAVBJI.js → parser-2PNV7UI3.js} +3 -3
  151. package/dist/{parser-GZ3LVF72.js → parser-3MGA2MTM.js} +2 -2
  152. package/dist/{parser-NOANDFJ4.js → parser-4AR25MAS.js} +2 -2
  153. package/dist/{parser-ACW6C6OY.js → parser-4B2PIXHI.js} +3 -3
  154. package/dist/{parser-KZMJNKDW.js → parser-57YQEEMC.js} +2 -2
  155. package/dist/{parser-J4DVNL4W.js → parser-5ZD2NKGU.js} +4 -4
  156. package/dist/{parser-LANGKWRG.js → parser-6LMB7BQQ.js} +2 -2
  157. package/dist/parser-AL6YL7KM.js +12 -0
  158. package/dist/{parser-5655XSOR.js → parser-B2FWP7ZO.js} +3 -3
  159. package/dist/{parser-GEKPWSSK.js → parser-BJDQX4KV.js} +3 -3
  160. package/dist/{parser-C327BBE3.js → parser-CA5WC5HF.js} +3 -3
  161. package/dist/{parser-KZMALSB2.js → parser-E5HFYL7B.js} +4 -4
  162. package/dist/{parser-WUK6CP5X.js → parser-ESZ5J5IJ.js} +6 -5
  163. package/dist/{parser-256EIWB2.js → parser-FDXUQ5TI.js} +2 -2
  164. package/dist/{parser-AN3MGHRL.js → parser-FV6RGALQ.js} +3 -3
  165. package/dist/{parser-DGF3ZEO6.js → parser-HPR7G7F6.js} +3 -3
  166. package/dist/{parser-OKB64MMN.js → parser-I4HZVIHX.js} +3 -3
  167. package/dist/{parser-JXS4426S.js → parser-J3BM2AP2.js} +4 -4
  168. package/dist/{parser-NPXPJHWN.js → parser-JFNDS5E5.js} +3 -3
  169. package/dist/{parser-PVIWHVGY.js → parser-KFIK3EOO.js} +3 -3
  170. package/dist/{parser-GPW4ZHPQ.js → parser-LGUT7KKH.js} +4 -3
  171. package/dist/{parser-KFYRTGTC.js → parser-MYRGCK7Q.js} +4 -4
  172. package/dist/{parser-ZLKYDFI5.js → parser-NAUUUCI3.js} +3 -3
  173. package/dist/{parser-DHSFIUPU.js → parser-NJ5VEZA3.js} +3 -3
  174. package/dist/{parser-OVQTTTUJ.js → parser-OFTMA36M.js} +2 -2
  175. package/dist/{parser-AKBVJHMK.js → parser-OV2WDSEV.js} +3 -3
  176. package/dist/{parser-LGS65QPN.js → parser-Q3UAOLEZ.js} +2 -2
  177. package/dist/{parser-XYY5NHP4.js → parser-R6OETHWM.js} +2 -2
  178. package/dist/{parser-7OEE7QT6.js → parser-RARXAHC7.js} +2 -2
  179. package/dist/{parser-NGHQQGD2.js → parser-T2RVIRDG.js} +3 -3
  180. package/dist/{parser-WEVTMBJ5.js → parser-W2DWCCLO.js} +3 -3
  181. package/dist/{parser-HCGXNHHL.js → parser-WFY4ZJUW.js} +3 -3
  182. package/dist/{parser-SA3RAJFS.js → parser-WSONWDFN.js} +2 -2
  183. package/dist/{renderer-2OOPQ4CH.js → renderer-3N64GVNM.js} +3 -3
  184. package/dist/{renderer-4BIMRO4X.js → renderer-3QM2DK7I.js} +7 -7
  185. package/dist/{renderer-4NZZ5J2F.js → renderer-3W5T3IU6.js} +8 -8
  186. package/dist/{renderer-RWJ45DWH.js → renderer-4Z7FRQ2A.js} +3 -3
  187. package/dist/{renderer-LODEVN3V.js → renderer-52CHSV6S.js} +13 -13
  188. package/dist/{renderer-X5A5VIRD.js → renderer-6OOJNEQE.js} +10 -10
  189. package/dist/{renderer-YDAVCRTP.js → renderer-A3PMPUO6.js} +15 -11
  190. package/dist/{renderer-NHPKNNBD.js → renderer-AM4VZSBQ.js} +11 -11
  191. package/dist/{renderer-SDUSBCJI.js → renderer-B3CPMS5R.js} +10 -10
  192. package/dist/{renderer-TPOZOAXR.js → renderer-B4KE3NM4.js} +17 -16
  193. package/dist/renderer-COSJM7UG.js +80 -0
  194. package/dist/{renderer-R34GJL7U.js → renderer-FXCVH2M5.js} +16 -15
  195. package/dist/{renderer-QM23SWAM.js → renderer-GWH5ACJ5.js} +4 -4
  196. package/dist/{renderer-222OTVQV.js → renderer-IG72UJHW.js} +5 -5
  197. package/dist/{renderer-A6ACVK4X.js → renderer-IO3D5E4E.js} +7 -7
  198. package/dist/{renderer-RMGN3Q7D.js → renderer-IPDCAACY.js} +5 -5
  199. package/dist/{renderer-XUPLAO4B.js → renderer-KK5BU5K2.js} +8 -8
  200. package/dist/{renderer-DCFQDBGJ.js → renderer-LD2H7WGP.js} +3 -3
  201. package/dist/{renderer-KVAQE7PQ.js → renderer-MK47ESCB.js} +8 -8
  202. package/dist/{renderer-4BHOELCE.js → renderer-MRMFYYZT.js} +3 -3
  203. package/dist/{renderer-6BUUTWVS.js → renderer-O5RQHGK2.js} +9 -9
  204. package/dist/{renderer-2KVQGGTT.js → renderer-OA5D3ZKB.js} +10 -10
  205. package/dist/{renderer-RENDISO5.js → renderer-ON4PTUHJ.js} +14 -14
  206. package/dist/{renderer-JKV2DBYP.js → renderer-OPDSKCQS.js} +7 -7
  207. package/dist/{renderer-XRALFCIN.js → renderer-PLRMST57.js} +10 -10
  208. package/dist/{renderer-WH2HWE5Z.js → renderer-PSMRAL72.js} +11 -11
  209. package/dist/{renderer-RNCYODNF.js → renderer-PXGCR7N4.js} +11 -10
  210. package/dist/{renderer-PQYO2HCE.js → renderer-R7OYCJEA.js} +4 -4
  211. package/dist/{renderer-36JH4OMC.js → renderer-SBXCPA3S.js} +12 -12
  212. package/dist/{renderer-A4LMOBZL.js → renderer-TMQNTUQS.js} +15 -15
  213. package/dist/renderer-TTKTBB4C.js +46 -0
  214. package/dist/{renderer-RAATRF6W.js → renderer-UVFGW2O6.js} +12 -10
  215. package/dist/{renderer-3FF4QVGW.js → renderer-W22GX72R.js} +10 -10
  216. package/dist/{renderer-BICLPGAH.js → renderer-WQ654YT5.js} +2 -2
  217. package/dist/{renderer-radial-XZ5TKUT4.js → renderer-radial-42LVSG74.js} +8 -8
  218. package/dist/{state-parser-FE3RF6XY.js → state-parser-ROKY5KSI.js} +4 -4
  219. package/dist/{state-renderer-5IQ4OJUI.js → state-renderer-MMG23G4W.js} +14 -14
  220. package/dist/{themes-CzuBdx1T.d.ts → themes-Cm2YBcT8.d.ts} +38 -2
  221. package/docs/ai-integration.md +8 -5
  222. package/docs/language-reference.md +163 -13
  223. package/gallery/fixtures/sketch.dgmo +2 -2
  224. package/gallery/fixtures/whiteboard.dgmo +18 -0
  225. package/package.json +2 -1
  226. package/dist/dgmo-router-F2DSURTR.js +0 -92
  227. package/dist/renderer-YIZ7G4HU.js +0 -78
  228. package/dist/{chunk-3TYUXC7D.js → chunk-2SKMEL7V.js} +0 -0
  229. package/dist/{chunk-CLQIXD2C.js → chunk-7Z2VFRP5.js} +3 -3
  230. package/dist/{chunk-2A4DQAXG.js → chunk-IIOLFAGJ.js} +3 -3
@@ -11,7 +11,7 @@ import {
11
11
  getSimpleChartLegendGroups,
12
12
  parseChart,
13
13
  parseExtendedChart
14
- } from "./chunk-7UDAIP6W.js";
14
+ } from "./chunk-WHRIN7N3.js";
15
15
  import {
16
16
  EMPHASIS_DIM_OPACITY,
17
17
  EMPHASIS_DIM_TEXT_OPACITY,
@@ -25,35 +25,36 @@ import {
25
25
  initD3Chart,
26
26
  renderChartTitle,
27
27
  resolveExportPalette
28
- } from "./chunk-RE6TVIAV.js";
28
+ } from "./chunk-X6IZP2BD.js";
29
29
  import {
30
30
  layoutInlineHeader
31
- } from "./chunk-3DOQOXXI.js";
31
+ } from "./chunk-CNUN5GO6.js";
32
+ import {
33
+ computeLegendLayout
34
+ } from "./chunk-NS7L7YKH.js";
32
35
  import {
33
36
  TITLE_FONT_SIZE,
34
37
  TITLE_FONT_WEIGHT,
35
38
  TITLE_OFFSET,
36
39
  TITLE_Y
37
40
  } from "./chunk-VLC6WNRD.js";
38
- import {
39
- computeLegendLayout
40
- } from "./chunk-FM3WAVB6.js";
41
41
  import {
42
42
  FONT_FAMILY
43
43
  } from "./chunk-ICLB27PZ.js";
44
+ import {
45
+ tagAttrKey
46
+ } from "./chunk-HX2KJEPD.js";
44
47
  import {
45
48
  LEGEND_DOT_R,
46
49
  LEGEND_ENTRY_FONT_SIZE,
47
50
  LEGEND_HEIGHT,
48
51
  LEGEND_PILL_FONT_SIZE,
49
52
  legendChromeColors
50
- } from "./chunk-RH2PROYG.js";
53
+ } from "./chunk-I6GGMCTV.js";
51
54
  import {
52
- measureText
55
+ measureText,
56
+ truncateText
53
57
  } from "./chunk-KAO7JL4I.js";
54
- import {
55
- tagAttrKey
56
- } from "./chunk-L5AFONQU.js";
57
58
  import {
58
59
  contrastText,
59
60
  getSegmentColors,
@@ -63,7 +64,7 @@ import {
63
64
  mix,
64
65
  shapeFill,
65
66
  themeBaseBg
66
- } from "./chunk-7HWY4QAJ.js";
67
+ } from "./chunk-L24LESXF.js";
67
68
 
68
69
  // src/charts-d3/natural-size.ts
69
70
  var UNCOUNTED_WIDTH = 720;
@@ -418,6 +419,27 @@ function planCategoryLabels(labels, slot, font = TICK_FONT) {
418
419
  keep: all(stride)
419
420
  };
420
421
  }
422
+ function rotatedLeftReach(first, plan, font) {
423
+ if (!plan.rotate || first === void 0) return 0;
424
+ const rad = LABEL_ROTATE_DEG * Math.PI / 180;
425
+ return measureText(first, font) * Math.cos(rad) + font * 0.8 * Math.sin(rad);
426
+ }
427
+ function planLabelsFitLeft(labels, mLeft0, plotWFor, slotFor, firstOffset, font = TICK_FONT) {
428
+ const EDGE = 4;
429
+ let mLeft = mLeft0;
430
+ let plotW = plotWFor(mLeft);
431
+ let plan = planCategoryLabels(labels, slotFor(plotW), font);
432
+ for (let i = 0; i < 6; i++) {
433
+ const reach = rotatedLeftReach(labels[0], plan, font);
434
+ const need = Math.ceil(reach + EDGE - firstOffset(plotW));
435
+ const next = Math.max(mLeft0, need);
436
+ if (next === mLeft) break;
437
+ mLeft = next;
438
+ plotW = plotWFor(mLeft);
439
+ plan = planCategoryLabels(labels, slotFor(plotW), font);
440
+ }
441
+ return { mLeft, plotW, plan };
442
+ }
421
443
  function labelSurvives(plan, i) {
422
444
  return plan.keep.has(i);
423
445
  }
@@ -485,12 +507,19 @@ function renderBar(svg, chart, width, height, colors, palette, isDark, textColor
485
507
  const loVal = Math.min(0, minVal);
486
508
  const niceMax = hiVal === 0 && loVal === 0 ? 1 : hiVal;
487
509
  const leftLabels = horizontal ? data.map((d) => d.label) : [fmtNum(niceMax), fmtNum(niceMax / 2), fmtNum(loVal), fmtNum(loVal / 2)];
488
- const mLeft = computeLeftMargin(chart.ylabel, leftLabels);
489
- const plotW = width - mLeft - 32;
490
- const labelPlan = planCategoryLabels(
491
- data.map((d) => d.label),
492
- horizontal || data.length === 0 ? Infinity : plotW / data.length
510
+ const mLeft0 = computeLeftMargin(chart.ylabel, leftLabels);
511
+ const catLabels = data.map((d) => d.label);
512
+ const fit = horizontal ? null : planLabelsFitLeft(
513
+ catLabels,
514
+ mLeft0,
515
+ (ml) => width - ml - 32,
516
+ (pw) => data.length === 0 ? Infinity : pw / data.length,
517
+ // scaleBand padding 0.3: first centre sits 0.65 steps in
518
+ (pw) => pw / (data.length + 0.3) * 0.65
493
519
  );
520
+ const mLeft = fit ? fit.mLeft : mLeft0;
521
+ const plotW = fit ? fit.plotW : width - mLeft - 32;
522
+ const labelPlan = fit?.plan ?? planCategoryLabels(catLabels, Infinity);
494
523
  const m = {
495
524
  top: top + 8,
496
525
  right: 32,
@@ -719,13 +748,18 @@ function renderLine(svg, chart, width, height, colors, palette, isDark, textColo
719
748
  };
720
749
  const [loL, hiL] = extentFor("left");
721
750
  const [loR, hiR] = dual ? extentFor("right") : [0, 1];
722
- const mLeft = computeLeftMargin(chart.ylabel, [fmtNum(hiL), fmtNum(loL)]);
723
751
  const mRight = dual ? computeLeftMargin(chart.yrlabel, [fmtNum(hiR), fmtNum(loR)]) : 32;
724
- const plotW = width - mLeft - mRight;
725
- const labelPlan = planCategoryLabels(
752
+ const mLeft0 = computeLeftMargin(chart.ylabel, [fmtNum(hiL), fmtNum(loL)]);
753
+ const fit = planLabelsFitLeft(
726
754
  data.map((d) => d.label),
727
- data.length > 0 ? plotW / data.length : plotW
755
+ mLeft0,
756
+ (ml) => width - ml - mRight,
757
+ (pw) => data.length > 0 ? pw / data.length : pw,
758
+ (pw) => (data.length > 0 ? pw / data.length : pw) * 0.5
728
759
  );
760
+ const mLeft = fit.mLeft;
761
+ const plotW = fit.plotW;
762
+ const labelPlan = fit.plan;
729
763
  const m = {
730
764
  top: top + 8,
731
765
  right: mRight,
@@ -1481,6 +1515,11 @@ function renderScatter(svg, chart, width, height, colors, palette, isDark, textC
1481
1515
  // src/charts-d3/sankey.ts
1482
1516
  var NODE_W = 20;
1483
1517
  var NODE_GAP = 14;
1518
+ var LOOP_GAP = 8;
1519
+ var LOOP_BEND = 1.25;
1520
+ var LABEL_FONT3 = 13;
1521
+ var LABEL_PAD = 6;
1522
+ var MAX_LABEL_MARGIN = 0.4;
1484
1523
  var RIBBON_FILL_OPACITY = 0.6;
1485
1524
  function renderSankey(svg, chart, width, height, colors, bgColor, textColor, topInset) {
1486
1525
  const links = chart.links ?? [];
@@ -1519,9 +1558,31 @@ function renderSankey(svg, chart, width, height, colors, bgColor, textColor, top
1519
1558
  raw: chart.nodeColors?.[name] ?? colors[i % colors.length]
1520
1559
  })
1521
1560
  );
1561
+ const outgoing = /* @__PURE__ */ new Map();
1562
+ for (const l of links) {
1563
+ const list = outgoing.get(l.source) ?? [];
1564
+ list.push(l);
1565
+ outgoing.set(l.source, list);
1566
+ }
1567
+ const backEdges = /* @__PURE__ */ new Set();
1568
+ const visitState = /* @__PURE__ */ new Map();
1569
+ const visit = (name) => {
1570
+ visitState.set(name, "open");
1571
+ for (const l of outgoing.get(name) ?? []) {
1572
+ const st = visitState.get(l.target);
1573
+ if (st === "open") backEdges.add(l);
1574
+ else if (st === void 0) visit(l.target);
1575
+ }
1576
+ visitState.set(name, "done");
1577
+ };
1578
+ const hasIncoming = new Set(links.map((l) => l.target));
1579
+ for (const name of names) if (!hasIncoming.has(name)) visit(name);
1580
+ for (const name of names) if (!visitState.has(name)) visit(name);
1581
+ const forwardLinks = links.filter((l) => !backEdges.has(l));
1582
+ const backLinks = links.filter((l) => backEdges.has(l));
1522
1583
  for (let pass = 0; pass < names.length; pass++) {
1523
1584
  let changed = false;
1524
- for (const l of links) {
1585
+ for (const l of forwardLinks) {
1525
1586
  const s = node.get(l.source);
1526
1587
  const t = node.get(l.target);
1527
1588
  if (t.rank < s.rank + 1) {
@@ -1539,17 +1600,44 @@ function renderSankey(svg, chart, width, height, colors, bgColor, textColor, top
1539
1600
  const maxRank = Math.max(...[...node.values()].map((n) => n.rank));
1540
1601
  const layers = Array.from({ length: maxRank + 1 }, () => []);
1541
1602
  for (const n of node.values()) layers[n.rank].push(n);
1542
- const plotLeft = 16;
1603
+ let plotLeft = 16;
1543
1604
  const top = topInset + 8;
1544
- const plotW = width - plotLeft - 16 - measureText("M", 14);
1545
- const plotH = height - top - 24;
1546
- let valueScale = Infinity;
1547
- for (const layer of layers) {
1548
- const tot = layer.reduce((a, n) => a + n.value, 0);
1549
- const avail = plotH - (layer.length - 1) * NODE_GAP;
1550
- if (tot > 0) valueScale = Math.min(valueScale, avail / tot);
1551
- }
1552
- if (!isFinite(valueScale)) valueScale = 1;
1605
+ const rightPad = 16;
1606
+ let plotH = height - top - 24;
1607
+ const fitScale = (h) => {
1608
+ let scale = Infinity;
1609
+ for (const layer of layers) {
1610
+ const tot = layer.reduce((a, n) => a + n.value, 0);
1611
+ const avail = h - (layer.length - 1) * NODE_GAP;
1612
+ if (tot > 0) scale = Math.min(scale, avail / tot);
1613
+ }
1614
+ return isFinite(scale) && scale > 0 ? scale : 1;
1615
+ };
1616
+ let valueScale = fitScale(plotH);
1617
+ if (backLinks.length > 0) {
1618
+ const backTotal = backLinks.reduce((a, l) => a + l.value, 0);
1619
+ const reserve = backTotal * valueScale + LOOP_GAP * (backLinks.length + 1);
1620
+ plotH = Math.max(plotH * 0.5, plotH - reserve);
1621
+ valueScale = fitScale(plotH);
1622
+ }
1623
+ const bend = /* @__PURE__ */ new Map();
1624
+ let leftBend = 0;
1625
+ for (const l of backLinks) {
1626
+ const over = l.value * valueScale * LOOP_BEND;
1627
+ bend.set(l.source, Math.max(bend.get(l.source) ?? 0, over));
1628
+ if (node.get(l.target).rank === 0) leftBend = Math.max(leftBend, over);
1629
+ }
1630
+ plotLeft += leftBend;
1631
+ const labelOffset = (n) => NODE_W + (bend.get(n.name) ?? 0) + LABEL_PAD;
1632
+ let labelMargin = 0;
1633
+ for (const n of layers[maxRank]) {
1634
+ labelMargin = Math.max(
1635
+ labelMargin,
1636
+ labelOffset(n) - NODE_W + measureText(n.name, LABEL_FONT3)
1637
+ );
1638
+ }
1639
+ labelMargin = Math.min(labelMargin, width * MAX_LABEL_MARGIN);
1640
+ const plotW = Math.max(NODE_W, width - plotLeft - rightPad - labelMargin);
1553
1641
  const layerX = (r) => plotLeft + (maxRank === 0 ? 0 : r * (plotW - NODE_W) / maxRank);
1554
1642
  const placeLayer = (layer) => {
1555
1643
  layer.sort((a, b) => a.order - b.order);
@@ -1569,7 +1657,7 @@ function renderSankey(svg, chart, width, height, colors, bgColor, textColor, top
1569
1657
  const order = forward ? [...layers.keys()] : [...layers.keys()].reverse();
1570
1658
  for (const r of order) {
1571
1659
  for (const n of layers[r]) {
1572
- const neigh = forward ? links.filter((l) => l.target === n.name).map((l) => node.get(l.source)) : links.filter((l) => l.source === n.name).map((l) => node.get(l.target));
1660
+ const neigh = forward ? forwardLinks.filter((l) => l.target === n.name).map((l) => node.get(l.source)) : forwardLinks.filter((l) => l.source === n.name).map((l) => node.get(l.target));
1573
1661
  n.order = neigh.length ? neigh.reduce((a, m) => a + center(m), 0) / neigh.length : center(n);
1574
1662
  }
1575
1663
  placeLayer(layers[r]);
@@ -1581,12 +1669,16 @@ function renderSankey(svg, chart, width, height, colors, bgColor, textColor, top
1581
1669
  outOff.set(n.name, n.y);
1582
1670
  inOff.set(n.name, n.y);
1583
1671
  }
1584
- const ordered = [...links].sort((a, b) => {
1585
- const sa = node.get(a.source);
1586
- const sb = node.get(b.source);
1587
- if (sa.y !== sb.y) return sa.y - sb.y;
1588
- return node.get(a.target).y - node.get(b.target).y;
1589
- });
1672
+ const ordered = [
1673
+ ...[...forwardLinks].sort((a, b) => {
1674
+ const sa = node.get(a.source);
1675
+ const sb = node.get(b.source);
1676
+ if (sa.y !== sb.y) return sa.y - sb.y;
1677
+ return node.get(a.target).y - node.get(b.target).y;
1678
+ }),
1679
+ ...backLinks
1680
+ ];
1681
+ let laneY = top + plotH + LOOP_GAP;
1590
1682
  for (const l of ordered) {
1591
1683
  const s = node.get(l.source);
1592
1684
  const t = node.get(l.target);
@@ -1600,13 +1692,24 @@ function renderSankey(svg, chart, width, height, colors, bgColor, textColor, top
1600
1692
  const cx0 = sx + (tx - sx) * 0.5;
1601
1693
  const raw = l.color ?? s.raw;
1602
1694
  const color = solid ? raw : mix(raw, bgColor, 45);
1603
- const ribbon = svg.append("path").attr(
1604
- "d",
1605
- `M${sx},${sy} C${cx0},${sy} ${cx0},${ty} ${tx},${ty} L${tx},${ty + th} C${cx0},${ty + th} ${cx0},${sy + th} ${sx},${sy + th} Z`
1606
- ).attr("fill", color).attr(
1607
- "fill-opacity",
1608
- linkDimmed(l) ? RIBBON_FILL_OPACITY * EMPHASIS_DIM_OPACITY : RIBBON_FILL_OPACITY
1609
- );
1695
+ const opacity = linkDimmed(l) ? RIBBON_FILL_OPACITY * EMPHASIS_DIM_OPACITY : RIBBON_FILL_OPACITY;
1696
+ let ribbon;
1697
+ if (backEdges.has(l)) {
1698
+ const lane = laneY + th / 2;
1699
+ laneY += th + LOOP_GAP;
1700
+ const k = th;
1701
+ const y1 = sy + th / 2;
1702
+ const y2 = ty + th / 2;
1703
+ ribbon = svg.append("path").attr(
1704
+ "d",
1705
+ `M${sx},${y1} C${sx + k},${y1} ${sx + k},${lane} ${sx},${lane} L${tx},${lane} C${tx - k},${lane} ${tx - k},${y2} ${tx},${y2}`
1706
+ ).attr("fill", "none").attr("stroke", color).attr("stroke-width", th).attr("stroke-opacity", opacity);
1707
+ } else {
1708
+ ribbon = svg.append("path").attr(
1709
+ "d",
1710
+ `M${sx},${sy} C${cx0},${sy} ${cx0},${ty} ${tx},${ty} L${tx},${ty + th} C${cx0},${ty + th} ${cx0},${sy + th} ${sx},${sy + th} Z`
1711
+ ).attr("fill", color).attr("fill-opacity", opacity);
1712
+ }
1610
1713
  tagDatum(ribbon, {
1611
1714
  line: l.lineNumber,
1612
1715
  // U+241F (symbol-for-unit-separator) — collision-proof AND XML-legal;
@@ -1631,8 +1734,11 @@ function renderSankey(svg, chart, width, height, colors, bgColor, textColor, top
1631
1734
  value: String(n.value),
1632
1735
  color: n.raw
1633
1736
  });
1634
- const lastLayer = n.rank === maxRank;
1635
- const label = svg.append("text").attr("x", lastLayer ? n.x - 6 : n.x + NODE_W + 6).attr("y", n.y + n.h / 2 + 4).attr("text-anchor", lastLayer ? "end" : "start").attr("fill", textColor).attr("font-size", 13).attr("font-family", FONT_FAMILY).text(n.name);
1737
+ const labelX = n.x + labelOffset(n);
1738
+ const room = (n.rank === maxRank ? width - rightPad / 2 : layerX(n.rank + 1)) - LABEL_PAD - labelX;
1739
+ const shown = truncateText(n.name, LABEL_FONT3, room);
1740
+ const label = svg.append("text").attr("x", labelX).attr("y", n.y + n.h / 2 + 4).attr("text-anchor", "start").attr("fill", textColor).attr("font-size", LABEL_FONT3).attr("font-family", FONT_FAMILY).text(shown);
1741
+ if (shown !== n.name) label.append("title").text(n.name);
1636
1742
  if (nodeDim) label.attr("opacity", EMPHASIS_DIM_TEXT_OPACITY);
1637
1743
  }
1638
1744
  }
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  formatLocalISODate
3
- } from "./chunk-3TYUXC7D.js";
3
+ } from "./chunk-2SKMEL7V.js";
4
4
  import {
5
5
  isTagBlockHeading,
6
6
  matchTagBlockHeading
7
- } from "./chunk-L5AFONQU.js";
7
+ } from "./chunk-HX2KJEPD.js";
8
8
  import {
9
9
  makeDgmoError
10
10
  } from "./chunk-BYU54C3S.js";
@@ -5,7 +5,7 @@ import {
5
5
  splitNameAndMeta,
6
6
  tryParseSharedOption,
7
7
  warnUnknownMetaKeys
8
- } from "./chunk-44GP7PD5.js";
8
+ } from "./chunk-MPJQMMBZ.js";
9
9
  import {
10
10
  RECOGNIZED_COLOR_NAMES,
11
11
  resolveColor
@@ -1,17 +1,22 @@
1
1
  import {
2
+ appendArrowheadMarkers,
3
+ appendReverseArrowheadMarkers
4
+ } from "./chunk-XBJJP2HN.js";
5
+ import {
6
+ CYLINDER_RY,
7
+ QUEUE_CAP,
2
8
  collectCardMetadata,
3
9
  layoutC4Components,
4
10
  layoutC4Containers,
5
11
  layoutC4Context,
6
12
  layoutC4Deployment
7
- } from "./chunk-DAX42XVH.js";
8
- import {
9
- appendArrowheadMarkers,
10
- appendReverseArrowheadMarkers
11
- } from "./chunk-XBJJP2HN.js";
13
+ } from "./chunk-VCHYS3RD.js";
12
14
  import {
13
15
  renderInlineText
14
16
  } from "./chunk-S7W75MIM.js";
17
+ import {
18
+ renderIntegratedLegend
19
+ } from "./chunk-NJYA4QSN.js";
15
20
  import {
16
21
  ARROWHEAD_HEIGHT,
17
22
  ARROWHEAD_WIDTH,
@@ -28,43 +33,40 @@ import {
28
33
  } from "./chunk-XCKNFFKM.js";
29
34
  import {
30
35
  serializeSvg
31
- } from "./chunk-LD2JSKU3.js";
36
+ } from "./chunk-OOCVGX4W.js";
32
37
  import {
33
38
  TITLE_FONT_SIZE,
34
39
  TITLE_FONT_WEIGHT
35
40
  } from "./chunk-VLC6WNRD.js";
36
- import {
37
- renderIntegratedLegend
38
- } from "./chunk-LHL6HDUL.js";
39
41
  import {
40
42
  FONT_FAMILY
41
43
  } from "./chunk-ICLB27PZ.js";
42
44
  import {
43
45
  parseC4
44
- } from "./chunk-GSYZZFI5.js";
45
- import {
46
- LEGEND_HEIGHT
47
- } from "./chunk-RH2PROYG.js";
48
- import {
49
- measureText,
50
- wrapTextToWidth
51
- } from "./chunk-KAO7JL4I.js";
46
+ } from "./chunk-LC5LY5V2.js";
52
47
  import {
53
48
  preprocessDescriptionLine
54
49
  } from "./chunk-IYULMRBE.js";
55
50
  import {
56
51
  resolveGroupTagColor,
57
52
  tagAttrKey
58
- } from "./chunk-L5AFONQU.js";
53
+ } from "./chunk-HX2KJEPD.js";
59
54
  import {
60
55
  fillModeFromOptions
61
- } from "./chunk-44GP7PD5.js";
56
+ } from "./chunk-MPJQMMBZ.js";
57
+ import {
58
+ LEGEND_HEIGHT
59
+ } from "./chunk-I6GGMCTV.js";
60
+ import {
61
+ measureText,
62
+ wrapTextToWidth
63
+ } from "./chunk-KAO7JL4I.js";
62
64
  import {
63
65
  contrastText,
64
66
  groupFill,
65
67
  mix,
66
68
  shapeFill
67
- } from "./chunk-7HWY4QAJ.js";
69
+ } from "./chunk-L24LESXF.js";
68
70
 
69
71
  // src/c4/renderer.ts
70
72
  import * as d3Selection from "d3-selection";
@@ -81,9 +83,7 @@ var TYPE_LABEL_HEIGHT = 18;
81
83
  var DIVIDER_GAP = 6;
82
84
  var NAME_HEIGHT = 20;
83
85
  var BOUNDARY_LABEL_FONT_SIZE = 12;
84
- var CYLINDER_RY = 8;
85
86
  var CLOUD_BUMP = 7;
86
- var QUEUE_CAP = 16;
87
87
  var PERSON_HEAD_R = 4;
88
88
  var PERSON_ARM_SPAN = 10;
89
89
  var PERSON_LEG_SPAN = 7;
@@ -232,7 +232,7 @@ function renderC4Context(container, parsed, layout, palette, isDark, onClickItem
232
232
  nodeG.attr(`data-tag-${tagKey}`, tagValue.toLowerCase());
233
233
  } else {
234
234
  const tagGroup = parsed.tagGroups.find(
235
- (g) => g.name.toLowerCase() === tagKey || g.alias?.toLowerCase() === tagKey
235
+ (g) => tagAttrKey(g.name) === tagKey || g.alias?.toLowerCase() === tagKey
236
236
  );
237
237
  if (tagGroup?.defaultValue) {
238
238
  nodeG.attr(`data-tag-${tagKey}`, tagGroup.defaultValue.toLowerCase());
@@ -863,7 +863,7 @@ function renderC4Containers(container, parsed, layout, palette, isDark, onClickI
863
863
  nodeG.attr(`data-tag-${tagKey}`, tagValue.toLowerCase());
864
864
  } else {
865
865
  const tagGroup = parsed.tagGroups.find(
866
- (g) => g.name.toLowerCase() === tagKey || g.alias?.toLowerCase() === tagKey
866
+ (g) => tagAttrKey(g.name) === tagKey || g.alias?.toLowerCase() === tagKey
867
867
  );
868
868
  if (tagGroup?.defaultValue) {
869
869
  nodeG.attr(`data-tag-${tagKey}`, tagGroup.defaultValue.toLowerCase());
@@ -1128,6 +1128,8 @@ function renderC4DeploymentForExport(content, theme, palette) {
1128
1128
  export {
1129
1129
  renderC4Context,
1130
1130
  renderC4ContextForExport,
1131
+ drawCylinderCard,
1132
+ drawQueueCard,
1131
1133
  renderC4Containers,
1132
1134
  renderC4ContainersForExport,
1133
1135
  renderC4ComponentsForExport,
@@ -11,7 +11,7 @@ import {
11
11
  tagAttrKey,
12
12
  validateTagGroupNames,
13
13
  validateTagValues
14
- } from "./chunk-L5AFONQU.js";
14
+ } from "./chunk-HX2KJEPD.js";
15
15
  import {
16
16
  AliasRegistry,
17
17
  OPTION_NOCOLON_RE,
@@ -23,7 +23,7 @@ import {
23
23
  splitNameAndMeta,
24
24
  warnUnknownMetaKeys,
25
25
  withTagAliases
26
- } from "./chunk-44GP7PD5.js";
26
+ } from "./chunk-MPJQMMBZ.js";
27
27
  import {
28
28
  formatDgmoError,
29
29
  makeDgmoError,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  mix
3
- } from "./chunk-7HWY4QAJ.js";
3
+ } from "./chunk-L24LESXF.js";
4
4
  import {
5
5
  resolveColor
6
6
  } from "./chunk-2M4IGSCY.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  compactNumber
3
- } from "./chunk-LNO3ASX5.js";
3
+ } from "./chunk-A5EE66RQ.js";
4
4
  import {
5
5
  parseInlineMarkdown
6
6
  } from "./chunk-S7W75MIM.js";
@@ -18,7 +18,7 @@ import {
18
18
  mix,
19
19
  shapeFill,
20
20
  themeBaseBg
21
- } from "./chunk-7HWY4QAJ.js";
21
+ } from "./chunk-L24LESXF.js";
22
22
  import {
23
23
  resolveColor
24
24
  } from "./chunk-2M4IGSCY.js";
@@ -5,6 +5,14 @@ import {
5
5
  META_LINE_HEIGHT,
6
6
  SEPARATOR_GAP
7
7
  } from "./chunk-XCKNFFKM.js";
8
+ import {
9
+ injectDefaultTagMetadata,
10
+ resolveTagColor,
11
+ tagAttrKey
12
+ } from "./chunk-HX2KJEPD.js";
13
+ import {
14
+ legendSuppressed
15
+ } from "./chunk-MPJQMMBZ.js";
8
16
  import {
9
17
  LEGEND_CAPSULE_PAD,
10
18
  LEGEND_DOT_R,
@@ -18,18 +26,10 @@ import {
18
26
  LEGEND_PILL_FONT_SIZE,
19
27
  LEGEND_PILL_PAD,
20
28
  measureLegendText
21
- } from "./chunk-RH2PROYG.js";
29
+ } from "./chunk-I6GGMCTV.js";
22
30
  import {
23
31
  measureText
24
32
  } from "./chunk-KAO7JL4I.js";
25
- import {
26
- injectDefaultTagMetadata,
27
- resolveTagColor,
28
- tagAttrKey
29
- } from "./chunk-L5AFONQU.js";
30
- import {
31
- legendSuppressed
32
- } from "./chunk-44GP7PD5.js";
33
33
 
34
34
  // src/org/layout.ts
35
35
  import { hierarchy, tree } from "d3-hierarchy";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  tryCollectNote
3
- } from "./chunk-J64NZ6NF.js";
3
+ } from "./chunk-KSZHIAI2.js";
4
4
  import {
5
5
  resolveNotes
6
6
  } from "./chunk-O753JUEZ.js";
@@ -20,7 +20,7 @@ import {
20
20
  tagAttrKey,
21
21
  validateTagGroupNames,
22
22
  validateTagValues
23
- } from "./chunk-L5AFONQU.js";
23
+ } from "./chunk-HX2KJEPD.js";
24
24
  import {
25
25
  AliasRegistry,
26
26
  BOXES_AND_LINES_REGISTRY,
@@ -33,7 +33,7 @@ import {
33
33
  tryParseSharedOption,
34
34
  warnUnknownMetaKeys,
35
35
  withTagAliases
36
- } from "./chunk-44GP7PD5.js";
36
+ } from "./chunk-MPJQMMBZ.js";
37
37
  import {
38
38
  makeDgmoError,
39
39
  suggest
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  buildSwatches
3
- } from "./chunk-ERNCPKD4.js";
3
+ } from "./chunk-G2KHLANR.js";
4
4
  import {
5
5
  layoutMap,
6
6
  mapLegendConfig,
7
7
  mapLegendGroups,
8
8
  parsePathRings
9
- } from "./chunk-BV6PKJUS.js";
9
+ } from "./chunk-QRIW46LR.js";
10
10
  import {
11
11
  parseClock
12
- } from "./chunk-WP2RLGDI.js";
12
+ } from "./chunk-TCX5PMEY.js";
13
13
  import {
14
14
  fixedParts,
15
15
  formatTime,
@@ -17,14 +17,14 @@ import {
17
17
  workStatus,
18
18
  zoneParts
19
19
  } from "./chunk-A2RUBBVT.js";
20
+ import {
21
+ renderIntegratedLegend
22
+ } from "./chunk-NJYA4QSN.js";
20
23
  import {
21
24
  TITLE_FONT_SIZE,
22
25
  TITLE_FONT_WEIGHT,
23
26
  TITLE_Y
24
27
  } from "./chunk-VLC6WNRD.js";
25
- import {
26
- renderIntegratedLegend
27
- } from "./chunk-LHL6HDUL.js";
28
28
  import {
29
29
  FONT_FAMILY
30
30
  } from "./chunk-ICLB27PZ.js";
@@ -34,7 +34,7 @@ import {
34
34
  import {
35
35
  mix,
36
36
  themeBaseBg
37
- } from "./chunk-7HWY4QAJ.js";
37
+ } from "./chunk-L24LESXF.js";
38
38
 
39
39
  // src/map/renderer.ts
40
40
  import * as d3Selection from "d3-selection";
@@ -320,8 +320,9 @@ function drawMap(container, layout, resolved, palette, isDark, onClickItem, expo
320
320
  );
321
321
  }
322
322
  }
323
+ return p;
323
324
  };
324
- for (const r of layout.regions) drawRegion(gRegions, r, 0.5);
325
+ const regionPaths = layout.regions.map((r) => drawRegion(gRegions, r, 0.5));
325
326
  if (layout.relief.length && layout.reliefHatch) {
326
327
  const h = layout.reliefHatch;
327
328
  const rangeClipId = nid("dgmo-relief-clip");
@@ -329,8 +330,12 @@ function drawMap(container, layout, resolved, palette, isDark, onClickItem, expo
329
330
  const rangeClip = defs.append("clipPath").attr("id", rangeClipId);
330
331
  for (const s of layout.relief) rangeClip.append("path").attr("d", s.d);
331
332
  const landClip = defs.append("clipPath").attr("id", landClipId);
332
- for (const r of layout.regions)
333
- if (r.id !== "lake") landClip.append("path").attr("d", r.d);
333
+ layout.regions.forEach((r, i) => {
334
+ if (r.id === "lake") return;
335
+ const id = nid(`dgmo-map-region-${i}`);
336
+ regionPaths[i].attr("id", id);
337
+ landClip.append("use").attr("href", `#${id}`);
338
+ });
334
339
  const gRelief = svg.append("g").attr("clip-path", `url(#${landClipId})`).style("pointer-events", "none").append("g").attr("class", "dgmo-map-relief").attr("clip-path", `url(#${rangeClipId})`).attr("stroke", h.color).attr("stroke-width", h.width).attr("vector-effect", "non-scaling-stroke");
335
340
  for (let y = h.spacing; y < height; y += h.spacing) {
336
341
  gRelief.append("line").attr("x1", 0).attr("y1", y).attr("x2", width).attr("y2", y);