@diagrammo/dgmo 0.48.2 → 0.49.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 (216) hide show
  1. package/.cursorrules +8 -3
  2. package/.github/copilot-instructions.md +8 -3
  3. package/.windsurfrules +8 -3
  4. package/SKILL.md +8 -3
  5. package/dist/advanced.d.ts +444 -1
  6. package/dist/advanced.js +208 -146
  7. package/dist/auto.css +63 -0
  8. package/dist/auto.js +202 -102
  9. package/dist/auto.mjs +6849 -824
  10. package/dist/block.css +63 -0
  11. package/dist/block.d.ts +13 -5
  12. package/dist/block.js +137 -57
  13. package/dist/{charts-d3-QOZHKTCT.js → charts-d3-EW3YQTEA.js} +9 -8
  14. package/dist/chunk-26RVGM44.js +331 -0
  15. package/dist/{chunk-44CM72SQ.js → chunk-2WMBWZY2.js} +3 -3
  16. package/dist/{chunk-L66GEFB6.js → chunk-35BBZDFE.js} +4 -4
  17. package/dist/{chunk-4GRI7MEB.js → chunk-3BIAFYD2.js} +6 -6
  18. package/dist/chunk-3NFJWFNP.js +1474 -0
  19. package/dist/{chunk-76OWZ3BA.js → chunk-4BD7EVPK.js} +2 -2
  20. package/dist/{chunk-MITI6NOL.js → chunk-4FIV4K4Z.js} +9 -9
  21. package/dist/chunk-4HVNZ7WF.js +574 -0
  22. package/dist/{chunk-X5LCYCL5.js → chunk-4NQ3IKUM.js} +2 -2
  23. package/dist/{chunk-PWIHZ6NJ.js → chunk-4UDKKGHH.js} +4 -4
  24. package/dist/{chunk-6NYWYNBI.js → chunk-4XK3FLFB.js} +3 -3
  25. package/dist/chunk-4YNP6O47.js +607 -0
  26. package/dist/{chunk-3MQQNXPD.js → chunk-5FGDJIJX.js} +3 -3
  27. package/dist/{chunk-WCT3NYCV.js → chunk-5LWQH6QV.js} +1 -1
  28. package/dist/chunk-5XCM7UUW.js +261 -0
  29. package/dist/{chunk-RYEGFMUO.js → chunk-5ZZLLBFK.js} +2 -2
  30. package/dist/{chunk-EB6FPQUP.js → chunk-65RTDUZH.js} +3 -3
  31. package/dist/chunk-6CLKNXVP.js +664 -0
  32. package/dist/{chunk-H6PI3KJT.js → chunk-6IUAK7RZ.js} +2 -2
  33. package/dist/{chunk-ZGR7ULFJ.js → chunk-6SA7FJE4.js} +31 -19
  34. package/dist/{chunk-LIOHW36Z.js → chunk-6VE3VLWM.js} +3 -3
  35. package/dist/{chunk-AN2MOO5T.js → chunk-7OVSJI2V.js} +3 -3
  36. package/dist/{chunk-YAA6IID3.js → chunk-7UEMZREK.js} +2 -2
  37. package/dist/{chunk-FCIIHT24.js → chunk-7VLUGEMJ.js} +7 -7
  38. package/dist/{chunk-VOKGH627.js → chunk-AHGF2YYA.js} +13 -3
  39. package/dist/{chunk-3R5POCTZ.js → chunk-AJ2PEY7J.js} +6 -6
  40. package/dist/{chunk-PBHE5UG6.js → chunk-ALRHIR6I.js} +46 -12
  41. package/dist/{chunk-7JEGTRLD.js → chunk-B57V3DWN.js} +3 -3
  42. package/dist/{chunk-ILKORZ3H.js → chunk-BCT5G2VN.js} +7 -7
  43. package/dist/{chunk-TYS6CSS5.js → chunk-BCYVE3N5.js} +2 -2
  44. package/dist/{chunk-ZBWMSD5N.js → chunk-BGJV5ATD.js} +4 -4
  45. package/dist/{chunk-G2H74XJZ.js → chunk-BPIJLRYE.js} +8 -8
  46. package/dist/{chunk-YGJTDXVR.js → chunk-C4GQDB5L.js} +2 -2
  47. package/dist/{chunk-Y2ZE3MSG.js → chunk-C63UWAKM.js} +2 -2
  48. package/dist/{chunk-QEBUY5NY.js → chunk-CEHZOPGM.js} +4 -4
  49. package/dist/{chunk-725LDASD.js → chunk-CLD2OKV7.js} +2 -2
  50. package/dist/{chunk-5QXL4NYS.js → chunk-CLR4A2N2.js} +10 -5
  51. package/dist/{chunk-WBRZJOEC.js → chunk-CMCR5WBW.js} +3 -3
  52. package/dist/{chunk-SML67VPV.js → chunk-D5AVQCDN.js} +3 -3
  53. package/dist/{chunk-2LACINWN.js → chunk-DDTJ5N7Q.js} +9 -9
  54. package/dist/{chunk-FITOLXSX.js → chunk-EOFPYPAU.js} +26 -2
  55. package/dist/{chunk-B65G5DNL.js → chunk-EYN7VFKL.js} +3 -3
  56. package/dist/{chunk-4OHACBGX.js → chunk-F2L5GCQ4.js} +2 -2
  57. package/dist/{chunk-RVMRZAPB.js → chunk-F743CM2N.js} +3 -3
  58. package/dist/{chunk-3JLKYGBQ.js → chunk-F7BFXWNQ.js} +2 -2
  59. package/dist/{chunk-WCSOJFU3.js → chunk-FMKTYMP4.js} +3 -3
  60. package/dist/{chunk-RTLBSQ3G.js → chunk-FUCAB3KQ.js} +3 -3
  61. package/dist/{chunk-SGZYXELT.js → chunk-GB3YZTAM.js} +9 -6
  62. package/dist/{chunk-QLCCJEJI.js → chunk-HBVD67XG.js} +2 -2
  63. package/dist/{chunk-PBAHEPLQ.js → chunk-HGN652MU.js} +7 -6
  64. package/dist/{chunk-3SMGIJDD.js → chunk-HHXOONLX.js} +13 -1
  65. package/dist/{chunk-QOOUC2J5.js → chunk-HQCHYB5F.js} +2 -2
  66. package/dist/chunk-IAEC4KLA.js +492 -0
  67. package/dist/{chunk-J5FIXQRT.js → chunk-IBC35BTK.js} +4 -4
  68. package/dist/{chunk-NURGB5Z4.js → chunk-IFK3GIUW.js} +2 -2
  69. package/dist/{chunk-FANX6UJR.js → chunk-IHLSHCPZ.js} +11 -11
  70. package/dist/{chunk-GMR5MFHJ.js → chunk-IUK7AGD4.js} +2 -2
  71. package/dist/chunk-IVKC4GID.js +32 -0
  72. package/dist/{chunk-OJR3MQYV.js → chunk-JFPY3UJ7.js} +296 -57
  73. package/dist/{chunk-5MLYVTYM.js → chunk-K6HNAY5V.js} +2 -2
  74. package/dist/{chunk-P235SVAH.js → chunk-KQAEKMIX.js} +2 -2
  75. package/dist/{chunk-7DTWEFUE.js → chunk-KUBBJ2CD.js} +10 -10
  76. package/dist/{chunk-BUVJFRPY.js → chunk-KV6Y2HE6.js} +4 -4
  77. package/dist/{chunk-OURHMODR.js → chunk-LG4TWW4U.js} +13 -13
  78. package/dist/{chunk-XAKEUMEJ.js → chunk-LVHPTBO3.js} +3 -3
  79. package/dist/{chunk-ERLBPDGU.js → chunk-MJCG5K2O.js} +2 -2
  80. package/dist/{chunk-THXCFRTU.js → chunk-N4J5KGWG.js} +12 -12
  81. package/dist/{chunk-MZSBFAPJ.js → chunk-NVT6C2VE.js} +9 -9
  82. package/dist/{chunk-AELOBFW5.js → chunk-O5MQPK7E.js} +3 -3
  83. package/dist/{chunk-JM4LEPY3.js → chunk-O7NUCTFU.js} +2 -2
  84. package/dist/{chunk-JED6ZDEE.js → chunk-O7WP4ZD4.js} +2 -2
  85. package/dist/{chunk-ZO27FGJS.js → chunk-PH5X4GIP.js} +2 -2
  86. package/dist/{chunk-B7JUCQUA.js → chunk-PU3AUQPA.js} +4 -4
  87. package/dist/{chunk-YGJZWZTY.js → chunk-PZFVK3IH.js} +2 -2
  88. package/dist/chunk-QQJUTGQH.js +135 -0
  89. package/dist/{chunk-HSH73DP6.js → chunk-RI4NIMFP.js} +99 -39
  90. package/dist/{chunk-33LCUH4H.js → chunk-RTERS6S5.js} +3 -3
  91. package/dist/{chunk-T3UBLACL.js → chunk-SCQ5VPUF.js} +19 -5
  92. package/dist/chunk-SGHSY3LU.js +377 -0
  93. package/dist/{chunk-SRTU6HMQ.js → chunk-SJEGO2QL.js} +8 -8
  94. package/dist/chunk-SQDFK5ZQ.js +273 -0
  95. package/dist/{chunk-PZMETGLY.js → chunk-SVDWQGX2.js} +296 -121
  96. package/dist/{chunk-Z5CGSFJB.js → chunk-T7IKPCMI.js} +4 -4
  97. package/dist/chunk-TC3YWBFO.js +233 -0
  98. package/dist/{chunk-EVCVDTXE.js → chunk-TLKMTQYL.js} +3 -3
  99. package/dist/{chunk-IJZFN3HM.js → chunk-TWQUYVP3.js} +4 -4
  100. package/dist/{chunk-IZMRON6C.js → chunk-UVCXZEGU.js} +2 -2
  101. package/dist/{chunk-CKNVO24D.js → chunk-UWDO3O52.js} +2 -2
  102. package/dist/{chunk-RJE5JTVK.js → chunk-VC3TR4NL.js} +7 -7
  103. package/dist/{chunk-CI2G3OEB.js → chunk-X2CH42BN.js} +9 -9
  104. package/dist/{chunk-6HO5ZTXK.js → chunk-XCC2RENT.js} +2 -2
  105. package/dist/chunk-XHVV4NVW.js +51 -0
  106. package/dist/{chunk-ZJEL4H2R.js → chunk-XJ7J6WOO.js} +9 -9
  107. package/dist/{chunk-ULOEATBZ.js → chunk-XKTN7CZF.js} +106 -29
  108. package/dist/{chunk-IPWPWM6R.js → chunk-YM2BSPYW.js} +111 -10
  109. package/dist/{chunk-BUPDIHML.js → chunk-YRVLP7UU.js} +3 -3
  110. package/dist/{chunk-T2OE3YQB.js → chunk-YTN572Q2.js} +3 -3
  111. package/dist/{chunk-WVAJFAIA.js → chunk-YYX3SU6H.js} +3 -3
  112. package/dist/{chunk-MO5YHHMQ.js → chunk-ZDUQGL3N.js} +2 -2
  113. package/dist/{chunk-Y3J7VR52.js → chunk-ZNQX6QWH.js} +30 -2
  114. package/dist/{chunk-UWN33VNX.js → chunk-ZREZOIGS.js} +8 -8
  115. package/dist/{chunk-6SM5NJQH.js → chunk-ZTLWVRNS.js} +4 -4
  116. package/dist/{chunk-RUNNI6VE.js → chunk-ZXL6MB4R.js} +3 -3
  117. package/dist/cli.cjs +159 -122
  118. package/dist/dgmo-router-ODKPEJ3P.js +79 -0
  119. package/dist/dimensions-WSIJXT5Q.js +22 -0
  120. package/dist/editor.js +4 -1
  121. package/dist/element.js +203 -103
  122. package/dist/element.mjs +6849 -824
  123. package/dist/{flowchart-parser-ZNSKIBVR.js → flowchart-parser-IVZN7CQN.js} +4 -4
  124. package/dist/{flowchart-renderer-SNDSII4D.js → flowchart-renderer-GMI2U3DD.js} +9 -9
  125. package/dist/highlight.js +7 -1
  126. package/dist/index.d.ts +5 -1
  127. package/dist/index.js +193 -232
  128. package/dist/{layout-HRBZPFCN.js → layout-34CLNICW.js} +5 -5
  129. package/dist/{layout-5RA6QWR6.js → layout-4Z5JM7PT.js} +6 -6
  130. package/dist/layout-6RDJHS6E.js +9 -0
  131. package/dist/{layout-7QXCNOVS.js → layout-7H4H46CS.js} +3 -3
  132. package/dist/{layout-46N4JJYK.js → layout-7SKMFYHL.js} +5 -5
  133. package/dist/{layout-HWDSRX5E.js → layout-D42XE4RE.js} +6 -6
  134. package/dist/{layout-EE6GE46Y.js → layout-DC4TVXER.js} +5 -5
  135. package/dist/layout-FGQWRYYW.js +14 -0
  136. package/dist/layout-GZ2CWONU.js +14 -0
  137. package/dist/layout-HQMBPJVS.js +10 -0
  138. package/dist/{layout-UM5F4DJB.js → layout-K2ZN3Q42.js} +5 -5
  139. package/dist/{layout-S2QBYSK2.js → layout-NXG63LWH.js} +3 -3
  140. package/dist/{layout-N76NR4ZO.js → layout-PUQCB6AN.js} +7 -7
  141. package/dist/{layout-HYZPWAK5.js → layout-QNUQLEHU.js} +3 -3
  142. package/dist/layout-S3EK4IYO.js +14 -0
  143. package/dist/{layout-search-OYV77HHS.js → layout-search-QS44PI5R.js} +6 -6
  144. package/dist/{parser-KNSQSKQO.js → parser-4BKIFG2C.js} +5 -5
  145. package/dist/{parser-OV7NOBW6.js → parser-4ROBKVUR.js} +4 -4
  146. package/dist/parser-667RGSUW.js +13 -0
  147. package/dist/{parser-IXSZZQHY.js → parser-BL7Z72EY.js} +4 -4
  148. package/dist/{parser-AQETEVRW.js → parser-CLMFZWCC.js} +4 -4
  149. package/dist/{parser-XKRP7QKP.js → parser-D6ONJQFR.js} +3 -3
  150. package/dist/{parser-2EWECDSA.js → parser-DERPY5KC.js} +4 -4
  151. package/dist/{parser-4OGOBJJ4.js → parser-GFSOPDB7.js} +4 -4
  152. package/dist/{parser-2MFP2H2E.js → parser-HVJFTOXL.js} +3 -3
  153. package/dist/{parser-VQP2UJ6W.js → parser-IKZFTLOJ.js} +3 -3
  154. package/dist/parser-J3P2D6IP.js +13 -0
  155. package/dist/{parser-PQ3POX45.js → parser-JD7OQ2E6.js} +4 -4
  156. package/dist/{parser-O5J4VBII.js → parser-K647FRI4.js} +3 -3
  157. package/dist/{parser-NGU3ETO6.js → parser-KPMN5KKE.js} +4 -4
  158. package/dist/{parser-4FL2CMDG.js → parser-MBJSBTL5.js} +4 -4
  159. package/dist/{parser-TFZFBVWN.js → parser-MCJWF5G3.js} +3 -3
  160. package/dist/{parser-NRAI6O25.js → parser-MRBPXXIV.js} +4 -4
  161. package/dist/{parser-6BTRLKRZ.js → parser-OBQG655V.js} +4 -4
  162. package/dist/{parser-3STE62GB.js → parser-QJYS7KQQ.js} +4 -4
  163. package/dist/{parser-XDVELHRK.js → parser-SMBJO3XN.js} +4 -4
  164. package/dist/{parser-TRTHDFPP.js → parser-TITK4YW6.js} +5 -5
  165. package/dist/{parser-I6KXEYFK.js → parser-TNYX5S7E.js} +4 -4
  166. package/dist/{parser-Y6WTBU76.js → parser-UBGPTIZD.js} +3 -3
  167. package/dist/parser-UGA23PYK.js +14 -0
  168. package/dist/{parser-N5O4IHUN.js → parser-WISPH7LW.js} +4 -4
  169. package/dist/{parser-CFZD5IBL.js → parser-XWUDFJ7P.js} +4 -4
  170. package/dist/parser-ZKF5K2H2.js +15 -0
  171. package/dist/{parser-ZSDPZYQP.js → parser-ZYC3XGNS.js} +4 -4
  172. package/dist/{renderer-AWWAF6XD.js → renderer-4IUPINAE.js} +10 -10
  173. package/dist/renderer-6L3NBEY5.js +24 -0
  174. package/dist/{renderer-ZRNG54CW.js → renderer-6T3KK4S3.js} +11 -11
  175. package/dist/{renderer-KQB7UGDS.js → renderer-7RH2SI3B.js} +3 -3
  176. package/dist/{renderer-6EEZHMH4.js → renderer-A5VFZQQK.js} +9 -9
  177. package/dist/{renderer-5MYBMBYO.js → renderer-BB5PREMY.js} +5 -5
  178. package/dist/{renderer-BYCNMBF7.js → renderer-CGW7QPNA.js} +10 -10
  179. package/dist/{renderer-QIWVHWZO.js → renderer-DAXMXIKD.js} +3 -3
  180. package/dist/{renderer-7MVLWWQD.js → renderer-DKESNMU5.js} +9 -9
  181. package/dist/{renderer-UV6MI64M.js → renderer-HVCU2C3Z.js} +3 -3
  182. package/dist/{renderer-VACVQYML.js → renderer-LWGJFT3D.js} +8 -8
  183. package/dist/{renderer-PGX2TKVS.js → renderer-MFJ7HY2H.js} +8 -8
  184. package/dist/{renderer-B2OMQIQG.js → renderer-MJDDU27W.js} +15 -15
  185. package/dist/{renderer-4JHRUBE6.js → renderer-QL5KO6SK.js} +10 -10
  186. package/dist/{renderer-W4M6QLIJ.js → renderer-QNHUXCRL.js} +14 -14
  187. package/dist/{renderer-ZGNTUWC4.js → renderer-ROV756WT.js} +8 -8
  188. package/dist/{renderer-YY2OSF6E.js → renderer-SQ3JUAI7.js} +9 -9
  189. package/dist/renderer-THD6V5TL.js +22 -0
  190. package/dist/{renderer-5NDVNDAZ.js → renderer-TPIBXNOS.js} +9 -9
  191. package/dist/{renderer-RPOA5YPZ.js → renderer-TYXRHMRI.js} +13 -13
  192. package/dist/{renderer-N43WR5GV.js → renderer-UZF3JROD.js} +11 -11
  193. package/dist/{renderer-6W5462RB.js → renderer-V3JEMWMM.js} +9 -9
  194. package/dist/{renderer-JGBKUCZD.js → renderer-VFUVRNLK.js} +4 -4
  195. package/dist/{renderer-Z7I3W2PP.js → renderer-VICQ4WNY.js} +8 -8
  196. package/dist/renderer-W5RMOURB.js +21 -0
  197. package/dist/renderer-XEKIRPI6.js +23 -0
  198. package/dist/{renderer-CLJHQPBJ.js → renderer-YHXPN3GF.js} +12 -12
  199. package/dist/renderer-radial-MHO2VDXN.js +21 -0
  200. package/dist/{resolver-NOAA7ID7.js → resolver-FHBCO3PL.js} +3 -3
  201. package/dist/{state-parser-Z2V23ATR.js → state-parser-RX3GXOIB.js} +4 -4
  202. package/dist/{state-renderer-B4DQBM6M.js → state-renderer-AJUKGNWU.js} +9 -9
  203. package/docs/ai-integration.md +8 -3
  204. package/docs/language-reference.md +179 -5
  205. package/gallery/fixtures/family.dgmo +23 -0
  206. package/gallery/fixtures/sketch.dgmo +22 -0
  207. package/package.json +1 -1
  208. package/dist/chunk-ODZVHU3R.js +0 -153
  209. package/dist/dgmo-router-X35VLZLM.js +0 -73
  210. package/dist/dimensions-J3FHIMJ6.js +0 -22
  211. package/dist/layout-5T6RH5M6.js +0 -14
  212. package/dist/layout-G23F7LDH.js +0 -9
  213. package/dist/layout-OB3RI63S.js +0 -14
  214. package/dist/parser-JAL2HD4I.js +0 -13
  215. package/dist/renderer-SMIBCRVB.js +0 -24
  216. package/dist/renderer-radial-C32GPJQ7.js +0 -21
@@ -5,29 +5,33 @@ import {
5
5
  formatPct,
6
6
  resolveCellColor,
7
7
  resolveColorMode
8
- } from "./chunk-IZMRON6C.js";
8
+ } from "./chunk-UVCXZEGU.js";
9
9
  import {
10
10
  renderIntegratedLegend
11
- } from "./chunk-PWIHZ6NJ.js";
11
+ } from "./chunk-4UDKKGHH.js";
12
12
  import {
13
13
  getMaxLegendReservedHeight
14
- } from "./chunk-YAA6IID3.js";
14
+ } from "./chunk-7UEMZREK.js";
15
15
  import {
16
16
  FONT_FAMILY
17
17
  } from "./chunk-6KFWC4CO.js";
18
18
  import {
19
19
  LEGEND_GROUP_GAP
20
- } from "./chunk-QOOUC2J5.js";
20
+ } from "./chunk-HQCHYB5F.js";
21
21
  import {
22
22
  measureText
23
- } from "./chunk-WCT3NYCV.js";
23
+ } from "./chunk-5LWQH6QV.js";
24
24
  import {
25
+ contrastRatio,
25
26
  contrastText,
26
- getSeriesColors
27
+ getSeriesColors,
28
+ hexToHSL,
29
+ hslToHex,
30
+ relativeLuminance
27
31
  } from "./chunk-P6T66CCZ.js";
28
32
  import {
29
33
  tagAttrKey
30
- } from "./chunk-QLCCJEJI.js";
34
+ } from "./chunk-HBVD67XG.js";
31
35
 
32
36
  // src/treemap/renderer-radial.ts
33
37
  import * as d3Selection from "d3-selection";
@@ -149,6 +153,7 @@ var LEGEND_POSITION = {
149
153
  };
150
154
  var MIN_LABEL_SWEEP = 6 * Math.PI / 180;
151
155
  var MIN_LABEL_FS = 8;
156
+ var LABEL_BASE_FS = 16;
152
157
  function renderTreemapRadialForExport(container, parsed, palette, isDark, exportDims, options) {
153
158
  renderTreemapRadial(container, parsed, palette, isDark, exportDims, {
154
159
  exportMode: true,
@@ -271,58 +276,130 @@ function drawCenterDisc(plot, parsed, discRadius, total, isEmpty, palette) {
271
276
  return;
272
277
  }
273
278
  const title = parsed.title ?? "";
274
- const totalStr = compactNumber(total);
279
+ const totalStr = groupedNumber(total);
275
280
  const titleFs = clampFs(15, discRadius);
276
- const totalFs = clampFs(22, discRadius);
281
+ const totalFs = fitFs(totalStr, clampFs(22, discRadius), maxW);
277
282
  if (title) {
278
283
  const t = disc.append("text").attr("class", "dgmo-treemap-disc-title").attr("text-anchor", "middle").attr("y", -4).attr("fill", ink).attr("font-size", titleFs).attr("font-weight", 600).text(clip(title, maxW, titleFs));
279
284
  if (parsed.titleLineNumber !== null) {
280
285
  t.attr("data-line-number", parsed.titleLineNumber);
281
286
  }
282
287
  }
283
- disc.append("text").attr("class", "dgmo-treemap-disc-total").attr("text-anchor", "middle").attr("y", title ? titleFs : 8).attr("fill", ink).attr("font-size", totalFs).attr("font-weight", 700).text(clip(totalStr, maxW, totalFs));
288
+ disc.append("text").attr("class", "dgmo-treemap-disc-total").attr("text-anchor", "middle").attr("y", title ? titleFs : 8).attr("fill", ink).attr("font-size", totalFs).attr("font-weight", 700).text(totalStr);
289
+ }
290
+ function groupedNumber(v) {
291
+ const rounded = Math.round(v * 100) / 100;
292
+ const neg = rounded < 0 ? "-" : "";
293
+ const [int, frac] = String(Math.abs(rounded)).split(".");
294
+ const grouped = int.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
295
+ return frac ? `${neg}${grouped}.${frac}` : `${neg}${grouped}`;
284
296
  }
285
297
  function drawArcLabel(g, defs, pathId, cell, opts, palette, fill) {
286
298
  const sweep = cell.endAngle - cell.startAngle;
287
299
  if (sweep < MIN_LABEL_SWEEP) return;
288
300
  const ringThickness = cell.outerR - cell.innerR;
289
301
  if (ringThickness < 10) return;
290
- const ink = contrastText(
291
- fill,
292
- palette.textOnFillLight,
293
- palette.textOnFillDark
294
- );
302
+ const ink = tonalInk(fill, palette.textOnFillLight, palette.textOnFillDark);
295
303
  const rMid = (cell.innerR + cell.outerR) / 2;
296
- const maxFs = clampFs(13, ringThickness);
304
+ const maxFs = clampFs(LABEL_BASE_FS, ringThickness);
305
+ const name = cell.label;
297
306
  const valParts = [
298
307
  opts.noValues ? "" : compactNumber(cell.value),
299
308
  opts.noPercent ? "" : formatPct(cell.pctOfRoot)
300
309
  ].filter(Boolean);
301
310
  const valStr = valParts.join(" \xB7 ");
302
- const full = valStr ? `${cell.label} ${valStr}` : cell.label;
303
- const availLen = sweep * rMid * 0.94;
304
- let fs = maxFs;
305
- const wAtMax = measureText(full, maxFs);
306
- if (wAtMax > availLen) {
307
- fs = Math.max(MIN_LABEL_FS, Math.floor(maxFs * availLen / wAtMax));
311
+ const valFsBase = Math.max(MIN_LABEL_FS, Math.round(maxFs * 0.82));
312
+ const lineGap = Math.round((maxFs + valFsBase) * 0.6);
313
+ const blockExtent = lineGap + 0.35 * maxFs + 0.35 * valFsBase + 4;
314
+ if (valStr && ringThickness >= blockExtent) {
315
+ const nameOuter = !isBottomHalf(cell);
316
+ const rName = rMid + (nameOuter ? 1 : -1) * (lineGap / 2);
317
+ const rVal = rMid + (nameOuter ? -1 : 1) * (lineGap / 2);
318
+ const nameAvail = sweep * rName * 0.94;
319
+ const nameFs = fitFs(name, maxFs, nameAvail);
320
+ const nameText = clip(name, nameAvail, nameFs);
321
+ if (nameText) {
322
+ drawCurvedLine(
323
+ g,
324
+ defs,
325
+ `${pathId}-n`,
326
+ cell,
327
+ rName,
328
+ nameFs,
329
+ 600,
330
+ nameText,
331
+ ink
332
+ );
333
+ const valAvail = sweep * rVal * 0.94;
334
+ const valFs = fitFs(valStr, valFsBase, valAvail);
335
+ const valText = clip(valStr, valAvail, valFs);
336
+ if (valText) {
337
+ drawCurvedLine(
338
+ g,
339
+ defs,
340
+ `${pathId}-v`,
341
+ cell,
342
+ rVal,
343
+ valFs,
344
+ 500,
345
+ valText,
346
+ ink
347
+ );
348
+ }
349
+ return;
350
+ }
308
351
  }
352
+ const full = valStr ? `${name} ${valStr}` : name;
353
+ const availLen = sweep * rMid * 0.94;
354
+ const fs = fitFs(full, maxFs, availLen);
309
355
  const text = clip(full, availLen, fs);
310
356
  if (!text) return;
311
- drawCurvedLabel(g, defs, pathId, cell, rMid, fs, text, ink);
357
+ drawCurvedLine(g, defs, pathId, cell, rMid, fs, 600, text, ink);
312
358
  }
313
- function drawCurvedLabel(g, defs, pathId, cell, rMid, fs, text, ink) {
359
+ function isBottomHalf(cell) {
314
360
  const mid = (cell.startAngle + cell.endAngle) / 2;
315
- const bottom = mid > Math.PI / 2 && mid < 3 * Math.PI / 2;
316
- const rPath = bottom ? rMid + fs * 0.32 : rMid - fs * 0.32;
361
+ return mid > Math.PI / 2 && mid < 3 * Math.PI / 2;
362
+ }
363
+ function fitFs(text, maxFs, availLen) {
364
+ const w = measureText(text, maxFs);
365
+ if (w <= availLen) return maxFs;
366
+ return Math.max(MIN_LABEL_FS, Math.floor(maxFs * availLen / w));
367
+ }
368
+ function drawCurvedLine(g, defs, pathId, cell, centerR, fs, weight, text, ink) {
369
+ const bottom = isBottomHalf(cell);
370
+ const rPath = bottom ? centerR + fs * 0.32 : centerR - fs * 0.32;
317
371
  const [a0, a1] = bottom ? [cell.endAngle, cell.startAngle] : [cell.startAngle, cell.endAngle];
318
372
  const p0x = Math.sin(a0) * rPath;
319
373
  const p0y = -Math.cos(a0) * rPath;
320
374
  const p1x = Math.sin(a1) * rPath;
321
375
  const p1y = -Math.cos(a1) * rPath;
322
376
  const sweepFlag = bottom ? 0 : 1;
323
- const d = `M ${p0x.toFixed(2)} ${p0y.toFixed(2)} A ${rPath.toFixed(2)} ${rPath.toFixed(2)} 0 0 ${sweepFlag} ${p1x.toFixed(2)} ${p1y.toFixed(2)}`;
377
+ const largeArc = cell.endAngle - cell.startAngle > Math.PI ? 1 : 0;
378
+ const d = `M ${p0x.toFixed(2)} ${p0y.toFixed(2)} A ${rPath.toFixed(2)} ${rPath.toFixed(2)} 0 ${largeArc} ${sweepFlag} ${p1x.toFixed(2)} ${p1y.toFixed(2)}`;
324
379
  defs.append("path").attr("id", pathId).attr("d", d);
325
- g.append("text").attr("class", "dgmo-treemap-label").attr("font-size", fs).attr("font-weight", 600).attr("fill", ink).append("textPath").attr("href", `#${pathId}`).attr("startOffset", "50%").attr("text-anchor", "middle").text(text);
380
+ g.append("text").attr("class", "dgmo-treemap-label").attr("font-size", fs).attr("font-weight", weight).attr("fill", ink).append("textPath").attr("href", `#${pathId}`).attr("startOffset", "50%").attr("text-anchor", "middle").text(text);
381
+ }
382
+ var INK_MIN_CONTRAST = 3;
383
+ function tonedCandidate(h, s, fill, dark) {
384
+ const sat = dark ? Math.min(85, Math.max(s, 55)) : Math.min(72, Math.max(42, s));
385
+ let l = dark ? 34 : 80;
386
+ let ink = hslToHex(h, sat, l);
387
+ for (let i = 0; i < 30 && contrastRatio(ink, fill) < INK_MIN_CONTRAST; i++) {
388
+ l += dark ? -3 : 3;
389
+ if (l <= 3 || l >= 97) break;
390
+ ink = hslToHex(h, sat, l);
391
+ }
392
+ return { ink, ok: contrastRatio(ink, fill) >= INK_MIN_CONTRAST };
393
+ }
394
+ function tonalInk(fill, onLight, onDark) {
395
+ const { h, s } = hexToHSL(fill);
396
+ const dark = tonedCandidate(h, s, fill, true);
397
+ const light = tonedCandidate(h, s, fill, false);
398
+ const preferLight = relativeLuminance(fill) <= 0.45;
399
+ if (dark.ok && light.ok) return preferLight ? light.ink : dark.ink;
400
+ if (dark.ok) return dark.ink;
401
+ if (light.ok) return light.ink;
402
+ return contrastText(fill, onLight, onDark);
326
403
  }
327
404
  function clampFs(base, thickness) {
328
405
  return Math.max(8, Math.min(base, Math.round(thickness * 0.9)));
@@ -344,4 +421,4 @@ export {
344
421
  renderTreemapRadialForExport,
345
422
  renderTreemapRadial
346
423
  };
347
- //# sourceMappingURL=chunk-ULOEATBZ.js.map
424
+ //# sourceMappingURL=chunk-XKTN7CZF.js.map
@@ -8,18 +8,18 @@ import {
8
8
  rectsOverlap,
9
9
  segmentRectOverlap,
10
10
  segmentsCross
11
- } from "./chunk-PBAHEPLQ.js";
11
+ } from "./chunk-HGN652MU.js";
12
12
  import {
13
13
  compactNumber,
14
14
  computeLegendLayout
15
- } from "./chunk-YAA6IID3.js";
15
+ } from "./chunk-7UEMZREK.js";
16
16
  import {
17
17
  TITLE_FONT_SIZE,
18
18
  TITLE_Y
19
19
  } from "./chunk-A4GOY3PE.js";
20
20
  import {
21
21
  measureLegendText
22
- } from "./chunk-QOOUC2J5.js";
22
+ } from "./chunk-HQCHYB5F.js";
23
23
  import {
24
24
  contrastRatio,
25
25
  mix,
@@ -29,7 +29,7 @@ import {
29
29
  } from "./chunk-P6T66CCZ.js";
30
30
  import {
31
31
  tagAttrKey
32
- } from "./chunk-QLCCJEJI.js";
32
+ } from "./chunk-HBVD67XG.js";
33
33
  import {
34
34
  resolveColor
35
35
  } from "./chunk-TLVIHFRO.js";
@@ -1820,6 +1820,94 @@ function layoutMap(resolvedIn, data, size, opts) {
1820
1820
  const off = bow * 0.5 + Math.sign(bow || 1) * 8;
1821
1821
  return { x: mx + nx * off, y: my + ny * off };
1822
1822
  };
1823
+ const LEG_SAMPLES = 25;
1824
+ const POI_CLEARANCE = 10;
1825
+ const LEG_CLEARANCE = 7;
1826
+ const SHARED_END_RADIUS = 36;
1827
+ const placedLegSamples = [];
1828
+ const sampleLeg = (a, b, curved, bow) => {
1829
+ const pts = [];
1830
+ const dx = b.cx - a.cx;
1831
+ const dy = b.cy - a.cy;
1832
+ const len = Math.hypot(dx, dy) || 1;
1833
+ const px = (a.cx + b.cx) / 2 + -dy / len * bow;
1834
+ const py = (a.cy + b.cy) / 2 + dx / len * bow;
1835
+ for (let i = 0; i < LEG_SAMPLES; i++) {
1836
+ const t = i / (LEG_SAMPLES - 1);
1837
+ if (!curved && bow === 0) {
1838
+ pts.push({ x: a.cx + dx * t, y: a.cy + dy * t });
1839
+ } else {
1840
+ const u = 1 - t;
1841
+ pts.push({
1842
+ x: u * u * a.cx + 2 * u * t * px + t * t * b.cx,
1843
+ y: u * u * a.cy + 2 * u * t * py + t * t * b.cy
1844
+ });
1845
+ }
1846
+ }
1847
+ return pts;
1848
+ };
1849
+ const legPenalty = (pts, fromId, toId) => {
1850
+ let pen = 0;
1851
+ for (const [id, p] of poiScreen) {
1852
+ if (id === fromId || id === toId) continue;
1853
+ let dmin = Infinity;
1854
+ for (const s of pts) {
1855
+ const d = Math.hypot(s.x - p.cx, s.y - p.cy);
1856
+ if (d < dmin) dmin = d;
1857
+ }
1858
+ const clear = p.r + POI_CLEARANCE;
1859
+ if (dmin < clear) pen += (clear - dmin) * 12;
1860
+ }
1861
+ for (const other of placedLegSamples) {
1862
+ const shared = [fromId, toId].filter((id) => id === other.fromId || id === other.toId).map((id) => poiScreen.get(id)).filter((p) => !!p);
1863
+ for (const s of pts) {
1864
+ if (shared.some(
1865
+ (sp) => Math.hypot(s.x - sp.cx, s.y - sp.cy) < SHARED_END_RADIUS
1866
+ )) {
1867
+ continue;
1868
+ }
1869
+ let dmin = Infinity;
1870
+ for (const o of other.pts) {
1871
+ const d = Math.hypot(s.x - o.x, s.y - o.y);
1872
+ if (d < dmin) dmin = d;
1873
+ }
1874
+ if (dmin < LEG_CLEARANCE) pen += 6;
1875
+ }
1876
+ }
1877
+ for (const s of pts) {
1878
+ if (s.x < 0 || s.x > width || s.y < 0 || s.y > height) pen += 20;
1879
+ }
1880
+ return pen;
1881
+ };
1882
+ const chooseArcBow = (a, b, fromId, toId, away) => {
1883
+ const mx = (a.cx + b.cx) / 2;
1884
+ const my = (a.cy + b.cy) / 2;
1885
+ const dx = b.cx - a.cx;
1886
+ const dy = b.cy - a.cy;
1887
+ const len = Math.hypot(dx, dy) || 1;
1888
+ const nx = -dy / len;
1889
+ const ny = dx / len;
1890
+ const def = bowMagnitude(mx, my, nx, ny, 0, len, away);
1891
+ const candidates = [
1892
+ def,
1893
+ -def,
1894
+ def * 1.6,
1895
+ -def * 1.6,
1896
+ def * 2.2,
1897
+ -def * 2.2
1898
+ ];
1899
+ let best = def;
1900
+ let bestPen = Infinity;
1901
+ for (const c of candidates) {
1902
+ const pen = legPenalty(sampleLeg(a, b, true, c), fromId, toId);
1903
+ if (pen < bestPen - 1e-6) {
1904
+ best = c;
1905
+ bestPen = pen;
1906
+ }
1907
+ if (bestPen === 0) break;
1908
+ }
1909
+ return best;
1910
+ };
1823
1911
  const routeLegVals = resolved.routes.flatMap((rt) => rt.legs).map((l) => Number(l.value)).filter((n) => Number.isFinite(n) && n > 0);
1824
1912
  const rlMin = routeLegVals.length ? Math.min(...routeLegVals) : 0;
1825
1913
  const rlMax = routeLegVals.length ? Math.max(...routeLegVals) : 0;
@@ -1838,14 +1926,21 @@ function layoutMap(resolvedIn, data, size, opts) {
1838
1926
  const a = poiScreen.get(leg.fromId);
1839
1927
  const b = poiScreen.get(leg.toId);
1840
1928
  if (!a || !b) continue;
1841
- const lp = legLabelPoint(a, b, leg.style === "arc", 0, center);
1929
+ const curvedLeg = leg.style === "arc";
1930
+ const chosenBow = curvedLeg ? chooseArcBow(a, b, leg.fromId, leg.toId, center) : 0;
1931
+ const lp = legLabelPoint(a, b, curvedLeg, chosenBow, center);
1842
1932
  const bow = {
1843
- curved: leg.style === "arc",
1844
- offset: 0,
1933
+ curved: curvedLeg,
1934
+ offset: chosenBow,
1845
1935
  center,
1846
1936
  labelX: lp.x,
1847
1937
  labelY: lp.y
1848
1938
  };
1939
+ placedLegSamples.push({
1940
+ fromId: leg.fromId,
1941
+ toId: leg.toId,
1942
+ pts: sampleLeg(a, b, curvedLeg, chosenBow)
1943
+ });
1849
1944
  const routeLabelStyle = leg.label !== void 0 ? labelOnFill(fillAt(bow.labelX, bow.labelY)) : void 0;
1850
1945
  const routeVal = Number(leg.value);
1851
1946
  legs.push({
@@ -1894,13 +1989,19 @@ function layoutMap(resolvedIn, data, size, opts) {
1894
1989
  if (!a || !b) return;
1895
1990
  const fanOffset = n > 1 ? (i - (n - 1) / 2) * FAN_STEP : 0;
1896
1991
  const curved = e.style === "arc" || n > 1;
1897
- const lp = legLabelPoint(a, b, curved, fanOffset);
1992
+ const edgeBow = curved && n === 1 ? chooseArcBow(a, b, e.fromId, e.toId) : fanOffset;
1993
+ const lp = legLabelPoint(a, b, curved, edgeBow);
1898
1994
  const bow = {
1899
1995
  curved,
1900
- offset: fanOffset,
1996
+ offset: edgeBow,
1901
1997
  labelX: lp.x,
1902
1998
  labelY: lp.y
1903
1999
  };
2000
+ placedLegSamples.push({
2001
+ fromId: e.fromId,
2002
+ toId: e.toId,
2003
+ pts: sampleLeg(a, b, curved, edgeBow)
2004
+ });
1904
2005
  const edgeLabelStyle = e.label !== void 0 ? labelOnFill(fillAt(bow.labelX, bow.labelY)) : void 0;
1905
2006
  const edgeVal = Number(e.meta["width"]);
1906
2007
  legs.push({
@@ -3076,4 +3177,4 @@ export {
3076
3177
  albersSkewFallback,
3077
3178
  layoutMap
3078
3179
  };
3079
- //# sourceMappingURL=chunk-IPWPWM6R.js.map
3180
+ //# sourceMappingURL=chunk-YM2BSPYW.js.map
@@ -8,7 +8,7 @@ import {
8
8
  stripDefaultModifier,
9
9
  tagAttrKey,
10
10
  validateTagGroupNames
11
- } from "./chunk-QLCCJEJI.js";
11
+ } from "./chunk-HBVD67XG.js";
12
12
  import {
13
13
  parseInArrowLabel
14
14
  } from "./chunk-FFUN5D66.js";
@@ -19,7 +19,7 @@ import {
19
19
  peelRampColors,
20
20
  splitNameAndMeta,
21
21
  withTagAliases
22
- } from "./chunk-Y3J7VR52.js";
22
+ } from "./chunk-ZNQX6QWH.js";
23
23
  import {
24
24
  formatDgmoError,
25
25
  makeDgmoError
@@ -610,4 +610,4 @@ export {
610
610
  looksLikeMap,
611
611
  parseMap
612
612
  };
613
- //# sourceMappingURL=chunk-BUPDIHML.js.map
613
+ //# sourceMappingURL=chunk-YRVLP7UU.js.map
@@ -4,14 +4,14 @@ import {
4
4
  import {
5
5
  measureText,
6
6
  truncateText
7
- } from "./chunk-WCT3NYCV.js";
7
+ } from "./chunk-5LWQH6QV.js";
8
8
  import {
9
9
  preprocessDescriptionLine
10
10
  } from "./chunk-IYULMRBE.js";
11
11
  import {
12
12
  injectDefaultTagMetadata,
13
13
  resolveTagColor
14
- } from "./chunk-QLCCJEJI.js";
14
+ } from "./chunk-HBVD67XG.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-T2OE3YQB.js.map
550
+ //# sourceMappingURL=chunk-YTN572Q2.js.map
@@ -4,12 +4,12 @@ import {
4
4
  matchTagBlockHeading,
5
5
  stripDefaultModifier,
6
6
  tagAttrKey
7
- } from "./chunk-QLCCJEJI.js";
7
+ } from "./chunk-HBVD67XG.js";
8
8
  import {
9
9
  extractColor,
10
10
  measureIndent,
11
11
  parseFirstLine
12
- } from "./chunk-Y3J7VR52.js";
12
+ } from "./chunk-ZNQX6QWH.js";
13
13
  import {
14
14
  emit
15
15
  } from "./chunk-CXK4DZH3.js";
@@ -526,4 +526,4 @@ export {
526
526
  SWIMLANE_DIAGNOSTICS,
527
527
  parseSwimlane
528
528
  };
529
- //# sourceMappingURL=chunk-WVAJFAIA.js.map
529
+ //# sourceMappingURL=chunk-YYX3SU6H.js.map
@@ -5,7 +5,7 @@ import {
5
5
  splitNameAndMeta,
6
6
  tryParseSharedOption,
7
7
  warnUnknownMetaKeys
8
- } from "./chunk-Y3J7VR52.js";
8
+ } from "./chunk-ZNQX6QWH.js";
9
9
  import {
10
10
  RECOGNIZED_COLOR_NAMES,
11
11
  resolveColor
@@ -165,4 +165,4 @@ function parseRing(content) {
165
165
  export {
166
166
  parseRing
167
167
  };
168
- //# sourceMappingURL=chunk-MO5YHHMQ.js.map
168
+ //# sourceMappingURL=chunk-ZDUQGL3N.js.map
@@ -103,6 +103,11 @@ var BOXES_AND_LINES_REGISTRY = staticRegistry([
103
103
  "description",
104
104
  "heat"
105
105
  ]);
106
+ var SKETCH_REGISTRY = staticRegistry([
107
+ "shape",
108
+ "at",
109
+ "collapsed"
110
+ ]);
106
111
  var TIMELINE_REGISTRY = staticRegistry([
107
112
  "color",
108
113
  "description",
@@ -148,6 +153,19 @@ var RACI_REGISTRY = staticRegistry([
148
153
  "color",
149
154
  "description"
150
155
  ]);
156
+ var FAMILY_PERSON_REGISTRY = staticRegistry([
157
+ "sex",
158
+ "b",
159
+ "d",
160
+ "bp",
161
+ "dp",
162
+ "occupation",
163
+ "military",
164
+ "education",
165
+ "religion",
166
+ "burial"
167
+ ]);
168
+ var FAMILY_UNION_REGISTRY = staticRegistry(["m"]);
151
169
 
152
170
  // src/utils/parsing.ts
153
171
  var RECOGNIZED_COLOR_SET = new Set(
@@ -174,6 +192,7 @@ var ALL_CHART_TYPES = /* @__PURE__ */ new Set([
174
192
  "venn",
175
193
  "quadrant",
176
194
  // diagrams
195
+ "body",
177
196
  "sequence",
178
197
  "flowchart",
179
198
  "class",
@@ -198,8 +217,10 @@ var ALL_CHART_TYPES = /* @__PURE__ */ new Set([
198
217
  "ring",
199
218
  "treemap",
200
219
  "block",
220
+ "sketch",
201
221
  "raci",
202
- "map"
222
+ "map",
223
+ "family"
203
224
  ]);
204
225
  function measureIndent(line) {
205
226
  let indent = 0;
@@ -548,6 +569,9 @@ function parseMetadataRegion(region, aliasMap, diagnostics, line) {
548
569
  }
549
570
  return meta;
550
571
  }
572
+ function cutUnionMetadata(line, registry) {
573
+ return findMetadataCutOffset(line, scanTokens(line), registry);
574
+ }
551
575
  function splitNameAndMeta(line, registry, aliasMap = /* @__PURE__ */ new Map(), palette, diagnostics, lineNumber, options = {}) {
552
576
  const tokens = scanTokens(line);
553
577
  const cutOffset = findMetadataCutOffset(line, tokens, registry);
@@ -618,6 +642,7 @@ export {
618
642
  GANTT_REGISTRY,
619
643
  PERT_REGISTRY,
620
644
  BOXES_AND_LINES_REGISTRY,
645
+ SKETCH_REGISTRY,
621
646
  TIMELINE_REGISTRY,
622
647
  MINDMAP_REGISTRY,
623
648
  TECH_RADAR_REGISTRY,
@@ -627,6 +652,8 @@ export {
627
652
  RING_REGISTRY,
628
653
  TREEMAP_REGISTRY,
629
654
  RACI_REGISTRY,
655
+ FAMILY_PERSON_REGISTRY,
656
+ FAMILY_UNION_REGISTRY,
630
657
  ALL_CHART_TYPES,
631
658
  measureIndent,
632
659
  extractColor,
@@ -640,7 +667,8 @@ export {
640
667
  parseSeriesNames,
641
668
  peelTrailingColorName,
642
669
  peelRampColors,
670
+ cutUnionMetadata,
643
671
  splitNameAndMeta,
644
672
  warnUnknownMetaKeys
645
673
  };
646
- //# sourceMappingURL=chunk-Y3J7VR52.js.map
674
+ //# sourceMappingURL=chunk-ZNQX6QWH.js.map
@@ -2,6 +2,9 @@ import {
2
2
  MONTH_ABBR,
3
3
  computeTimeTicks
4
4
  } from "./chunk-YRYKTYMQ.js";
5
+ import {
6
+ ScaleContext
7
+ } from "./chunk-YYVTBZZC.js";
5
8
  import {
6
9
  createTooltip,
7
10
  hideTooltip,
@@ -10,10 +13,7 @@ import {
10
13
  } from "./chunk-U6EQI3U6.js";
11
14
  import {
12
15
  renderIntegratedLegend
13
- } from "./chunk-PWIHZ6NJ.js";
14
- import {
15
- ScaleContext
16
- } from "./chunk-YYVTBZZC.js";
16
+ } from "./chunk-4UDKKGHH.js";
17
17
  import {
18
18
  FONT_FAMILY
19
19
  } from "./chunk-6KFWC4CO.js";
@@ -28,10 +28,10 @@ import {
28
28
  LEGEND_PILL_PAD,
29
29
  measureLegendText,
30
30
  truncateLegendText
31
- } from "./chunk-QOOUC2J5.js";
31
+ } from "./chunk-HQCHYB5F.js";
32
32
  import {
33
33
  parseTimelineDate
34
- } from "./chunk-GMR5MFHJ.js";
34
+ } from "./chunk-IUK7AGD4.js";
35
35
  import {
36
36
  getSeriesColors,
37
37
  mix,
@@ -41,7 +41,7 @@ import {
41
41
  import {
42
42
  resolveTagColor,
43
43
  tagAttrKey
44
- } from "./chunk-QLCCJEJI.js";
44
+ } from "./chunk-HBVD67XG.js";
45
45
 
46
46
  // src/timeline/renderer.ts
47
47
  import * as d3Scale from "d3-scale";
@@ -1607,4 +1607,4 @@ export {
1607
1607
  formatDateLabel,
1608
1608
  renderTimeline
1609
1609
  };
1610
- //# sourceMappingURL=chunk-UWN33VNX.js.map
1610
+ //# sourceMappingURL=chunk-ZREZOIGS.js.map
@@ -11,15 +11,15 @@ import {
11
11
  LEGEND_PILL_FONT_SIZE,
12
12
  LEGEND_PILL_PAD,
13
13
  measureLegendText
14
- } from "./chunk-QOOUC2J5.js";
14
+ } from "./chunk-HQCHYB5F.js";
15
15
  import {
16
16
  measureText
17
- } from "./chunk-WCT3NYCV.js";
17
+ } from "./chunk-5LWQH6QV.js";
18
18
  import {
19
19
  injectDefaultTagMetadata,
20
20
  resolveTagColor,
21
21
  tagAttrKey
22
- } from "./chunk-QLCCJEJI.js";
22
+ } from "./chunk-HBVD67XG.js";
23
23
 
24
24
  // src/sitemap/layout.ts
25
25
  import dagre from "@dagrejs/dagre";
@@ -617,4 +617,4 @@ function layoutSitemap(parsed, hiddenCounts, activeTagGroup, hiddenAttributes, e
617
617
  export {
618
618
  layoutSitemap
619
619
  };
620
- //# sourceMappingURL=chunk-6SM5NJQH.js.map
620
+ //# sourceMappingURL=chunk-ZTLWVRNS.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  tryCollectNote
3
- } from "./chunk-5MLYVTYM.js";
3
+ } from "./chunk-K6HNAY5V.js";
4
4
  import {
5
5
  resolveNotes
6
6
  } from "./chunk-FMDSF3OV.js";
@@ -16,7 +16,7 @@ import {
16
16
  measureIndent,
17
17
  parseFirstLine,
18
18
  tryParseSharedOption
19
- } from "./chunk-Y3J7VR52.js";
19
+ } from "./chunk-ZNQX6QWH.js";
20
20
  import {
21
21
  resolveColorWithDiagnostic
22
22
  } from "./chunk-TLVIHFRO.js";
@@ -445,4 +445,4 @@ export {
445
445
  looksLikeClassDiagram,
446
446
  extractSymbols
447
447
  };
448
- //# sourceMappingURL=chunk-RUNNI6VE.js.map
448
+ //# sourceMappingURL=chunk-ZXL6MB4R.js.map