@diagrammo/dgmo 0.53.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 (199) hide show
  1. package/dist/advanced.d.ts +36 -0
  2. package/dist/advanced.js +159 -154
  3. package/dist/auto.js +142 -128
  4. package/dist/auto.mjs +775 -466
  5. package/dist/block.js +62 -60
  6. package/dist/chart-meta.js +50 -47
  7. package/dist/{charts-d3-DH2XA45I.js → charts-d3-25E4VWXO.js} +9 -8
  8. package/dist/chunk-2CW5ZTNH.js +58 -0
  9. package/dist/{chunk-PKNNHU7H.js → chunk-2NYXI35Z.js} +17 -10
  10. package/dist/{chunk-W5KMNC5U.js → chunk-2NZOHEP4.js} +9 -10
  11. package/dist/{chunk-6DCOIN4W.js → chunk-3FRO35WW.js} +768 -2
  12. package/dist/{chunk-6AUZPPAV.js → chunk-3KHJJP3J.js} +2 -2
  13. package/dist/{chunk-X3RXGSCZ.js → chunk-3SBHODJ4.js} +11 -11
  14. package/dist/{chunk-KUSAVOWZ.js → chunk-3SEEP2JM.js} +3 -3
  15. package/dist/{chunk-QWIBT6DS.js → chunk-47JNEKJA.js} +10 -10
  16. package/dist/{chunk-LHILKFDP.js → chunk-4T6OCSJ2.js} +9 -9
  17. package/dist/{chunk-XQ4KN6JQ.js → chunk-4ZIKWVSQ.js} +16 -15
  18. package/dist/{chunk-GMAH572Z.js → chunk-5VXU6MND.js} +2 -2
  19. package/dist/{chunk-HORZ5H2L.js → chunk-5XSNLXU5.js} +17 -17
  20. package/dist/{chunk-BFDVEO5R.js → chunk-62Y27T4C.js} +2 -2
  21. package/dist/{chunk-R5NH5BZG.js → chunk-6KL7TFLS.js} +6 -6
  22. package/dist/{chunk-UVDCHR4E.js → chunk-6OYDOQ2Q.js} +2 -2
  23. package/dist/{chunk-QI3BOLQB.js → chunk-7K6NDSXH.js} +4 -4
  24. package/dist/{chunk-27STWBOK.js → chunk-7SP4C6EV.js} +6 -8
  25. package/dist/{chunk-I46X5VUA.js → chunk-7TF3QOOD.js} +25 -1
  26. package/dist/{chunk-FGDSTT3F.js → chunk-7U4OR7CD.js} +2 -2
  27. package/dist/{chunk-VKNCC2GX.js → chunk-7UPFTBOW.js} +13 -13
  28. package/dist/{chunk-FT7TPPZ5.js → chunk-A3BDLDYG.js} +12 -12
  29. package/dist/{chunk-AZNXGWDC.js → chunk-ADCHLNWT.js} +7 -7
  30. package/dist/{chunk-CMVZWP32.js → chunk-AHTTKERF.js} +2 -2
  31. package/dist/{chunk-GAWKIIPO.js → chunk-AJFHNS67.js} +7 -7
  32. package/dist/{chunk-Q7AH665U.js → chunk-AQEYUVGJ.js} +111 -35
  33. package/dist/{chunk-BR7AYN76.js → chunk-B7N5KYXQ.js} +12 -12
  34. package/dist/chunk-BEOAKGNA.js +484 -0
  35. package/dist/{chunk-GABSL6TH.js → chunk-BM7MG6HT.js} +3 -3
  36. package/dist/{chunk-UKP5HWB5.js → chunk-BWYFIVZF.js} +4 -4
  37. package/dist/{chunk-7GUF6SDR.js → chunk-BZJIITYM.js} +9 -9
  38. package/dist/{chunk-RW5PEJ7D.js → chunk-C2UORMIA.js} +3 -3
  39. package/dist/{chunk-FXCB7H5O.js → chunk-CCGWX6AO.js} +2 -2
  40. package/dist/{chunk-AHXIMHDQ.js → chunk-COJW2NEY.js} +9 -9
  41. package/dist/{chunk-XY3UDKKH.js → chunk-COVYNAKJ.js} +4 -4
  42. package/dist/{chunk-GQ644SPD.js → chunk-CSHFU6LT.js} +14 -14
  43. package/dist/{chunk-JTMSWEIW.js → chunk-DLU643TF.js} +4 -4
  44. package/dist/{chunk-QAALSCKI.js → chunk-DPGQ5UMO.js} +12 -12
  45. package/dist/{chunk-I64ECJX3.js → chunk-EAI6XJ7D.js} +3 -3
  46. package/dist/{chunk-DWUMPMV2.js → chunk-EPRF3ZRV.js} +2 -2
  47. package/dist/{chunk-AIMLCDAO.js → chunk-EQOMY4PY.js} +2 -2
  48. package/dist/{chunk-XEAQDIMF.js → chunk-F7XM366V.js} +6 -6
  49. package/dist/{chunk-SG4PRYO3.js → chunk-FFVFZLRT.js} +49 -18
  50. package/dist/{chunk-LC3FFD43.js → chunk-FR6UFVSV.js} +12 -12
  51. package/dist/{chunk-6HTRCTAS.js → chunk-FVMKCZHF.js} +6 -4
  52. package/dist/{chunk-FUKNRLIJ.js → chunk-GK32ZFZY.js} +6 -6
  53. package/dist/{chunk-6KY7OCZC.js → chunk-GKYHWJXI.js} +3 -3
  54. package/dist/{chunk-NNYFQOTK.js → chunk-GQ5ECRP4.js} +10 -8
  55. package/dist/{chunk-PT4SW76W.js → chunk-HAA25PLC.js} +9 -9
  56. package/dist/{chunk-J7HI6G3G.js → chunk-HFEOOQ46.js} +6 -6
  57. package/dist/{chunk-KKHCNSKK.js → chunk-I47VHSPS.js} +5 -5
  58. package/dist/{chunk-YG2BEIQU.js → chunk-ICKXIMBA.js} +11 -11
  59. package/dist/{chunk-A44USUV7.js → chunk-ICZ7M6IZ.js} +23 -17
  60. package/dist/{chunk-HE5J53SZ.js → chunk-IOIMQHQ6.js} +3 -3
  61. package/dist/{chunk-3BEKKRH5.js → chunk-IYNKLCAZ.js} +8 -8
  62. package/dist/{chunk-774C2FF3.js → chunk-J7HQPVYH.js} +2 -2
  63. package/dist/{chunk-UFQJMOVZ.js → chunk-KBVOVDYP.js} +6 -6
  64. package/dist/{chunk-JHOAH4TI.js → chunk-KDK5EKUR.js} +2 -2
  65. package/dist/{chunk-VIRANCNY.js → chunk-KINOX74I.js} +14 -14
  66. package/dist/{chunk-VJHBSPGF.js → chunk-KQ3FNRGR.js} +3 -3
  67. package/dist/{chunk-U7NKYLX2.js → chunk-KQYQECWQ.js} +13 -13
  68. package/dist/{chunk-GMIJ35PW.js → chunk-KS5ZSM5T.js} +13 -13
  69. package/dist/{chunk-FLDC7ZAK.js → chunk-KV4HLIJE.js} +2 -2
  70. package/dist/{chunk-PYO4TJJ3.js → chunk-LPJ6H5X4.js} +11 -11
  71. package/dist/{chunk-LQHVDZYC.js → chunk-LRSW4JLE.js} +4 -4
  72. package/dist/{chunk-VRRDUYOK.js → chunk-M24VXUFG.js} +3 -3
  73. package/dist/{chunk-22OQWBWD.js → chunk-M3H7ZE6C.js} +10 -10
  74. package/dist/{chunk-MA3HJZHB.js → chunk-MTZOXISJ.js} +7 -7
  75. package/dist/{chunk-GWQJKTFS.js → chunk-N7BSBAVP.js} +94 -94
  76. package/dist/{chunk-65V6IRFN.js → chunk-NUTWTV6G.js} +10 -10
  77. package/dist/{chunk-HNBY6CNV.js → chunk-O576GYAP.js} +2 -2
  78. package/dist/{chunk-3CZLWOCI.js → chunk-OJ435DQZ.js} +3 -3
  79. package/dist/{chunk-BD3WGY4T.js → chunk-OR3R27CU.js} +2 -2
  80. package/dist/{chunk-2QC4HXCY.js → chunk-OSXQKC3S.js} +8 -10
  81. package/dist/{chunk-4RGZFA7H.js → chunk-Q5IHQ4NW.js} +11 -1
  82. package/dist/{chunk-ALYZ3MAA.js → chunk-QBYP2FBZ.js} +8 -476
  83. package/dist/{chunk-4ASVFYB2.js → chunk-R5BGGBFF.js} +5 -5
  84. package/dist/{chunk-YR43LJT5.js → chunk-RIEAN4D5.js} +15 -12
  85. package/dist/{chunk-P3H7QVDH.js → chunk-RRGKMJYL.js} +6 -6
  86. package/dist/{chunk-XG4NWFPY.js → chunk-S7FOIURR.js} +13 -13
  87. package/dist/{chunk-NNUMX6WX.js → chunk-S7YFT3PO.js} +40 -15
  88. package/dist/{chunk-SQCBSFT5.js → chunk-SBOAZ7YK.js} +51 -263
  89. package/dist/{chunk-VGNIDAPQ.js → chunk-SSHS42QG.js} +4 -4
  90. package/dist/{chunk-SGPFVDUL.js → chunk-T3FAJAJT.js} +6 -6
  91. package/dist/{chunk-AN2DQB3G.js → chunk-T7Y554OK.js} +12 -12
  92. package/dist/chunk-TGOMHUOV.js +218 -0
  93. package/dist/{chunk-W2DINCHL.js → chunk-TJN2OIVG.js} +31 -16
  94. package/dist/{chunk-CK2GMDXD.js → chunk-TLNVYWPA.js} +2 -2
  95. package/dist/{chunk-CQFNIIQN.js → chunk-U4IN6AHE.js} +2 -2
  96. package/dist/{chunk-HOXKNRON.js → chunk-UEU6IYKY.js} +2 -2
  97. package/dist/{chunk-UK6DKJLD.js → chunk-UIT7E6UF.js} +4 -4
  98. package/dist/{chunk-IQJCVREL.js → chunk-VMSBMIHW.js} +6 -6
  99. package/dist/{chunk-FFXCKZOU.js → chunk-VQFDBNYF.js} +3 -3
  100. package/dist/{chunk-PV2QO7QL.js → chunk-W6PCFRPL.js} +2 -2
  101. package/dist/{chunk-UQRIKAMH.js → chunk-WKNAJ4BR.js} +13 -13
  102. package/dist/{chunk-4WGMGKCZ.js → chunk-WW4BQ744.js} +11 -11
  103. package/dist/{chunk-ZXUAPTCK.js → chunk-WWHECSYZ.js} +2 -2
  104. package/dist/{chunk-4K42RUGC.js → chunk-XWODFBHJ.js} +43 -12
  105. package/dist/{chunk-VAO6ANGC.js → chunk-YENNFS5F.js} +9 -9
  106. package/dist/cli.cjs +160 -146
  107. package/dist/completion-registry.d.ts +129 -0
  108. package/dist/completion-registry.js +1270 -0
  109. package/dist/{compute-G55RG53N.js → compute-JAP5E2E4.js} +2 -2
  110. package/dist/dgmo-router-TGZWFIZO.js +88 -0
  111. package/dist/{dimensions-K6PGYYGT.js → dimensions-L6BXQXXL.js} +8 -8
  112. package/dist/editor.js +18 -0
  113. package/dist/element.js +142 -128
  114. package/dist/element.mjs +775 -466
  115. package/dist/{flowchart-parser-LALR6J6F.js → flowchart-parser-UKYOW3VM.js} +5 -5
  116. package/dist/{flowchart-renderer-DXYB5YRF.js → flowchart-renderer-DCFKUDDR.js} +9 -9
  117. package/dist/highlight.js +18 -0
  118. package/dist/index.js +65 -62
  119. package/dist/{layout-WCAIKGZG.js → layout-25Y3VDYF.js} +5 -5
  120. package/dist/layout-4SPLI4HG.js +15 -0
  121. package/dist/{layout-E6HR6PXH.js → layout-A6OIGZN2.js} +3 -3
  122. package/dist/{layout-3BVDMKXI.js → layout-CH4HFFRD.js} +4 -4
  123. package/dist/{layout-ZE5DRJWX.js → layout-G2ABQJQZ.js} +4 -4
  124. package/dist/{layout-3V2A4MUE.js → layout-ITLPDG6M.js} +6 -5
  125. package/dist/{layout-WSMPBQ4Q.js → layout-NF4EWFLT.js} +3 -3
  126. package/dist/layout-NY7MHJCL.js +15 -0
  127. package/dist/{layout-4IHCMWZN.js → layout-QBNAMEOA.js} +4 -4
  128. package/dist/{layout-OL2XFJXA.js → layout-SP7HJWKA.js} +3 -3
  129. package/dist/{layout-search-34DPZD43.js → layout-search-LUI475P3.js} +9 -4
  130. package/dist/{legend-constants-P5EQWRQQ.js → legend-constants-B77VKB3R.js} +7 -2
  131. package/dist/{parser-5QPFOB5F.js → parser-2UWWNTFL.js} +4 -4
  132. package/dist/{parser-CKA3QMAG.js → parser-3RXYQSA7.js} +5 -5
  133. package/dist/{parser-GKP2MHHL.js → parser-5C3PEZK3.js} +3 -3
  134. package/dist/{parser-275KP7JO.js → parser-66RYGJRB.js} +5 -6
  135. package/dist/{parser-7JHWEWXM.js → parser-6GN5YJBJ.js} +4 -4
  136. package/dist/{parser-XVPTRWZ4.js → parser-6MQM7WT3.js} +4 -4
  137. package/dist/{parser-7JVIDLLR.js → parser-7UI6UQ7B.js} +4 -4
  138. package/dist/{parser-5HQXCNOS.js → parser-B2A7XOAK.js} +3 -3
  139. package/dist/{parser-UWRX52PC.js → parser-CCNJKDDA.js} +4 -4
  140. package/dist/{parser-CRKLXGW7.js → parser-ESHNUFME.js} +4 -4
  141. package/dist/{parser-EXNBDNGY.js → parser-F4FEU57T.js} +3 -3
  142. package/dist/{parser-IVGHXLZP.js → parser-FHRMFUNX.js} +4 -3
  143. package/dist/{parser-XNKJCMMA.js → parser-FPCWDYQV.js} +4 -4
  144. package/dist/{parser-ZQDQTB4X.js → parser-FY3YFFBS.js} +5 -5
  145. package/dist/{parser-VOERD6XR.js → parser-GML6V2KZ.js} +4 -4
  146. package/dist/{parser-3CODK6RG.js → parser-HA3PF5FL.js} +4 -4
  147. package/dist/{parser-GN2MM5CC.js → parser-KTYF6WO5.js} +3 -3
  148. package/dist/{parser-ZGNXYFPS.js → parser-LTA2BOZO.js} +3 -3
  149. package/dist/{parser-FOOFEJQU.js → parser-LU7UAKNB.js} +4 -4
  150. package/dist/{parser-NNIL3HXU.js → parser-MHKYQPC2.js} +3 -3
  151. package/dist/{parser-IKWK2ZU3.js → parser-MVSYFK63.js} +4 -5
  152. package/dist/{parser-3VSWEKBF.js → parser-O7YQYFEN.js} +4 -4
  153. package/dist/{parser-YSLNDFLV.js → parser-OPIXXUY4.js} +4 -5
  154. package/dist/{parser-RNLTBIJ6.js → parser-S4EJPNVN.js} +4 -4
  155. package/dist/{parser-G26MTBFS.js → parser-T3D7BV6O.js} +3 -3
  156. package/dist/{parser-3KIGEEJM.js → parser-VVE4THG3.js} +4 -4
  157. package/dist/{parser-5FGJSQNS.js → parser-WPPJGB4R.js} +4 -4
  158. package/dist/{parser-27Z76SN3.js → parser-X5XLFY4Z.js} +4 -4
  159. package/dist/{parser-6B6SSZT7.js → parser-XCPMEB2Z.js} +3 -3
  160. package/dist/{parser-6PPHAXXH.js → parser-XRDUX2AR.js} +5 -5
  161. package/dist/{parser-FF4BMRSB.js → parser-YPWYT46P.js} +4 -4
  162. package/dist/{parser-4E4I3GNT.js → parser-YULS5MLD.js} +4 -4
  163. package/dist/{renderer-ZBTEX2JK.js → renderer-2DME63VZ.js} +4 -4
  164. package/dist/{renderer-RLMOTXZ6.js → renderer-3VY3VXJE.js} +13 -13
  165. package/dist/{renderer-6WRYVM5R.js → renderer-4A32DX5L.js} +8 -8
  166. package/dist/{renderer-UPF7NRTI.js → renderer-4K5YYX5R.js} +11 -11
  167. package/dist/{renderer-HIFQVEJA.js → renderer-6CFML5G3.js} +9 -9
  168. package/dist/{renderer-7NQSTQMQ.js → renderer-7HMZ5OCJ.js} +4 -4
  169. package/dist/{renderer-NE5W7CQP.js → renderer-B7Y6I7JX.js} +6 -5
  170. package/dist/{renderer-LVZAHRP6.js → renderer-C3RI4OPJ.js} +11 -12
  171. package/dist/{renderer-COLQFSFV.js → renderer-CJ56SUMF.js} +9 -9
  172. package/dist/{renderer-WFSUBKUL.js → renderer-COJZZ4F6.js} +8 -8
  173. package/dist/{renderer-SQ54MDSA.js → renderer-FXMGCSRP.js} +9 -9
  174. package/dist/{renderer-TYHGXAVT.js → renderer-G4UOW3RH.js} +4 -4
  175. package/dist/{renderer-YUXGXGSW.js → renderer-HQ4JFZOV.js} +9 -9
  176. package/dist/{renderer-JTCX6PCG.js → renderer-LHVCKEWF.js} +9 -9
  177. package/dist/{renderer-WNFXYYGL.js → renderer-OZX5KGQM.js} +8 -8
  178. package/dist/{renderer-CWEFGEIC.js → renderer-P3YQES7B.js} +13 -13
  179. package/dist/{renderer-UKXW2QPE.js → renderer-PLVIARM7.js} +9 -8
  180. package/dist/{renderer-5MPN7CXZ.js → renderer-RA4PTAMF.js} +5 -5
  181. package/dist/{renderer-JCZG6AYU.js → renderer-RMAM2SOJ.js} +10 -10
  182. package/dist/{renderer-JWGQSTMR.js → renderer-SES7QZYL.js} +14 -14
  183. package/dist/{renderer-KARQF3F3.js → renderer-TQ5QDZOE.js} +8 -8
  184. package/dist/{renderer-6EN5XXJZ.js → renderer-V5SNTPAM.js} +10 -10
  185. package/dist/{renderer-QD2SJF2I.js → renderer-WVD6G2TS.js} +9 -9
  186. package/dist/{renderer-AK2WO4EI.js → renderer-X2LYSMLU.js} +4 -4
  187. package/dist/{renderer-VMH6L6CP.js → renderer-Y3NXZINM.js} +8 -8
  188. package/dist/{renderer-XTXSOK3L.js → renderer-YEFOOULC.js} +10 -10
  189. package/dist/{renderer-YUKPS27O.js → renderer-YP3P6UVT.js} +8 -8
  190. package/dist/{renderer-D3BRNOMV.js → renderer-YVMETH6V.js} +11 -11
  191. package/dist/{renderer-2C6DJRYN.js → renderer-Z4GNKNXO.js} +8 -8
  192. package/dist/{renderer-radial-WF6VOUOD.js → renderer-radial-VYBZAXXE.js} +9 -9
  193. package/dist/{state-parser-L7DHZIQO.js → state-parser-VIW2WNA5.js} +5 -5
  194. package/dist/{state-renderer-TFEUOP4H.js → state-renderer-H22AQD3U.js} +12 -12
  195. package/package.json +5 -1
  196. package/dist/chunk-YJVA3QUU.js +0 -734
  197. package/dist/dgmo-router-B4S23EBH.js +0 -86
  198. package/dist/layout-3M5UYJHY.js +0 -14
  199. package/dist/layout-KPQWJNAG.js +0 -14
@@ -7,19 +7,20 @@ import {
7
7
  tagAttrKey,
8
8
  validateTagGroupNames,
9
9
  validateTagValues
10
- } from "./chunk-CMVZWP32.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-YJVA3QUU.js";
23
+ } from "./chunk-3FRO35WW.js";
23
24
  import {
24
25
  emit,
25
26
  formatDgmoError,
@@ -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
  );
@@ -331,7 +353,7 @@ function resolveDefaultColorMode(result, pushWarning) {
331
353
  if (result.tagGroups.length > 0) return "tag";
332
354
  return "branch";
333
355
  }
334
- function parseNodeLine(trimmed, lineNumber, counter, aliasMap, diagnostics) {
356
+ function parseNodeLine(trimmed, lineNumber, counter, aliasMap, diagnostics, badValueTokens) {
335
357
  const registry = withTagAliases(TREEMAP_REGISTRY, new Set(aliasMap.keys()));
336
358
  const split = splitNameAndMeta(
337
359
  trimmed,
@@ -350,13 +372,15 @@ function parseNodeLine(trimmed, lineNumber, counter, aliasMap, diagnostics) {
350
372
  const metadata = { ...split.meta };
351
373
  let heat;
352
374
  if ("heat" in metadata) {
353
- const h = parseFloat(metadata["heat"].replace(/_/g, ""));
375
+ const rawHeat = metadata["heat"];
376
+ const h = parseFloat(normalizeNumericToken(rawHeat) ?? rawHeat);
354
377
  if (Number.isFinite(h)) heat = h;
355
378
  delete metadata["heat"];
356
379
  }
357
380
  const rawName = split.name;
358
381
  let label;
359
382
  let value;
383
+ let badValueToken;
360
384
  if (isFullyQuoted(rawName)) {
361
385
  label = stripQuotes(rawName);
362
386
  } else {
@@ -364,11 +388,16 @@ function parseNodeLine(trimmed, lineNumber, counter, aliasMap, diagnostics) {
364
388
  if (vm) {
365
389
  const labelPart = vm[1].trim();
366
390
  const token = vm[2];
367
- const cleaned = token.replace(/_/g, "");
368
- 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;
369
395
  if (Number.isFinite(parsed)) {
370
396
  value = parsed;
371
- label = isFullyQuoted(labelPart) ? stripQuotes(labelPart) : labelPart;
397
+ label = peeled;
398
+ } else if (hasSeparators) {
399
+ label = peeled;
400
+ badValueToken = token;
372
401
  } else {
373
402
  label = rawName;
374
403
  }
@@ -376,7 +405,7 @@ function parseNodeLine(trimmed, lineNumber, counter, aliasMap, diagnostics) {
376
405
  label = rawName;
377
406
  }
378
407
  }
379
- return {
408
+ const node = {
380
409
  id: `treemap-node-${counter}`,
381
410
  label,
382
411
  ...value !== void 0 && { value },
@@ -385,6 +414,8 @@ function parseNodeLine(trimmed, lineNumber, counter, aliasMap, diagnostics) {
385
414
  children: [],
386
415
  lineNumber
387
416
  };
417
+ if (badValueToken !== void 0) badValueTokens.set(node, badValueToken);
418
+ return node;
388
419
  }
389
420
  function attachNode(node, indent, indentStack, result) {
390
421
  while (indentStack.length > 0) {
@@ -405,4 +436,4 @@ export {
405
436
  TREEMAP_DIAGNOSTICS,
406
437
  parseTreemap
407
438
  };
408
- //# sourceMappingURL=chunk-4K42RUGC.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-CMVZWP32.js";
14
- import {
15
- parseInArrowLabel
16
- } from "./chunk-WF64MW5G.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-YJVA3QUU.js";
30
+ } from "./chunk-3FRO35WW.js";
31
31
  import {
32
32
  NAME_DIAGNOSTIC_CODES,
33
33
  formatDgmoError,
@@ -627,4 +627,4 @@ export {
627
627
  isSketchShapeKind,
628
628
  parseSketch
629
629
  };
630
- //# sourceMappingURL=chunk-VAO6ANGC.js.map
630
+ //# sourceMappingURL=chunk-YENNFS5F.js.map