@diagrammo/dgmo 0.96.0 → 0.98.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 (264) hide show
  1. package/dist/advanced.d.ts +178 -8
  2. package/dist/advanced.js +232 -246
  3. package/dist/block.d.ts +8 -0
  4. package/dist/block.js +138 -66
  5. package/dist/{calculator-GIB7POFX.js → calculator-CIGGTURF.js} +2 -2
  6. package/dist/{chart-meta-uImk4eTn.d.ts → chart-meta-B7niEd52.d.ts} +3 -1
  7. package/dist/chart-meta.d.ts +2 -2
  8. package/dist/chart-meta.js +19 -19
  9. package/dist/{chart-types-CBVYiLqy.d.ts → chart-types-Dxtv4XSz.d.ts} +3 -0
  10. package/dist/{charts-d3-IRP5VANE.js → charts-d3-INWEGMSD.js} +14 -14
  11. package/dist/{chunk-VLI6AWS3.js → chunk-3C4OXVZJ.js} +2 -2
  12. package/dist/{chunk-I3ZRIMR7.js → chunk-3EDV56HL.js} +15 -15
  13. package/dist/{chunk-OO4GUE4E.js → chunk-3F74NDUY.js} +63 -18
  14. package/dist/{chunk-RGFVHYDP.js → chunk-3IUMSK72.js} +2 -2
  15. package/dist/chunk-42AZPI2W.js +150 -0
  16. package/dist/{chunk-H7AXCRO7.js → chunk-453IWXZ3.js} +0 -11
  17. package/dist/{chunk-FHX373L5.js → chunk-47INRTZ6.js} +2 -2
  18. package/dist/{chunk-IN7XI6NO.js → chunk-4NMRS6HW.js} +1 -1
  19. package/dist/{chunk-JBAFAKGX.js → chunk-4PZP6URA.js} +41 -51
  20. package/dist/{chunk-5LG526X7.js → chunk-5TGZBHEJ.js} +1 -1
  21. package/dist/{chunk-BD4O4D2A.js → chunk-5WZYJC2P.js} +2 -2
  22. package/dist/{chunk-DPNSDCR3.js → chunk-65JFUANT.js} +1 -1
  23. package/dist/{chunk-EZ6BI5LL.js → chunk-6OUMYNAJ.js} +1 -1
  24. package/dist/{chunk-U6N547QA.js → chunk-6PUBFB6D.js} +24 -3
  25. package/dist/{chunk-IKXQ6NVR.js → chunk-6Q46GMKH.js} +21 -58
  26. package/dist/{chunk-DKCVAQU3.js → chunk-6YRTBI2F.js} +53 -75
  27. package/dist/{chunk-RTRORHSP.js → chunk-7QKWU7FX.js} +3 -3
  28. package/dist/{chunk-A6YINTY6.js → chunk-7RACGVUY.js} +1 -1
  29. package/dist/{chunk-H7RQG4PH.js → chunk-A3N4UHHL.js} +2 -2
  30. package/dist/{chunk-UNCCZ3NU.js → chunk-A3V72YIL.js} +14 -1
  31. package/dist/chunk-AHUBG6GR.js +188 -0
  32. package/dist/{chunk-P3PSLC2K.js → chunk-AULFF7L2.js} +2 -2
  33. package/dist/{chunk-SCYVGPLI.js → chunk-B7ZH5EQ2.js} +2 -2
  34. package/dist/{chunk-TUOZ6AXC.js → chunk-BTFB7W5Z.js} +16 -4
  35. package/dist/{chunk-THTYCJGF.js → chunk-BWVJTYTJ.js} +4 -4
  36. package/dist/{chunk-VGAMBOOC.js → chunk-C6ME2L4T.js} +2 -2
  37. package/dist/{chunk-H7JVKUA5.js → chunk-CES7REQM.js} +44 -60
  38. package/dist/{chunk-B2YVZ3QU.js → chunk-CGP7RGLJ.js} +1 -1
  39. package/dist/{chunk-34JOHSVE.js → chunk-CUTEHGXO.js} +2 -2
  40. package/dist/{chunk-NERQSSYD.js → chunk-D67YE4LR.js} +1 -1
  41. package/dist/{chunk-TPCP2UOI.js → chunk-D6XR22KO.js} +3 -3
  42. package/dist/{chunk-OAZ6BIIB.js → chunk-D7FHY6DO.js} +9 -7
  43. package/dist/{chunk-67N26CER.js → chunk-DA2GIHAY.js} +38 -5
  44. package/dist/{chunk-PGD6CNWO.js → chunk-DFEVFLEG.js} +3 -3
  45. package/dist/{chunk-VVTCUIPN.js → chunk-DKMZ4VMV.js} +1 -1
  46. package/dist/{chunk-VJ7NLYFE.js → chunk-DYI73PFY.js} +3 -3
  47. package/dist/{chunk-IQZSKWE5.js → chunk-E6GHXMH2.js} +8 -8
  48. package/dist/{chunk-I2I2FKAK.js → chunk-EBJLT7PH.js} +1 -1
  49. package/dist/{chunk-K2SFH3GJ.js → chunk-ENXENGW5.js} +3 -3
  50. package/dist/{chunk-FKJWZWNU.js → chunk-EUPUVYWO.js} +1 -1
  51. package/dist/{chunk-26EVL454.js → chunk-F4DGHT3F.js} +20 -0
  52. package/dist/{chunk-WLGOIMTI.js → chunk-FDVUD3PR.js} +4 -4
  53. package/dist/{chunk-IU7XKZA6.js → chunk-FK6HZYGK.js} +4 -14
  54. package/dist/{chunk-67RKJEKF.js → chunk-FTRW6YGU.js} +35 -11
  55. package/dist/{chunk-2M3K6GD2.js → chunk-FTW2E2YH.js} +6 -6
  56. package/dist/{chunk-5P2L5QXE.js → chunk-FZVCS2XY.js} +4 -2
  57. package/dist/chunk-G24NSISJ.js +69 -0
  58. package/dist/{chunk-4B45SNZH.js → chunk-G36XKXWT.js} +17 -15
  59. package/dist/{chunk-5H7SA5ZD.js → chunk-GFQFLLP3.js} +2 -2
  60. package/dist/{chunk-MAYTYF5S.js → chunk-GMJBBFKC.js} +3 -3
  61. package/dist/{chunk-5BG4OSWJ.js → chunk-GNQYARON.js} +20 -57
  62. package/dist/{chunk-RVOSA4RR.js → chunk-GNWCMWTO.js} +441 -267
  63. package/dist/{chunk-VLC6WNRD.js → chunk-GULGSH2Z.js} +4 -0
  64. package/dist/{chunk-H5NVCOEJ.js → chunk-GXBH7WNN.js} +2 -2
  65. package/dist/{chunk-7UWVHNPM.js → chunk-H242TVAE.js} +9 -9
  66. package/dist/{chunk-CD7VQCDL.js → chunk-H7XXQSYA.js} +63 -53
  67. package/dist/{chunk-GLCMUTO5.js → chunk-HQNZJMNS.js} +1 -1
  68. package/dist/{chunk-WTPS73RM.js → chunk-II6D6NWX.js} +8 -8
  69. package/dist/{chunk-3W73ZP6W.js → chunk-IMBFWXHF.js} +3 -3
  70. package/dist/{chunk-5ARANBIE.js → chunk-IUFTAFGN.js} +2 -2
  71. package/dist/{chunk-AQRSEQZV.js → chunk-IZEKHIV6.js} +3 -3
  72. package/dist/{chunk-WGNP5ND2.js → chunk-J3YM6RA5.js} +3 -3
  73. package/dist/{chunk-YFIUABSF.js → chunk-J467QBZF.js} +23 -3
  74. package/dist/{chunk-EPDBWATV.js → chunk-K7RRXZHS.js} +4 -2
  75. package/dist/{chunk-TIPNNOZC.js → chunk-KKJG3LBY.js} +41 -19
  76. package/dist/{chunk-YVIPJGFG.js → chunk-KMB754DO.js} +33 -6
  77. package/dist/chunk-KNKZGRRB.js +439 -0
  78. package/dist/{chunk-SIABEREK.js → chunk-KTGJQJB3.js} +2 -2
  79. package/dist/{chunk-LGUFJ7Y2.js → chunk-KW3CC7SB.js} +1 -1
  80. package/dist/{chunk-ITDF3MWD.js → chunk-L3K5O3Z5.js} +3 -3
  81. package/dist/{chunk-NI4L6HEU.js → chunk-LZATSXAA.js} +1 -1
  82. package/dist/{chunk-EPB3UEMD.js → chunk-NBISN6FH.js} +2 -2
  83. package/dist/{chunk-VNAPEZX2.js → chunk-NHN6GBG7.js} +1 -1
  84. package/dist/{chunk-EM5SA7NC.js → chunk-NQFZ7LXC.js} +4 -4
  85. package/dist/chunk-NTDWVTEY.js +12 -0
  86. package/dist/{chunk-ZBOIYC2G.js → chunk-NXOIH5JK.js} +8 -13
  87. package/dist/{chunk-AUXUNV73.js → chunk-O3HRF25Z.js} +1 -1
  88. package/dist/{chunk-KDWEOT54.js → chunk-O5APWRZN.js} +192 -230
  89. package/dist/{chunk-GLL237AP.js → chunk-OSSA5UWA.js} +3 -3
  90. package/dist/{chunk-UOCWYLYT.js → chunk-OZXKW5NA.js} +1 -1
  91. package/dist/{chunk-QEU6VM4O.js → chunk-PLQZJZ2K.js} +1 -1
  92. package/dist/chunk-PRG7NIUU.js +272 -0
  93. package/dist/{chunk-CP73WWLN.js → chunk-PRYAVMU6.js} +48 -14
  94. package/dist/{chunk-KAO7JL4I.js → chunk-PU5X3P3T.js} +6 -5
  95. package/dist/{chunk-B7BSRVNC.js → chunk-PZ5LAAO3.js} +2 -2
  96. package/dist/{chunk-TOHTKLKE.js → chunk-Q5Q5JLRT.js} +1 -1
  97. package/dist/{chunk-MVUNMJKO.js → chunk-Q6OKTHYL.js} +71 -57
  98. package/dist/{chunk-ZOKD5F7M.js → chunk-QDPTOIG7.js} +5 -5
  99. package/dist/{chunk-2BYFNZVM.js → chunk-QGSQ2LMB.js} +57 -15
  100. package/dist/{chunk-ERT7XDQW.js → chunk-QIITSGI5.js} +1 -1
  101. package/dist/{chunk-K2WXMXI2.js → chunk-QLIZ7SB7.js} +1 -1
  102. package/dist/{chunk-P6LKX3IQ.js → chunk-QOLRTPGH.js} +6 -6
  103. package/dist/{chunk-FBK32S4D.js → chunk-R4SXMBGF.js} +1 -1
  104. package/dist/chunk-R4U7IIRX.js +178 -0
  105. package/dist/{chunk-DWMQ24JR.js → chunk-RC6PISCK.js} +4 -2
  106. package/dist/{chunk-R5L5E3TC.js → chunk-REKLKGR6.js} +3 -3
  107. package/dist/{chunk-FUYEXLAN.js → chunk-RFGQDIOI.js} +837 -220
  108. package/dist/{chunk-W5MMPPGX.js → chunk-ROFSIFSY.js} +4 -4
  109. package/dist/{chunk-JCC3B2GS.js → chunk-ROH4LYBL.js} +65 -21
  110. package/dist/{chunk-MYHR3PMH.js → chunk-S5VZLZUQ.js} +7 -7
  111. package/dist/{chunk-JRN2CRXJ.js → chunk-TDUBTDXS.js} +1 -1
  112. package/dist/{chunk-IZFJZCF6.js → chunk-TGQQD2KC.js} +84 -16
  113. package/dist/{chunk-GM2SLMQW.js → chunk-TMB4YY3J.js} +34 -4
  114. package/dist/{chunk-HH3DHNQA.js → chunk-UWWQECLC.js} +2 -2
  115. package/dist/{chunk-HZX4QZGR.js → chunk-V65EDV6S.js} +3 -3
  116. package/dist/{chunk-OYGJZA24.js → chunk-VHVQT4EW.js} +39 -19
  117. package/dist/{chunk-KQAPFIYF.js → chunk-VQWLASDC.js} +2 -2
  118. package/dist/chunk-VTGGPBLW.js +14 -0
  119. package/dist/{chunk-LRHPBWOY.js → chunk-VUBCCY65.js} +32 -69
  120. package/dist/{chunk-JILEYZ2V.js → chunk-VVL2KKG4.js} +1 -1
  121. package/dist/{chunk-D7DGLJ7N.js → chunk-VVZDBUHA.js} +2 -2
  122. package/dist/{chunk-B5CEV7IR.js → chunk-VYEIMHL5.js} +38 -14
  123. package/dist/{chunk-XCKNFFKM.js → chunk-WH6E6SHC.js} +2 -4
  124. package/dist/{chunk-P2GNNEMN.js → chunk-WPYJAHRP.js} +1 -1
  125. package/dist/{chunk-RIK6WUMO.js → chunk-XCYGOCMS.js} +43 -26
  126. package/dist/{chunk-PWZEJNO6.js → chunk-XMUFXJI2.js} +6 -6
  127. package/dist/{chunk-5G4DOOX2.js → chunk-XPOEE2RW.js} +9 -5
  128. package/dist/{chunk-EMGNCG5C.js → chunk-XZGXVN4T.js} +5 -5
  129. package/dist/{chunk-BUVLLK3D.js → chunk-Y24QPREP.js} +27 -17
  130. package/dist/{chunk-GEHK4UD5.js → chunk-YCIOLYWL.js} +92 -23
  131. package/dist/{chunk-V2NQV7VL.js → chunk-YFIDR7JH.js} +2 -2
  132. package/dist/{chunk-6XLMTAEX.js → chunk-YIHRLY55.js} +33 -6
  133. package/dist/{chunk-CYRB2JTN.js → chunk-YLKPRT6U.js} +1 -1
  134. package/dist/{chunk-KMU65FYM.js → chunk-YSDSFXQD.js} +1 -1
  135. package/dist/{chunk-M4ZUIW3J.js → chunk-Z6V73LD6.js} +3 -3
  136. package/dist/{chunk-ZI6WC24V.js → chunk-ZBJV4KNU.js} +1 -1
  137. package/dist/{chunk-YSGOXZBB.js → chunk-ZMVMGZAJ.js} +1 -1
  138. package/dist/{chunk-O2HNVNKO.js → chunk-ZTKO2RD4.js} +5 -5
  139. package/dist/{chunk-5GU6C5WB.js → chunk-ZXPSNBZC.js} +3 -3
  140. package/dist/collapse-6IGH2B24.js +31 -0
  141. package/dist/collapse-GOWNCVHZ.js +7 -0
  142. package/dist/collapse-HNTPLB2Q.js +11 -0
  143. package/dist/collapse-NUM7DPJA.js +10 -0
  144. package/dist/completion-registry.js +27 -4
  145. package/dist/dgmo-router-RXV7BNPN.js +101 -0
  146. package/dist/dimensions-KXAI7U2B.js +21 -0
  147. package/dist/editor.js +882 -215
  148. package/dist/{flowchart-parser-SM5LHF2D.js → flowchart-parser-JAZRKKKJ.js} +5 -5
  149. package/dist/flowchart-renderer-JED3RESY.js +40 -0
  150. package/dist/fold-at-line-DmSAa1eU.d.ts +11 -0
  151. package/dist/highlight.js +883 -216
  152. package/dist/index.d.ts +52 -5
  153. package/dist/index.js +79 -63
  154. package/dist/{layout-LNVIH45F.js → layout-6QXAC2WA.js} +7 -6
  155. package/dist/{layout-2WESJYRE.js → layout-7E7BNOGO.js} +3 -2
  156. package/dist/layout-BSK374N6.js +11 -0
  157. package/dist/{layout-FCFUVCRI.js → layout-DJOZCSAP.js} +10 -10
  158. package/dist/{layout-R6G4MEO3.js → layout-FJDBY3WG.js} +5 -5
  159. package/dist/{layout-H2KP5A6M.js → layout-GC5XX2RH.js} +2 -2
  160. package/dist/{layout-KELSNWBD.js → layout-LCHMEGTV.js} +10 -10
  161. package/dist/{layout-PPIVGJXD.js → layout-ROI5KVSO.js} +3 -3
  162. package/dist/{layout-3TSVAGWH.js → layout-SPPS225I.js} +3 -3
  163. package/dist/{layout-AF4KA5B2.js → layout-VHBM32OD.js} +6 -6
  164. package/dist/{layout-HF3PMI4H.js → layout-VTGOYGRC.js} +2 -2
  165. package/dist/layout-WTHBGTH2.js +15 -0
  166. package/dist/layout-ZCCABSV7.js +15 -0
  167. package/dist/{layout-MPSH3YWE.js → layout-ZDMJL4KO.js} +10 -10
  168. package/dist/{layout-search-C2TYUH4L.js → layout-search-UZYZE4PR.js} +8 -8
  169. package/dist/{legend-constants-55MFBXYF.js → legend-constants-KF3MKWL2.js} +2 -2
  170. package/dist/{parser-6WURFLOB.js → parser-3KMY23A2.js} +3 -3
  171. package/dist/{parser-DGLKH4NT.js → parser-3PMYAVFL.js} +2 -2
  172. package/dist/{parser-OHBBDCG4.js → parser-5KVFS4RN.js} +2 -2
  173. package/dist/{parser-QWTECQEC.js → parser-ASXY2CPV.js} +6 -6
  174. package/dist/{parser-UHKROC7Z.js → parser-BA43YPIQ.js} +3 -3
  175. package/dist/{parser-F75WNYMK.js → parser-CFAYEWLF.js} +3 -3
  176. package/dist/{parser-MWINQNQW.js → parser-DRFEX6OX.js} +3 -3
  177. package/dist/{parser-W6NX3AIV.js → parser-DWVBRBB2.js} +3 -3
  178. package/dist/{parser-DRUGM3R6.js → parser-FWQY3HJX.js} +2 -2
  179. package/dist/{parser-4GHAYZKZ.js → parser-GBB5MYAN.js} +6 -6
  180. package/dist/{parser-GBQY3WOZ.js → parser-GMCXCJSP.js} +3 -3
  181. package/dist/{parser-BPYHIG24.js → parser-IHFHPFL7.js} +3 -3
  182. package/dist/{parser-TTGZYLYD.js → parser-JQGUTDSX.js} +3 -3
  183. package/dist/{parser-BNRX35NT.js → parser-JRKPOO2Z.js} +3 -3
  184. package/dist/{parser-B7SCN7FG.js → parser-KI2XYB2R.js} +2 -2
  185. package/dist/parser-LDVVBP7S.js +12 -0
  186. package/dist/{parser-L7SI3PW4.js → parser-MAGFK6OK.js} +4 -4
  187. package/dist/{parser-722KLLAQ.js → parser-MH5BDN7X.js} +3 -3
  188. package/dist/{parser-5RUD4A3X.js → parser-MUHFEM4G.js} +3 -3
  189. package/dist/{parser-Y7QXD2UR.js → parser-P375HO7Q.js} +2 -2
  190. package/dist/{parser-LUJX7AXO.js → parser-PYY5BRLQ.js} +2 -2
  191. package/dist/parser-QEMFMVF5.js +12 -0
  192. package/dist/{parser-WIKXZP4X.js → parser-QIPDBT5M.js} +2 -2
  193. package/dist/{parser-2AXU2MHJ.js → parser-RNBDDEGL.js} +3 -3
  194. package/dist/{parser-H6HT2WFQ.js → parser-SGX2PVR5.js} +2 -2
  195. package/dist/{parser-ZWWQZ4XZ.js → parser-SJUEFKNM.js} +3 -3
  196. package/dist/{parser-4BOP77CD.js → parser-UMNBPXG2.js} +2 -2
  197. package/dist/{parser-GM5B2EPW.js → parser-WE4VSBBY.js} +3 -3
  198. package/dist/{parser-XEJP37GQ.js → parser-WKEYS7N3.js} +3 -3
  199. package/dist/{parser-DWV2CYBS.js → parser-WPXUUNA2.js} +3 -3
  200. package/dist/{parser-5HQPPVHJ.js → parser-XP3RCOTN.js} +3 -3
  201. package/dist/{parser-F3JJNIFC.js → parser-YV4RBHG7.js} +3 -3
  202. package/dist/{parser-CRJYLOHA.js → parser-YZ3J542U.js} +2 -2
  203. package/dist/{parser-ZV756RMP.js → parser-ZSBMGGTD.js} +6 -6
  204. package/dist/renderer-37LMEGLD.js +26 -0
  205. package/dist/{renderer-TS5NHOQD.js → renderer-3EIZRVO3.js} +12 -11
  206. package/dist/renderer-4LK2RFHD.js +28 -0
  207. package/dist/{renderer-BYLQ37T2.js → renderer-4WD4ZIEH.js} +16 -15
  208. package/dist/renderer-67PNYODC.js +32 -0
  209. package/dist/{renderer-GKY55M4Z.js → renderer-6O5SV5YE.js} +10 -10
  210. package/dist/{renderer-VNJOZPSH.js → renderer-6VBL2DWH.js} +17 -17
  211. package/dist/{renderer-F7YGMEGQ.js → renderer-7OXMSF4R.js} +4 -4
  212. package/dist/{renderer-6HU44IGJ.js → renderer-A36NL2SS.js} +8 -8
  213. package/dist/renderer-CC6O6GQK.js +18 -0
  214. package/dist/renderer-CUEMI3PI.js +85 -0
  215. package/dist/{renderer-QZJZIAT3.js → renderer-D6BEC6LI.js} +6 -4
  216. package/dist/{renderer-5GP7YUS4.js → renderer-DT2PP7NJ.js} +7 -6
  217. package/dist/{renderer-MGF2NNGG.js → renderer-E7LC7HCU.js} +5 -5
  218. package/dist/{renderer-PEJF6R2I.js → renderer-F3JYZERE.js} +4 -4
  219. package/dist/{renderer-CVCCW7UT.js → renderer-FAFSRFGR.js} +9 -9
  220. package/dist/renderer-GHYW6Y3A.js +27 -0
  221. package/dist/{renderer-VUXAAGUG.js → renderer-HRUKL4T6.js} +12 -11
  222. package/dist/renderer-INQMQPNN.js +22 -0
  223. package/dist/{renderer-LJPUCG3U.js → renderer-KOPJ76GS.js} +10 -10
  224. package/dist/renderer-KVC7Z4T2.js +39 -0
  225. package/dist/{renderer-MVBAQP3M.js → renderer-MYKL6VG6.js} +6 -6
  226. package/dist/{renderer-D6EH5UQ6.js → renderer-QVUPRQ4L.js} +13 -12
  227. package/dist/{renderer-SYRH3B62.js → renderer-RBAMFLZQ.js} +14 -13
  228. package/dist/{renderer-YJVQT7QG.js → renderer-S6L3JR6C.js} +11 -11
  229. package/dist/{renderer-ONENGXFQ.js → renderer-SGRZKIMS.js} +14 -12
  230. package/dist/{renderer-NOYLNVTI.js → renderer-SYWVZ4CY.js} +3 -3
  231. package/dist/{renderer-66NCRXSC.js → renderer-TJPBVNVG.js} +14 -11
  232. package/dist/renderer-WK2BPXND.js +41 -0
  233. package/dist/renderer-ZG7WOBBN.js +30 -0
  234. package/dist/{renderer-N6PM5CSG.js → renderer-ZRPL5COW.js} +14 -13
  235. package/dist/{renderer-2V2XY2V7.js → renderer-ZTHXOBXW.js} +8 -8
  236. package/dist/{renderer-radial-4R7AKETK.js → renderer-radial-FC25BDCZ.js} +8 -8
  237. package/dist/{state-parser-EQBBEKHR.js → state-parser-LSFAJFMV.js} +6 -6
  238. package/dist/state-renderer-QTDBFB4F.js +43 -0
  239. package/dist/{themes-CbJL3w8L.d.ts → themes-DoLdhUXV.d.ts} +1 -1
  240. package/docs/ai-integration.md +4 -3
  241. package/docs/language-reference.md +100 -14
  242. package/gallery/fixtures/swot-relabel.dgmo +19 -0
  243. package/gallery/fixtures/swot-tags.dgmo +16 -0
  244. package/gallery/fixtures/swot.dgmo +13 -0
  245. package/package.json +1 -1
  246. package/dist/chunk-R2K5L4UA.js +0 -49
  247. package/dist/collapse-TCVK3RPO.js +0 -8
  248. package/dist/dgmo-router-EPBQKQW2.js +0 -100
  249. package/dist/dimensions-DBCRBZIU.js +0 -21
  250. package/dist/flowchart-renderer-PPS2GTTD.js +0 -40
  251. package/dist/layout-3J72UULM.js +0 -15
  252. package/dist/layout-IXQNVRBE.js +0 -15
  253. package/dist/layout-VDCJOZSH.js +0 -11
  254. package/dist/parser-HM6FEX5K.js +0 -14
  255. package/dist/renderer-2MCV75JQ.js +0 -41
  256. package/dist/renderer-5AEDVLAA.js +0 -31
  257. package/dist/renderer-7C76HP5W.js +0 -30
  258. package/dist/renderer-7RAMBMTH.js +0 -22
  259. package/dist/renderer-E3334XLT.js +0 -84
  260. package/dist/renderer-LFZKG2GR.js +0 -26
  261. package/dist/renderer-MZIWP55B.js +0 -28
  262. package/dist/renderer-N75E3UVY.js +0 -25
  263. package/dist/renderer-VNUDN6F5.js +0 -39
  264. package/dist/state-renderer-SOGZ2CNN.js +0 -42
@@ -3,6 +3,8 @@ var TITLE_FONT_SIZE = 20;
3
3
  var TITLE_FONT_WEIGHT = "bold";
4
4
  var TITLE_Y = 30;
5
5
  var TITLE_OFFSET = 40;
6
+ var TITLE_SIDE_PAD = 12;
7
+ var TITLE_LINE_HEIGHT = 24;
6
8
  var CAPTION_FONT_SIZE = 13;
7
9
  var CAPTION_FONT_WEIGHT = "normal";
8
10
  var CAPTION_LINE_HEIGHT = 18;
@@ -15,6 +17,8 @@ export {
15
17
  TITLE_FONT_WEIGHT,
16
18
  TITLE_Y,
17
19
  TITLE_OFFSET,
20
+ TITLE_SIDE_PAD,
21
+ TITLE_LINE_HEIGHT,
18
22
  CAPTION_FONT_SIZE,
19
23
  CAPTION_FONT_WEIGHT,
20
24
  CAPTION_LINE_HEIGHT,
@@ -11,10 +11,10 @@ import {
11
11
  META_FONT_SIZE,
12
12
  META_LINE_HEIGHT,
13
13
  SEPARATOR_GAP
14
- } from "./chunk-XCKNFFKM.js";
14
+ } from "./chunk-WH6E6SHC.js";
15
15
  import {
16
16
  measureText
17
- } from "./chunk-KAO7JL4I.js";
17
+ } from "./chunk-PU5X3P3T.js";
18
18
 
19
19
  // src/family/layout.ts
20
20
  var MARGIN = 30;
@@ -7,12 +7,12 @@ import {
7
7
  } from "./chunk-2CW5ZTNH.js";
8
8
  import {
9
9
  layoutInlineHeader
10
- } from "./chunk-R5L5E3TC.js";
10
+ } from "./chunk-REKLKGR6.js";
11
11
  import {
12
12
  TITLE_FONT_SIZE,
13
13
  TITLE_FONT_WEIGHT,
14
14
  TITLE_Y
15
- } from "./chunk-VLC6WNRD.js";
15
+ } from "./chunk-GULGSH2Z.js";
16
16
  import {
17
17
  CARD_RADIUS,
18
18
  EDGE_DASH,
@@ -23,14 +23,14 @@ import {
23
23
  META_LINE_HEIGHT,
24
24
  NODE_STROKE_WIDTH,
25
25
  SEPARATOR_GAP
26
- } from "./chunk-XCKNFFKM.js";
26
+ } from "./chunk-WH6E6SHC.js";
27
27
  import {
28
28
  renderIntegratedLegend
29
- } from "./chunk-PGD6CNWO.js";
29
+ } from "./chunk-DFEVFLEG.js";
30
30
  import {
31
31
  getLegendExtent,
32
32
  getMaxLegendReservedHeight
33
- } from "./chunk-JILEYZ2V.js";
33
+ } from "./chunk-VVL2KKG4.js";
34
34
  import {
35
35
  FONT_FAMILY
36
36
  } from "./chunk-ICLB27PZ.js";
@@ -38,18 +38,18 @@ import {
38
38
  UNTAGGED_TAG_COLOR,
39
39
  resolveTagColor,
40
40
  tagAttrKey
41
- } from "./chunk-LGUFJ7Y2.js";
41
+ } from "./chunk-KW3CC7SB.js";
42
42
  import {
43
43
  fillModeFromOptions,
44
44
  legendInlineRequested,
45
45
  legendSuppressed
46
- } from "./chunk-FUYEXLAN.js";
46
+ } from "./chunk-RFGQDIOI.js";
47
47
  import {
48
48
  LEGEND_GROUP_GAP
49
- } from "./chunk-UOCWYLYT.js";
49
+ } from "./chunk-OZXKW5NA.js";
50
50
  import {
51
51
  measureText
52
- } from "./chunk-KAO7JL4I.js";
52
+ } from "./chunk-PU5X3P3T.js";
53
53
  import {
54
54
  contrastText,
55
55
  mix,
@@ -1,27 +1,28 @@
1
- import {
2
- renderNodeCard
3
- } from "./chunk-R2K5L4UA.js";
4
1
  import {
5
2
  placeEdgeLabels
6
- } from "./chunk-IN7XI6NO.js";
3
+ } from "./chunk-4NMRS6HW.js";
7
4
  import {
8
5
  serializeSvg
9
- } from "./chunk-CYRB2JTN.js";
6
+ } from "./chunk-YLKPRT6U.js";
10
7
  import {
11
8
  ScaleContext
12
9
  } from "./chunk-24YPR5EH.js";
10
+ import {
11
+ renderCollapseBar,
12
+ renderContainerCard,
13
+ renderNodeCard
14
+ } from "./chunk-42AZPI2W.js";
13
15
  import {
14
16
  layoutInlineHeader
15
- } from "./chunk-R5L5E3TC.js";
17
+ } from "./chunk-REKLKGR6.js";
16
18
  import {
17
19
  TITLE_FONT_SIZE,
18
20
  TITLE_FONT_WEIGHT
19
- } from "./chunk-VLC6WNRD.js";
21
+ } from "./chunk-GULGSH2Z.js";
20
22
  import {
21
23
  ARROWHEAD_HEIGHT,
22
24
  ARROWHEAD_WIDTH,
23
25
  CARD_RADIUS,
24
- COLLAPSE_BAR_HEIGHT,
25
26
  CONTAINER_HEADER_HEIGHT,
26
27
  CONTAINER_LABEL_FONT_SIZE,
27
28
  CONTAINER_META_FONT_SIZE,
@@ -35,14 +36,14 @@ import {
35
36
  META_LINE_HEIGHT,
36
37
  NODE_STROKE_WIDTH,
37
38
  SEPARATOR_GAP
38
- } from "./chunk-XCKNFFKM.js";
39
+ } from "./chunk-WH6E6SHC.js";
39
40
  import {
40
41
  renderIntegratedLegend
41
- } from "./chunk-PGD6CNWO.js";
42
+ } from "./chunk-DFEVFLEG.js";
42
43
  import {
43
44
  getLegendExtent,
44
45
  getMaxLegendReservedHeight
45
- } from "./chunk-JILEYZ2V.js";
46
+ } from "./chunk-VVL2KKG4.js";
46
47
  import {
47
48
  preprocessDescriptionLine
48
49
  } from "./chunk-IYULMRBE.js";
@@ -54,12 +55,12 @@ import {
54
55
  } from "./chunk-ICLB27PZ.js";
55
56
  import {
56
57
  tagAttrKey
57
- } from "./chunk-LGUFJ7Y2.js";
58
+ } from "./chunk-KW3CC7SB.js";
58
59
  import {
59
60
  fillModeFromOptions,
60
61
  legendInlineRequested,
61
62
  legendSuppressed
62
- } from "./chunk-FUYEXLAN.js";
63
+ } from "./chunk-RFGQDIOI.js";
63
64
  import {
64
65
  EYE_CLOSED_PATH,
65
66
  EYE_OPEN_PATH,
@@ -67,10 +68,10 @@ import {
67
68
  LEGEND_EYE_SIZE,
68
69
  LEGEND_GROUP_GAP,
69
70
  LEGEND_HEIGHT
70
- } from "./chunk-UOCWYLYT.js";
71
+ } from "./chunk-OZXKW5NA.js";
71
72
  import {
72
73
  measureText
73
- } from "./chunk-KAO7JL4I.js";
74
+ } from "./chunk-PU5X3P3T.js";
74
75
  import {
75
76
  contrastText,
76
77
  mix,
@@ -170,7 +171,6 @@ function renderSitemap(container, parsed, layout, palette, isDark, onClickItem,
170
171
  const sContainerHeaderHeight = ctx.structural(CONTAINER_HEADER_HEIGHT);
171
172
  const sTitleFontSize = ctx.text(TITLE_FONT_SIZE);
172
173
  const sTitleHeight = ctx.structural(TITLE_HEIGHT);
173
- const sCollapseBarHeight = ctx.structural(COLLAPSE_BAR_HEIGHT);
174
174
  const sLegendFixedGap = ctx.aesthetic(LEGEND_FIXED_GAP);
175
175
  const noLegend = legendSuppressed(parsed.options);
176
176
  const hasLegend = layout.legend.length > 0 && !noLegend;
@@ -296,33 +296,39 @@ function renderSitemap(container, parsed, layout, palette, isDark, onClickItem,
296
296
  }
297
297
  const fill = containerFill(palette, isDark, c.color);
298
298
  const stroke = containerStroke(palette, c.color);
299
- cG.append("rect").attr("x", 0).attr("y", 0).attr("width", c.width).attr("height", c.height).attr("rx", CONTAINER_RADIUS).attr("fill", fill).attr("stroke", stroke).attr("stroke-opacity", 0.35).attr("stroke-width", sNodeStrokeWidth);
300
- cG.append("text").attr("x", c.width / 2).attr("y", sContainerHeaderHeight / 2).attr("dominant-baseline", "central").attr("text-anchor", "middle").attr("fill", palette.text).attr("font-size", sContainerLabelFontSize).attr("font-weight", "bold").text(c.label);
301
- const metaEntries = Object.entries(c.metadata);
302
- if (metaEntries.length > 0) {
303
- const metaDisplayKeys = metaEntries.map(
304
- ([k]) => displayNames.get(k) ?? k
305
- );
306
- const maxKeyWidth = Math.max(
307
- ...metaDisplayKeys.map(
308
- (k) => measureText(`${k}: `, sContainerMetaFontSize)
309
- )
310
- );
311
- const valueX = 10 + maxKeyWidth;
312
- const metaStartY = sContainerHeaderHeight + sContainerMetaFontSize - 2;
313
- for (let i = 0; i < metaEntries.length; i++) {
314
- const [key, value] = metaEntries[i];
315
- const displayKey = metaDisplayKeys[i];
316
- const rowY = metaStartY + i * sContainerMetaLineHeight;
317
- const valColor = tagColors.get(`${key}:${value.toLowerCase()}`) ?? palette.text;
318
- cG.append("text").attr("x", 10).attr("y", rowY).attr("fill", palette.textMuted).attr("font-size", sContainerMetaFontSize).text(`${displayKey}: `);
319
- cG.append("text").attr("x", valueX).attr("y", rowY).attr("fill", valColor).attr("font-size", sContainerMetaFontSize).text(value);
320
- }
321
- }
322
- if (!exportDims && c.hiddenCount && c.hiddenCount > 0) {
323
- const clipId = `clip-${c.nodeId}`;
324
- cG.append("clipPath").attr("id", clipId).append("rect").attr("width", c.width).attr("height", c.height).attr("rx", CONTAINER_RADIUS);
325
- cG.append("rect").attr("y", c.height - sCollapseBarHeight).attr("width", c.width).attr("height", sCollapseBarHeight).attr("fill", stroke).attr("clip-path", `url(#${clipId})`).attr("class", "sitemap-collapse-bar");
299
+ renderContainerCard(cG, {
300
+ width: c.width,
301
+ height: c.height,
302
+ rx: CONTAINER_RADIUS,
303
+ fill,
304
+ stroke,
305
+ strokeWidth: sNodeStrokeWidth,
306
+ label: c.label,
307
+ labelColor: palette.text,
308
+ labelFontSize: sContainerLabelFontSize,
309
+ headerHeight: sContainerHeaderHeight,
310
+ rows: Object.entries(c.metadata).map(
311
+ ([key, value]) => [
312
+ displayNames.get(key) ?? key,
313
+ value,
314
+ tagColors.get(`${key}:${value.toLowerCase()}`) ?? palette.text
315
+ ]
316
+ ),
317
+ keyColor: palette.textMuted,
318
+ metaFontSize: sContainerMetaFontSize,
319
+ metaLineHeight: sContainerMetaLineHeight
320
+ });
321
+ if (c.hasChildren) {
322
+ renderCollapseBar(cG, {
323
+ expanded: !c.hiddenCount,
324
+ width: c.width,
325
+ height: c.height,
326
+ rx: CONTAINER_RADIUS,
327
+ fill: stroke,
328
+ clipId: `clip-${c.nodeId}`,
329
+ prefix: "sitemap",
330
+ scale: ctx
331
+ });
326
332
  }
327
333
  }
328
334
  const labelCentres = placeSitemapEdgeLabels(layout, sEdgeLabelFontSize);
@@ -347,7 +353,7 @@ function renderSitemap(container, parsed, layout, palette, isDark, onClickItem,
347
353
  for (const node of layout.nodes) {
348
354
  const nodeG = contentG.append("g").attr("transform", `translate(${node.x - node.width / 2}, ${node.y})`).attr("class", "sitemap-node").attr("data-line-number", String(node.lineNumber)).attr("data-node-id", node.id);
349
355
  if (node.hasChildren) {
350
- nodeG.attr("data-node-toggle", node.id).attr("role", "button").attr("aria-expanded", String(!node.hiddenCount));
356
+ nodeG.attr("data-node-toggle", node.id).attr("role", "button").attr("aria-expanded", String(!node.hiddenCount)).attr("aria-label", node.label);
351
357
  }
352
358
  if (onClickItem) {
353
359
  nodeG.style("cursor", "pointer").on("click", () => onClickItem(node.lineNumber));
@@ -410,13 +416,17 @@ function renderSitemap(container, parsed, layout, palette, isDark, onClickItem,
410
416
  renderInlineText(textEl, processed, palette, sMetaFontSize);
411
417
  }
412
418
  }
413
- if (!exportDims && node.hiddenCount && node.hiddenCount > 0) {
414
- const clipId = `clip-${node.id}`;
415
- nodeG.append("clipPath").attr("id", clipId).append("rect").attr("width", node.width).attr("height", node.height).attr("rx", CARD_RADIUS);
416
- nodeG.append("rect").attr("y", node.height - sCollapseBarHeight).attr("width", node.width).attr("height", sCollapseBarHeight).attr(
417
- "fill",
418
- fillMode === "solid" ? labelColor : node.color ?? palette.primary
419
- ).attr("opacity", 0.5).attr("clip-path", `url(#${clipId})`);
419
+ if (node.hasChildren) {
420
+ renderCollapseBar(nodeG, {
421
+ expanded: !node.hiddenCount,
422
+ width: node.width,
423
+ height: node.height,
424
+ rx: CARD_RADIUS,
425
+ fill: fillMode === "solid" ? labelColor : stroke,
426
+ clipId: `clip-${node.id}`,
427
+ prefix: "sitemap",
428
+ scale: ctx
429
+ });
420
430
  }
421
431
  }
422
432
  if (exportDims && hasLegend) {
@@ -507,8 +517,8 @@ function renderLegend(parent, legendGroups, palette, isDark, activeTagGroup, fix
507
517
  }
508
518
  }
509
519
  async function renderSitemapForExport(content, theme, palette) {
510
- const { parseSitemap } = await import("./parser-UHKROC7Z.js");
511
- const { layoutSitemap } = await import("./layout-IXQNVRBE.js");
520
+ const { parseSitemap } = await import("./parser-BA43YPIQ.js");
521
+ const { layoutSitemap } = await import("./layout-ZCCABSV7.js");
512
522
  const { getPalette, DEFAULT_PALETTE_ID } = await import("./palettes-4Y7CL2QL.js");
513
523
  const isDark = theme === "dark";
514
524
  const defaultCfg = getPalette(DEFAULT_PALETTE_ID);
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  measureText
3
- } from "./chunk-KAO7JL4I.js";
3
+ } from "./chunk-PU5X3P3T.js";
4
4
 
5
5
  // src/wireframe/layout.ts
6
6
  var DESKTOP_WIDTH = 1200;
@@ -7,34 +7,34 @@ import {
7
7
  mutedFill,
8
8
  resolveCellColor,
9
9
  resolveColorMode
10
- } from "./chunk-5LG526X7.js";
10
+ } from "./chunk-5TGZBHEJ.js";
11
11
  import {
12
12
  layoutInlineHeader
13
- } from "./chunk-R5L5E3TC.js";
13
+ } from "./chunk-REKLKGR6.js";
14
14
  import {
15
15
  TITLE_FONT_SIZE,
16
16
  TITLE_FONT_WEIGHT,
17
17
  TITLE_Y
18
- } from "./chunk-VLC6WNRD.js";
18
+ } from "./chunk-GULGSH2Z.js";
19
19
  import {
20
20
  renderIntegratedLegend
21
- } from "./chunk-PGD6CNWO.js";
21
+ } from "./chunk-DFEVFLEG.js";
22
22
  import {
23
23
  getLegendExtent,
24
24
  getMaxLegendReservedHeight
25
- } from "./chunk-JILEYZ2V.js";
25
+ } from "./chunk-VVL2KKG4.js";
26
26
  import {
27
27
  FONT_FAMILY
28
28
  } from "./chunk-ICLB27PZ.js";
29
29
  import {
30
30
  tagAttrKey
31
- } from "./chunk-LGUFJ7Y2.js";
31
+ } from "./chunk-KW3CC7SB.js";
32
32
  import {
33
33
  LEGEND_GROUP_GAP
34
- } from "./chunk-UOCWYLYT.js";
34
+ } from "./chunk-OZXKW5NA.js";
35
35
  import {
36
36
  measureText
37
- } from "./chunk-KAO7JL4I.js";
37
+ } from "./chunk-PU5X3P3T.js";
38
38
  import {
39
39
  contrastText,
40
40
  getSeriesColors,
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  searchPlacement
3
- } from "./chunk-VNAPEZX2.js";
3
+ } from "./chunk-NHN6GBG7.js";
4
4
  import {
5
5
  buildPlacedNotes,
6
6
  noteCanvasShift,
7
7
  resolveNotes
8
- } from "./chunk-HH3DHNQA.js";
8
+ } from "./chunk-UWWQECLC.js";
9
9
  import {
10
10
  measureText
11
- } from "./chunk-KAO7JL4I.js";
11
+ } from "./chunk-PU5X3P3T.js";
12
12
 
13
13
  // src/er/layout.ts
14
14
  import dagre from "@dagrejs/dagre";
@@ -9,7 +9,7 @@ import {
9
9
  stripDefaultModifier,
10
10
  tagAttrKey,
11
11
  validateTagGroupNames
12
- } from "./chunk-LGUFJ7Y2.js";
12
+ } from "./chunk-KW3CC7SB.js";
13
13
  import {
14
14
  MAP_DIRECTIVE_KEY_SET,
15
15
  MAP_REGISTRY,
@@ -18,7 +18,7 @@ import {
18
18
  peelRampColors,
19
19
  splitNameAndMeta,
20
20
  withTagAliases
21
- } from "./chunk-FUYEXLAN.js";
21
+ } from "./chunk-RFGQDIOI.js";
22
22
  import {
23
23
  NEGATIVE_VALUE_DX,
24
24
  emit,
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  compactNumber
3
- } from "./chunk-5LG526X7.js";
3
+ } from "./chunk-5TGZBHEJ.js";
4
4
  import {
5
5
  TITLE_FONT_WEIGHT
6
- } from "./chunk-VLC6WNRD.js";
6
+ } from "./chunk-GULGSH2Z.js";
7
7
  import {
8
8
  parseInlineMarkdown
9
9
  } from "./chunk-QKPOIJBT.js";
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-ICLB27PZ.js";
13
13
  import {
14
14
  measureText
15
- } from "./chunk-KAO7JL4I.js";
15
+ } from "./chunk-PU5X3P3T.js";
16
16
  import {
17
17
  getSeriesColors,
18
18
  mix,
@@ -6,18 +6,18 @@ import {
6
6
  } from "./chunk-24YPR5EH.js";
7
7
  import {
8
8
  HEADER_HEIGHT
9
- } from "./chunk-XCKNFFKM.js";
9
+ } from "./chunk-WH6E6SHC.js";
10
10
  import {
11
11
  preprocessDescriptionLine
12
12
  } from "./chunk-IYULMRBE.js";
13
13
  import {
14
14
  injectDefaultTagMetadata,
15
15
  resolveTagColor
16
- } from "./chunk-LGUFJ7Y2.js";
16
+ } from "./chunk-KW3CC7SB.js";
17
17
  import {
18
18
  measureText,
19
19
  truncateText
20
- } from "./chunk-KAO7JL4I.js";
20
+ } from "./chunk-PU5X3P3T.js";
21
21
 
22
22
  // src/mindmap/text-wrap.ts
23
23
  var H_PAD = 16;
@@ -7,11 +7,12 @@ import {
7
7
  } from "./chunk-NOTA6TEI.js";
8
8
  import {
9
9
  AUTO_TAG_COLOR_SENTINEL,
10
+ activeTagNoMatchMessage,
10
11
  finalizeAutoTagColors,
11
12
  matchTagBlockHeading,
12
13
  stripDefaultModifier,
13
14
  tagAttrKey
14
- } from "./chunk-LGUFJ7Y2.js";
15
+ } from "./chunk-KW3CC7SB.js";
15
16
  import {
16
17
  FAMILY_PERSON_REGISTRY,
17
18
  FAMILY_UNION_REGISTRY,
@@ -26,13 +27,14 @@ import {
26
27
  tokenizeQuoteAware,
27
28
  tryParseSharedOption,
28
29
  withTagAliases
29
- } from "./chunk-FUYEXLAN.js";
30
+ } from "./chunk-RFGQDIOI.js";
30
31
  import {
31
32
  nord,
32
33
  resolveColor
33
34
  } from "./chunk-3J7O3CU6.js";
34
35
  import {
35
- emit
36
+ emit,
37
+ makeDgmoError
36
38
  } from "./chunk-BYU54C3S.js";
37
39
 
38
40
  // src/family/diagnostics.ts
@@ -148,6 +150,8 @@ function matchFamilyOption(line) {
148
150
  const h = line.match(/^highlight\s+(.+)$/i);
149
151
  if (h) return { key: "highlight", value: h[1].trim() };
150
152
  if (/^generations$/i.test(line)) return { key: "generations", value: "true" };
153
+ const at = line.match(/^active-tag\s+(.+)$/i);
154
+ if (at) return { key: "active-tag", value: at[1].trim() };
151
155
  if (/^no-daggers$/i.test(line)) return { key: "no-daggers", value: "true" };
152
156
  return null;
153
157
  }
@@ -157,6 +161,7 @@ function parseFamily(content, palette) {
157
161
  const unions = [];
158
162
  const tagGroups = [];
159
163
  const options = {};
164
+ let activeTagLine = 0;
160
165
  const rawLines = content.split("\n");
161
166
  let title;
162
167
  let titleLineNumber;
@@ -244,6 +249,7 @@ function parseFamily(content, palette) {
244
249
  const fam = matchFamilyOption(trimmed);
245
250
  if (fam) {
246
251
  options[fam.key] = fam.value;
252
+ if (fam.key === "active-tag") activeTagLine = lineNum;
247
253
  continue;
248
254
  }
249
255
  }
@@ -548,6 +554,20 @@ function parseFamily(content, palette) {
548
554
  delete options["highlight"];
549
555
  }
550
556
  }
557
+ const activeTagWarning = activeTagNoMatchMessage(
558
+ options["active-tag"],
559
+ tagGroups
560
+ );
561
+ if (activeTagWarning) {
562
+ diagnostics.push(
563
+ makeDgmoError(
564
+ activeTagLine || 1,
565
+ activeTagWarning,
566
+ "warning",
567
+ "W_ACTIVE_TAG_NO_MATCH"
568
+ )
569
+ );
570
+ }
551
571
  let error = null;
552
572
  const quotient = buildCoupleQuotient(frozenPersons, unions);
553
573
  if (quotient.cycle) {
@@ -1,16 +1,18 @@
1
1
  // src/utils/fit-canvas.ts
2
2
  var MIN_CANVAS_WIDTH = 480;
3
+ var MIN_DRAWN_TEXT_PX = 7;
3
4
  function fitDiagramToCanvas(p) {
4
5
  const scaleX = (p.width - p.padding * 2) / p.diagramW;
5
6
  let scale;
6
7
  let canvasHeight;
7
8
  let canvasWidth;
8
9
  if (p.exportMode) {
9
- scale = Math.min(p.maxScale, scaleX, 1);
10
+ const minScale = p.smallestTextPx ? MIN_DRAWN_TEXT_PX / p.smallestTextPx : 0;
11
+ scale = Math.max(Math.min(p.maxScale, scaleX, 1), minScale);
10
12
  canvasHeight = p.titleHeight + p.diagramH * scale + p.padding * 2;
11
13
  canvasWidth = Math.round(
12
14
  Math.min(
13
- p.width,
15
+ scale > scaleX ? Infinity : p.width,
14
16
  Math.max(MIN_CANVAS_WIDTH, p.diagramW * scale + p.padding * 2)
15
17
  )
16
18
  );
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-EQJ3U5EW.js";
4
4
  import {
5
5
  layoutInfra
6
- } from "./chunk-5P2L5QXE.js";
6
+ } from "./chunk-FZVCS2XY.js";
7
7
  import {
8
8
  FULL_TEXT_ATTR,
9
9
  fullNodeText
@@ -13,39 +13,41 @@ import {
13
13
  } from "./chunk-XBJJP2HN.js";
14
14
  import {
15
15
  placeEdgeLabels
16
- } from "./chunk-IN7XI6NO.js";
16
+ } from "./chunk-4NMRS6HW.js";
17
17
  import {
18
18
  parseInfra
19
- } from "./chunk-VLI6AWS3.js";
19
+ } from "./chunk-3C4OXVZJ.js";
20
20
  import {
21
21
  ScaleContext
22
22
  } from "./chunk-24YPR5EH.js";
23
+ import {
24
+ renderCollapseBar
25
+ } from "./chunk-42AZPI2W.js";
23
26
  import {
24
27
  layoutInlineHeader
25
- } from "./chunk-R5L5E3TC.js";
28
+ } from "./chunk-REKLKGR6.js";
26
29
  import {
27
30
  TITLE_FONT_SIZE,
28
31
  TITLE_FONT_WEIGHT,
29
32
  TITLE_OFFSET,
30
33
  TITLE_Y
31
- } from "./chunk-VLC6WNRD.js";
34
+ } from "./chunk-GULGSH2Z.js";
32
35
  import {
33
36
  ARROWHEAD_HEIGHT,
34
37
  ARROWHEAD_WIDTH,
35
38
  COLLAPSE_BAR_HEIGHT,
36
- COLLAPSE_BAR_INSET,
37
39
  EDGE_DASH,
38
40
  EDGE_LABEL_KNOCKOUT_OPACITY,
39
41
  EDGE_STROKE_WIDTH,
40
42
  NODE_STROKE_WIDTH
41
- } from "./chunk-XCKNFFKM.js";
43
+ } from "./chunk-WH6E6SHC.js";
42
44
  import {
43
45
  renderIntegratedLegend
44
- } from "./chunk-PGD6CNWO.js";
46
+ } from "./chunk-DFEVFLEG.js";
45
47
  import {
46
48
  getLegendExtent,
47
49
  getMaxLegendReservedHeight
48
- } from "./chunk-JILEYZ2V.js";
50
+ } from "./chunk-VVL2KKG4.js";
49
51
  import {
50
52
  preprocessDescriptionLine
51
53
  } from "./chunk-IYULMRBE.js";
@@ -57,11 +59,11 @@ import {
57
59
  } from "./chunk-ICLB27PZ.js";
58
60
  import {
59
61
  tagAttrKey
60
- } from "./chunk-LGUFJ7Y2.js";
62
+ } from "./chunk-KW3CC7SB.js";
61
63
  import {
62
64
  legendInlineRequested,
63
65
  legendSuppressed
64
- } from "./chunk-FUYEXLAN.js";
66
+ } from "./chunk-RFGQDIOI.js";
65
67
  import {
66
68
  LEGEND_CAPSULE_PAD,
67
69
  LEGEND_DOT_R,
@@ -72,12 +74,12 @@ import {
72
74
  LEGEND_PILL_FONT_SIZE,
73
75
  LEGEND_PILL_PAD,
74
76
  measureLegendText
75
- } from "./chunk-UOCWYLYT.js";
77
+ } from "./chunk-OZXKW5NA.js";
76
78
  import {
77
79
  CHAR_WIDTH_RATIO,
78
80
  measureText,
79
81
  truncateText
80
- } from "./chunk-KAO7JL4I.js";
82
+ } from "./chunk-PU5X3P3T.js";
81
83
  import {
82
84
  contrastText,
83
85
  groupFill,
@@ -172,7 +174,7 @@ function buildScaledConstants(ctx) {
172
174
  sNodeSeparatorGap: ctx.structural(NODE_SEPARATOR_GAP),
173
175
  sNodePadBottom: ctx.structural(NODE_PAD_BOTTOM),
174
176
  sCollapseBarHeight: ctx.structural(COLLAPSE_BAR_HEIGHT),
175
- sCollapseBarInset: ctx.structural(COLLAPSE_BAR_INSET),
177
+ scale: ctx,
176
178
  sParticleR: ctx.structural(PARTICLE_R),
177
179
  sRejectParticleR: ctx.structural(PARTICLE_R),
178
180
  sRejectDropDistance: ctx.structural(REJECT_DROP_DISTANCE),
@@ -907,12 +909,24 @@ function resolveGroupTagFill(metadata, activeGroup, tagGroups, palette) {
907
909
  }
908
910
  function renderGroups(svg, groups, palette, isDark, sc = buildScaledConstants(ScaleContext.identity()), activeGroup, tagGroups) {
909
911
  for (const group of groups) {
910
- const g = svg.append("g").attr("class", "infra-group").attr("data-line-number", group.lineNumber).attr("data-node-toggle", group.id).style("cursor", "pointer");
912
+ const g = svg.append("g").attr("class", "infra-group").attr("data-line-number", group.lineNumber).attr("data-node-toggle", group.id).attr("role", "button").attr("aria-expanded", "true").attr("aria-label", group.label).style("cursor", "pointer");
911
913
  const tagColor = activeGroup && tagGroups ? resolveGroupTagFill(group.metadata, activeGroup, tagGroups, palette) : null;
912
914
  const frameFill = groupFill(palette, isDark, tagColor ?? void 0);
913
915
  const frameStroke = groupStroke(palette, tagColor ?? void 0);
914
916
  g.append("rect").attr("x", group.x).attr("y", group.y).attr("width", group.width).attr("height", group.height).attr("rx", 6).attr("fill", frameFill).attr("stroke", frameStroke).attr("stroke-opacity", tagColor ? 1 : 0.35).attr("stroke-width", 1);
915
917
  g.append("text").attr("x", group.x + group.width / 2).attr("y", group.y + 16).attr("text-anchor", "middle").attr("font-family", FONT_FAMILY).attr("font-size", sc.sGroupLabelFontSize).attr("font-weight", "bold").attr("fill", palette.text).text(group.label);
918
+ renderCollapseBar(g, {
919
+ expanded: true,
920
+ x: group.x,
921
+ y: group.y,
922
+ width: group.width,
923
+ height: group.height,
924
+ rx: 6,
925
+ fill: frameStroke,
926
+ clipId: `clip-group-${group.id.replace(/[^A-Za-z0-9_-]/g, "")}`,
927
+ prefix: "infra",
928
+ scale: sc.scale
929
+ });
916
930
  const gi = typeof group.instances === "number" ? group.instances : typeof group.instances === "string" ? parseInt(String(group.instances), 10) || 0 : 0;
917
931
  if (gi > 1) {
918
932
  g.append("text").attr("x", group.x + group.width - 8).attr("y", group.y + 16).attr("text-anchor", "end").attr("font-family", FONT_FAMILY).attr("font-size", sc.sMetaFontSize).attr("fill", palette.textMuted).text(`${gi}x`);
@@ -1107,7 +1121,7 @@ function renderNodes(svg, nodes, palette, isDark, animate, expandedNodeIds, acti
1107
1121
  }
1108
1122
  const g = svg.append("g").attr("class", cls).attr("data-line-number", node.lineNumber).attr("data-infra-node", node.id).attr("data-node-collapse", node.id).style("cursor", "pointer");
1109
1123
  if (node.id.startsWith("[")) {
1110
- g.attr("data-node-toggle", node.id);
1124
+ g.attr("data-node-toggle", node.id).attr("role", "button").attr("aria-expanded", "false").attr("aria-label", node.label);
1111
1125
  }
1112
1126
  for (const [tagKey, tagVal] of Object.entries(node.tags)) {
1113
1127
  g.attr(`data-tag-${tagAttrKey(tagKey)}`, tagVal.toLowerCase());
@@ -1290,9 +1304,17 @@ function renderNodes(svg, nodes, palette, isDark, animate, expandedNodeIds, acti
1290
1304
  }
1291
1305
  }
1292
1306
  if (isCollapsedGroup) {
1293
- const clipId = `clip-${node.id.replace(/[[\]\s]/g, "")}`;
1294
- g.append("clipPath").attr("id", clipId).append("rect").attr("x", x).attr("y", y).attr("width", node.width).attr("height", node.height).attr("rx", sc.sNodeBorderRadius);
1295
- g.append("rect").attr("x", x + sc.sCollapseBarInset).attr("y", y + node.height - sc.sCollapseBarHeight).attr("width", node.width - sc.sCollapseBarInset * 2).attr("height", sc.sCollapseBarHeight).attr("fill", stroke).attr("clip-path", `url(#${clipId})`).attr("class", "infra-collapse-bar");
1307
+ renderCollapseBar(g, {
1308
+ x,
1309
+ y,
1310
+ width: node.width,
1311
+ height: node.height,
1312
+ rx: sc.sNodeBorderRadius,
1313
+ fill: stroke,
1314
+ clipId: `clip-${node.id.replace(/[[\]\s]/g, "")}`,
1315
+ prefix: "infra",
1316
+ scale: sc.scale
1317
+ });
1296
1318
  }
1297
1319
  }
1298
1320
  }