@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
@@ -1,26 +1,27 @@
1
+ import {
2
+ computeQuadrantPointLabels,
3
+ rectCircleOverlap,
4
+ rectsOverlap
5
+ } from "./chunk-YSDSFXQD.js";
1
6
  import {
2
7
  getExtendedChartLegendGroups,
3
8
  getSimpleChartLegendGroups,
4
9
  parseChart,
5
10
  parseExtendedChart
6
- } from "./chunk-P2GNNEMN.js";
7
- import {
8
- computeQuadrantPointLabels,
9
- rectCircleOverlap,
10
- rectsOverlap
11
- } from "./chunk-KMU65FYM.js";
11
+ } from "./chunk-WPYJAHRP.js";
12
12
  import {
13
13
  MIN_CANVAS_WIDTH
14
- } from "./chunk-EPDBWATV.js";
14
+ } from "./chunk-K7RRXZHS.js";
15
15
  import {
16
16
  EXPORT_HEIGHT,
17
17
  EXPORT_WIDTH,
18
18
  createExportContainer,
19
+ drawnTitleExtraHeight,
19
20
  finalizeSvgExport,
20
21
  initD3Chart,
21
22
  renderChartTitle,
22
23
  resolveExportPalette
23
- } from "./chunk-6XLMTAEX.js";
24
+ } from "./chunk-YIHRLY55.js";
24
25
  import {
25
26
  EMPHASIS_DIM_OPACITY,
26
27
  EMPHASIS_DIM_TEXT_OPACITY,
@@ -28,33 +29,33 @@ import {
28
29
  } from "./chunk-2CW5ZTNH.js";
29
30
  import {
30
31
  layoutInlineHeader
31
- } from "./chunk-R5L5E3TC.js";
32
+ } from "./chunk-REKLKGR6.js";
32
33
  import {
33
34
  TITLE_FONT_SIZE,
34
35
  TITLE_FONT_WEIGHT,
35
36
  TITLE_OFFSET,
36
37
  TITLE_Y
37
- } from "./chunk-VLC6WNRD.js";
38
+ } from "./chunk-GULGSH2Z.js";
38
39
  import {
39
40
  computeLegendLayout
40
- } from "./chunk-JILEYZ2V.js";
41
+ } from "./chunk-VVL2KKG4.js";
41
42
  import {
42
43
  FONT_FAMILY
43
44
  } from "./chunk-ICLB27PZ.js";
44
45
  import {
45
46
  tagAttrKey
46
- } from "./chunk-LGUFJ7Y2.js";
47
+ } from "./chunk-KW3CC7SB.js";
47
48
  import {
48
49
  LEGEND_DOT_R,
49
50
  LEGEND_ENTRY_FONT_SIZE,
50
51
  LEGEND_HEIGHT,
51
52
  LEGEND_PILL_FONT_SIZE,
52
53
  legendChromeColors
53
- } from "./chunk-UOCWYLYT.js";
54
+ } from "./chunk-OZXKW5NA.js";
54
55
  import {
55
56
  measureText,
56
57
  truncateText
57
- } from "./chunk-KAO7JL4I.js";
58
+ } from "./chunk-PU5X3P3T.js";
58
59
  import {
59
60
  contrastText,
60
61
  getSegmentColors,
@@ -321,10 +322,12 @@ function injectLegendGroups(svg, groups, palette, isDark, hasTitle, width, inlin
321
322
  inlineTitle.title,
322
323
  inlineTitle.titleLineNumber,
323
324
  width,
324
- inlineTitle.textColor
325
+ inlineTitle.textColor,
326
+ void 0,
327
+ 2
325
328
  );
326
329
  }
327
- const titleH = hasTitle ? 40 : 0;
330
+ const titleH = hasTitle ? 40 + drawnTitleExtraHeight(svg) : 0;
328
331
  if (groups.length === 0) return hasTitle ? titleH + 12 : 24;
329
332
  const legendY = 8 + titleH;
330
333
  const { svg: legendSvg, height: legendH } = renderLegendSvg(groups, {
@@ -2262,8 +2265,15 @@ function renderInto(s, content, palette, isDark, width, height, textColor, muted
2262
2265
  if (std && !std.error && std.data.length > 0 && STANDARD.has(std.type)) {
2263
2266
  const hasTitle2 = !std.noTitle && !!std.title;
2264
2267
  const inlineTitle2 = inlineTitleFor(std, hasTitle2, textColor);
2265
- if (hasTitle2 && !inlineTitle2)
2266
- renderChartTitle(s, std.title, std.titleLineNumber, width, textColor);
2268
+ const titleExtra2 = hasTitle2 && !inlineTitle2 ? renderChartTitle(
2269
+ s,
2270
+ std.title,
2271
+ std.titleLineNumber,
2272
+ width,
2273
+ textColor,
2274
+ void 0,
2275
+ 2
2276
+ ) : 0;
2267
2277
  switch (std.type) {
2268
2278
  case "bar":
2269
2279
  renderBar(
@@ -2305,7 +2315,7 @@ function renderInto(s, content, palette, isDark, width, height, textColor, muted
2305
2315
  palette,
2306
2316
  isDark,
2307
2317
  textColor,
2308
- hasTitle2 ? 52 : 24
2318
+ (hasTitle2 ? 52 : 24) + titleExtra2
2309
2319
  );
2310
2320
  return true;
2311
2321
  case "radar": {
@@ -2342,7 +2352,7 @@ function renderInto(s, content, palette, isDark, width, height, textColor, muted
2342
2352
  palette,
2343
2353
  isDark,
2344
2354
  textColor,
2345
- hasTitle2 ? 52 : 24
2355
+ (hasTitle2 ? 52 : 24) + titleExtra2
2346
2356
  );
2347
2357
  return true;
2348
2358
  }
@@ -2352,8 +2362,15 @@ function renderInto(s, content, palette, isDark, width, height, textColor, muted
2352
2362
  const seriesColors = getSeriesColors(palette);
2353
2363
  const hasTitle = !ext.noTitle && !!ext.title;
2354
2364
  const inlineTitle = inlineTitleFor(ext, hasTitle, textColor);
2355
- if (hasTitle && !inlineTitle)
2356
- renderChartTitle(s, ext.title, ext.titleLineNumber, width, textColor);
2365
+ const titleExtra = hasTitle && !inlineTitle ? renderChartTitle(
2366
+ s,
2367
+ ext.title,
2368
+ ext.titleLineNumber,
2369
+ width,
2370
+ textColor,
2371
+ void 0,
2372
+ 2
2373
+ ) : 0;
2357
2374
  switch (ext.type) {
2358
2375
  case "funnel":
2359
2376
  renderFunnel(
@@ -2364,7 +2381,7 @@ function renderInto(s, content, palette, isDark, width, height, textColor, muted
2364
2381
  seriesColors,
2365
2382
  palette,
2366
2383
  isDark,
2367
- hasTitle ? 52 : 24
2384
+ (hasTitle ? 52 : 24) + titleExtra
2368
2385
  );
2369
2386
  return true;
2370
2387
  case "heatmap":
@@ -2377,7 +2394,7 @@ function renderInto(s, content, palette, isDark, width, height, textColor, muted
2377
2394
  isDark,
2378
2395
  textColor,
2379
2396
  bgColor,
2380
- hasTitle ? 52 : 24
2397
+ (hasTitle ? 52 : 24) + titleExtra
2381
2398
  );
2382
2399
  return true;
2383
2400
  case "scatter": {
@@ -2414,7 +2431,7 @@ function renderInto(s, content, palette, isDark, width, height, textColor, muted
2414
2431
  seriesColors,
2415
2432
  bgColor,
2416
2433
  textColor,
2417
- hasTitle ? 52 : 24
2434
+ (hasTitle ? 52 : 24) + titleExtra
2418
2435
  );
2419
2436
  return true;
2420
2437
  case "chord":
@@ -2427,7 +2444,7 @@ function renderInto(s, content, palette, isDark, width, height, textColor, muted
2427
2444
  palette,
2428
2445
  isDark,
2429
2446
  textColor,
2430
- hasTitle ? 52 : 24
2447
+ (hasTitle ? 52 : 24) + titleExtra
2431
2448
  );
2432
2449
  return true;
2433
2450
  case "function": {
@@ -7,25 +7,25 @@ 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
  renderIntegratedLegend
13
- } from "./chunk-PGD6CNWO.js";
13
+ } from "./chunk-DFEVFLEG.js";
14
14
  import {
15
15
  getMaxLegendReservedHeight
16
- } from "./chunk-JILEYZ2V.js";
16
+ } from "./chunk-VVL2KKG4.js";
17
17
  import {
18
18
  FONT_FAMILY
19
19
  } from "./chunk-ICLB27PZ.js";
20
20
  import {
21
21
  tagAttrKey
22
- } from "./chunk-LGUFJ7Y2.js";
22
+ } from "./chunk-KW3CC7SB.js";
23
23
  import {
24
24
  LEGEND_GROUP_GAP
25
- } from "./chunk-UOCWYLYT.js";
25
+ } from "./chunk-OZXKW5NA.js";
26
26
  import {
27
27
  measureText
28
- } from "./chunk-KAO7JL4I.js";
28
+ } from "./chunk-PU5X3P3T.js";
29
29
  import {
30
30
  contrastRatio,
31
31
  contrastText,
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  clipEndpointsToNodes,
3
3
  groupedTierCandidates
4
- } from "./chunk-VGAMBOOC.js";
4
+ } from "./chunk-C6ME2L4T.js";
5
5
  import {
6
6
  computeNodeSize
7
- } from "./chunk-THTYCJGF.js";
7
+ } from "./chunk-BWVJTYTJ.js";
8
8
  import {
9
9
  NODE_HEIGHT,
10
10
  NODE_WIDTH
@@ -12,7 +12,7 @@ import {
12
12
  import {
13
13
  EDGE_LABEL_FONT_SIZE,
14
14
  measureEdgeLabel
15
- } from "./chunk-IN7XI6NO.js";
15
+ } from "./chunk-4NMRS6HW.js";
16
16
 
17
17
  // src/boxes-and-lines/layout-search.ts
18
18
  import dagre from "@dagrejs/dagre";
@@ -774,7 +774,9 @@ function tryStableCollapseLayout(input) {
774
774
  const r = shift(rects.get(gid(label)));
775
775
  groups.push({
776
776
  label,
777
- lineNumber: 0,
777
+ // The `[Group]` header line, so the folded pill's toggle points at the
778
+ // line the `collapsed` marker belongs on (#1741).
779
+ lineNumber: collapseInfo.originalGroups.find((og) => og.label === label)?.lineNumber ?? 0,
778
780
  x: r.x,
779
781
  y: r.y,
780
782
  width: r.width,
@@ -1747,7 +1749,9 @@ async function layoutBoxesAndLinesSearch(parsed, collapseInfo, opts) {
1747
1749
  const p = g.node(gid2(label));
1748
1750
  groups.push({
1749
1751
  label,
1750
- lineNumber: 0,
1752
+ // The `[Group]` header line, so the folded pill's toggle points at the
1753
+ // line the `collapsed` marker belongs on (#1741).
1754
+ lineNumber: collapseInfo?.originalGroups.find((og) => og.label === label)?.lineNumber ?? 0,
1751
1755
  x: p.x,
1752
1756
  y: p.y,
1753
1757
  width: p.width,
@@ -8,21 +8,21 @@ import {
8
8
  rectCircleOverlap,
9
9
  rectsOverlap,
10
10
  segmentRectOverlap
11
- } from "./chunk-KMU65FYM.js";
11
+ } from "./chunk-YSDSFXQD.js";
12
12
  import {
13
13
  TITLE_FONT_SIZE,
14
14
  TITLE_Y
15
- } from "./chunk-VLC6WNRD.js";
15
+ } from "./chunk-GULGSH2Z.js";
16
16
  import {
17
17
  compactNumber,
18
18
  computeLegendLayout
19
- } from "./chunk-JILEYZ2V.js";
19
+ } from "./chunk-VVL2KKG4.js";
20
20
  import {
21
21
  tagAttrKey
22
- } from "./chunk-LGUFJ7Y2.js";
22
+ } from "./chunk-KW3CC7SB.js";
23
23
  import {
24
24
  measureLegendText
25
- } from "./chunk-UOCWYLYT.js";
25
+ } from "./chunk-OZXKW5NA.js";
26
26
  import {
27
27
  contrastRatio,
28
28
  mix,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  computeNodeText,
3
3
  layoutMindmap
4
- } from "./chunk-WGNP5ND2.js";
4
+ } from "./chunk-J3YM6RA5.js";
5
5
  import {
6
6
  FULL_TEXT_ATTR,
7
7
  fullNodeText,
@@ -9,35 +9,37 @@ import {
9
9
  } from "./chunk-B5DHFFZP.js";
10
10
  import {
11
11
  parseMindmap
12
- } from "./chunk-SIABEREK.js";
12
+ } from "./chunk-KTGJQJB3.js";
13
13
  import {
14
14
  extractExportSvg,
15
15
  runInExportContainer
16
- } from "./chunk-TOHTKLKE.js";
16
+ } from "./chunk-Q5Q5JLRT.js";
17
17
  import {
18
18
  ScaleContext
19
19
  } from "./chunk-24YPR5EH.js";
20
+ import {
21
+ renderCollapseBar
22
+ } from "./chunk-42AZPI2W.js";
20
23
  import {
21
24
  layoutInlineHeader
22
- } from "./chunk-R5L5E3TC.js";
25
+ } from "./chunk-REKLKGR6.js";
23
26
  import {
24
27
  TITLE_FONT_SIZE,
25
28
  TITLE_FONT_WEIGHT
26
- } from "./chunk-VLC6WNRD.js";
29
+ } from "./chunk-GULGSH2Z.js";
27
30
  import {
28
31
  CARD_RADIUS,
29
- COLLAPSE_BAR_HEIGHT,
30
32
  EDGE_STROKE_WIDTH,
31
33
  HEADER_HEIGHT,
32
34
  NODE_STROKE_WIDTH
33
- } from "./chunk-XCKNFFKM.js";
35
+ } from "./chunk-WH6E6SHC.js";
34
36
  import {
35
37
  renderIntegratedLegend
36
- } from "./chunk-PGD6CNWO.js";
38
+ } from "./chunk-DFEVFLEG.js";
37
39
  import {
38
40
  getLegendExtent,
39
41
  getMaxLegendReservedHeight
40
- } from "./chunk-JILEYZ2V.js";
42
+ } from "./chunk-VVL2KKG4.js";
41
43
  import {
42
44
  preprocessDescriptionLine
43
45
  } from "./chunk-IYULMRBE.js";
@@ -49,15 +51,15 @@ import {
49
51
  } from "./chunk-ICLB27PZ.js";
50
52
  import {
51
53
  tagAttrKey
52
- } from "./chunk-LGUFJ7Y2.js";
54
+ } from "./chunk-KW3CC7SB.js";
53
55
  import {
54
56
  fillModeFromOptions,
55
57
  legendInlineRequested,
56
58
  legendSuppressed
57
- } from "./chunk-FUYEXLAN.js";
59
+ } from "./chunk-RFGQDIOI.js";
58
60
  import {
59
61
  LEGEND_GROUP_GAP
60
- } from "./chunk-UOCWYLYT.js";
62
+ } from "./chunk-OZXKW5NA.js";
61
63
  import {
62
64
  contrastText,
63
65
  shapeFill
@@ -378,11 +380,19 @@ function renderMindmap(container, parsed, layout, palette, isDark, onClickItem,
378
380
  }
379
381
  }
380
382
  }
381
- if (!isExport && node.hiddenCount != null && node.hiddenCount > 0) {
382
- const clipId = `collapse-clip-${node.id}`;
383
- const defs = mainG.append("defs");
384
- defs.append("clipPath").attr("id", clipId).append("rect").attr("x", node.x).attr("y", node.y).attr("width", node.width).attr("height", node.height).attr("rx", CARD_RADIUS).attr("ry", CARD_RADIUS);
385
- nodeG.append("rect").attr("class", "collapse-bar").attr("x", node.x).attr("y", node.y + node.height - COLLAPSE_BAR_HEIGHT).attr("width", node.width).attr("height", COLLAPSE_BAR_HEIGHT).attr("fill", stroke).attr("clip-path", `url(#${clipId})`);
383
+ if (node.hasChildren) {
384
+ renderCollapseBar(nodeG, {
385
+ expanded: !(node.hiddenCount != null && node.hiddenCount > 0),
386
+ x: node.x,
387
+ y: node.y,
388
+ width: node.width,
389
+ height: node.height,
390
+ rx: CARD_RADIUS,
391
+ fill: stroke,
392
+ clipId: `collapse-clip-${node.id}`,
393
+ prefix: "mindmap",
394
+ scale: ctx
395
+ });
386
396
  }
387
397
  if (onClickItem) {
388
398
  nodeG.style("cursor", "pointer").on("click", (event) => {
@@ -1,31 +1,35 @@
1
1
  import {
2
2
  createTooltip,
3
+ drawnTitleExtraHeight,
3
4
  hideTooltip,
4
5
  renderChartTitle,
5
6
  showTooltip
6
- } from "./chunk-6XLMTAEX.js";
7
+ } from "./chunk-YIHRLY55.js";
7
8
  import {
8
9
  MONTH_ABBR,
9
10
  capLabelColumn,
10
11
  computeTimeTicks,
11
12
  showFullOnHover
12
- } from "./chunk-NERQSSYD.js";
13
+ } from "./chunk-D67YE4LR.js";
13
14
  import {
14
15
  parseTimelineDate
15
- } from "./chunk-AUXUNV73.js";
16
+ } from "./chunk-O3HRF25Z.js";
16
17
  import {
17
18
  ScaleContext
18
19
  } from "./chunk-24YPR5EH.js";
20
+ import {
21
+ renderCollapseBar
22
+ } from "./chunk-42AZPI2W.js";
19
23
  import {
20
24
  EDGE_DASH,
21
25
  GRID_DASH,
22
26
  scaleDash
23
- } from "./chunk-XCKNFFKM.js";
27
+ } from "./chunk-WH6E6SHC.js";
24
28
  import {
25
29
  keepSwimlaneToggleFocus,
26
30
  renderIntegratedLegend,
27
31
  wireSwimlaneToggle
28
- } from "./chunk-PGD6CNWO.js";
32
+ } from "./chunk-DFEVFLEG.js";
29
33
  import {
30
34
  DEFAULT_PALETTE_ID,
31
35
  getPalette
@@ -36,7 +40,7 @@ import {
36
40
  import {
37
41
  resolveTagColor,
38
42
  tagAttrKey
39
- } from "./chunk-LGUFJ7Y2.js";
43
+ } from "./chunk-KW3CC7SB.js";
40
44
  import {
41
45
  LEGEND_CAPSULE_PAD,
42
46
  LEGEND_DOT_R,
@@ -49,10 +53,10 @@ import {
49
53
  legendChromeColors,
50
54
  measureLegendText,
51
55
  truncateLegendText
52
- } from "./chunk-UOCWYLYT.js";
56
+ } from "./chunk-OZXKW5NA.js";
53
57
  import {
54
58
  measureText
55
- } from "./chunk-KAO7JL4I.js";
59
+ } from "./chunk-PU5X3P3T.js";
56
60
  import {
57
61
  getEraColors,
58
62
  getSeriesColors,
@@ -81,6 +85,19 @@ import * as d3Scale from "d3-scale";
81
85
  import * as d3Selection from "d3-selection";
82
86
  var MIN_TOP_SCALE_BAND = 26;
83
87
  var MIN_BOTTOM_BAND = 30;
88
+ function wrappedTitleExtra(title, width) {
89
+ if (!title) return 0;
90
+ const probe = d3Selection.create("svg");
91
+ return renderChartTitle(
92
+ probe,
93
+ title,
94
+ null,
95
+ width,
96
+ "currentColor",
97
+ void 0,
98
+ 2
99
+ );
100
+ }
84
101
  function renderEras(g, eras, scale, isVertical, innerWidth, innerHeight, onEnter, onLeave, hasScale = false, _tooltip = null, palette, reservedLabelY, fillMode, outlineBg) {
85
102
  const eraColors = getEraColors(
86
103
  palette ?? getPalette(DEFAULT_PALETTE_ID).light
@@ -752,7 +769,7 @@ function renderTimelineTagLegendOverlay(container, parsed, palette, isDark, setu
752
769
  });
753
770
  };
754
771
  var drawSwimlaneIcon = drawSwimlaneIcon2, relayout = relayout2, drawLegend = drawLegend2, recolorEvents = recolorEvents2;
755
- const legendY = title ? 50 : 10;
772
+ const legendY = title ? 50 + drawnTitleExtraHeight(mainSvg) : 10;
756
773
  const legendGroups = parsed.timelineTagGroups.map((g) => {
757
774
  const pillW = measureLegendText(g.name, LG_PILL_FONT_SIZE) + LG_PILL_PAD;
758
775
  const iconSpace = viewMode ? 8 : LG_ICON_W + 4;
@@ -821,7 +838,7 @@ function renderTimelineHorizontalTimeSort(container, parsed, palette, isDark, se
821
838
  const topScaleH = timelineScale ? Math.max(ctx.structural(40), MIN_TOP_SCALE_BAND) : 0;
822
839
  const hasGroupLegend = timelineGroups.length > 0 && !parsed.noLegend;
823
840
  const margin = {
824
- top: 50 + (hasGroupLegend ? 54 : ctx.aesthetic(54)) + topScaleH + eraReserve + markerReserve + tagLegendReserve,
841
+ top: 50 + wrappedTitleExtra(title, width) + (hasGroupLegend ? 54 : ctx.aesthetic(54)) + topScaleH + eraReserve + markerReserve + tagLegendReserve,
825
842
  right: ctx.aesthetic(40),
826
843
  bottom: Math.max(ctx.aesthetic(40), MIN_BOTTOM_BAND) + scaleMargin,
827
844
  left: ctx.aesthetic(60)
@@ -846,7 +863,8 @@ function renderTimelineHorizontalTimeSort(container, parsed, palette, isDark, se
846
863
  parsed.titleLineNumber,
847
864
  width,
848
865
  textColor,
849
- onClickItem
866
+ onClickItem,
867
+ 2
850
868
  );
851
869
  renderEras(
852
870
  g,
@@ -1044,6 +1062,9 @@ function renderTimelineHorizontalGrouped(container, parsed, palette, isDark, set
1044
1062
  )
1045
1063
  }));
1046
1064
  }
1065
+ const laneLineNumber = new Map(
1066
+ tagLanes ? [] : timelineGroups.map((gr) => [gr.name, String(gr.lineNumber)])
1067
+ );
1047
1068
  const totalRows = lanes.reduce((s, l) => {
1048
1069
  if (collapsedGroups.has(l.name)) return s + 1;
1049
1070
  return s + l.events.length + 1;
@@ -1066,7 +1087,7 @@ function renderTimelineHorizontalGrouped(container, parsed, palette, isDark, set
1066
1087
  ctx.aesthetic(140)
1067
1088
  );
1068
1089
  const dynamicLeftMargin = labelColumn.width;
1069
- const baseTopMargin = title ? 50 : ctx.aesthetic(20);
1090
+ const baseTopMargin = title ? 50 + wrappedTitleExtra(title, width) : ctx.aesthetic(20);
1070
1091
  const margin = {
1071
1092
  top: baseTopMargin + topScaleH + eraReserve + markerReserve + tagLegendReserve,
1072
1093
  right: ctx.aesthetic(40),
@@ -1094,7 +1115,8 @@ function renderTimelineHorizontalGrouped(container, parsed, palette, isDark, set
1094
1115
  parsed.titleLineNumber,
1095
1116
  width,
1096
1117
  textColor,
1097
- onClickItem
1118
+ onClickItem,
1119
+ 2
1098
1120
  );
1099
1121
  renderEras(
1100
1122
  g,
@@ -1146,7 +1168,6 @@ function renderTimelineHorizontalGrouped(container, parsed, palette, isDark, set
1146
1168
  for (const lane of lanes) {
1147
1169
  const laneColor = groupColorMap.get(lane.name) ?? textColor;
1148
1170
  const isCollapsed = collapsedGroups.has(lane.name);
1149
- const toggleIcon = isCollapsed ? "\u25B6" : "\u25BC";
1150
1171
  const bandX = -margin.left + 5;
1151
1172
  const bandW = margin.left - 7;
1152
1173
  const bandY = curY;
@@ -1157,9 +1178,43 @@ function renderTimelineHorizontalGrouped(container, parsed, palette, isDark, set
1157
1178
  g.append("clipPath").attr("id", clipId).append("rect").attr("x", bandX).attr("y", bandY).attr("width", bandW).attr("height", bandH).attr("rx", sBandRx);
1158
1179
  g.append("rect").attr("class", "tl-group-header-bg").attr("data-group", lane.name).attr("x", bandX).attr("y", bandY).attr("width", bandW).attr("height", bandH).attr("rx", sBandRx).attr("fill", shapeFill(palette, laneColor, isDark, { mode: fillMode })).style("pointer-events", "none");
1159
1180
  g.append("rect").attr("class", "tl-group-header-accent").attr("data-group", lane.name).attr("x", bandX).attr("y", bandY).attr("width", sBandAccentW).attr("height", bandH).attr("fill", laneColor).attr("clip-path", `url(#${clipId})`).style("pointer-events", "none");
1181
+ if (isCollapsed) {
1182
+ renderCollapseBar(g, {
1183
+ x: bandX,
1184
+ y: bandY,
1185
+ width: bandW,
1186
+ height: bandH,
1187
+ rx: sBandRx,
1188
+ fill: laneColor,
1189
+ clipId: `${clipId}-bar`,
1190
+ prefix: "tl",
1191
+ scale: ctx
1192
+ }).style("pointer-events", "none");
1193
+ }
1160
1194
  const headerG = g.append("g").attr("class", "tl-group-header").attr("data-group", lane.name).style("cursor", "pointer").on("mouseenter", () => fadeToGroup(g, lane.name)).on("mouseleave", () => fadeReset(g)).on("click", () => toggleGroup(lane.name));
1195
+ if (lane.events.length > 0) {
1196
+ const headerLine = laneLineNumber.get(lane.name);
1197
+ if (headerLine !== void 0) {
1198
+ headerG.attr("data-group-toggle", lane.name).attr("data-line-number", headerLine).attr("role", "button").attr("aria-expanded", isCollapsed ? "false" : "true").attr("aria-label", lane.name);
1199
+ }
1200
+ headerG.append("rect").attr("class", "tl-group-header-hit").attr("x", bandX).attr("y", bandY).attr("width", bandW).attr("height", bandH).attr("fill", "transparent");
1201
+ if (!isCollapsed && headerLine !== void 0) {
1202
+ renderCollapseBar(headerG, {
1203
+ expanded: true,
1204
+ x: bandX,
1205
+ y: bandY,
1206
+ width: bandW,
1207
+ height: bandH,
1208
+ rx: sBandRx,
1209
+ fill: laneColor,
1210
+ clipId: `${clipId}-bar`,
1211
+ prefix: "tl",
1212
+ scale: ctx
1213
+ });
1214
+ }
1215
+ }
1161
1216
  const headerText = headerG.append("text").attr("x", bandX + 5).attr("y", curY + sBarH / 2).attr("dy", "0.35em").attr("text-anchor", "start").attr("fill", textColor).attr("font-size", sLaneHeaderFont).attr("font-weight", "bold");
1162
- const headerFull = `${toggleIcon} ${lane.name}`;
1217
+ const headerFull = lane.name;
1163
1218
  showFullOnHover(
1164
1219
  headerG,
1165
1220
  headerText,
@@ -1344,7 +1399,7 @@ function renderTimelineVertical(container, parsed, palette, isDark, setup, hover
1344
1399
  const scaleMargin = timelineScale ? ctx.aesthetic(40) : 0;
1345
1400
  const markerMargin = timelineMarkers.length > 0 ? ctx.aesthetic(30) : 0;
1346
1401
  const margin = {
1347
- top: ctx.aesthetic(104) + markerMargin + tagLegendReserve,
1402
+ top: ctx.aesthetic(104) + wrappedTitleExtra(title, width) + markerMargin + tagLegendReserve,
1348
1403
  right: ctx.aesthetic(40) + scaleMargin,
1349
1404
  bottom: ctx.aesthetic(40),
1350
1405
  left: ctx.aesthetic(60) + scaleMargin
@@ -1361,7 +1416,8 @@ function renderTimelineVertical(container, parsed, palette, isDark, setup, hover
1361
1416
  parsed.titleLineNumber,
1362
1417
  width,
1363
1418
  textColor,
1364
- onClickItem
1419
+ onClickItem,
1420
+ 2
1365
1421
  );
1366
1422
  renderEras(
1367
1423
  g,
@@ -1485,7 +1541,7 @@ function renderTimelineVertical(container, parsed, palette, isDark, setup, hover
1485
1541
  const scaleMargin = timelineScale ? ctx.aesthetic(40) : 0;
1486
1542
  const markerMargin = timelineMarkers.length > 0 ? ctx.aesthetic(30) : 0;
1487
1543
  const margin = {
1488
- top: ctx.aesthetic(104) + markerMargin + tagLegendReserve,
1544
+ top: ctx.aesthetic(104) + wrappedTitleExtra(title, width) + markerMargin + tagLegendReserve,
1489
1545
  right: ctx.aesthetic(200),
1490
1546
  bottom: ctx.aesthetic(40),
1491
1547
  left: ctx.aesthetic(60) + scaleMargin
@@ -1503,7 +1559,8 @@ function renderTimelineVertical(container, parsed, palette, isDark, setup, hover
1503
1559
  parsed.titleLineNumber,
1504
1560
  width,
1505
1561
  textColor,
1506
- onClickItem
1562
+ onClickItem,
1563
+ 2
1507
1564
  );
1508
1565
  renderEras(
1509
1566
  g,
@@ -1628,6 +1685,11 @@ function renderTimelineVertical(container, parsed, palette, isDark, setup, hover
1628
1685
  }
1629
1686
  }
1630
1687
  var timelineCollapseState = /* @__PURE__ */ new WeakMap();
1688
+ function collapsedTimelineGroupsFromSource(parsed) {
1689
+ return new Set(
1690
+ parsed.timelineGroups.filter((g) => g.collapsed).map((g) => g.name)
1691
+ );
1692
+ }
1631
1693
  var tlBandClipCounter = 0;
1632
1694
  function renderTimeline(container, parsed, palette, isDark, onClickItem, exportDims, activeTagGroup, swimlaneTagGroup, onTagStateChange, viewMode, exportMode) {
1633
1695
  keepSwimlaneToggleFocus(
@@ -1661,11 +1723,18 @@ function drawTimeline(container, parsed, palette, isDark, onClickItem, exportDim
1661
1723
  swimlaneTagGroup = setup.swimlaneTagGroup;
1662
1724
  const { isVertical, tagLanes } = setup;
1663
1725
  const hovers = makeTimelineHoverHelpers();
1664
- let collapsedGroups = timelineCollapseState.get(container);
1665
- if (!collapsedGroups) {
1666
- collapsedGroups = /* @__PURE__ */ new Set();
1667
- timelineCollapseState.set(container, collapsedGroups);
1726
+ let foldState = timelineCollapseState.get(container);
1727
+ if (!foldState) {
1728
+ foldState = { collapsed: /* @__PURE__ */ new Set(), markers: /* @__PURE__ */ new Set() };
1729
+ timelineCollapseState.set(container, foldState);
1668
1730
  }
1731
+ const markers = collapsedTimelineGroupsFromSource(parsed);
1732
+ for (const m of markers)
1733
+ if (!foldState.markers.has(m)) foldState.collapsed.add(m);
1734
+ for (const m of foldState.markers)
1735
+ if (!markers.has(m)) foldState.collapsed.delete(m);
1736
+ foldState.markers = markers;
1737
+ const collapsedGroups = foldState.collapsed;
1669
1738
  function toggleGroup(name) {
1670
1739
  if (collapsedGroups.has(name)) collapsedGroups.delete(name);
1671
1740
  else collapsedGroups.add(name);
@@ -2,11 +2,11 @@ import {
2
2
  TITLE_FONT_SIZE,
3
3
  TITLE_FONT_WEIGHT,
4
4
  TITLE_Y
5
- } from "./chunk-VLC6WNRD.js";
5
+ } from "./chunk-GULGSH2Z.js";
6
6
  import {
7
7
  EDGE_DASH,
8
8
  HAIRLINE_DASH
9
- } from "./chunk-XCKNFFKM.js";
9
+ } from "./chunk-WH6E6SHC.js";
10
10
  import {
11
11
  FONT_FAMILY
12
12
  } from "./chunk-ICLB27PZ.js";