@diagrammo/dgmo 0.96.0 → 0.97.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 (261) hide show
  1. package/dist/advanced.d.ts +172 -8
  2. package/dist/advanced.js +225 -243
  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-MVUNMJKO.js → chunk-2FMOLWX4.js} +71 -57
  12. package/dist/{chunk-2BYFNZVM.js → chunk-2SZILMQT.js} +57 -15
  13. package/dist/{chunk-VLI6AWS3.js → chunk-3C4OXVZJ.js} +2 -2
  14. package/dist/{chunk-OO4GUE4E.js → chunk-3HL6NSSQ.js} +63 -18
  15. package/dist/{chunk-RGFVHYDP.js → chunk-3IUMSK72.js} +2 -2
  16. package/dist/{chunk-LRHPBWOY.js → chunk-44RLIAYC.js} +17 -10
  17. package/dist/{chunk-H7AXCRO7.js → chunk-453IWXZ3.js} +0 -11
  18. package/dist/{chunk-FHX373L5.js → chunk-47INRTZ6.js} +2 -2
  19. package/dist/{chunk-IN7XI6NO.js → chunk-4NMRS6HW.js} +1 -1
  20. package/dist/{chunk-HH3DHNQA.js → chunk-4TK26YHH.js} +2 -2
  21. package/dist/{chunk-5LG526X7.js → chunk-5TGZBHEJ.js} +1 -1
  22. package/dist/{chunk-BD4O4D2A.js → chunk-5WZYJC2P.js} +2 -2
  23. package/dist/{chunk-DPNSDCR3.js → chunk-65JFUANT.js} +1 -1
  24. package/dist/{chunk-EZ6BI5LL.js → chunk-6OUMYNAJ.js} +1 -1
  25. package/dist/{chunk-U6N547QA.js → chunk-6PUBFB6D.js} +24 -3
  26. package/dist/{chunk-5GU6C5WB.js → chunk-6S2H6EKN.js} +3 -3
  27. package/dist/{chunk-OYGJZA24.js → chunk-6SDEXSJY.js} +39 -19
  28. package/dist/{chunk-IKXQ6NVR.js → chunk-6YBZFOTA.js} +13 -13
  29. package/dist/{chunk-4B45SNZH.js → chunk-74XR7Z3I.js} +13 -13
  30. package/dist/{chunk-VNAPEZX2.js → chunk-7ASVGFW3.js} +1 -1
  31. package/dist/{chunk-RTRORHSP.js → chunk-7QKWU7FX.js} +3 -3
  32. package/dist/{chunk-A6YINTY6.js → chunk-7RACGVUY.js} +1 -1
  33. package/dist/{chunk-5G4DOOX2.js → chunk-7TEAFIEJ.js} +9 -5
  34. package/dist/{chunk-UNCCZ3NU.js → chunk-A3V72YIL.js} +14 -1
  35. package/dist/{chunk-VJ7NLYFE.js → chunk-A5LFM62B.js} +3 -3
  36. package/dist/{chunk-P3PSLC2K.js → chunk-AULFF7L2.js} +2 -2
  37. package/dist/{chunk-SCYVGPLI.js → chunk-B7ZH5EQ2.js} +2 -2
  38. package/dist/{chunk-VGAMBOOC.js → chunk-C6ME2L4T.js} +2 -2
  39. package/dist/{chunk-B2YVZ3QU.js → chunk-CGP7RGLJ.js} +1 -1
  40. package/dist/{chunk-67N26CER.js → chunk-CLW45YKE.js} +2 -1
  41. package/dist/{chunk-THTYCJGF.js → chunk-CUOMNKYW.js} +4 -4
  42. package/dist/{chunk-34JOHSVE.js → chunk-CUTEHGXO.js} +2 -2
  43. package/dist/{chunk-NERQSSYD.js → chunk-D67YE4LR.js} +1 -1
  44. package/dist/{chunk-DKCVAQU3.js → chunk-D7KZE2XJ.js} +39 -17
  45. package/dist/{chunk-PGD6CNWO.js → chunk-DFEVFLEG.js} +3 -3
  46. package/dist/{chunk-VVTCUIPN.js → chunk-DKMZ4VMV.js} +1 -1
  47. package/dist/{chunk-H7JVKUA5.js → chunk-DRY4W4W6.js} +36 -15
  48. package/dist/{chunk-IQZSKWE5.js → chunk-E6GHXMH2.js} +8 -8
  49. package/dist/{chunk-I2I2FKAK.js → chunk-EBJLT7PH.js} +1 -1
  50. package/dist/{chunk-GEHK4UD5.js → chunk-EEIGHOJR.js} +92 -23
  51. package/dist/{chunk-FKJWZWNU.js → chunk-EUPUVYWO.js} +1 -1
  52. package/dist/{chunk-3W73ZP6W.js → chunk-F2OAZHOX.js} +3 -3
  53. package/dist/{chunk-IU7XKZA6.js → chunk-FK6HZYGK.js} +4 -14
  54. package/dist/{chunk-2M3K6GD2.js → chunk-FTW2E2YH.js} +6 -6
  55. package/dist/{chunk-5P2L5QXE.js → chunk-FZVCS2XY.js} +4 -2
  56. package/dist/chunk-G24NSISJ.js +69 -0
  57. package/dist/{chunk-5H7SA5ZD.js → chunk-GFQFLLP3.js} +2 -2
  58. package/dist/{chunk-BUVLLK3D.js → chunk-GLLYHYGT.js} +27 -17
  59. package/dist/{chunk-VLC6WNRD.js → chunk-GULGSH2Z.js} +4 -0
  60. package/dist/{chunk-H5NVCOEJ.js → chunk-GXBH7WNN.js} +2 -2
  61. package/dist/{chunk-7UWVHNPM.js → chunk-H242TVAE.js} +9 -9
  62. package/dist/{chunk-M4ZUIW3J.js → chunk-H7DZYHQF.js} +3 -3
  63. package/dist/{chunk-GLCMUTO5.js → chunk-HQNZJMNS.js} +1 -1
  64. package/dist/{chunk-H7RQG4PH.js → chunk-IAM3IDL4.js} +2 -2
  65. package/dist/{chunk-WTPS73RM.js → chunk-II6D6NWX.js} +8 -8
  66. package/dist/{chunk-5ARANBIE.js → chunk-IUFTAFGN.js} +2 -2
  67. package/dist/{chunk-AQRSEQZV.js → chunk-IZEKHIV6.js} +3 -3
  68. package/dist/{chunk-WGNP5ND2.js → chunk-J3YM6RA5.js} +3 -3
  69. package/dist/{chunk-YFIUABSF.js → chunk-J467QBZF.js} +23 -3
  70. package/dist/{chunk-CD7VQCDL.js → chunk-J7JF4QKA.js} +40 -30
  71. package/dist/{chunk-MYHR3PMH.js → chunk-JULBDTNU.js} +7 -7
  72. package/dist/{chunk-EPDBWATV.js → chunk-K7RRXZHS.js} +4 -2
  73. package/dist/{chunk-YVIPJGFG.js → chunk-KMB754DO.js} +33 -6
  74. package/dist/chunk-KNKZGRRB.js +439 -0
  75. package/dist/{chunk-SIABEREK.js → chunk-KTGJQJB3.js} +2 -2
  76. package/dist/{chunk-LGUFJ7Y2.js → chunk-KW3CC7SB.js} +1 -1
  77. package/dist/{chunk-ITDF3MWD.js → chunk-L3K5O3Z5.js} +3 -3
  78. package/dist/chunk-LRTSTDJ6.js +126 -0
  79. package/dist/{chunk-NI4L6HEU.js → chunk-LZATSXAA.js} +1 -1
  80. package/dist/{chunk-RVOSA4RR.js → chunk-MJ725XHD.js} +441 -267
  81. package/dist/{chunk-EPB3UEMD.js → chunk-NBISN6FH.js} +2 -2
  82. package/dist/{chunk-IZFJZCF6.js → chunk-NN5RUHXV.js} +84 -16
  83. package/dist/{chunk-KDWEOT54.js → chunk-NOZMRPXI.js} +96 -153
  84. package/dist/{chunk-EM5SA7NC.js → chunk-NQFZ7LXC.js} +4 -4
  85. package/dist/chunk-NTDWVTEY.js +12 -0
  86. package/dist/{chunk-AUXUNV73.js → chunk-O3HRF25Z.js} +1 -1
  87. package/dist/{chunk-GLL237AP.js → chunk-OSSA5UWA.js} +3 -3
  88. package/dist/{chunk-UOCWYLYT.js → chunk-OZXKW5NA.js} +1 -1
  89. package/dist/{chunk-QEU6VM4O.js → chunk-PLQZJZ2K.js} +1 -1
  90. package/dist/chunk-PRG7NIUU.js +272 -0
  91. package/dist/{chunk-MAYTYF5S.js → chunk-PSNRB75I.js} +3 -3
  92. package/dist/{chunk-B5CEV7IR.js → chunk-PT5VFY3B.js} +38 -14
  93. package/dist/{chunk-KAO7JL4I.js → chunk-PU5X3P3T.js} +6 -5
  94. package/dist/{chunk-B7BSRVNC.js → chunk-PZ5LAAO3.js} +2 -2
  95. package/dist/{chunk-TOHTKLKE.js → chunk-Q5Q5JLRT.js} +1 -1
  96. package/dist/{chunk-TUOZ6AXC.js → chunk-Q6V342WS.js} +16 -4
  97. package/dist/{chunk-ZOKD5F7M.js → chunk-QDPTOIG7.js} +5 -5
  98. package/dist/{chunk-ERT7XDQW.js → chunk-QIITSGI5.js} +1 -1
  99. package/dist/{chunk-K2WXMXI2.js → chunk-QLIZ7SB7.js} +1 -1
  100. package/dist/chunk-QLNLRZ37.js +181 -0
  101. package/dist/{chunk-P6LKX3IQ.js → chunk-QOLRTPGH.js} +6 -6
  102. package/dist/{chunk-FBK32S4D.js → chunk-R4SXMBGF.js} +1 -1
  103. package/dist/chunk-R4U7IIRX.js +178 -0
  104. package/dist/{chunk-DWMQ24JR.js → chunk-RC6PISCK.js} +4 -2
  105. package/dist/{chunk-R5L5E3TC.js → chunk-REKLKGR6.js} +3 -3
  106. package/dist/{chunk-FUYEXLAN.js → chunk-RFGQDIOI.js} +837 -220
  107. package/dist/{chunk-W5MMPPGX.js → chunk-ROFSIFSY.js} +4 -4
  108. package/dist/{chunk-JCC3B2GS.js → chunk-ROH4LYBL.js} +65 -21
  109. package/dist/{chunk-OAZ6BIIB.js → chunk-SNDCXT5R.js} +9 -7
  110. package/dist/{chunk-JRN2CRXJ.js → chunk-TDUBTDXS.js} +1 -1
  111. package/dist/{chunk-GM2SLMQW.js → chunk-TMB4YY3J.js} +34 -4
  112. package/dist/{chunk-ZBOIYC2G.js → chunk-V3ICBS2O.js} +5 -5
  113. package/dist/{chunk-HZX4QZGR.js → chunk-V65EDV6S.js} +3 -3
  114. package/dist/{chunk-67RKJEKF.js → chunk-VKT3BVRO.js} +35 -11
  115. package/dist/{chunk-5BG4OSWJ.js → chunk-VOO65FKC.js} +12 -12
  116. package/dist/{chunk-KQAPFIYF.js → chunk-VQWLASDC.js} +2 -2
  117. package/dist/{chunk-JILEYZ2V.js → chunk-VVL2KKG4.js} +1 -1
  118. package/dist/{chunk-D7DGLJ7N.js → chunk-VVZDBUHA.js} +2 -2
  119. package/dist/{chunk-JBAFAKGX.js → chunk-W46OMHOK.js} +23 -27
  120. package/dist/{chunk-XCKNFFKM.js → chunk-WH6E6SHC.js} +2 -4
  121. package/dist/{chunk-P2GNNEMN.js → chunk-WPYJAHRP.js} +1 -1
  122. package/dist/{chunk-TPCP2UOI.js → chunk-WXGFB2O2.js} +3 -3
  123. package/dist/{chunk-RIK6WUMO.js → chunk-XCYGOCMS.js} +43 -26
  124. package/dist/{chunk-I3ZRIMR7.js → chunk-XEMCNQQW.js} +15 -15
  125. package/dist/{chunk-PWZEJNO6.js → chunk-XMUFXJI2.js} +6 -6
  126. package/dist/{chunk-EMGNCG5C.js → chunk-XZGXVN4T.js} +5 -5
  127. package/dist/{chunk-WLGOIMTI.js → chunk-YCIBBVI2.js} +2 -2
  128. package/dist/{chunk-V2NQV7VL.js → chunk-YFIDR7JH.js} +2 -2
  129. package/dist/{chunk-K2SFH3GJ.js → chunk-YFWIFKRQ.js} +3 -3
  130. package/dist/{chunk-6XLMTAEX.js → chunk-YIHRLY55.js} +33 -6
  131. package/dist/{chunk-CYRB2JTN.js → chunk-YLKPRT6U.js} +1 -1
  132. package/dist/{chunk-KMU65FYM.js → chunk-YSDSFXQD.js} +1 -1
  133. package/dist/{chunk-ZI6WC24V.js → chunk-ZBJV4KNU.js} +1 -1
  134. package/dist/{chunk-TIPNNOZC.js → chunk-ZCKVTZHD.js} +41 -19
  135. package/dist/{chunk-YSGOXZBB.js → chunk-ZMVMGZAJ.js} +1 -1
  136. package/dist/{chunk-CP73WWLN.js → chunk-ZRW4B4KF.js} +48 -14
  137. package/dist/{chunk-O2HNVNKO.js → chunk-ZTKO2RD4.js} +5 -5
  138. package/dist/collapse-6IGH2B24.js +31 -0
  139. package/dist/collapse-GOWNCVHZ.js +7 -0
  140. package/dist/collapse-HNTPLB2Q.js +11 -0
  141. package/dist/collapse-NUM7DPJA.js +10 -0
  142. package/dist/completion-registry.js +27 -4
  143. package/dist/dgmo-router-RSYWR5IS.js +101 -0
  144. package/dist/dimensions-KXAI7U2B.js +21 -0
  145. package/dist/editor.js +882 -215
  146. package/dist/{flowchart-parser-SM5LHF2D.js → flowchart-parser-UI5VZNGJ.js} +5 -5
  147. package/dist/{flowchart-renderer-PPS2GTTD.js → flowchart-renderer-IYWPKPCF.js} +18 -18
  148. package/dist/fold-at-line-DmSAa1eU.d.ts +11 -0
  149. package/dist/highlight.js +883 -216
  150. package/dist/index.d.ts +52 -5
  151. package/dist/index.js +79 -63
  152. package/dist/{layout-AF4KA5B2.js → layout-6VY3DHYD.js} +6 -6
  153. package/dist/{layout-FCFUVCRI.js → layout-7C2QZCEZ.js} +10 -10
  154. package/dist/{layout-2WESJYRE.js → layout-7E7BNOGO.js} +3 -2
  155. package/dist/layout-BSK374N6.js +11 -0
  156. package/dist/{layout-R6G4MEO3.js → layout-FJDBY3WG.js} +5 -5
  157. package/dist/{layout-KELSNWBD.js → layout-G3RVKEC4.js} +10 -10
  158. package/dist/{layout-H2KP5A6M.js → layout-GC5XX2RH.js} +2 -2
  159. package/dist/{layout-LNVIH45F.js → layout-R6ULGQJK.js} +6 -6
  160. package/dist/{layout-PPIVGJXD.js → layout-ROI5KVSO.js} +3 -3
  161. package/dist/{layout-3TSVAGWH.js → layout-SPPS225I.js} +3 -3
  162. package/dist/{layout-HF3PMI4H.js → layout-VTGOYGRC.js} +2 -2
  163. package/dist/{layout-MPSH3YWE.js → layout-WBH5IHYK.js} +10 -10
  164. package/dist/layout-WTHBGTH2.js +15 -0
  165. package/dist/layout-ZCCABSV7.js +15 -0
  166. package/dist/{layout-search-C2TYUH4L.js → layout-search-DSIDKKQO.js} +8 -8
  167. package/dist/{legend-constants-55MFBXYF.js → legend-constants-KF3MKWL2.js} +2 -2
  168. package/dist/{parser-DGLKH4NT.js → parser-3PMYAVFL.js} +2 -2
  169. package/dist/{parser-OHBBDCG4.js → parser-5KVFS4RN.js} +2 -2
  170. package/dist/{parser-UHKROC7Z.js → parser-BA43YPIQ.js} +3 -3
  171. package/dist/{parser-F75WNYMK.js → parser-CFAYEWLF.js} +3 -3
  172. package/dist/{parser-MWINQNQW.js → parser-DRFEX6OX.js} +3 -3
  173. package/dist/{parser-W6NX3AIV.js → parser-DWVBRBB2.js} +3 -3
  174. package/dist/{parser-6WURFLOB.js → parser-E4B7HJT2.js} +3 -3
  175. package/dist/{parser-DRUGM3R6.js → parser-FWQY3HJX.js} +2 -2
  176. package/dist/{parser-GBQY3WOZ.js → parser-GMCXCJSP.js} +3 -3
  177. package/dist/{parser-BPYHIG24.js → parser-IHFHPFL7.js} +3 -3
  178. package/dist/{parser-QWTECQEC.js → parser-IU6425JW.js} +6 -6
  179. package/dist/{parser-ZV756RMP.js → parser-IZYIXDJX.js} +6 -6
  180. package/dist/{parser-TTGZYLYD.js → parser-JQGUTDSX.js} +3 -3
  181. package/dist/{parser-BNRX35NT.js → parser-JRKPOO2Z.js} +3 -3
  182. package/dist/{parser-B7SCN7FG.js → parser-KI2XYB2R.js} +2 -2
  183. package/dist/parser-LDVVBP7S.js +12 -0
  184. package/dist/{parser-L7SI3PW4.js → parser-MAGFK6OK.js} +4 -4
  185. package/dist/{parser-722KLLAQ.js → parser-MH5BDN7X.js} +3 -3
  186. package/dist/{parser-5RUD4A3X.js → parser-MUHFEM4G.js} +3 -3
  187. package/dist/{parser-Y7QXD2UR.js → parser-P375HO7Q.js} +2 -2
  188. package/dist/{parser-LUJX7AXO.js → parser-PYY5BRLQ.js} +2 -2
  189. package/dist/parser-QEMFMVF5.js +12 -0
  190. package/dist/{parser-WIKXZP4X.js → parser-QIPDBT5M.js} +2 -2
  191. package/dist/{parser-2AXU2MHJ.js → parser-RNBDDEGL.js} +3 -3
  192. package/dist/{parser-4GHAYZKZ.js → parser-RSWZGQA7.js} +6 -6
  193. package/dist/{parser-H6HT2WFQ.js → parser-SGX2PVR5.js} +2 -2
  194. package/dist/{parser-ZWWQZ4XZ.js → parser-SJUEFKNM.js} +3 -3
  195. package/dist/{parser-4BOP77CD.js → parser-UMNBPXG2.js} +2 -2
  196. package/dist/{parser-GM5B2EPW.js → parser-WE4VSBBY.js} +3 -3
  197. package/dist/{parser-XEJP37GQ.js → parser-WKEYS7N3.js} +3 -3
  198. package/dist/{parser-DWV2CYBS.js → parser-WPXUUNA2.js} +3 -3
  199. package/dist/{parser-5HQPPVHJ.js → parser-XP3RCOTN.js} +3 -3
  200. package/dist/{parser-F3JJNIFC.js → parser-YV4RBHG7.js} +3 -3
  201. package/dist/{parser-CRJYLOHA.js → parser-YZ3J542U.js} +2 -2
  202. package/dist/{renderer-BYLQ37T2.js → renderer-2V5NVI3V.js} +15 -15
  203. package/dist/renderer-4PKYVOYL.js +39 -0
  204. package/dist/{renderer-ONENGXFQ.js → renderer-66SCERH7.js} +14 -12
  205. package/dist/renderer-6IAXRZLK.js +85 -0
  206. package/dist/{renderer-GKY55M4Z.js → renderer-6O5SV5YE.js} +10 -10
  207. package/dist/{renderer-F7YGMEGQ.js → renderer-7OXMSF4R.js} +4 -4
  208. package/dist/{renderer-6HU44IGJ.js → renderer-A36NL2SS.js} +8 -8
  209. package/dist/{renderer-66NCRXSC.js → renderer-ASPBBACI.js} +13 -11
  210. package/dist/{renderer-5GP7YUS4.js → renderer-BXVTYE27.js} +7 -6
  211. package/dist/renderer-CC6O6GQK.js +18 -0
  212. package/dist/{renderer-VNJOZPSH.js → renderer-CNDB4JTZ.js} +17 -17
  213. package/dist/renderer-COV2DXTM.js +41 -0
  214. package/dist/renderer-DXCATVLO.js +30 -0
  215. package/dist/{renderer-VUXAAGUG.js → renderer-E5E3OJ42.js} +12 -11
  216. package/dist/{renderer-MGF2NNGG.js → renderer-E7LC7HCU.js} +5 -5
  217. package/dist/{renderer-PEJF6R2I.js → renderer-F3JYZERE.js} +4 -4
  218. package/dist/{renderer-CVCCW7UT.js → renderer-FAFSRFGR.js} +9 -9
  219. package/dist/renderer-HIB6LZWZ.js +26 -0
  220. package/dist/renderer-HLDRRFZB.js +28 -0
  221. package/dist/renderer-INQMQPNN.js +22 -0
  222. package/dist/renderer-ITJ67HXO.js +27 -0
  223. package/dist/{renderer-SYRH3B62.js → renderer-JLOKFKOZ.js} +14 -13
  224. package/dist/{renderer-LJPUCG3U.js → renderer-KOPJ76GS.js} +10 -10
  225. package/dist/{renderer-N6PM5CSG.js → renderer-M2467III.js} +14 -13
  226. package/dist/{renderer-MVBAQP3M.js → renderer-MYKL6VG6.js} +6 -6
  227. package/dist/{renderer-YJVQT7QG.js → renderer-S6L3JR6C.js} +11 -11
  228. package/dist/{renderer-NOYLNVTI.js → renderer-SYWVZ4CY.js} +3 -3
  229. package/dist/renderer-TCTZZ5Y6.js +32 -0
  230. package/dist/{renderer-D6EH5UQ6.js → renderer-UIHCYXBY.js} +12 -12
  231. package/dist/{renderer-QZJZIAT3.js → renderer-WIBVOPRC.js} +6 -4
  232. package/dist/{renderer-TS5NHOQD.js → renderer-XMJ6XZGL.js} +12 -11
  233. package/dist/{renderer-2V2XY2V7.js → renderer-ZTHXOBXW.js} +8 -8
  234. package/dist/{renderer-radial-4R7AKETK.js → renderer-radial-FC25BDCZ.js} +8 -8
  235. package/dist/{state-parser-EQBBEKHR.js → state-parser-2PQRH5JE.js} +6 -6
  236. package/dist/state-renderer-YP6HWLJR.js +43 -0
  237. package/dist/{themes-CbJL3w8L.d.ts → themes-DoLdhUXV.d.ts} +1 -1
  238. package/docs/ai-integration.md +4 -3
  239. package/docs/language-reference.md +99 -13
  240. package/gallery/fixtures/swot-relabel.dgmo +19 -0
  241. package/gallery/fixtures/swot-tags.dgmo +16 -0
  242. package/gallery/fixtures/swot.dgmo +13 -0
  243. package/package.json +1 -1
  244. package/dist/chunk-R2K5L4UA.js +0 -49
  245. package/dist/collapse-TCVK3RPO.js +0 -8
  246. package/dist/dgmo-router-EPBQKQW2.js +0 -100
  247. package/dist/dimensions-DBCRBZIU.js +0 -21
  248. package/dist/layout-3J72UULM.js +0 -15
  249. package/dist/layout-IXQNVRBE.js +0 -15
  250. package/dist/layout-VDCJOZSH.js +0 -11
  251. package/dist/parser-HM6FEX5K.js +0 -14
  252. package/dist/renderer-2MCV75JQ.js +0 -41
  253. package/dist/renderer-5AEDVLAA.js +0 -31
  254. package/dist/renderer-7C76HP5W.js +0 -30
  255. package/dist/renderer-7RAMBMTH.js +0 -22
  256. package/dist/renderer-E3334XLT.js +0 -84
  257. package/dist/renderer-LFZKG2GR.js +0 -26
  258. package/dist/renderer-MZIWP55B.js +0 -28
  259. package/dist/renderer-N75E3UVY.js +0 -25
  260. package/dist/renderer-VNUDN6F5.js +0 -39
  261. package/dist/state-renderer-SOGZ2CNN.js +0 -42
@@ -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-LRTSTDJ6.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);
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  isTagBlockHeading,
6
6
  matchTagBlockHeading
7
- } from "./chunk-LGUFJ7Y2.js";
7
+ } from "./chunk-KW3CC7SB.js";
8
8
  import {
9
9
  makeDgmoError
10
10
  } from "./chunk-BYU54C3S.js";
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  searchPlacement
3
- } from "./chunk-VNAPEZX2.js";
3
+ } from "./chunk-7ASVGFW3.js";
4
4
  import {
5
5
  buildPlacedNotes,
6
6
  noteCanvasShift,
7
7
  resolveNotes
8
- } from "./chunk-HH3DHNQA.js";
8
+ } from "./chunk-4TK26YHH.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";
@@ -1,21 +1,20 @@
1
1
  import {
2
- BODY_TERMS,
3
2
  getFigure,
4
3
  resolvePartKey
5
- } from "./chunk-H7AXCRO7.js";
4
+ } from "./chunk-453IWXZ3.js";
6
5
  import {
7
6
  AUTO_TAG_COLOR_SENTINEL,
8
7
  finalizeAutoTagColors,
9
8
  matchTagBlockHeading,
10
9
  stripDefaultModifier,
11
10
  tagAttrKey
12
- } from "./chunk-LGUFJ7Y2.js";
11
+ } from "./chunk-KW3CC7SB.js";
13
12
  import {
14
13
  extractColor,
15
14
  fillModeFromToken,
16
15
  measureIndent,
17
16
  parseFirstLine
18
- } from "./chunk-FUYEXLAN.js";
17
+ } from "./chunk-RFGQDIOI.js";
19
18
  import {
20
19
  emit
21
20
  } from "./chunk-BYU54C3S.js";
@@ -250,17 +249,8 @@ function parseBody(content, palette) {
250
249
  diagnostics
251
250
  };
252
251
  }
253
- function extractSymbols(docText) {
254
- const parsed = parseBody(docText);
255
- const figures = (parsed.options.views.length ? parsed.options.views : ["front"]).map((v) => getFigure(parsed.options.sex, v));
256
- const entities = BODY_TERMS.filter(
257
- (t) => t === "left" || t === "right" || figures.some((f) => resolvePartKey(f, t))
258
- );
259
- return { kind: "body", entities };
260
- }
261
252
 
262
253
  export {
263
254
  BODY_DIAGNOSTICS,
264
- parseBody,
265
- extractSymbols
255
+ parseBody
266
256
  };
@@ -5,14 +5,14 @@ import {
5
5
  TITLE_FONT_SIZE,
6
6
  TITLE_FONT_WEIGHT,
7
7
  TITLE_Y
8
- } from "./chunk-VLC6WNRD.js";
8
+ } from "./chunk-GULGSH2Z.js";
9
9
  import {
10
10
  ARROWHEAD_HEIGHT,
11
11
  ARROWHEAD_WIDTH
12
- } from "./chunk-XCKNFFKM.js";
12
+ } from "./chunk-WH6E6SHC.js";
13
13
  import {
14
14
  renderIntegratedLegend
15
- } from "./chunk-PGD6CNWO.js";
15
+ } from "./chunk-DFEVFLEG.js";
16
16
  import {
17
17
  wrapDescriptionLines
18
18
  } from "./chunk-7WEYXYLC.js";
@@ -24,14 +24,14 @@ import {
24
24
  } from "./chunk-ICLB27PZ.js";
25
25
  import {
26
26
  fillModeFromOptions
27
- } from "./chunk-FUYEXLAN.js";
27
+ } from "./chunk-RFGQDIOI.js";
28
28
  import {
29
29
  LEGEND_HEIGHT
30
- } from "./chunk-UOCWYLYT.js";
30
+ } from "./chunk-OZXKW5NA.js";
31
31
  import {
32
32
  measureText,
33
33
  wrapTextToWidth
34
- } from "./chunk-KAO7JL4I.js";
34
+ } from "./chunk-PU5X3P3T.js";
35
35
  import {
36
36
  contrastText,
37
37
  shapeFill
@@ -1,8 +1,11 @@
1
+ import {
2
+ COLLAPSE_BAR_HEIGHT
3
+ } from "./chunk-WH6E6SHC.js";
1
4
  import {
2
5
  CHAR_WIDTH_RATIO,
3
6
  measureText,
4
7
  truncateText
5
- } from "./chunk-KAO7JL4I.js";
8
+ } from "./chunk-PU5X3P3T.js";
6
9
 
7
10
  // src/infra/layout.ts
8
11
  import dagre from "@dagrejs/dagre";
@@ -12,7 +15,6 @@ var META_LINE_HEIGHT = 14;
12
15
  var NODE_SEPARATOR_GAP = 4;
13
16
  var NODE_PAD_BOTTOM = 10;
14
17
  var ROLE_DOT_ROW = 12;
15
- var COLLAPSE_BAR_HEIGHT = 6;
16
18
  var NODE_FONT_SIZE = 13;
17
19
  var META_FONT_SIZE = 10;
18
20
  var EDGE_LABEL_FONT_SIZE = 11;
@@ -0,0 +1,69 @@
1
+ // src/boxes-and-lines/collapse.ts
2
+ function collapseBoxesAndLines(parsed, collapsedGroups) {
3
+ const originalGroups = parsed.groups;
4
+ if (collapsedGroups.size === 0) {
5
+ return { parsed, collapsedChildCounts: /* @__PURE__ */ new Map(), originalGroups };
6
+ }
7
+ const groupByLabel = /* @__PURE__ */ new Map();
8
+ for (const group of parsed.groups) {
9
+ groupByLabel.set(group.label, group);
10
+ }
11
+ const nodeToGroup = /* @__PURE__ */ new Map();
12
+ const collapsedChildCounts = /* @__PURE__ */ new Map();
13
+ function collectDescendants(groupLabel) {
14
+ const group = groupByLabel.get(groupLabel);
15
+ if (!group) return [];
16
+ const descendants = [];
17
+ for (const child of group.children) {
18
+ descendants.push(child);
19
+ if (groupByLabel.has(child)) {
20
+ descendants.push(...collectDescendants(child));
21
+ }
22
+ }
23
+ return descendants;
24
+ }
25
+ for (const groupLabel of collapsedGroups) {
26
+ const group = groupByLabel.get(groupLabel);
27
+ if (!group) continue;
28
+ const groupId = `__group_${groupLabel}`;
29
+ const allDescendants = collectDescendants(groupLabel);
30
+ for (const child of allDescendants) {
31
+ nodeToGroup.set(child, groupId);
32
+ }
33
+ collapsedChildCounts.set(groupLabel, group.children.length);
34
+ }
35
+ const nodes = parsed.nodes.filter((n) => !nodeToGroup.has(n.label));
36
+ const edgeKeys = /* @__PURE__ */ new Set();
37
+ const edges = [];
38
+ for (const edge of parsed.edges) {
39
+ const src = nodeToGroup.get(edge.source) ?? edge.source;
40
+ const tgt = nodeToGroup.get(edge.target) ?? edge.target;
41
+ if (src === tgt) continue;
42
+ const key = `${src}|${tgt}|${edge.label ?? ""}`;
43
+ if (edgeKeys.has(key)) continue;
44
+ edgeKeys.add(key);
45
+ edges.push({ ...edge, source: src, target: tgt });
46
+ }
47
+ const groups = parsed.groups.filter(
48
+ (g) => !collapsedGroups.has(g.label) && !nodeToGroup.has(g.label)
49
+ );
50
+ return {
51
+ parsed: { ...parsed, nodes, edges, groups },
52
+ collapsedChildCounts,
53
+ originalGroups
54
+ };
55
+ }
56
+ function collapsedBLGroupsFromSource(parsed) {
57
+ return new Set(parsed.groups.filter((g) => g.collapsed).map((g) => g.label));
58
+ }
59
+ function unionCollapsedBLGroups(parsed, runtime) {
60
+ const set = collapsedBLGroupsFromSource(parsed);
61
+ for (const label of runtime ?? []) set.add(label);
62
+ return set;
63
+ }
64
+
65
+ export {
66
+ collapseBoxesAndLines,
67
+ collapsedBLGroupsFromSource,
68
+ unionCollapsedBLGroups
69
+ };
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  fillModeFromOptions
3
- } from "./chunk-FUYEXLAN.js";
3
+ } from "./chunk-RFGQDIOI.js";
4
4
  import {
5
5
  measureText,
6
6
  wrapTextToWidth
7
- } from "./chunk-KAO7JL4I.js";
7
+ } from "./chunk-PU5X3P3T.js";
8
8
  import {
9
9
  mix,
10
10
  shapeFill
@@ -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-LRTSTDJ6.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) => {
@@ -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,