@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
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-BMR4CIEO.js";
13
13
  import {
14
14
  measureText
15
- } from "./chunk-WCT3NYCV.js";
15
+ } from "./chunk-4ASYQ347.js";
16
16
 
17
17
  // src/utils/note-box/metrics.ts
18
18
  function normalizeBulletLine(line) {
@@ -49,4 +49,4 @@ export {
49
49
  wrapNoteBody,
50
50
  noteBoxSize
51
51
  };
52
- //# sourceMappingURL=chunk-TYS6CSS5.js.map
52
+ //# sourceMappingURL=chunk-UU6LUYUH.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  measureText
3
- } from "./chunk-WCT3NYCV.js";
3
+ } from "./chunk-4ASYQ347.js";
4
4
 
5
5
  // src/label-layout.ts
6
6
  function rectsOverlap(a, b) {
@@ -221,4 +221,4 @@ export {
221
221
  segmentsCross,
222
222
  computeQuadrantPointLabels
223
223
  };
224
- //# sourceMappingURL=chunk-VL2O2F3W.js.map
224
+ //# sourceMappingURL=chunk-VHO3YBTB.js.map
@@ -18,18 +18,18 @@ import {
18
18
  import {
19
19
  CHAR_WIDTH_RATIO,
20
20
  measureText
21
- } from "./chunk-WCT3NYCV.js";
21
+ } from "./chunk-4ASYQ347.js";
22
22
  import {
23
23
  contrastText,
24
24
  getSeriesColors,
25
25
  shapeFill
26
- } from "./chunk-WBM7ZNDI.js";
26
+ } from "./chunk-JYDMBWRP.js";
27
27
  import {
28
28
  fillModeFromOptions
29
- } from "./chunk-BRENJ2BQ.js";
29
+ } from "./chunk-3FRO35WW.js";
30
30
  import {
31
31
  resolveColor
32
- } from "./chunk-TLVIHFRO.js";
32
+ } from "./chunk-ZKPPI6BF.js";
33
33
 
34
34
  // src/pyramid/renderer.ts
35
35
  import * as d3Selection from "d3-selection";
@@ -436,4 +436,4 @@ export {
436
436
  renderPyramid,
437
437
  renderPyramidForExport
438
438
  };
439
- //# sourceMappingURL=chunk-4YFKQ5WT.js.map
439
+ //# sourceMappingURL=chunk-VMSBMIHW.js.map
@@ -9,16 +9,16 @@ import {
9
9
  matchTagBlockHeading,
10
10
  stripDefaultModifier,
11
11
  tagAttrKey
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
  emit
21
- } from "./chunk-CXK4DZH3.js";
21
+ } from "./chunk-4W2PE66Q.js";
22
22
 
23
23
  // src/body/diagnostics.ts
24
24
  var BODY_DX = {
@@ -264,4 +264,4 @@ export {
264
264
  parseBody,
265
265
  extractSymbols
266
266
  };
267
- //# sourceMappingURL=chunk-Z5QVYKR7.js.map
267
+ //# sourceMappingURL=chunk-VQFDBNYF.js.map
@@ -5,16 +5,16 @@ import {
5
5
  splitNameAndMeta,
6
6
  tryParseSharedOption,
7
7
  warnUnknownMetaKeys
8
- } from "./chunk-BRENJ2BQ.js";
8
+ } from "./chunk-3FRO35WW.js";
9
9
  import {
10
10
  RECOGNIZED_COLOR_NAMES,
11
11
  resolveColor
12
- } from "./chunk-TLVIHFRO.js";
12
+ } from "./chunk-ZKPPI6BF.js";
13
13
  import {
14
14
  makeDgmoError,
15
15
  makeFail,
16
16
  suggest
17
- } from "./chunk-CXK4DZH3.js";
17
+ } from "./chunk-4W2PE66Q.js";
18
18
 
19
19
  // src/ring/parser.ts
20
20
  var MAX_LAYERS = 15;
@@ -165,4 +165,4 @@ function parseRing(content) {
165
165
  export {
166
166
  parseRing
167
167
  };
168
- //# sourceMappingURL=chunk-UNURMIQO.js.map
168
+ //# sourceMappingURL=chunk-W6PCFRPL.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  makeDgmoError
3
- } from "./chunk-CXK4DZH3.js";
3
+ } from "./chunk-4W2PE66Q.js";
4
4
 
5
5
  // src/utils/arrows.ts
6
6
  var ARROW_DIAGNOSTIC_CODES = {
@@ -94,4 +94,4 @@ export {
94
94
  parseInArrowLabel,
95
95
  parseArrow
96
96
  };
97
- //# sourceMappingURL=chunk-FFUN5D66.js.map
97
+ //# sourceMappingURL=chunk-WF64MW5G.js.map
@@ -4,26 +4,26 @@ import {
4
4
  renderNoteBadge,
5
5
  renderNoteBox,
6
6
  renderNoteConnector
7
- } from "./chunk-J7TLCB2Q.js";
7
+ } from "./chunk-3IUHKMJI.js";
8
8
  import {
9
9
  renderInlineText
10
10
  } from "./chunk-3HDBAXF5.js";
11
- import {
12
- wrapDescriptionLines
13
- } from "./chunk-BMR4CIEO.js";
14
11
  import {
15
12
  EDGE_STROKE_WIDTH,
16
13
  NODE_STROKE_WIDTH
17
14
  } from "./chunk-3CIOJ5YJ.js";
15
+ import {
16
+ wrapDescriptionLines
17
+ } from "./chunk-BMR4CIEO.js";
18
18
  import {
19
19
  ScaleContext
20
20
  } from "./chunk-YYVTBZZC.js";
21
21
  import {
22
22
  renderIntegratedLegend
23
- } from "./chunk-AUIM2NVH.js";
23
+ } from "./chunk-2NZOHEP4.js";
24
24
  import {
25
25
  getMaxLegendReservedHeight
26
- } from "./chunk-YAA6IID3.js";
26
+ } from "./chunk-J7HQPVYH.js";
27
27
  import {
28
28
  TITLE_FONT_SIZE,
29
29
  TITLE_FONT_WEIGHT,
@@ -36,7 +36,7 @@ import {
36
36
  CHAR_WIDTH_RATIO,
37
37
  measureText,
38
38
  truncateText
39
- } from "./chunk-WCT3NYCV.js";
39
+ } from "./chunk-4ASYQ347.js";
40
40
  import {
41
41
  contrastText,
42
42
  mix,
@@ -44,16 +44,17 @@ import {
44
44
  shapeFill,
45
45
  themeBaseBg,
46
46
  valueRampColor
47
- } from "./chunk-WBM7ZNDI.js";
47
+ } from "./chunk-JYDMBWRP.js";
48
48
  import {
49
49
  resolveTagColor
50
- } from "./chunk-HHKO6SKY.js";
50
+ } from "./chunk-AHTTKERF.js";
51
51
  import {
52
- fillModeFromOptions
53
- } from "./chunk-BRENJ2BQ.js";
52
+ fillModeFromOptions,
53
+ legendSuppressed
54
+ } from "./chunk-3FRO35WW.js";
54
55
  import {
55
56
  resolveColor
56
- } from "./chunk-TLVIHFRO.js";
57
+ } from "./chunk-ZKPPI6BF.js";
57
58
 
58
59
  // src/boxes-and-lines/renderer.ts
59
60
  import * as d3Selection from "d3-selection";
@@ -290,7 +291,8 @@ function renderBoxesAndLines(container, parsed, layout, palette, isDark, options
290
291
  const reserveHasDescriptions = parsed.nodes.some(
291
292
  (n) => n.description && n.description.length > 0
292
293
  );
293
- const willRenderLegend = legendGroups.length > 0 || reserveHasDescriptions && controlsHost !== "app";
294
+ const noLegend = legendSuppressed(parsed.options);
295
+ const willRenderLegend = (legendGroups.length > 0 || reserveHasDescriptions && controlsHost !== "app") && !noLegend;
294
296
  const sLegendHeight = willRenderLegend ? sctx.structural(
295
297
  getMaxLegendReservedHeight(
296
298
  {
@@ -311,7 +313,7 @@ function renderBoxesAndLines(container, parsed, layout, palette, isDark, options
311
313
  const hasAnyDescriptions = parsed.nodes.some(
312
314
  (n) => n.description && n.description.length > 0
313
315
  );
314
- const needsLegend = legendGroups.length > 0 || hasAnyDescriptions && onToggleDescriptions;
316
+ const needsLegend = (legendGroups.length > 0 || hasAnyDescriptions && !!onToggleDescriptions) && !noLegend;
315
317
  const legendH = needsLegend ? sLegendHeight + 8 : 0;
316
318
  const groupLabelsSet = new Set(layout.groups.map((g) => g.label));
317
319
  let labelZoneExtension = 0;
@@ -574,11 +576,11 @@ function renderBoxesAndLines(container, parsed, layout, palette, isDark, options
574
576
  const tooltipText = fullText.length > 200 ? fullText.slice(0, 199) + "\u2026" : fullText;
575
577
  nodeG.append("title").text(tooltipText);
576
578
  }
577
- if (parsed.showValues && node.value !== void 0) {
579
+ if (parsed.showValues !== false && node.value !== void 0) {
578
580
  const valueLabel = parsed.boxMetric ? `${parsed.boxMetric}: ${node.value}` : String(node.value);
579
581
  nodeG.append("text").attr("class", "bl-node-value").attr("x", 0).attr("y", descStartY + visibleLines.length * descLineH).attr("text-anchor", "middle").attr("dominant-baseline", "central").attr("font-size", VALUE_FONT_SIZE).attr("font-weight", "600").attr("fill", colors.text).text(valueLabel);
580
582
  }
581
- } else if (parsed.showValues && node.value !== void 0) {
583
+ } else if (parsed.showValues !== false && node.value !== void 0) {
582
584
  const valueLabel = parsed.boxMetric ? `${parsed.boxMetric}: ${node.value}` : String(node.value);
583
585
  const headerH = ln.height / 2;
584
586
  const sepY = -ln.height / 2 + headerH;
@@ -681,7 +683,7 @@ function renderBoxesAndLines(container, parsed, layout, palette, isDark, options
681
683
  const hasDescriptions = parsed.nodes.some(
682
684
  (n) => n.description && n.description.length > 0
683
685
  );
684
- const hasLegend = legendGroups.length > 0 || hasDescriptions && controlsHost !== "app";
686
+ const hasLegend = (legendGroups.length > 0 || hasDescriptions && controlsHost !== "app") && !noLegend;
685
687
  if (hasLegend) {
686
688
  let controlsGroup;
687
689
  if (hasDescriptions && (onToggleDescriptions || controlsHost === "app")) {
@@ -757,4 +759,4 @@ export {
757
759
  renderBoxesAndLines,
758
760
  renderBoxesAndLinesForExport
759
761
  };
760
- //# sourceMappingURL=chunk-T4A4TSTJ.js.map
762
+ //# sourceMappingURL=chunk-WKNAJ4BR.js.map
@@ -3,10 +3,10 @@ import {
3
3
  layoutJourneyMap,
4
4
  scoreToColor,
5
5
  scoreToCurveY
6
- } from "./chunk-YIBAWQGJ.js";
6
+ } from "./chunk-HFEOOQ46.js";
7
7
  import {
8
8
  wrapNoteBody
9
- } from "./chunk-TYS6CSS5.js";
9
+ } from "./chunk-UU6LUYUH.js";
10
10
  import {
11
11
  NOTE_BULLET_INDENT
12
12
  } from "./chunk-5DH3KYFH.js";
@@ -21,31 +21,31 @@ import {
21
21
  } from "./chunk-YYVTBZZC.js";
22
22
  import {
23
23
  renderIntegratedLegend
24
- } from "./chunk-AUIM2NVH.js";
24
+ } from "./chunk-2NZOHEP4.js";
25
25
  import {
26
26
  FONT_FAMILY
27
27
  } from "./chunk-6KFWC4CO.js";
28
+ import {
29
+ parseJourneyMap
30
+ } from "./chunk-KQ3FNRGR.js";
28
31
  import {
29
32
  measureText,
30
33
  truncateText,
31
34
  wrapTextToWidth
32
- } from "./chunk-WCT3NYCV.js";
33
- import {
34
- parseJourneyMap
35
- } from "./chunk-XD6ZYURY.js";
35
+ } from "./chunk-4ASYQ347.js";
36
36
  import {
37
37
  contrastText,
38
38
  mix,
39
39
  shapeFill,
40
40
  themeBaseBg
41
- } from "./chunk-WBM7ZNDI.js";
41
+ } from "./chunk-JYDMBWRP.js";
42
42
  import {
43
43
  resolveActiveTagGroup,
44
44
  tagAttrKey
45
- } from "./chunk-HHKO6SKY.js";
45
+ } from "./chunk-AHTTKERF.js";
46
46
  import {
47
47
  fillModeFromOptions
48
- } from "./chunk-BRENJ2BQ.js";
48
+ } from "./chunk-3FRO35WW.js";
49
49
 
50
50
  // src/journey-map/renderer.ts
51
51
  import * as d3 from "d3-selection";
@@ -868,4 +868,4 @@ export {
868
868
  renderJourneyMap,
869
869
  renderJourneyMapForExport
870
870
  };
871
- //# sourceMappingURL=chunk-CIRFIL4M.js.map
871
+ //# sourceMappingURL=chunk-WW4BQ744.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  extractColor,
3
3
  measureIndent
4
- } from "./chunk-BRENJ2BQ.js";
4
+ } from "./chunk-3FRO35WW.js";
5
5
  import {
6
6
  makeDgmoError
7
- } from "./chunk-CXK4DZH3.js";
7
+ } from "./chunk-4W2PE66Q.js";
8
8
 
9
9
  // src/utils/notes/parse.ts
10
10
  function parseNoteHeader(rest) {
@@ -73,4 +73,4 @@ function tryCollectNote(lines, index, indent, palette, diagnostics) {
73
73
  export {
74
74
  tryCollectNote
75
75
  };
76
- //# sourceMappingURL=chunk-ARGMQ3H4.js.map
76
+ //# sourceMappingURL=chunk-WWHECSYZ.js.map
@@ -7,26 +7,27 @@ import {
7
7
  tagAttrKey,
8
8
  validateTagGroupNames,
9
9
  validateTagValues
10
- } from "./chunk-HHKO6SKY.js";
10
+ } from "./chunk-AHTTKERF.js";
11
11
  import {
12
12
  TREEMAP_REGISTRY,
13
13
  extractColor,
14
14
  fillModeFromToken,
15
15
  measureIndent,
16
+ normalizeNumericToken,
16
17
  parseFirstLine,
17
18
  peelRampColors,
18
19
  splitNameAndMeta,
19
20
  stripQuotes,
20
21
  warnUnknownMetaKeys,
21
22
  withTagAliases
22
- } from "./chunk-BRENJ2BQ.js";
23
+ } from "./chunk-3FRO35WW.js";
23
24
  import {
24
25
  emit,
25
26
  formatDgmoError,
26
27
  makeDgmoError,
27
28
  makeFail,
28
29
  suggest
29
- } from "./chunk-CXK4DZH3.js";
30
+ } from "./chunk-4W2PE66Q.js";
30
31
 
31
32
  // src/treemap/diagnostics.ts
32
33
  var TREEMAP_DX = {
@@ -48,6 +49,21 @@ var TREEMAP_DX = {
48
49
  hint: "Add a trailing number (e.g. `Lonely 40`) so the leaf gets a size.",
49
50
  example: "treemap T\nA\n Lonely"
50
51
  },
52
+ LEAF_VALUE_UNPARSEABLE: {
53
+ code: "W_TREEMAP_LEAF_VALUE_UNPARSEABLE",
54
+ severity: "warning",
55
+ chartType: "treemap",
56
+ title: "Leaf value could not be read as a number",
57
+ message: (p) => {
58
+ const token = p.token ?? "1,24,000";
59
+ return `Leaf "${p.label ?? "Cluster"}" \u2014 could not read "${token}" as a number, so it renders with zero size. Remove the grouping separators: ${token.replace(
60
+ /[,_]/g,
61
+ ""
62
+ )}`;
63
+ },
64
+ hint: "Grouping separators must split the digits into even groups \u2014 `1,240,000` or `1_240_000`. Anything else must be written plainly, e.g. `1240000`.",
65
+ example: "treemap T\nA\n Cluster 1,24,000"
66
+ },
51
67
  BRANCH_VALUE_IGNORED: {
52
68
  code: "W_TREEMAP_BRANCH_VALUE_IGNORED",
53
69
  severity: "warning",
@@ -61,7 +77,7 @@ var TREEMAP_DX = {
61
77
  var TREEMAP_DIAGNOSTICS = Object.values(TREEMAP_DX);
62
78
 
63
79
  // src/treemap/parser.ts
64
- var VALUE_TOKEN_RE = /^(.+?)\s+(-?\d[\d_.]*)$/;
80
+ var VALUE_TOKEN_RE = /^(.+?)\s+(-?\d[\d_,.]*)$/;
65
81
  function isFullyQuoted(s) {
66
82
  return s.length >= 2 && (s.startsWith('"') && s.endsWith('"') || s.startsWith("'") && s.endsWith("'"));
67
83
  }
@@ -102,6 +118,7 @@ function parseTreemap(content, palette) {
102
118
  const lines = content.split("\n");
103
119
  let contentStarted = false;
104
120
  let nodeCounter = 0;
121
+ const badValueTokens = /* @__PURE__ */ new Map();
105
122
  let currentTagGroup = null;
106
123
  const aliasMap = /* @__PURE__ */ new Map();
107
124
  const indentStack = [];
@@ -196,7 +213,8 @@ function parseTreemap(content, palette) {
196
213
  lineNumber,
197
214
  ++nodeCounter,
198
215
  aliasMap,
199
- result.diagnostics
216
+ result.diagnostics,
217
+ badValueTokens
200
218
  );
201
219
  if (node.heat !== void 0) result.hasHeat = true;
202
220
  attachNode(node, indent, indentStack, result);
@@ -223,8 +241,12 @@ function parseTreemap(content, palette) {
223
241
  delete node.value;
224
242
  }
225
243
  } else if (node.value === void 0) {
244
+ const bad = badValueTokens.get(n);
226
245
  result.diagnostics.push(
227
- emit(TREEMAP_DX.LEAF_NO_VALUE, node.lineNumber, {
246
+ bad !== void 0 ? emit(TREEMAP_DX.LEAF_VALUE_UNPARSEABLE, node.lineNumber, {
247
+ label: node.label,
248
+ token: bad
249
+ }) : emit(TREEMAP_DX.LEAF_NO_VALUE, node.lineNumber, {
228
250
  label: node.label
229
251
  })
230
252
  );
@@ -246,7 +268,7 @@ function parseTreemap(content, palette) {
246
268
  validateTagGroupNames(result.tagGroups, pushWarning);
247
269
  cascadeTagMetadata(result.roots, result.tagGroups);
248
270
  }
249
- result.defaultColorMode = resolveDefaultColorMode(result);
271
+ result.defaultColorMode = resolveDefaultColorMode(result, pushWarning);
250
272
  if (result.roots.length === 0 && !result.error) {
251
273
  const diag = makeDgmoError(1, "No nodes found in treemap");
252
274
  result.diagnostics.push(diag);
@@ -280,10 +302,16 @@ function handleDirective(trimmed, options, result, pushWarning, lineNumber) {
280
302
  result.hasHeat = true;
281
303
  return true;
282
304
  }
283
- const noMatch = trimmed.match(/^no-(values|percent|headers|legend)\s*$/i);
305
+ const activeTagMatch = trimmed.match(/^active-tag\s+(.+)$/i);
306
+ if (activeTagMatch) {
307
+ result.activeTag = activeTagMatch[1].trim();
308
+ result.activeTagLineNumber = lineNumber;
309
+ return true;
310
+ }
311
+ const noMatch = trimmed.match(/^no-(values?|percent|headers|legend)\s*$/i);
284
312
  if (noMatch) {
285
313
  const key = noMatch[1].toLowerCase();
286
- if (key === "values") options.noValues = true;
314
+ if (key === "value" || key === "values") options.noValues = true;
287
315
  else if (key === "percent") options.noPercent = true;
288
316
  else if (key === "headers") options.noHeaders = true;
289
317
  else if (key === "legend") options.noLegend = true;
@@ -302,12 +330,30 @@ function handleDirective(trimmed, options, result, pushWarning, lineNumber) {
302
330
  }
303
331
  return false;
304
332
  }
305
- function resolveDefaultColorMode(result) {
306
- if (result.tagGroups.length > 0) return "tag";
333
+ function resolveDefaultColorMode(result, pushWarning) {
334
+ const at = result.activeTag?.trim();
335
+ if (at) {
336
+ const lv = at.toLowerCase();
337
+ if (lv === "none") return "branch";
338
+ const heatName = result.options.heatLabel;
339
+ const heatHit = heatName !== void 0 ? lv === heatName.toLowerCase() : lv === "value" || lv === "heat";
340
+ if (result.hasHeat && heatHit) return "heat";
341
+ if (result.tagGroups.some((g) => g.name.toLowerCase() === lv)) return "tag";
342
+ const dims = [
343
+ ...result.tagGroups.map((g) => g.name),
344
+ ...result.hasHeat ? [heatName ?? "Value"] : []
345
+ ];
346
+ const hint = dims.length ? ` Available: ${dims.join(", ")}, none.` : " No tag groups or heat are declared.";
347
+ pushWarning(
348
+ result.activeTagLineNumber ?? 0,
349
+ `active-tag "${at}" does not match a declared tag group or the heat label.${hint}`
350
+ );
351
+ }
307
352
  if (result.hasHeat) return "heat";
353
+ if (result.tagGroups.length > 0) return "tag";
308
354
  return "branch";
309
355
  }
310
- function parseNodeLine(trimmed, lineNumber, counter, aliasMap, diagnostics) {
356
+ function parseNodeLine(trimmed, lineNumber, counter, aliasMap, diagnostics, badValueTokens) {
311
357
  const registry = withTagAliases(TREEMAP_REGISTRY, new Set(aliasMap.keys()));
312
358
  const split = splitNameAndMeta(
313
359
  trimmed,
@@ -326,13 +372,15 @@ function parseNodeLine(trimmed, lineNumber, counter, aliasMap, diagnostics) {
326
372
  const metadata = { ...split.meta };
327
373
  let heat;
328
374
  if ("heat" in metadata) {
329
- const h = parseFloat(metadata["heat"].replace(/_/g, ""));
375
+ const rawHeat = metadata["heat"];
376
+ const h = parseFloat(normalizeNumericToken(rawHeat) ?? rawHeat);
330
377
  if (Number.isFinite(h)) heat = h;
331
378
  delete metadata["heat"];
332
379
  }
333
380
  const rawName = split.name;
334
381
  let label;
335
382
  let value;
383
+ let badValueToken;
336
384
  if (isFullyQuoted(rawName)) {
337
385
  label = stripQuotes(rawName);
338
386
  } else {
@@ -340,11 +388,16 @@ function parseNodeLine(trimmed, lineNumber, counter, aliasMap, diagnostics) {
340
388
  if (vm) {
341
389
  const labelPart = vm[1].trim();
342
390
  const token = vm[2];
343
- const cleaned = token.replace(/_/g, "");
344
- const parsed = parseFloat(cleaned);
391
+ const normalized = normalizeNumericToken(token);
392
+ const hasSeparators = /[,_]/.test(token);
393
+ const parsed = hasSeparators && normalized === null ? NaN : parseFloat(normalized ?? token);
394
+ const peeled = isFullyQuoted(labelPart) ? stripQuotes(labelPart) : labelPart;
345
395
  if (Number.isFinite(parsed)) {
346
396
  value = parsed;
347
- label = isFullyQuoted(labelPart) ? stripQuotes(labelPart) : labelPart;
397
+ label = peeled;
398
+ } else if (hasSeparators) {
399
+ label = peeled;
400
+ badValueToken = token;
348
401
  } else {
349
402
  label = rawName;
350
403
  }
@@ -352,7 +405,7 @@ function parseNodeLine(trimmed, lineNumber, counter, aliasMap, diagnostics) {
352
405
  label = rawName;
353
406
  }
354
407
  }
355
- return {
408
+ const node = {
356
409
  id: `treemap-node-${counter}`,
357
410
  label,
358
411
  ...value !== void 0 && { value },
@@ -361,6 +414,8 @@ function parseNodeLine(trimmed, lineNumber, counter, aliasMap, diagnostics) {
361
414
  children: [],
362
415
  lineNumber
363
416
  };
417
+ if (badValueToken !== void 0) badValueTokens.set(node, badValueToken);
418
+ return node;
364
419
  }
365
420
  function attachNode(node, indent, indentStack, result) {
366
421
  while (indentStack.length > 0) {
@@ -381,4 +436,4 @@ export {
381
436
  TREEMAP_DIAGNOSTICS,
382
437
  parseTreemap
383
438
  };
384
- //# sourceMappingURL=chunk-ZNWAYU6N.js.map
439
+ //# sourceMappingURL=chunk-XWODFBHJ.js.map
@@ -1,6 +1,12 @@
1
1
  import {
2
2
  SKETCH_DIAGNOSTIC_CODES
3
3
  } from "./chunk-RT7ACF77.js";
4
+ import {
5
+ parseInArrowLabel
6
+ } from "./chunk-WF64MW5G.js";
7
+ import {
8
+ normalizeName
9
+ } from "./chunk-NOTA6TEI.js";
4
10
  import {
5
11
  AUTO_TAG_COLOR_SENTINEL,
6
12
  finalizeAutoTagColors,
@@ -10,13 +16,7 @@ import {
10
16
  tagAttrKey,
11
17
  validateTagGroupNames,
12
18
  validateTagValues
13
- } from "./chunk-HHKO6SKY.js";
14
- import {
15
- parseInArrowLabel
16
- } from "./chunk-FFUN5D66.js";
17
- import {
18
- normalizeName
19
- } from "./chunk-NOTA6TEI.js";
19
+ } from "./chunk-AHTTKERF.js";
20
20
  import {
21
21
  SKETCH_REGISTRY,
22
22
  extractColor,
@@ -27,7 +27,7 @@ import {
27
27
  stripQuotes,
28
28
  warnUnknownMetaKeys,
29
29
  withTagAliases
30
- } from "./chunk-BRENJ2BQ.js";
30
+ } from "./chunk-3FRO35WW.js";
31
31
  import {
32
32
  NAME_DIAGNOSTIC_CODES,
33
33
  formatDgmoError,
@@ -35,7 +35,7 @@ import {
35
35
  makeFail,
36
36
  nameMergedMessage,
37
37
  suggest
38
- } from "./chunk-CXK4DZH3.js";
38
+ } from "./chunk-4W2PE66Q.js";
39
39
 
40
40
  // src/sketch/types.ts
41
41
  var SKETCH_SHAPE_KINDS = [
@@ -627,4 +627,4 @@ export {
627
627
  isSketchShapeKind,
628
628
  parseSketch
629
629
  };
630
- //# sourceMappingURL=chunk-HQQNCY7W.js.map
630
+ //# sourceMappingURL=chunk-YENNFS5F.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  makeDgmoError,
3
3
  suggest
4
- } from "./chunk-CXK4DZH3.js";
4
+ } from "./chunk-4W2PE66Q.js";
5
5
 
6
6
  // src/colors.ts
7
7
  var nord = {
@@ -293,4 +293,4 @@ export {
293
293
  resolveColorWithDiagnostic,
294
294
  seriesColors
295
295
  };
296
- //# sourceMappingURL=chunk-TLVIHFRO.js.map
296
+ //# sourceMappingURL=chunk-ZKPPI6BF.js.map