@diagrammo/dgmo 0.52.0 → 0.54.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 (339) hide show
  1. package/.cursorrules +59 -58
  2. package/.github/copilot-instructions.md +59 -58
  3. package/.windsurfrules +59 -58
  4. package/SKILL.md +59 -58
  5. package/dist/advanced.d.ts +101 -230
  6. package/dist/advanced.js +330 -658
  7. package/dist/analyzer-TDN5KJFP.js +15 -0
  8. package/dist/auto.css +14 -6
  9. package/dist/auto.js +163 -139
  10. package/dist/auto.mjs +1859 -885
  11. package/dist/block.css +14 -6
  12. package/dist/block.js +96 -81
  13. package/dist/calculator-VBIT6GQF.js +11 -0
  14. package/dist/chart-meta-CPNVUZ5J.d.ts +232 -0
  15. package/dist/chart-meta.d.ts +2 -0
  16. package/dist/chart-meta.js +108 -0
  17. package/dist/charts-d3-25E4VWXO.js +27 -0
  18. package/dist/chunk-2CW5ZTNH.js +58 -0
  19. package/dist/{chunk-BPY242XU.js → chunk-2NYXI35Z.js} +32 -14
  20. package/dist/{chunk-AUIM2NVH.js → chunk-2NZOHEP4.js} +7 -8
  21. package/dist/{chunk-HFMYN6N2.js → chunk-3B2GXZCX.js} +4 -3
  22. package/dist/chunk-3FRO35WW.js +1158 -0
  23. package/dist/{chunk-J7TLCB2Q.js → chunk-3IUHKMJI.js} +2 -2
  24. package/dist/{chunk-R3YSD62R.js → chunk-3KHJJP3J.js} +3 -3
  25. package/dist/{chunk-6LBQ7ELG.js → chunk-3SBHODJ4.js} +36 -17
  26. package/dist/{chunk-4UNQ6X24.js → chunk-3SEEP2JM.js} +4 -4
  27. package/dist/{chunk-7L4UJOY6.js → chunk-3TYUXC7D.js} +2 -2
  28. package/dist/{chunk-Y2ZE3MSG.js → chunk-43E26CDA.js} +2 -2
  29. package/dist/{chunk-CCNDLW7Z.js → chunk-47JNEKJA.js} +9 -9
  30. package/dist/{chunk-WCT3NYCV.js → chunk-4ASYQ347.js} +33 -8
  31. package/dist/{chunk-I5IGB56C.js → chunk-4QV26TEG.js} +41 -1
  32. package/dist/{chunk-INE5YJBZ.js → chunk-4T6OCSJ2.js} +8 -8
  33. package/dist/{chunk-CXK4DZH3.js → chunk-4W2PE66Q.js} +12 -2
  34. package/dist/{chunk-7KINELPI.js → chunk-4ZIKWVSQ.js} +17 -16
  35. package/dist/{chunk-JED6ZDEE.js → chunk-5HWPEYWB.js} +2 -2
  36. package/dist/{chunk-HWX6ZHF3.js → chunk-5VXU6MND.js} +6 -6
  37. package/dist/{chunk-44VCIPHF.js → chunk-5XSNLXU5.js} +23 -20
  38. package/dist/{chunk-4AQRFDXL.js → chunk-62Y27T4C.js} +2 -2
  39. package/dist/{chunk-QHXCAEMX.js → chunk-6KL7TFLS.js} +5 -5
  40. package/dist/{chunk-5BHJZH62.js → chunk-6OYDOQ2Q.js} +18 -6
  41. package/dist/{chunk-5HILBT7X.js → chunk-7JDTNFAK.js} +3 -3
  42. package/dist/{chunk-JRCOYRRH.js → chunk-7K6NDSXH.js} +9 -9
  43. package/dist/{chunk-5NGAO4QK.js → chunk-7SP4C6EV.js} +11 -11
  44. package/dist/{chunk-I46X5VUA.js → chunk-7TF3QOOD.js} +25 -1
  45. package/dist/{chunk-WRNFDFPU.js → chunk-7U4OR7CD.js} +2 -2
  46. package/dist/{chunk-5RP7JRVP.js → chunk-7UPFTBOW.js} +21 -17
  47. package/dist/{chunk-AAXZDUOV.js → chunk-A3BDLDYG.js} +17 -16
  48. package/dist/{chunk-GCYTI3DE.js → chunk-ADCHLNWT.js} +56 -10
  49. package/dist/{chunk-QBZYACOG.js → chunk-ADYKAKE3.js} +3 -3
  50. package/dist/{chunk-HHKO6SKY.js → chunk-AHTTKERF.js} +3 -3
  51. package/dist/{chunk-BKVOYV6I.js → chunk-AJFHNS67.js} +15 -15
  52. package/dist/{chunk-EMLPOL77.js → chunk-AQEYUVGJ.js} +124 -41
  53. package/dist/{chunk-3LK5DNED.js → chunk-B4XS2AF2.js} +3 -3
  54. package/dist/{chunk-REJAIQ5S.js → chunk-B7N5KYXQ.js} +16 -16
  55. package/dist/chunk-BEOAKGNA.js +484 -0
  56. package/dist/{chunk-SMRFPVLQ.js → chunk-BM7MG6HT.js} +4 -4
  57. package/dist/{chunk-P3NRSSUU.js → chunk-BULHGPHK.js} +3 -3
  58. package/dist/{chunk-QZX5S6R3.js → chunk-BWYFIVZF.js} +149 -89
  59. package/dist/{chunk-UBLHQTLV.js → chunk-BZJIITYM.js} +11 -10
  60. package/dist/{chunk-PRI2OD4E.js → chunk-C2UORMIA.js} +11 -6
  61. package/dist/{chunk-3YRPZ7ZZ.js → chunk-CCGWX6AO.js} +4 -4
  62. package/dist/{chunk-H7KENAZO.js → chunk-COJW2NEY.js} +73 -13
  63. package/dist/{chunk-WBRZJOEC.js → chunk-COVYNAKJ.js} +6 -6
  64. package/dist/{chunk-7QE3XMRK.js → chunk-CSHFU6LT.js} +13 -13
  65. package/dist/{chunk-6EJITS44.js → chunk-DLU643TF.js} +7 -7
  66. package/dist/{chunk-LBMS4AW6.js → chunk-DPGQ5UMO.js} +14 -14
  67. package/dist/{chunk-LTXOLDUZ.js → chunk-EAI6XJ7D.js} +12 -5
  68. package/dist/{chunk-FT3ZYWET.js → chunk-EPRF3ZRV.js} +11 -10
  69. package/dist/chunk-EQOMY4PY.js +404 -0
  70. package/dist/{chunk-USZW2HHU.js → chunk-EQW6HOP4.js} +4 -3
  71. package/dist/{chunk-HBPDFCQY.js → chunk-F7XM366V.js} +10 -9
  72. package/dist/{chunk-DYWQFQJP.js → chunk-FFVFZLRT.js} +57 -24
  73. package/dist/{chunk-77FGAVZC.js → chunk-FR6UFVSV.js} +19 -17
  74. package/dist/{chunk-MUE65OTD.js → chunk-FVMKCZHF.js} +8 -6
  75. package/dist/{chunk-3QD7VP3U.js → chunk-GK32ZFZY.js} +17 -10
  76. package/dist/{chunk-TJVLKNGR.js → chunk-GKYHWJXI.js} +5 -5
  77. package/dist/{chunk-FQMUHRVC.js → chunk-GQ5ECRP4.js} +13 -10
  78. package/dist/{chunk-5QKQSSPO.js → chunk-GRM2A4BG.js} +4 -4
  79. package/dist/{chunk-OTOHI4JO.js → chunk-H3HFC3SQ.js} +2 -2
  80. package/dist/{chunk-BPIZNB5O.js → chunk-HAA25PLC.js} +10 -10
  81. package/dist/{chunk-YIBAWQGJ.js → chunk-HFEOOQ46.js} +4 -4
  82. package/dist/{chunk-J76PIKAT.js → chunk-HO3RCNF6.js} +3 -3
  83. package/dist/{chunk-7DF4J4RL.js → chunk-I47VHSPS.js} +19 -13
  84. package/dist/{chunk-5SEVICBT.js → chunk-ICKXIMBA.js} +10 -9
  85. package/dist/{chunk-A44USUV7.js → chunk-ICZ7M6IZ.js} +23 -17
  86. package/dist/{chunk-SWSIKFEB.js → chunk-IOIMQHQ6.js} +4 -4
  87. package/dist/{chunk-6HQH6JZE.js → chunk-IYNKLCAZ.js} +7 -7
  88. package/dist/{chunk-YAA6IID3.js → chunk-J7HQPVYH.js} +2 -2
  89. package/dist/{chunk-WBM7ZNDI.js → chunk-JYDMBWRP.js} +35 -18
  90. package/dist/{chunk-ZJV7GYR4.js → chunk-KBVOVDYP.js} +8 -8
  91. package/dist/{chunk-ICPJPQ5C.js → chunk-KDK5EKUR.js} +3 -3
  92. package/dist/{chunk-FHGVORFO.js → chunk-KINOX74I.js} +12 -12
  93. package/dist/{chunk-XD6ZYURY.js → chunk-KQ3FNRGR.js} +7 -14
  94. package/dist/{chunk-3HGU63UY.js → chunk-KQYQECWQ.js} +17 -16
  95. package/dist/{chunk-MUVJ57EP.js → chunk-KS5ZSM5T.js} +20 -17
  96. package/dist/{chunk-FY5MSZAP.js → chunk-KV4HLIJE.js} +21 -6
  97. package/dist/{chunk-LGT3PZCJ.js → chunk-LPJ6H5X4.js} +17 -17
  98. package/dist/{chunk-ONU3U4GL.js → chunk-LRSW4JLE.js} +52 -16
  99. package/dist/{chunk-TPFKKXCB.js → chunk-M24VXUFG.js} +7 -7
  100. package/dist/{chunk-QJMKPUYK.js → chunk-M3H7ZE6C.js} +21 -14
  101. package/dist/{chunk-QVENJMNX.js → chunk-MEQYZZFR.js} +2 -2
  102. package/dist/{chunk-75G3Q4DK.js → chunk-MTZOXISJ.js} +9 -9
  103. package/dist/{chunk-J7KJR3R6.js → chunk-N7BSBAVP.js} +133 -696
  104. package/dist/{chunk-VQOCMUWI.js → chunk-NUTWTV6G.js} +13 -11
  105. package/dist/{chunk-7BIZCTAX.js → chunk-O576GYAP.js} +3 -3
  106. package/dist/{chunk-H6PI3KJT.js → chunk-ODUT5WMC.js} +2 -2
  107. package/dist/{chunk-AL672HNE.js → chunk-OJ435DQZ.js} +17 -7
  108. package/dist/{chunk-3HF5YEFJ.js → chunk-OR3R27CU.js} +4 -4
  109. package/dist/{chunk-QGATPIPX.js → chunk-OSXQKC3S.js} +35 -23
  110. package/dist/{chunk-FUPF2UYQ.js → chunk-PIXZTCKH.js} +51 -108
  111. package/dist/{chunk-QOOUC2J5.js → chunk-Q5IHQ4NW.js} +12 -2
  112. package/dist/{chunk-4IHAV6O7.js → chunk-QBYP2FBZ.js} +10 -478
  113. package/dist/{chunk-GU46PPT3.js → chunk-QXGACPS2.js} +5 -5
  114. package/dist/{chunk-FMDSF3OV.js → chunk-QZAW5SFH.js} +2 -2
  115. package/dist/{chunk-YTMTPUH4.js → chunk-R5BGGBFF.js} +4 -4
  116. package/dist/{chunk-KGVZ5VGH.js → chunk-RIEAN4D5.js} +16 -12
  117. package/dist/{chunk-5223KXFD.js → chunk-RJ5LBZ5U.js} +7 -7
  118. package/dist/{chunk-K4EOKJA6.js → chunk-RRGKMJYL.js} +45 -18
  119. package/dist/{chunk-TTIM6YTT.js → chunk-S7FOIURR.js} +14 -13
  120. package/dist/{chunk-IM6PDDCE.js → chunk-S7YFT3PO.js} +78 -23
  121. package/dist/{chunk-ZEF5M5MB.js → chunk-SBOAZ7YK.js} +82 -296
  122. package/dist/{chunk-6NYWYNBI.js → chunk-SSHS42QG.js} +6 -6
  123. package/dist/{chunk-NNS4E7CW.js → chunk-T3FAJAJT.js} +18 -9
  124. package/dist/{chunk-ROOE4R4Y.js → chunk-T7Y554OK.js} +146 -18
  125. package/dist/chunk-TGOMHUOV.js +218 -0
  126. package/dist/{chunk-K2I2XOZD.js → chunk-TJN2OIVG.js} +30 -15
  127. package/dist/{chunk-VILVLS7P.js → chunk-TLNVYWPA.js} +8 -4
  128. package/dist/{chunk-GJFAMOGK.js → chunk-U4IN6AHE.js} +7 -7
  129. package/dist/chunk-U7VO6JAA.js +566 -0
  130. package/dist/{chunk-MX2EY5Y7.js → chunk-UEU6IYKY.js} +2 -2
  131. package/dist/{chunk-J6QROYDA.js → chunk-UIT7E6UF.js} +26 -10
  132. package/dist/{chunk-Z72XRXD4.js → chunk-UJRTPOHH.js} +3 -3
  133. package/dist/{chunk-TYS6CSS5.js → chunk-UU6LUYUH.js} +2 -2
  134. package/dist/{chunk-VL2O2F3W.js → chunk-VHO3YBTB.js} +2 -2
  135. package/dist/{chunk-4YFKQ5WT.js → chunk-VMSBMIHW.js} +5 -5
  136. package/dist/{chunk-Z5QVYKR7.js → chunk-VQFDBNYF.js} +4 -4
  137. package/dist/{chunk-UNURMIQO.js → chunk-W6PCFRPL.js} +4 -4
  138. package/dist/{chunk-FFUN5D66.js → chunk-WF64MW5G.js} +2 -2
  139. package/dist/{chunk-T4A4TSTJ.js → chunk-WKNAJ4BR.js} +20 -18
  140. package/dist/{chunk-CIRFIL4M.js → chunk-WW4BQ744.js} +11 -11
  141. package/dist/{chunk-ARGMQ3H4.js → chunk-WWHECSYZ.js} +3 -3
  142. package/dist/{chunk-ZNWAYU6N.js → chunk-XWODFBHJ.js} +73 -18
  143. package/dist/{chunk-HQQNCY7W.js → chunk-YENNFS5F.js} +10 -10
  144. package/dist/{chunk-TLVIHFRO.js → chunk-ZKPPI6BF.js} +2 -2
  145. package/dist/cli.cjs +173 -157
  146. package/dist/clock.js +9 -1
  147. package/dist/completion-registry.d.ts +129 -0
  148. package/dist/completion-registry.js +1270 -0
  149. package/dist/{compute-G55RG53N.js → compute-JAP5E2E4.js} +2 -2
  150. package/dist/countdown.js +4 -3
  151. package/dist/dgmo-router-TGZWFIZO.js +88 -0
  152. package/dist/dimensions-L6BXQXXL.js +22 -0
  153. package/dist/editor.js +51 -5
  154. package/dist/element.js +163 -139
  155. package/dist/element.mjs +1859 -885
  156. package/dist/flowchart-parser-UKYOW3VM.js +21 -0
  157. package/dist/{flowchart-renderer-MNCDS7MV.js → flowchart-renderer-DCFKUDDR.js} +16 -16
  158. package/dist/highlight.js +55 -6
  159. package/dist/index.d.ts +4 -2
  160. package/dist/index.js +89 -81
  161. package/dist/layout-25Y3VDYF.js +19 -0
  162. package/dist/layout-4SPLI4HG.js +15 -0
  163. package/dist/layout-5XGYNYVT.js +9 -0
  164. package/dist/{layout-OAC4PEAC.js → layout-A6OIGZN2.js} +7 -7
  165. package/dist/layout-AZUPXWSK.js +15 -0
  166. package/dist/{layout-F4WO357A.js → layout-CAAKQX4W.js} +3 -3
  167. package/dist/{layout-A5UHRWVH.js → layout-CB3XWCOI.js} +3 -3
  168. package/dist/layout-CH4HFFRD.js +15 -0
  169. package/dist/layout-G2ABQJQZ.js +20 -0
  170. package/dist/{layout-7QXCNOVS.js → layout-HBWT2G23.js} +3 -3
  171. package/dist/{layout-2L3WMRYU.js → layout-ITLPDG6M.js} +9 -8
  172. package/dist/layout-NF4EWFLT.js +17 -0
  173. package/dist/layout-NY7MHJCL.js +15 -0
  174. package/dist/layout-QBNAMEOA.js +19 -0
  175. package/dist/layout-SP7HJWKA.js +17 -0
  176. package/dist/{layout-search-55FU6HD3.js → layout-search-LUI475P3.js} +56 -35
  177. package/dist/legend-constants-B77VKB3R.js +54 -0
  178. package/dist/{palettes-UDLZ2SA4.js → palettes-FGTNFARW.js} +4 -4
  179. package/dist/parser-2UWWNTFL.js +12 -0
  180. package/dist/parser-3RXYQSA7.js +18 -0
  181. package/dist/parser-5C3PEZK3.js +11 -0
  182. package/dist/parser-66RYGJRB.js +20 -0
  183. package/dist/parser-6GN5YJBJ.js +13 -0
  184. package/dist/parser-6MQM7WT3.js +15 -0
  185. package/dist/{parser-DQAFLUJB.js → parser-7UI6UQ7B.js} +7 -7
  186. package/dist/parser-B2A7XOAK.js +12 -0
  187. package/dist/parser-CCNJKDDA.js +16 -0
  188. package/dist/parser-ESHNUFME.js +13 -0
  189. package/dist/parser-F4FEU57T.js +11 -0
  190. package/dist/parser-FHRMFUNX.js +15 -0
  191. package/dist/parser-FPCWDYQV.js +13 -0
  192. package/dist/parser-FY3YFFBS.js +20 -0
  193. package/dist/parser-GML6V2KZ.js +14 -0
  194. package/dist/parser-HA3PF5FL.js +15 -0
  195. package/dist/parser-KTYF6WO5.js +11 -0
  196. package/dist/{parser-ZL5QUFVH.js → parser-LTA2BOZO.js} +5 -5
  197. package/dist/parser-LU7UAKNB.js +13 -0
  198. package/dist/parser-MHKYQPC2.js +11 -0
  199. package/dist/parser-MVSYFK63.js +17 -0
  200. package/dist/parser-O7YQYFEN.js +15 -0
  201. package/dist/parser-OPIXXUY4.js +21 -0
  202. package/dist/parser-S4EJPNVN.js +19 -0
  203. package/dist/parser-T3D7BV6O.js +11 -0
  204. package/dist/{parser-YKYMQG3B.js → parser-VVE4THG3.js} +6 -6
  205. package/dist/parser-WPPJGB4R.js +12 -0
  206. package/dist/parser-X5XLFY4Z.js +22 -0
  207. package/dist/parser-XCPMEB2Z.js +11 -0
  208. package/dist/parser-XRDUX2AR.js +14 -0
  209. package/dist/parser-YPWYT46P.js +16 -0
  210. package/dist/parser-YULS5MLD.js +13 -0
  211. package/dist/pert.d.ts +2 -0
  212. package/dist/registry-CaSw0PSH.d.ts +350 -0
  213. package/dist/renderer-2DME63VZ.js +16 -0
  214. package/dist/renderer-3VY3VXJE.js +37 -0
  215. package/dist/renderer-4A32DX5L.js +24 -0
  216. package/dist/renderer-4K5YYX5R.js +28 -0
  217. package/dist/renderer-6CFML5G3.js +22 -0
  218. package/dist/renderer-7HMZ5OCJ.js +16 -0
  219. package/dist/renderer-7ZNVOVFG.js +16 -0
  220. package/dist/{renderer-CQY6ATOS.js → renderer-B7Y6I7JX.js} +9 -8
  221. package/dist/renderer-C3RI4OPJ.js +33 -0
  222. package/dist/renderer-CJ56SUMF.js +26 -0
  223. package/dist/renderer-COJZZ4F6.js +25 -0
  224. package/dist/renderer-FXMGCSRP.js +26 -0
  225. package/dist/{renderer-HSHHVYWF.js → renderer-G4UOW3RH.js} +7 -7
  226. package/dist/renderer-HQ4JFZOV.js +27 -0
  227. package/dist/{renderer-NHO46CT2.js → renderer-K7XLVPH5.js} +6 -6
  228. package/dist/{renderer-ZWIH4WDW.js → renderer-LHVCKEWF.js} +13 -13
  229. package/dist/renderer-OZX5KGQM.js +21 -0
  230. package/dist/{renderer-3F7OS2AX.js → renderer-P3YQES7B.js} +16 -16
  231. package/dist/renderer-PLVIARM7.js +24 -0
  232. package/dist/renderer-RA4PTAMF.js +19 -0
  233. package/dist/renderer-RMAM2SOJ.js +28 -0
  234. package/dist/renderer-SES7QZYL.js +37 -0
  235. package/dist/renderer-TQ5QDZOE.js +22 -0
  236. package/dist/renderer-V5SNTPAM.js +27 -0
  237. package/dist/{renderer-5DAKMIU2.js → renderer-WCWI4I6A.js} +5 -5
  238. package/dist/renderer-WVD6G2TS.js +34 -0
  239. package/dist/{renderer-DT4XRFEP.js → renderer-X2LYSMLU.js} +7 -7
  240. package/dist/renderer-Y3NXZINM.js +24 -0
  241. package/dist/{renderer-KNFTTOBL.js → renderer-YEFOOULC.js} +14 -14
  242. package/dist/renderer-YP3P6UVT.js +24 -0
  243. package/dist/renderer-YVMETH6V.js +29 -0
  244. package/dist/renderer-Z4GNKNXO.js +24 -0
  245. package/dist/renderer-radial-VYBZAXXE.js +21 -0
  246. package/dist/{resolver-EMTGNR3D.js → resolver-WFKZYBJ2.js} +4 -4
  247. package/dist/state-parser-VIW2WNA5.js +19 -0
  248. package/dist/state-renderer-H22AQD3U.js +38 -0
  249. package/dist/{themes-32xj5ZTW.d.ts → themes-tbBkIVsn.d.ts} +2 -349
  250. package/docs/ai-integration.md +59 -58
  251. package/docs/language-reference.md +323 -286
  252. package/fonts/Inter-Bold.woff2 +0 -0
  253. package/fonts/Inter-Regular.woff2 +0 -0
  254. package/gallery/fixtures/boxes-and-lines-diverging.dgmo +1 -2
  255. package/gallery/fixtures/boxes-and-lines.dgmo +1 -1
  256. package/gallery/fixtures/clock.dgmo +1 -1
  257. package/gallery/fixtures/event-line.dgmo +1 -1
  258. package/gallery/fixtures/gantt-full.dgmo +1 -1
  259. package/gallery/fixtures/gantt-sprints.dgmo +9 -9
  260. package/gallery/fixtures/gantt.dgmo +1 -1
  261. package/gallery/fixtures/legacy-syntax-backcompat.dgmo +16 -0
  262. package/gallery/fixtures/state-tags.dgmo +40 -0
  263. package/gallery/fixtures/swimlane.dgmo +1 -1
  264. package/gallery/fixtures/timeline-intraday.dgmo +1 -1
  265. package/package.json +9 -1
  266. package/dist/analyzer-BJ54GIFB.js +0 -15
  267. package/dist/calculator-LDYQCDDY.js +0 -11
  268. package/dist/charts-d3-MXEP6BNP.js +0 -26
  269. package/dist/chunk-BRENJ2BQ.js +0 -714
  270. package/dist/chunk-FQ7HTV52.js +0 -364
  271. package/dist/dgmo-router-X7ZGAPIE.js +0 -86
  272. package/dist/dimensions-45H6JQEY.js +0 -22
  273. package/dist/flowchart-parser-UKELHBSB.js +0 -21
  274. package/dist/layout-46N4JJYK.js +0 -17
  275. package/dist/layout-A4XWNVID.js +0 -14
  276. package/dist/layout-AM2JWW3X.js +0 -15
  277. package/dist/layout-EE6GE46Y.js +0 -17
  278. package/dist/layout-G23F7LDH.js +0 -9
  279. package/dist/layout-GM4UGR7B.js +0 -19
  280. package/dist/layout-GQQJXNYH.js +0 -15
  281. package/dist/layout-IIE2S5FK.js +0 -20
  282. package/dist/layout-VMCRX66I.js +0 -14
  283. package/dist/layout-ZDOSXL5G.js +0 -19
  284. package/dist/parser-2ECN6JA2.js +0 -16
  285. package/dist/parser-4WTIHM5J.js +0 -11
  286. package/dist/parser-5H2BTSJQ.js +0 -11
  287. package/dist/parser-75KVXUNS.js +0 -16
  288. package/dist/parser-774AC53T.js +0 -13
  289. package/dist/parser-BE4YCSRU.js +0 -11
  290. package/dist/parser-CNGUQUQI.js +0 -11
  291. package/dist/parser-DEUUSQIN.js +0 -22
  292. package/dist/parser-EYCKNKQA.js +0 -21
  293. package/dist/parser-FXISIU6A.js +0 -14
  294. package/dist/parser-GTB4XC7P.js +0 -18
  295. package/dist/parser-GVEPAUSD.js +0 -12
  296. package/dist/parser-HSQGTY4G.js +0 -19
  297. package/dist/parser-HVKRINUS.js +0 -11
  298. package/dist/parser-J5MIEYO4.js +0 -15
  299. package/dist/parser-KMZIXLDZ.js +0 -13
  300. package/dist/parser-LJHXWSXU.js +0 -14
  301. package/dist/parser-PT3W72G5.js +0 -15
  302. package/dist/parser-SBJQDPHL.js +0 -15
  303. package/dist/parser-SUWWWCMX.js +0 -12
  304. package/dist/parser-SXDRNZOA.js +0 -13
  305. package/dist/parser-UMILOW3M.js +0 -14
  306. package/dist/parser-UP3AZ367.js +0 -13
  307. package/dist/parser-WHPRV3X5.js +0 -20
  308. package/dist/parser-WX3UODSJ.js +0 -12
  309. package/dist/parser-XCIEN3KN.js +0 -13
  310. package/dist/parser-XIRTUMVN.js +0 -18
  311. package/dist/parser-YKCGIG45.js +0 -11
  312. package/dist/parser-ZGM2OJ6Y.js +0 -22
  313. package/dist/renderer-4QB4K7Q3.js +0 -24
  314. package/dist/renderer-5H4SY7YY.js +0 -22
  315. package/dist/renderer-5PIQPFOX.js +0 -16
  316. package/dist/renderer-6MU37QF5.js +0 -19
  317. package/dist/renderer-AQVMWJ4M.js +0 -27
  318. package/dist/renderer-BDDW6K7N.js +0 -24
  319. package/dist/renderer-BNB3VIDY.js +0 -26
  320. package/dist/renderer-CVW75CXL.js +0 -37
  321. package/dist/renderer-ERHBSTQT.js +0 -25
  322. package/dist/renderer-IDPVUFNB.js +0 -28
  323. package/dist/renderer-ILX6BGKR.js +0 -21
  324. package/dist/renderer-JP663HKG.js +0 -22
  325. package/dist/renderer-MVUZBESR.js +0 -16
  326. package/dist/renderer-N4EBR2FV.js +0 -28
  327. package/dist/renderer-NO2QJ5LZ.js +0 -27
  328. package/dist/renderer-OGFV5RXX.js +0 -34
  329. package/dist/renderer-PDLESJMS.js +0 -37
  330. package/dist/renderer-T4MTNINC.js +0 -24
  331. package/dist/renderer-TOUGFGTM.js +0 -24
  332. package/dist/renderer-U3KPD43Y.js +0 -34
  333. package/dist/renderer-X334IJU2.js +0 -26
  334. package/dist/renderer-Y5OAMOCR.js +0 -23
  335. package/dist/renderer-YONAKAJU.js +0 -16
  336. package/dist/renderer-YWMI6Y2U.js +0 -29
  337. package/dist/renderer-radial-7CGZMVMS.js +0 -21
  338. package/dist/state-parser-BATWAID2.js +0 -18
  339. package/dist/state-renderer-3FKZJ3LP.js +0 -34
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-3HDBAXF5.js";
12
12
  import {
13
13
  mix
14
- } from "./chunk-WBM7ZNDI.js";
14
+ } from "./chunk-JYDMBWRP.js";
15
15
 
16
16
  // src/utils/note-box/svg.ts
17
17
  var NOTE_STROKE_WIDTH = 0.6;
@@ -133,4 +133,4 @@ export {
133
133
  NOTE_BADGE_RADIUS,
134
134
  renderNoteBadge
135
135
  };
136
- //# sourceMappingURL=chunk-J7TLCB2Q.js.map
136
+ //# sourceMappingURL=chunk-3IUHKMJI.js.map
@@ -7,10 +7,10 @@ import {
7
7
  splitNameAndMeta,
8
8
  warnUnknownMetaKeys,
9
9
  withTagAliases
10
- } from "./chunk-BRENJ2BQ.js";
10
+ } from "./chunk-3FRO35WW.js";
11
11
  import {
12
12
  makeDgmoError
13
- } from "./chunk-CXK4DZH3.js";
13
+ } from "./chunk-4W2PE66Q.js";
14
14
 
15
15
  // src/timeline/parser.ts
16
16
  var TIMELINE_DURATION_RE = /^(\d+(?:\.\d{1,2})?)(min|[dwmyhs])(\?)?$/;
@@ -314,4 +314,4 @@ export {
314
314
  parseTimelineDate,
315
315
  parseTimelineEventLine
316
316
  };
317
- //# sourceMappingURL=chunk-R3YSD62R.js.map
317
+ //# sourceMappingURL=chunk-3KHJJP3J.js.map
@@ -1,17 +1,18 @@
1
1
  import {
2
+ activeTagGroupOf,
2
3
  buildHeatScale,
3
4
  buildLegend,
4
5
  compactNumber,
5
6
  formatPct,
6
7
  resolveCellColor,
7
8
  resolveColorMode
8
- } from "./chunk-5BHJZH62.js";
9
+ } from "./chunk-6OYDOQ2Q.js";
9
10
  import {
10
11
  renderIntegratedLegend
11
- } from "./chunk-AUIM2NVH.js";
12
+ } from "./chunk-2NZOHEP4.js";
12
13
  import {
13
14
  getMaxLegendReservedHeight
14
- } from "./chunk-YAA6IID3.js";
15
+ } from "./chunk-J7HQPVYH.js";
15
16
  import {
16
17
  TITLE_FONT_SIZE,
17
18
  TITLE_FONT_WEIGHT,
@@ -22,19 +23,19 @@ import {
22
23
  } from "./chunk-6KFWC4CO.js";
23
24
  import {
24
25
  LEGEND_GROUP_GAP
25
- } from "./chunk-QOOUC2J5.js";
26
+ } from "./chunk-Q5IHQ4NW.js";
26
27
  import {
27
28
  measureText
28
- } from "./chunk-WCT3NYCV.js";
29
+ } from "./chunk-4ASYQ347.js";
29
30
  import {
30
31
  contrastText,
31
32
  getSeriesColors,
32
33
  mix,
33
34
  themeBaseBg
34
- } from "./chunk-WBM7ZNDI.js";
35
+ } from "./chunk-JYDMBWRP.js";
35
36
  import {
36
37
  tagAttrKey
37
- } from "./chunk-HHKO6SKY.js";
38
+ } from "./chunk-AHTTKERF.js";
38
39
 
39
40
  // src/treemap/renderer.ts
40
41
  import * as d3Selection from "d3-selection";
@@ -63,14 +64,31 @@ function toDatum(node) {
63
64
  children: node.children.map((c) => toDatum(c))
64
65
  };
65
66
  }
66
- function datumHeat(node) {
67
+ function collectHeatAggs(root) {
68
+ const aggs = /* @__PURE__ */ new Map();
69
+ root.eachBefore((node) => {
70
+ if (node.children) return;
71
+ const heat = node.data.heat;
72
+ if (heat === void 0) return;
73
+ let p = node;
74
+ while (p) {
75
+ const agg = aggs.get(p);
76
+ if (agg) {
77
+ agg.sum += heat;
78
+ agg.count += 1;
79
+ } else {
80
+ aggs.set(p, { sum: heat, count: 1 });
81
+ }
82
+ p = p.parent;
83
+ }
84
+ });
85
+ return aggs;
86
+ }
87
+ function datumHeat(node, heatAggs) {
67
88
  if (node.data.heat !== void 0) return node.data.heat;
68
- const xs = [];
69
- for (const l of node.leaves()) {
70
- if (l.data.heat !== void 0) xs.push(l.data.heat);
71
- }
72
- if (xs.length === 0) return void 0;
73
- return xs.reduce((a, b) => a + b, 0) / xs.length;
89
+ const agg = heatAggs.get(node);
90
+ if (agg === void 0) return void 0;
91
+ return agg.sum / agg.count;
74
92
  }
75
93
  function layoutTreemap(roots, opts) {
76
94
  const maxDepth = opts.maxDepth ?? Infinity;
@@ -86,6 +104,7 @@ function layoutTreemap(roots, opts) {
86
104
  d._topIndex = i;
87
105
  });
88
106
  });
107
+ const heatAggs = collectHeatAggs(hroot);
89
108
  const cells = [];
90
109
  for (const d of hroot.descendants()) {
91
110
  if (d.depth === 0) continue;
@@ -99,7 +118,7 @@ function layoutTreemap(roots, opts) {
99
118
  path.unshift(p.data.label);
100
119
  p = p.parent;
101
120
  }
102
- const heatVal = datumHeat(d);
121
+ const heatVal = datumHeat(d, heatAggs);
103
122
  cells.push({
104
123
  node: d.data.ref ?? null,
105
124
  label: d.data.label,
@@ -181,7 +200,7 @@ function renderTreemap(container, parsed, palette, isDark, exportDims, options =
181
200
  const root = svg.append("g").attr("class", "dgmo-treemap-cells").attr("transform", `translate(${areaX},${areaY})`);
182
201
  const seriesColors = seriesColorsTop;
183
202
  const colorOffset = options.colorOffset ?? 0;
184
- const activeGroup = parsed.tagGroups.length > 0 ? parsed.tagGroups[0].name : null;
203
+ const activeGroup = activeTagGroupOf(parsed)?.name ?? null;
185
204
  const rootIndexByLabel = new Map(parsed.roots.map((r, i) => [r.label, i]));
186
205
  const colorCtx = {
187
206
  mode,
@@ -380,4 +399,4 @@ export {
380
399
  renderTreemapForExport,
381
400
  renderTreemap
382
401
  };
383
- //# sourceMappingURL=chunk-6LBQ7ELG.js.map
402
+ //# sourceMappingURL=chunk-3SBHODJ4.js.map
@@ -9,19 +9,19 @@ import {
9
9
  tagAttrKey,
10
10
  validateTagGroupNames,
11
11
  validateTagValues
12
- } from "./chunk-HHKO6SKY.js";
12
+ } from "./chunk-AHTTKERF.js";
13
13
  import {
14
14
  extractColor,
15
15
  fillModeFromToken,
16
16
  measureIndent,
17
17
  parseFirstLine
18
- } from "./chunk-BRENJ2BQ.js";
18
+ } from "./chunk-3FRO35WW.js";
19
19
  import {
20
20
  formatDgmoError,
21
21
  makeDgmoError,
22
22
  makeFail,
23
23
  suggest
24
- } from "./chunk-CXK4DZH3.js";
24
+ } from "./chunk-4W2PE66Q.js";
25
25
 
26
26
  // src/block/parser.ts
27
27
  function parseBlock(content, palette) {
@@ -338,4 +338,4 @@ function parseBlockTail(tail, aliasMap) {
338
338
  export {
339
339
  parseBlock
340
340
  };
341
- //# sourceMappingURL=chunk-4UNQ6X24.js.map
341
+ //# sourceMappingURL=chunk-3SEEP2JM.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  formatDateKey,
3
3
  parseGanttDate
4
- } from "./chunk-USZW2HHU.js";
4
+ } from "./chunk-EQW6HOP4.js";
5
5
 
6
6
  // src/pert/internal.ts
7
7
  var CONFIDENCE_TABLE = {
@@ -97,4 +97,4 @@ export {
97
97
  formatSprintCell,
98
98
  formatSlackValue
99
99
  };
100
- //# sourceMappingURL=chunk-7L4UJOY6.js.map
100
+ //# sourceMappingURL=chunk-3TYUXC7D.js.map
@@ -2,7 +2,7 @@ import {
2
2
  CHAR_WIDTH_RATIO,
3
3
  measureText,
4
4
  truncateText
5
- } from "./chunk-WCT3NYCV.js";
5
+ } from "./chunk-4ASYQ347.js";
6
6
 
7
7
  // src/infra/layout.ts
8
8
  import dagre from "@dagrejs/dagre";
@@ -587,4 +587,4 @@ export {
587
587
  fixEdgeWaypoints,
588
588
  layoutInfra
589
589
  };
590
- //# sourceMappingURL=chunk-Y2ZE3MSG.js.map
590
+ //# sourceMappingURL=chunk-43E26CDA.js.map
@@ -3,10 +3,10 @@ import {
3
3
  } from "./chunk-3HDBAXF5.js";
4
4
  import {
5
5
  renderIntegratedLegend
6
- } from "./chunk-AUIM2NVH.js";
6
+ } from "./chunk-2NZOHEP4.js";
7
7
  import {
8
8
  getMaxLegendReservedHeight
9
- } from "./chunk-YAA6IID3.js";
9
+ } from "./chunk-J7HQPVYH.js";
10
10
  import {
11
11
  TITLE_FONT_SIZE,
12
12
  TITLE_FONT_WEIGHT,
@@ -17,27 +17,27 @@ import {
17
17
  } from "./chunk-6KFWC4CO.js";
18
18
  import {
19
19
  LEGEND_GROUP_GAP
20
- } from "./chunk-QOOUC2J5.js";
20
+ } from "./chunk-Q5IHQ4NW.js";
21
21
  import {
22
22
  measureText
23
- } from "./chunk-WCT3NYCV.js";
23
+ } from "./chunk-4ASYQ347.js";
24
24
  import {
25
25
  contrastText,
26
26
  getSeriesColors,
27
27
  mix,
28
28
  shapeFill,
29
29
  themeBaseBg
30
- } from "./chunk-WBM7ZNDI.js";
30
+ } from "./chunk-JYDMBWRP.js";
31
31
  import {
32
32
  resolveTagColor,
33
33
  tagAttrKey
34
- } from "./chunk-HHKO6SKY.js";
34
+ } from "./chunk-AHTTKERF.js";
35
35
  import {
36
36
  resolveColor
37
- } from "./chunk-TLVIHFRO.js";
37
+ } from "./chunk-ZKPPI6BF.js";
38
38
  import {
39
39
  makeDgmoError
40
- } from "./chunk-CXK4DZH3.js";
40
+ } from "./chunk-4W2PE66Q.js";
41
41
 
42
42
  // src/bracket/renderer.ts
43
43
  import * as d3Selection from "d3-selection";
@@ -959,4 +959,4 @@ export {
959
959
  renderBracket,
960
960
  renderBracketForExport
961
961
  };
962
- //# sourceMappingURL=chunk-CCNDLW7Z.js.map
962
+ //# sourceMappingURL=chunk-47JNEKJA.js.map
@@ -88,23 +88,38 @@ var CHAR_W = {
88
88
  };
89
89
  var DEFAULT_W = 0.56;
90
90
  var CHAR_WIDTH_RATIO = DEFAULT_W;
91
- function measureText(text, fontSize) {
92
- let w = 0;
91
+ var MEASURE_CACHE = /* @__PURE__ */ new Map();
92
+ var MEASURE_CACHE_MAX = 1e4;
93
+ function extendWidth(acc, text, fontSize) {
94
+ let w = acc;
93
95
  for (let i = 0; i < text.length; i++) {
94
96
  w += (CHAR_W[text.charAt(i)] ?? DEFAULT_W) * fontSize;
95
97
  }
96
98
  return w;
97
99
  }
100
+ function measureText(text, fontSize) {
101
+ const key = `${fontSize}|${text}`;
102
+ const cached = MEASURE_CACHE.get(key);
103
+ if (cached !== void 0) return cached;
104
+ const w = extendWidth(0, text, fontSize);
105
+ if (MEASURE_CACHE.size >= MEASURE_CACHE_MAX) MEASURE_CACHE.clear();
106
+ MEASURE_CACHE.set(key, w);
107
+ return w;
108
+ }
98
109
  function truncateText(text, fontSize, maxWidth) {
99
110
  if (measureText(text, fontSize) <= maxWidth) return text;
100
111
  const ellipsis = "\u2026";
101
112
  const ellipsisW = measureText(ellipsis, fontSize);
102
113
  if (ellipsisW > maxWidth) return "";
114
+ const prefix = [0];
115
+ for (let i = 0; i < text.length; i++) {
116
+ prefix.push(extendWidth(prefix[i], text.charAt(i), fontSize));
117
+ }
103
118
  let lo = 0;
104
119
  let hi = text.length;
105
120
  while (lo < hi) {
106
121
  const mid = Math.ceil((lo + hi) / 2);
107
- if (measureText(text.slice(0, mid), fontSize) + ellipsisW <= maxWidth) {
122
+ if (prefix[mid] + ellipsisW <= maxWidth) {
108
123
  lo = mid;
109
124
  } else {
110
125
  hi = mid - 1;
@@ -116,15 +131,19 @@ function wrapTextToWidth(text, fontSize, maxWidth, opts) {
116
131
  const words = text.split(/\s+/).filter((w) => w.length > 0);
117
132
  if (words.length === 0) return [""];
118
133
  const hardBreak = opts?.hardBreak ?? false;
134
+ const spaceW = (CHAR_W[" "] ?? DEFAULT_W) * fontSize;
119
135
  const lines = [];
120
136
  let current = "";
137
+ let currentW = 0;
121
138
  const pushWord = (word) => {
122
- const test = current ? `${current} ${word}` : word;
123
- if (measureText(test, fontSize) <= maxWidth || !current) {
124
- current = test;
139
+ const testW = extendWidth(current ? currentW + spaceW : 0, word, fontSize);
140
+ if (testW <= maxWidth || !current) {
141
+ current = current ? `${current} ${word}` : word;
142
+ currentW = testW;
125
143
  } else {
126
144
  lines.push(current);
127
145
  current = word;
146
+ currentW = extendWidth(0, word, fontSize);
128
147
  }
129
148
  };
130
149
  for (const word of words) {
@@ -132,17 +151,23 @@ function wrapTextToWidth(text, fontSize, maxWidth, opts) {
132
151
  if (current) {
133
152
  lines.push(current);
134
153
  current = "";
154
+ currentW = 0;
135
155
  }
136
156
  let chunk = "";
157
+ let chunkW = 0;
137
158
  for (const ch of word) {
138
- if (chunk && measureText(chunk + ch, fontSize) > maxWidth) {
159
+ const candW = extendWidth(chunkW, ch, fontSize);
160
+ if (chunk && candW > maxWidth) {
139
161
  lines.push(chunk);
140
162
  chunk = ch;
163
+ chunkW = extendWidth(0, ch, fontSize);
141
164
  } else {
142
165
  chunk += ch;
166
+ chunkW = candW;
143
167
  }
144
168
  }
145
169
  current = chunk;
170
+ currentW = chunkW;
146
171
  continue;
147
172
  }
148
173
  pushWord(word);
@@ -157,4 +182,4 @@ export {
157
182
  truncateText,
158
183
  wrapTextToWidth
159
184
  };
160
- //# sourceMappingURL=chunk-WCT3NYCV.js.map
185
+ //# sourceMappingURL=chunk-4ASYQ347.js.map
@@ -100,11 +100,50 @@ function pointInGeometry(geometry, lon, lat) {
100
100
  }
101
101
  return false;
102
102
  }
103
+ var planarBboxCache = /* @__PURE__ */ new WeakMap();
104
+ function planarGeometryBbox(geometry) {
105
+ const g = geometry;
106
+ if (!g) return null;
107
+ const polys = g.type === "Polygon" ? [g.coordinates] : g.type === "MultiPolygon" ? g.coordinates : [];
108
+ let minLon = Infinity;
109
+ let minLat = Infinity;
110
+ let maxLon = -Infinity;
111
+ let maxLat = -Infinity;
112
+ let seen = false;
113
+ for (const rings of polys) {
114
+ const outer = rings[0];
115
+ if (!outer) continue;
116
+ for (const pt of outer) {
117
+ const x = pt[0];
118
+ const y = pt[1];
119
+ if (x < minLon) minLon = x;
120
+ if (x > maxLon) maxLon = x;
121
+ if (y < minLat) minLat = y;
122
+ if (y > maxLat) maxLat = y;
123
+ seen = true;
124
+ }
125
+ }
126
+ return seen ? [minLon, minLat, maxLon, maxLat] : null;
127
+ }
128
+ function featurePlanarBbox(f) {
129
+ let bbox = planarBboxCache.get(f);
130
+ if (bbox === void 0) {
131
+ bbox = planarGeometryBbox(f.geometry);
132
+ planarBboxCache.set(f, bbox);
133
+ }
134
+ return bbox;
135
+ }
136
+ function bboxRejects(f, lon, lat) {
137
+ const b = featurePlanarBbox(f);
138
+ if (!b) return false;
139
+ return lon < b[0] - EDGE_EPS || lon > b[2] + EDGE_EPS || lat < b[1] - EDGE_EPS || lat > b[3] + EDGE_EPS;
140
+ }
103
141
  function regionAt(lonLat, countries, states) {
104
142
  const lon = lonLat[0];
105
143
  const lat = lonLat[1];
106
144
  let country = null;
107
145
  for (const f of countries) {
146
+ if (bboxRejects(f, lon, lat)) continue;
108
147
  if (pointInGeometry(f.geometry, lon, lat)) {
109
148
  country = { iso: f.id, name: f.properties.name };
110
149
  break;
@@ -113,6 +152,7 @@ function regionAt(lonLat, countries, states) {
113
152
  let state = null;
114
153
  if (country?.iso === "US" && states) {
115
154
  for (const f of states) {
155
+ if (bboxRejects(f, lon, lat)) continue;
116
156
  if (pointInGeometry(f.geometry, lon, lat)) {
117
157
  state = { iso: f.id, name: f.properties.name };
118
158
  break;
@@ -252,4 +292,4 @@ export {
252
292
  featureBboxPrimary,
253
293
  unionExtent
254
294
  };
255
- //# sourceMappingURL=chunk-I5IGB56C.js.map
295
+ //# sourceMappingURL=chunk-4QV26TEG.js.map
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-YYVTBZZC.js";
10
10
  import {
11
11
  renderIntegratedLegend
12
- } from "./chunk-AUIM2NVH.js";
12
+ } from "./chunk-2NZOHEP4.js";
13
13
  import {
14
14
  TITLE_FONT_SIZE,
15
15
  TITLE_FONT_WEIGHT,
@@ -20,21 +20,21 @@ import {
20
20
  } from "./chunk-6KFWC4CO.js";
21
21
  import {
22
22
  LEGEND_HEIGHT
23
- } from "./chunk-QOOUC2J5.js";
23
+ } from "./chunk-Q5IHQ4NW.js";
24
24
  import {
25
25
  measureText,
26
26
  wrapTextToWidth
27
- } from "./chunk-WCT3NYCV.js";
27
+ } from "./chunk-4ASYQ347.js";
28
28
  import {
29
29
  contrastText,
30
30
  shapeFill
31
- } from "./chunk-WBM7ZNDI.js";
31
+ } from "./chunk-JYDMBWRP.js";
32
32
  import {
33
33
  fillModeFromOptions
34
- } from "./chunk-BRENJ2BQ.js";
34
+ } from "./chunk-3FRO35WW.js";
35
35
  import {
36
36
  resolveColor
37
- } from "./chunk-TLVIHFRO.js";
37
+ } from "./chunk-ZKPPI6BF.js";
38
38
 
39
39
  // src/cycle/renderer.ts
40
40
  import * as d3Selection from "d3-selection";
@@ -676,7 +676,7 @@ function buildEdgeArc(src, tgt, cx, cy, radius, isClockwise, arrowLength = 0) {
676
676
  // src/cycle/renderer.ts
677
677
  var NODE_FONT_SIZE = 13;
678
678
  var DESC_FONT_SIZE2 = 11;
679
- var EDGE_LABEL_FONT_SIZE2 = 11;
679
+ var EDGE_LABEL_FONT_SIZE2 = 13;
680
680
  var DESC_LINE_HEIGHT2 = 15;
681
681
  var TITLE_AREA_HEIGHT = 50;
682
682
  function renderCycle(container, parsed, palette, isDark, onClickItem, exportDims, viewState, renderOptions) {
@@ -969,4 +969,4 @@ export {
969
969
  renderCycle,
970
970
  renderCycleForExport
971
971
  };
972
- //# sourceMappingURL=chunk-INE5YJBZ.js.map
972
+ //# sourceMappingURL=chunk-4T6OCSJ2.js.map
@@ -98,6 +98,15 @@ var METADATA_DIAGNOSTIC_CODES = {
98
98
  function emptyMetadataValueMessage(key) {
99
99
  return `Metadata key '${key}:' has no value \u2014 the pair is dropped. Provide a value or remove the key.`;
100
100
  }
101
+ var TITLE_DIRECTIVE_DX = {
102
+ code: "E_TITLE_DIRECTIVE",
103
+ severity: "error",
104
+ chartType: null,
105
+ title: "title directive on a data chart",
106
+ message: "The `title` directive is not supported \u2014 the chart title is line 1 \u2014 remove the title directive.",
107
+ hint: "Put the title on the declaration line (`bar My Chart`) and delete the `title` line.",
108
+ example: "bar Revenue\ntitle Revenue\nQ1 100"
109
+ };
101
110
 
102
111
  export {
103
112
  makeDgmoError,
@@ -109,6 +118,7 @@ export {
109
118
  NAME_DIAGNOSTIC_CODES,
110
119
  nameMergedMessage,
111
120
  METADATA_DIAGNOSTIC_CODES,
112
- emptyMetadataValueMessage
121
+ emptyMetadataValueMessage,
122
+ TITLE_DIRECTIVE_DX
113
123
  };
114
- //# sourceMappingURL=chunk-CXK4DZH3.js.map
124
+ //# sourceMappingURL=chunk-4W2PE66Q.js.map
@@ -5,18 +5,21 @@ import {
5
5
  import {
6
6
  ScaleContext
7
7
  } from "./chunk-YYVTBZZC.js";
8
- import {
9
- renderIntegratedLegend
10
- } from "./chunk-AUIM2NVH.js";
11
8
  import {
12
9
  createTooltip,
13
10
  hideTooltip,
14
11
  renderChartTitle,
15
12
  showTooltip
16
- } from "./chunk-QBZYACOG.js";
13
+ } from "./chunk-ADYKAKE3.js";
14
+ import {
15
+ renderIntegratedLegend
16
+ } from "./chunk-2NZOHEP4.js";
17
17
  import {
18
18
  FONT_FAMILY
19
19
  } from "./chunk-6KFWC4CO.js";
20
+ import {
21
+ parseTimelineDate
22
+ } from "./chunk-3KHJJP3J.js";
20
23
  import {
21
24
  LEGEND_CAPSULE_PAD,
22
25
  LEGEND_DOT_R,
@@ -26,22 +29,20 @@ import {
26
29
  LEGEND_HEIGHT,
27
30
  LEGEND_PILL_FONT_SIZE,
28
31
  LEGEND_PILL_PAD,
32
+ legendChromeColors,
29
33
  measureLegendText,
30
34
  truncateLegendText
31
- } from "./chunk-QOOUC2J5.js";
32
- import {
33
- parseTimelineDate
34
- } from "./chunk-R3YSD62R.js";
35
+ } from "./chunk-Q5IHQ4NW.js";
35
36
  import {
36
37
  getSeriesColors,
37
38
  mix,
38
39
  shapeFill,
39
40
  themeBaseBg
40
- } from "./chunk-WBM7ZNDI.js";
41
+ } from "./chunk-JYDMBWRP.js";
41
42
  import {
42
43
  resolveTagColor,
43
44
  tagAttrKey
44
- } from "./chunk-HHKO6SKY.js";
45
+ } from "./chunk-AHTTKERF.js";
45
46
 
46
47
  // src/timeline/renderer.ts
47
48
  import * as d3Scale from "d3-scale";
@@ -284,7 +285,7 @@ function renderTimelineGroupLegend(g, groups, groupColorMap, textColor, palette,
284
285
  const PAD_X = 10;
285
286
  const FONT_SIZE = 11;
286
287
  const GAP = 8;
287
- const pillBg = isDark ? mix(palette.surface, palette.bg, 50) : mix(palette.surface, palette.bg, 30);
288
+ const pillBg = legendChromeColors(palette, isDark).groupBg;
288
289
  let legendX = 0;
289
290
  for (const grp of groups) {
290
291
  const color = groupColorMap.get(grp.name) ?? textColor;
@@ -416,7 +417,7 @@ function setupTimeline(container, parsed, palette, isDark, exportDims, activeTag
416
417
  }
417
418
  }
418
419
  const datePadding = (maxDate - minDate) * 0.05 || 0.5;
419
- const tagLegendReserve = parsed.timelineTagGroups.length > 0 ? 36 : 0;
420
+ const tagLegendReserve = parsed.timelineTagGroups.length > 0 && !parsed.noLegend ? 36 : 0;
420
421
  const idealWidth = isVertical ? 500 : Math.max(600, timelineEvents.length * 40 + 200);
421
422
  const ctx = exportDims ? ScaleContext.identity() : ScaleContext.from(width, idealWidth);
422
423
  return {
@@ -553,7 +554,7 @@ function makeTimelineHoverHelpers() {
553
554
  };
554
555
  }
555
556
  function renderTimelineTagLegendOverlay(container, parsed, palette, isDark, setup, hovers, onClickItem, exportDims, swimlaneTagGroup, activeTagGroup, onTagStateChange, viewMode, exportMode) {
556
- if (parsed.timelineTagGroups.length === 0) return;
557
+ if (parsed.timelineTagGroups.length === 0 || parsed.noLegend) return;
557
558
  const { width, textColor, groupColorMap, fillMode } = setup;
558
559
  const { FADE_OPACITY, fadeReset, fadeToTagValue } = hovers;
559
560
  const title = parsed.noTitle ? null : parsed.title;
@@ -853,7 +854,7 @@ function renderTimelineHorizontalTimeSort(container, parsed, palette, isDark, se
853
854
  formatBoundaryLabel(latestEndDateStr, earliestStartDateStr)
854
855
  );
855
856
  }
856
- if (timelineGroups.length > 0) {
857
+ if (timelineGroups.length > 0 && !parsed.noLegend) {
857
858
  const legendY = timelineScale ? -ctx.aesthetic(75) : -ctx.aesthetic(55);
858
859
  renderTimelineGroupLegend(
859
860
  g,
@@ -1483,7 +1484,7 @@ function renderTimelineVertical(container, parsed, palette, isDark, setup, hover
1483
1484
  formatBoundaryLabel(latestEndDateStr, earliestStartDateStr)
1484
1485
  );
1485
1486
  }
1486
- if (timelineGroups.length > 0) {
1487
+ if (timelineGroups.length > 0 && !parsed.noLegend) {
1487
1488
  renderTimelineGroupLegend(
1488
1489
  g,
1489
1490
  timelineGroups,
@@ -1669,4 +1670,4 @@ export {
1669
1670
  formatDateLabel,
1670
1671
  renderTimeline
1671
1672
  };
1672
- //# sourceMappingURL=chunk-7KINELPI.js.map
1673
+ //# sourceMappingURL=chunk-4ZIKWVSQ.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-6EK55ART.js";
4
4
  import {
5
5
  noteBoxSize
6
- } from "./chunk-TYS6CSS5.js";
6
+ } from "./chunk-UU6LUYUH.js";
7
7
 
8
8
  // src/utils/notes/build.ts
9
9
  function buildPlacedNotes(anchors, noteByNode, direction, collapsedNotes) {
@@ -70,4 +70,4 @@ function buildPlacedNotes(anchors, noteByNode, direction, collapsedNotes) {
70
70
  export {
71
71
  buildPlacedNotes
72
72
  };
73
- //# sourceMappingURL=chunk-JED6ZDEE.js.map
73
+ //# sourceMappingURL=chunk-5HWPEYWB.js.map
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  ScaleContext
3
3
  } from "./chunk-YYVTBZZC.js";
4
- import {
5
- measureText,
6
- truncateText
7
- } from "./chunk-WCT3NYCV.js";
8
4
  import {
9
5
  preprocessDescriptionLine
10
6
  } from "./chunk-IYULMRBE.js";
7
+ import {
8
+ measureText,
9
+ truncateText
10
+ } from "./chunk-4ASYQ347.js";
11
11
  import {
12
12
  injectDefaultTagMetadata,
13
13
  resolveTagColor
14
- } from "./chunk-HHKO6SKY.js";
14
+ } from "./chunk-AHTTKERF.js";
15
15
 
16
16
  // src/mindmap/text-wrap.ts
17
17
  var H_PAD = 16;
@@ -547,4 +547,4 @@ export {
547
547
  computeNodeText,
548
548
  layoutMindmap
549
549
  };
550
- //# sourceMappingURL=chunk-HWX6ZHF3.js.map
550
+ //# sourceMappingURL=chunk-5VXU6MND.js.map