@diagrammo/dgmo 0.54.0 → 0.55.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 (196) hide show
  1. package/dist/advanced.d.ts +76 -9
  2. package/dist/advanced.js +118 -95
  3. package/dist/auto.js +125 -124
  4. package/dist/auto.mjs +1579 -282
  5. package/dist/block.js +49 -48
  6. package/dist/chart-meta.js +43 -43
  7. package/dist/{charts-d3-25E4VWXO.js → charts-d3-KZ6V4OP2.js} +7 -6
  8. package/dist/{chunk-MTZOXISJ.js → chunk-2HX6ZGY7.js} +3 -3
  9. package/dist/{chunk-ICKXIMBA.js → chunk-2R6HG6D5.js} +5 -5
  10. package/dist/{chunk-NUTWTV6G.js → chunk-2ZJXKJSI.js} +102 -56
  11. package/dist/{chunk-LPJ6H5X4.js → chunk-32HUNA33.js} +53 -11
  12. package/dist/{chunk-UIT7E6UF.js → chunk-3BFXELBL.js} +51 -4
  13. package/dist/{chunk-C2UORMIA.js → chunk-3BZJ5KD5.js} +7 -3
  14. package/dist/{chunk-A3BDLDYG.js → chunk-3FUTFYSP.js} +57 -18
  15. package/dist/{chunk-DPGQ5UMO.js → chunk-4MZCJV4M.js} +6 -6
  16. package/dist/{chunk-WWHECSYZ.js → chunk-4R5KIPNX.js} +2 -2
  17. package/dist/{chunk-47JNEKJA.js → chunk-5D5VHDJM.js} +43 -8
  18. package/dist/{chunk-KQYQECWQ.js → chunk-5H5GWWA4.js} +49 -13
  19. package/dist/{chunk-RRGKMJYL.js → chunk-5K5XBEXT.js} +8 -3
  20. package/dist/{chunk-HAA25PLC.js → chunk-6NJWBMJV.js} +44 -9
  21. package/dist/{chunk-3FRO35WW.js → chunk-A2ARDILY.js} +17 -3
  22. package/dist/{chunk-TLNVYWPA.js → chunk-A2PTRSAO.js} +2 -2
  23. package/dist/{chunk-APKUAJ2L.js → chunk-A2RUBBVT.js} +14 -1
  24. package/dist/{chunk-KS5ZSM5T.js → chunk-A4UJP4IS.js} +61 -13
  25. package/dist/{chunk-LRSW4JLE.js → chunk-AKE6C2D7.js} +3 -3
  26. package/dist/{chunk-2NZOHEP4.js → chunk-ASPS5O6F.js} +3 -3
  27. package/dist/{chunk-KV4HLIJE.js → chunk-AU75JHSR.js} +6 -3
  28. package/dist/{chunk-R5BGGBFF.js → chunk-DS4MDEQ7.js} +2 -2
  29. package/dist/{chunk-7JDTNFAK.js → chunk-EFUQENO5.js} +76 -32
  30. package/dist/{chunk-BULHGPHK.js → chunk-EMSOFHEN.js} +2 -2
  31. package/dist/{chunk-IYNKLCAZ.js → chunk-ETTDF3S2.js} +45 -7
  32. package/dist/{chunk-KDK5EKUR.js → chunk-ETYF5QZR.js} +2 -2
  33. package/dist/{chunk-COJW2NEY.js → chunk-F5ZNUMSY.js} +50 -11
  34. package/dist/{chunk-EAI6XJ7D.js → chunk-FBP33UM6.js} +3 -3
  35. package/dist/{chunk-KINOX74I.js → chunk-FGAMFJNJ.js} +48 -10
  36. package/dist/{chunk-J7HQPVYH.js → chunk-GRXPFBYC.js} +23 -2
  37. package/dist/{chunk-GQ5ECRP4.js → chunk-GTO5VCYG.js} +3 -3
  38. package/dist/{chunk-RJ5LBZ5U.js → chunk-HES4K6DV.js} +13 -13
  39. package/dist/{chunk-ADCHLNWT.js → chunk-HGKOVKAX.js} +3 -3
  40. package/dist/{chunk-EPRF3ZRV.js → chunk-HLGOG44K.js} +2 -2
  41. package/dist/{chunk-KQ3FNRGR.js → chunk-HUTP35XT.js} +5 -4
  42. package/dist/{chunk-OJ435DQZ.js → chunk-HX7QNHC6.js} +3 -3
  43. package/dist/{chunk-6KL7TFLS.js → chunk-IALX52TR.js} +2 -2
  44. package/dist/{chunk-7SP4C6EV.js → chunk-IF4KYSJZ.js} +7 -3
  45. package/dist/{chunk-5XSNLXU5.js → chunk-IG6J7JWH.js} +51 -12
  46. package/dist/{chunk-M24VXUFG.js → chunk-IIUYKQ5J.js} +3 -3
  47. package/dist/{chunk-5VXU6MND.js → chunk-INTAQV2Y.js} +2 -2
  48. package/dist/{chunk-3KHJJP3J.js → chunk-ITXL2KU5.js} +2 -2
  49. package/dist/{chunk-I47VHSPS.js → chunk-IWG2ECAO.js} +2 -2
  50. package/dist/{chunk-CSHFU6LT.js → chunk-JGCEFKZP.js} +7 -7
  51. package/dist/{chunk-O576GYAP.js → chunk-JQLSFZZP.js} +2 -2
  52. package/dist/{chunk-AHTTKERF.js → chunk-JR7Q6GHE.js} +2 -2
  53. package/dist/{chunk-4T6OCSJ2.js → chunk-KC3WBBI7.js} +3 -3
  54. package/dist/{chunk-BM7MG6HT.js → chunk-KK3L5NVK.js} +3 -3
  55. package/dist/{chunk-FR6UFVSV.js → chunk-L2DIXZUT.js} +91 -41
  56. package/dist/{chunk-WW4BQ744.js → chunk-LCRPGGGS.js} +6 -6
  57. package/dist/{chunk-GKYHWJXI.js → chunk-LKGQ46P4.js} +3 -3
  58. package/dist/{chunk-IOIMQHQ6.js → chunk-LW7STMYZ.js} +2 -2
  59. package/dist/{chunk-OR3R27CU.js → chunk-M53MDBIW.js} +2 -2
  60. package/dist/{chunk-T7Y554OK.js → chunk-MEH4TJEX.js} +4 -4
  61. package/dist/{chunk-T3FAJAJT.js → chunk-MNS2ENXF.js} +3 -3
  62. package/dist/{chunk-CCGWX6AO.js → chunk-MSWIBF6J.js} +2 -2
  63. package/dist/{chunk-B7N5KYXQ.js → chunk-NL7FUIVD.js} +4 -4
  64. package/dist/{chunk-EQOMY4PY.js → chunk-NN5TF4OV.js} +2 -2
  65. package/dist/{chunk-BZJIITYM.js → chunk-NPPUZ4SK.js} +4 -4
  66. package/dist/{chunk-XWODFBHJ.js → chunk-NYOOPQFD.js} +7 -3
  67. package/dist/{chunk-VQFDBNYF.js → chunk-O4CZDTQA.js} +3 -3
  68. package/dist/{chunk-FVMKCZHF.js → chunk-P5XXIVEU.js} +2 -2
  69. package/dist/{chunk-F7XM366V.js → chunk-PC4YLEKA.js} +3 -3
  70. package/dist/{chunk-AQEYUVGJ.js → chunk-PCVXXPYU.js} +12 -5
  71. package/dist/{chunk-TJN2OIVG.js → chunk-PKUWYPI5.js} +180 -12
  72. package/dist/{chunk-W6PCFRPL.js → chunk-PSIDVCBA.js} +2 -2
  73. package/dist/{chunk-RIEAN4D5.js → chunk-PV7ND5WL.js} +48 -8
  74. package/dist/{chunk-7K6NDSXH.js → chunk-Q5CMQVWF.js} +3 -3
  75. package/dist/{chunk-FFVFZLRT.js → chunk-QQXFYTLC.js} +346 -46
  76. package/dist/{chunk-N7BSBAVP.js → chunk-QZYGRDMM.js} +108 -89
  77. package/dist/{chunk-U4IN6AHE.js → chunk-RKBCKCSF.js} +2 -2
  78. package/dist/{chunk-GK32ZFZY.js → chunk-RSBH2C7O.js} +3 -3
  79. package/dist/{chunk-OSXQKC3S.js → chunk-RYNCWA5X.js} +6 -3
  80. package/dist/{chunk-S7YFT3PO.js → chunk-RZWIPDZ2.js} +3 -3
  81. package/dist/{chunk-7UPFTBOW.js → chunk-S52F62GW.js} +4 -4
  82. package/dist/{chunk-WKNAJ4BR.js → chunk-SCOHNGPG.js} +51 -10
  83. package/dist/{chunk-BWYFIVZF.js → chunk-UBQU2BY6.js} +3 -3
  84. package/dist/{chunk-VMSBMIHW.js → chunk-UES4P7FN.js} +2 -2
  85. package/dist/chunk-US3P2DQO.js +87 -0
  86. package/dist/{chunk-AJFHNS67.js → chunk-UXXLE6AH.js} +5 -5
  87. package/dist/{chunk-M3H7ZE6C.js → chunk-VMWSZCAK.js} +5 -4
  88. package/dist/{chunk-S7FOIURR.js → chunk-VVIRAGID.js} +6 -6
  89. package/dist/{chunk-3SBHODJ4.js → chunk-VXTUWXFB.js} +48 -9
  90. package/dist/{chunk-HFEOOQ46.js → chunk-W4TSD3IP.js} +2 -2
  91. package/dist/{chunk-7U4OR7CD.js → chunk-WB3NA3JJ.js} +2 -2
  92. package/dist/{chunk-3SEEP2JM.js → chunk-WITOJZGL.js} +8 -4
  93. package/dist/{chunk-6OYDOQ2Q.js → chunk-WVGNXDEE.js} +2 -2
  94. package/dist/{chunk-UEU6IYKY.js → chunk-X3X4LZDC.js} +2 -2
  95. package/dist/{chunk-SBOAZ7YK.js → chunk-XKKH2DPG.js} +39 -39
  96. package/dist/{chunk-NR5HCAUD.js → chunk-XSVWUOUZ.js} +1 -1
  97. package/dist/{chunk-62Y27T4C.js → chunk-Y4BBGFKY.js} +2 -2
  98. package/dist/{chunk-YENNFS5F.js → chunk-YP2T5YUP.js} +8 -3
  99. package/dist/{chunk-2NYXI35Z.js → chunk-YXKNXIWA.js} +5 -4
  100. package/dist/{chunk-KBVOVDYP.js → chunk-ZGIBV36U.js} +3 -3
  101. package/dist/{chunk-4ZIKWVSQ.js → chunk-ZP265ICS.js} +4 -4
  102. package/dist/{chunk-DLU643TF.js → chunk-ZWVKTWK6.js} +3 -3
  103. package/dist/{chunk-QBYP2FBZ.js → chunk-ZXNHHO6D.js} +2 -2
  104. package/dist/cli.cjs +150 -147
  105. package/dist/clock.js +34 -1
  106. package/dist/completion-registry.js +12 -4
  107. package/dist/dgmo-router-T4HGLIGA.js +88 -0
  108. package/dist/{dimensions-L6BXQXXL.js → dimensions-3JINHSYK.js} +6 -6
  109. package/dist/editor.js +10 -1
  110. package/dist/element.js +124 -123
  111. package/dist/element.mjs +1579 -282
  112. package/dist/{flowchart-parser-UKYOW3VM.js → flowchart-parser-M7KKTLX7.js} +4 -4
  113. package/dist/{flowchart-renderer-DCFKUDDR.js → flowchart-renderer-FFEQFQEU.js} +5 -5
  114. package/dist/highlight.js +10 -1
  115. package/dist/index.js +58 -48
  116. package/dist/{layout-G2ABQJQZ.js → layout-3ZZBKUQC.js} +3 -3
  117. package/dist/{layout-CH4HFFRD.js → layout-AUKTWGYL.js} +4 -4
  118. package/dist/{layout-QBNAMEOA.js → layout-CRLTSFYQ.js} +3 -3
  119. package/dist/{layout-25Y3VDYF.js → layout-FNZDJGKF.js} +4 -4
  120. package/dist/{layout-NY7MHJCL.js → layout-GHWRJKZQ.js} +4 -4
  121. package/dist/{layout-ITLPDG6M.js → layout-LGXOKUCD.js} +4 -4
  122. package/dist/{layout-A6OIGZN2.js → layout-UR7CYAHL.js} +2 -2
  123. package/dist/{layout-4SPLI4HG.js → layout-UTMEVFHN.js} +4 -4
  124. package/dist/{layout-search-LUI475P3.js → layout-search-U2H4ORFJ.js} +8 -6
  125. package/dist/{parser-XRDUX2AR.js → parser-2AXPSKWB.js} +5 -5
  126. package/dist/{parser-B2A7XOAK.js → parser-2AZ2KQTO.js} +4 -4
  127. package/dist/{parser-VVE4THG3.js → parser-2LF33IS2.js} +4 -4
  128. package/dist/{parser-MHKYQPC2.js → parser-3QJ2Z4H4.js} +3 -3
  129. package/dist/parser-5GCQFSTQ.js +13 -0
  130. package/dist/{parser-XCPMEB2Z.js → parser-62OHBRU5.js} +3 -3
  131. package/dist/{parser-GML6V2KZ.js → parser-7LYJFZCP.js} +4 -4
  132. package/dist/{parser-LTA2BOZO.js → parser-BMOTF72G.js} +3 -3
  133. package/dist/{parser-FHRMFUNX.js → parser-CIFLYZYP.js} +3 -3
  134. package/dist/{parser-KTYF6WO5.js → parser-D2UL2G5U.js} +3 -3
  135. package/dist/{parser-5C3PEZK3.js → parser-DM2APTKB.js} +3 -3
  136. package/dist/{parser-X5XLFY4Z.js → parser-DYYTPLBL.js} +4 -4
  137. package/dist/{parser-WPPJGB4R.js → parser-GOUGUTPU.js} +4 -4
  138. package/dist/{parser-T3D7BV6O.js → parser-HGVUVD6J.js} +3 -3
  139. package/dist/{parser-F4FEU57T.js → parser-IEJD3CZB.js} +3 -3
  140. package/dist/{parser-FY3YFFBS.js → parser-JBEWNLAV.js} +5 -5
  141. package/dist/{parser-2UWWNTFL.js → parser-JMXPHNZD.js} +4 -4
  142. package/dist/{parser-YULS5MLD.js → parser-JMXSQY3K.js} +4 -4
  143. package/dist/{parser-YPWYT46P.js → parser-LUXS7J32.js} +4 -4
  144. package/dist/{parser-O7YQYFEN.js → parser-M5BUHULF.js} +4 -4
  145. package/dist/{parser-MVSYFK63.js → parser-MESRHUS4.js} +4 -4
  146. package/dist/{parser-HA3PF5FL.js → parser-OOYNI2UT.js} +4 -4
  147. package/dist/{parser-OPIXXUY4.js → parser-PVBUAVRR.js} +4 -4
  148. package/dist/{parser-3RXYQSA7.js → parser-QKRBSQLJ.js} +5 -5
  149. package/dist/{parser-CCNJKDDA.js → parser-S6NWSIJO.js} +4 -4
  150. package/dist/{parser-S4EJPNVN.js → parser-SFEK6Q7Z.js} +4 -4
  151. package/dist/{parser-7UI6UQ7B.js → parser-SUV52NQW.js} +4 -4
  152. package/dist/{parser-ESHNUFME.js → parser-SZHGLOOZ.js} +4 -4
  153. package/dist/{parser-66RYGJRB.js → parser-TO7IENWL.js} +4 -4
  154. package/dist/{parser-FPCWDYQV.js → parser-TVAMC7CQ.js} +4 -4
  155. package/dist/{parser-LU7UAKNB.js → parser-VAW46R57.js} +4 -4
  156. package/dist/{parser-6MQM7WT3.js → parser-XDSPOXSE.js} +4 -4
  157. package/dist/pert.d.ts +2 -0
  158. package/dist/{renderer-YVMETH6V.js → renderer-3PWLOJPD.js} +8 -8
  159. package/dist/{renderer-7HMZ5OCJ.js → renderer-5EMHIQL5.js} +3 -3
  160. package/dist/{renderer-2DME63VZ.js → renderer-5PODNLYP.js} +4 -4
  161. package/dist/{renderer-4A32DX5L.js → renderer-AQJIQ2XU.js} +7 -6
  162. package/dist/{renderer-RMAM2SOJ.js → renderer-BEW3AYFT.js} +8 -8
  163. package/dist/{renderer-YP3P6UVT.js → renderer-C3UYAXA6.js} +8 -6
  164. package/dist/{renderer-X2LYSMLU.js → renderer-CENXCMWG.js} +3 -3
  165. package/dist/{renderer-6CFML5G3.js → renderer-CXM3ARYN.js} +8 -7
  166. package/dist/{renderer-LHVCKEWF.js → renderer-DW6TEBLA.js} +8 -7
  167. package/dist/{renderer-Y3NXZINM.js → renderer-FE5M6SEZ.js} +8 -7
  168. package/dist/{renderer-G4UOW3RH.js → renderer-FXK6ZL3P.js} +3 -3
  169. package/dist/{renderer-4K5YYX5R.js → renderer-G5ESLCJB.js} +9 -8
  170. package/dist/{renderer-P3YQES7B.js → renderer-HTDS4FED.js} +9 -8
  171. package/dist/{renderer-YEFOOULC.js → renderer-IO4KCFVL.js} +8 -8
  172. package/dist/{renderer-FXMGCSRP.js → renderer-IRAFJNTK.js} +7 -6
  173. package/dist/{renderer-SES7QZYL.js → renderer-MFTTFW32.js} +9 -8
  174. package/dist/{renderer-Z4GNKNXO.js → renderer-MPXI4FVL.js} +6 -6
  175. package/dist/{renderer-RA4PTAMF.js → renderer-NVBEMQ6L.js} +5 -5
  176. package/dist/{renderer-7ZNVOVFG.js → renderer-OOGDCR6K.js} +3 -3
  177. package/dist/{renderer-CJ56SUMF.js → renderer-Q5P72O4A.js} +7 -7
  178. package/dist/{renderer-WCWI4I6A.js → renderer-QZESC66H.js} +2 -2
  179. package/dist/{renderer-B7Y6I7JX.js → renderer-RDBUXW7P.js} +4 -4
  180. package/dist/{renderer-V5SNTPAM.js → renderer-S4XB3JR2.js} +9 -9
  181. package/dist/{renderer-COJZZ4F6.js → renderer-SIWEEWJ5.js} +7 -6
  182. package/dist/{renderer-C3RI4OPJ.js → renderer-TKTM2SL4.js} +8 -7
  183. package/dist/{renderer-WVD6G2TS.js → renderer-TXTTV4HA.js} +8 -7
  184. package/dist/{renderer-HQ4JFZOV.js → renderer-UZIU4AHK.js} +7 -6
  185. package/dist/{renderer-3VY3VXJE.js → renderer-V72VJIGG.js} +9 -8
  186. package/dist/{renderer-PLVIARM7.js → renderer-VEGOEZOI.js} +7 -6
  187. package/dist/{renderer-OZX5KGQM.js → renderer-W6I6T2TA.js} +6 -6
  188. package/dist/{renderer-TQ5QDZOE.js → renderer-WSHJRR2T.js} +6 -6
  189. package/dist/{renderer-radial-VYBZAXXE.js → renderer-radial-AG75PBYD.js} +7 -7
  190. package/dist/{resolver-WFKZYBJ2.js → resolver-ZSFQQRTH.js} +3 -3
  191. package/dist/{state-parser-VIW2WNA5.js → state-parser-KIPZGIB4.js} +5 -5
  192. package/dist/{state-renderer-H22AQD3U.js → state-renderer-U6OSJG52.js} +9 -8
  193. package/docs/language-reference.md +2 -1
  194. package/package.json +1 -1
  195. package/dist/dgmo-router-TGZWFIZO.js +0 -88
  196. package/dist/parser-6GN5YJBJ.js +0 -13
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  computeNodeText,
3
3
  layoutMindmap
4
- } from "./chunk-5VXU6MND.js";
4
+ } from "./chunk-INTAQV2Y.js";
5
5
  import {
6
6
  extractExportSvg,
7
7
  runInExportContainer
@@ -17,12 +17,16 @@ import {
17
17
  import {
18
18
  ScaleContext
19
19
  } from "./chunk-YYVTBZZC.js";
20
+ import {
21
+ layoutInlineHeader
22
+ } from "./chunk-US3P2DQO.js";
20
23
  import {
21
24
  renderIntegratedLegend
22
- } from "./chunk-2NZOHEP4.js";
25
+ } from "./chunk-ASPS5O6F.js";
23
26
  import {
27
+ getLegendExtent,
24
28
  getMaxLegendReservedHeight
25
- } from "./chunk-J7HQPVYH.js";
29
+ } from "./chunk-GRXPFBYC.js";
26
30
  import {
27
31
  TITLE_FONT_SIZE,
28
32
  TITLE_FONT_WEIGHT
@@ -32,7 +36,7 @@ import {
32
36
  } from "./chunk-6KFWC4CO.js";
33
37
  import {
34
38
  parseMindmap
35
- } from "./chunk-OJ435DQZ.js";
39
+ } from "./chunk-HX7QNHC6.js";
36
40
  import {
37
41
  preprocessDescriptionLine
38
42
  } from "./chunk-IYULMRBE.js";
@@ -45,11 +49,12 @@ import {
45
49
  } from "./chunk-JYDMBWRP.js";
46
50
  import {
47
51
  tagAttrKey
48
- } from "./chunk-AHTTKERF.js";
52
+ } from "./chunk-JR7Q6GHE.js";
49
53
  import {
50
54
  fillModeFromOptions,
55
+ legendInlineRequested,
51
56
  legendSuppressed
52
- } from "./chunk-3FRO35WW.js";
57
+ } from "./chunk-A2ARDILY.js";
53
58
 
54
59
  // src/mindmap/renderer.ts
55
60
  import * as d3Selection from "d3-selection";
@@ -105,8 +110,33 @@ function renderMindmap(container, parsed, layout, palette, isDark, onClickItem,
105
110
  const showTitle = !!parsed.title && parsed.options["no-title"] !== "on";
106
111
  const fixedTitle = !isExport && showTitle;
107
112
  const titleReserve = fixedTitle ? TITLE_HEIGHT : 0;
113
+ const inlineRequested = legendInlineRequested(parsed.options);
114
+ const legendExtent = inlineRequested && fixedLegend ? getLegendExtent(
115
+ {
116
+ groups: parsed.tagGroups,
117
+ position: {
118
+ placement: "top-center",
119
+ titleRelation: "inline-with-title"
120
+ },
121
+ mode: isExport ? "export" : "preview"
122
+ },
123
+ { activeGroup: activeTagGroup ?? null },
124
+ containerWidth
125
+ ) : { width: 0, height: 0 };
126
+ const header = layoutInlineHeader({
127
+ requested: inlineRequested,
128
+ title: parsed.title ?? "",
129
+ hasLegend: fixedLegend,
130
+ legendWidth: legendExtent.width,
131
+ legendHeight: legendExtent.height,
132
+ containerWidth,
133
+ titleBandHeight: titleReserve,
134
+ legendReserve,
135
+ titleBaselineY: DIAGRAM_PADDING + TITLE_FONT_SIZE,
136
+ titleFontSize: TITLE_FONT_SIZE
137
+ });
108
138
  const availWidth = containerWidth;
109
- const availHeight = containerHeight - DIAGRAM_PADDING * 2 - legendReserve - titleReserve;
139
+ const availHeight = containerHeight - DIAGRAM_PADDING * 2 - (header.inline ? 0 : legendReserve) - titleReserve;
110
140
  let ctx = isExport ? ScaleContext.identity() : ScaleContext.fromBox(
111
141
  availWidth,
112
142
  layout.width,
@@ -147,7 +177,7 @@ function renderMindmap(container, parsed, layout, palette, isDark, onClickItem,
147
177
  const scaledWidth = renderLayout.width * fitScale;
148
178
  const scaledHeight = renderLayout.height * fitScale;
149
179
  const offsetX = Math.max(0, (availWidth - scaledWidth) / 2);
150
- const offsetY = DIAGRAM_PADDING + legendReserve + titleReserve + Math.max(0, (availHeight - scaledHeight) / 2);
180
+ const offsetY = DIAGRAM_PADDING + (header.inline ? 0 : legendReserve) + titleReserve + Math.max(0, (availHeight - scaledHeight) / 2);
151
181
  const mainG = svg.append("g").attr(
152
182
  "transform",
153
183
  `translate(${offsetX}, ${offsetY})${fitScale < 1 ? ` scale(${fitScale})` : ""}`
@@ -157,9 +187,9 @@ function renderMindmap(container, parsed, layout, palette, isDark, onClickItem,
157
187
  }
158
188
  if (showTitle) {
159
189
  const titleParent = fixedTitle ? svg : mainG;
160
- const titleX = fixedTitle ? containerWidth / 2 : renderLayout.width / 2;
190
+ const titleX = fixedTitle ? header.titleX : renderLayout.width / 2;
161
191
  const titleY = fixedTitle ? DIAGRAM_PADDING + TITLE_FONT_SIZE : TITLE_FONT_SIZE;
162
- const titleText = titleParent.append("text").attr("x", titleX).attr("y", titleY).attr("text-anchor", "middle").attr("font-size", TITLE_FONT_SIZE).attr("font-weight", TITLE_FONT_WEIGHT).attr("fill", palette.text).attr("class", "chart-title").text(parsed.title);
192
+ const titleText = titleParent.append("text").attr("x", titleX).attr("y", titleY).attr("text-anchor", fixedTitle ? header.titleAnchor : "middle").attr("font-size", TITLE_FONT_SIZE).attr("font-weight", TITLE_FONT_WEIGHT).attr("fill", palette.text).attr("class", "chart-title").text(parsed.title);
163
193
  if (parsed.titleLineNumber) {
164
194
  titleText.attr("data-line-number", parsed.titleLineNumber);
165
195
  }
@@ -168,7 +198,10 @@ function renderMindmap(container, parsed, layout, palette, isDark, onClickItem,
168
198
  }
169
199
  }
170
200
  if (fixedLegend) {
171
- const legendG = svg.append("g").attr("class", "mindmap-legend-fixed").attr("transform", `translate(0, ${DIAGRAM_PADDING + titleReserve})`);
201
+ const legendG = svg.append("g").attr("class", "mindmap-legend-fixed").attr(
202
+ "transform",
203
+ header.inline ? `translate(${header.legendX}, ${header.legendY})` : `translate(0, ${DIAGRAM_PADDING + titleReserve})`
204
+ );
172
205
  const usedValues = /* @__PURE__ */ new Map();
173
206
  for (const node of renderLayout.nodes) {
174
207
  for (const tg of parsed.tagGroups) {
@@ -209,7 +242,10 @@ function renderMindmap(container, parsed, layout, palette, isDark, onClickItem,
209
242
  entries: tg.entries.filter((e) => used?.has(e.value.toLowerCase())).map((e) => ({ value: e.value, color: e.color }))
210
243
  };
211
244
  }),
212
- position: { placement: "top-center", titleRelation: "below-title" },
245
+ position: {
246
+ placement: "top-center",
247
+ titleRelation: header.inline ? "inline-with-title" : "below-title"
248
+ },
213
249
  mode: options?.exportMode ? "export" : "preview",
214
250
  ...controlsToggles !== void 0 && { controlsGroup: controlsToggles },
215
251
  ...options?.controlsHost !== void 0 && {
@@ -390,4 +426,4 @@ export {
390
426
  renderMindmap,
391
427
  renderMindmapForExport
392
428
  };
393
- //# sourceMappingURL=chunk-KQYQECWQ.js.map
429
+ //# sourceMappingURL=chunk-5H5GWWA4.js.map
@@ -20,7 +20,7 @@ import {
20
20
  tagAttrKey,
21
21
  validateTagGroupNames,
22
22
  validateTagValues
23
- } from "./chunk-AHTTKERF.js";
23
+ } from "./chunk-JR7Q6GHE.js";
24
24
  import {
25
25
  PERT_REGISTRY,
26
26
  extractColor,
@@ -29,7 +29,7 @@ import {
29
29
  splitNameAndMeta,
30
30
  warnUnknownMetaKeys,
31
31
  withTagAliases
32
- } from "./chunk-3FRO35WW.js";
32
+ } from "./chunk-A2ARDILY.js";
33
33
  import {
34
34
  emit,
35
35
  makeDgmoError,
@@ -144,6 +144,7 @@ var DIRECTIVE_KEYS = /* @__PURE__ */ new Set([
144
144
  "end-date",
145
145
  "no-title",
146
146
  "no-legend",
147
+ "legend-inline",
147
148
  "fill-tint",
148
149
  "fill-solid",
149
150
  "fill-outline",
@@ -1003,6 +1004,10 @@ function applyDirective(key, value, lineNumber, options, error, warn, dateCfg) {
1003
1004
  options.noLegend = true;
1004
1005
  return;
1005
1006
  }
1007
+ case "legend-inline": {
1008
+ options.legendInline = true;
1009
+ return;
1010
+ }
1006
1011
  case "fill-solid": {
1007
1012
  options.fillMode = "solid";
1008
1013
  return;
@@ -1251,4 +1256,4 @@ export {
1251
1256
  extractPertSymbols,
1252
1257
  looksLikePert
1253
1258
  };
1254
- //# sourceMappingURL=chunk-RRGKMJYL.js.map
1259
+ //# sourceMappingURL=chunk-5K5XBEXT.js.map
@@ -1,9 +1,13 @@
1
+ import {
2
+ layoutInlineHeader
3
+ } from "./chunk-US3P2DQO.js";
1
4
  import {
2
5
  renderIntegratedLegend
3
- } from "./chunk-2NZOHEP4.js";
6
+ } from "./chunk-ASPS5O6F.js";
4
7
  import {
8
+ getLegendExtent,
5
9
  getMaxLegendReservedHeight
6
- } from "./chunk-J7HQPVYH.js";
10
+ } from "./chunk-GRXPFBYC.js";
7
11
  import {
8
12
  TITLE_FONT_SIZE,
9
13
  TITLE_FONT_WEIGHT,
@@ -14,7 +18,7 @@ import {
14
18
  } from "./chunk-6KFWC4CO.js";
15
19
  import {
16
20
  isBlockNode
17
- } from "./chunk-NR5HCAUD.js";
21
+ } from "./chunk-XSVWUOUZ.js";
18
22
  import {
19
23
  LEGEND_GROUP_GAP
20
24
  } from "./chunk-Q5IHQ4NW.js";
@@ -28,7 +32,7 @@ import {
28
32
  import {
29
33
  resolveTagColor,
30
34
  tagAttrKey
31
- } from "./chunk-AHTTKERF.js";
35
+ } from "./chunk-JR7Q6GHE.js";
32
36
 
33
37
  // src/block/renderer.ts
34
38
  import * as d3Selection from "d3-selection";
@@ -195,7 +199,32 @@ function renderBlock(container, parsed, palette, isDark, exportDims, options = {
195
199
  { groups: legend.groups, position: LEGEND_POSITION, mode: "preview" },
196
200
  width
197
201
  ) + LEGEND_GROUP_GAP : 0;
198
- const areaY = titleH + legendReserve + PADDING;
202
+ const inlineRequested = opts.legendInline === true;
203
+ const legendExtent = inlineRequested && legend ? getLegendExtent(
204
+ {
205
+ groups: legend.groups,
206
+ position: {
207
+ placement: "top-center",
208
+ titleRelation: "inline-with-title"
209
+ },
210
+ mode: options.exportMode ? "export" : "preview"
211
+ },
212
+ { activeGroup: legend.activeGroup ?? null },
213
+ width
214
+ ) : { width: 0, height: 0 };
215
+ const header = layoutInlineHeader({
216
+ requested: inlineRequested,
217
+ title: parsed.title ?? "",
218
+ hasLegend: !!legend,
219
+ legendWidth: legendExtent.width,
220
+ legendHeight: legendExtent.height,
221
+ containerWidth: width,
222
+ titleBandHeight: titleH,
223
+ legendReserve,
224
+ titleBaselineY: TITLE_Y,
225
+ titleFontSize: TITLE_FONT_SIZE
226
+ });
227
+ const areaY = (header.inline ? titleH : titleH + legendReserve) + PADDING;
199
228
  if (options.exportMode) {
200
229
  height = areaY + layout.height + PADDING;
201
230
  } else {
@@ -210,7 +239,7 @@ function renderBlock(container, parsed, palette, isDark, exportDims, options = {
210
239
  const offsetY = areaY;
211
240
  const svg = d3Selection.select(container).append("svg").attr("width", width).attr("height", height).attr("viewBox", `0 0 ${width} ${height}`).attr("preserveAspectRatio", "xMidYMin meet").attr("xmlns", "http://www.w3.org/2000/svg").attr("class", "dgmo-block").style("font-family", FONT_FAMILY);
212
241
  if (showTitle) {
213
- const title = svg.append("text").attr("class", "chart-title").attr("x", width / 2).attr("y", TITLE_Y).attr("text-anchor", "middle").attr("fill", palette.text).attr("font-family", FONT_FAMILY).attr("font-size", TITLE_FONT_SIZE).attr("font-weight", TITLE_FONT_WEIGHT).text(parsed.title);
242
+ const title = svg.append("text").attr("class", "chart-title").attr("x", header.titleX).attr("y", TITLE_Y).attr("text-anchor", header.titleAnchor).attr("fill", palette.text).attr("font-family", FONT_FAMILY).attr("font-size", TITLE_FONT_SIZE).attr("font-weight", TITLE_FONT_WEIGHT).text(parsed.title);
214
243
  if (parsed.titleLineNumber !== null) {
215
244
  title.attr("data-line-number", parsed.titleLineNumber);
216
245
  }
@@ -229,7 +258,10 @@ function renderBlock(container, parsed, palette, isDark, exportDims, options = {
229
258
  onToggle: options.onToggle
230
259
  });
231
260
  if (legend) {
232
- const legendG = svg.append("g").attr("class", "dgmo-block-legend").attr("transform", `translate(0, ${titleH})`);
261
+ const legendG = svg.append("g").attr("class", "dgmo-block-legend").attr(
262
+ "transform",
263
+ header.inline ? `translate(${header.legendX}, ${header.legendY})` : `translate(0, ${titleH})`
264
+ );
233
265
  renderIntegratedLegend(legendG, {
234
266
  groups: legend.groups,
235
267
  palette: {
@@ -242,7 +274,10 @@ function renderBlock(container, parsed, palette, isDark, exportDims, options = {
242
274
  isDark,
243
275
  width,
244
276
  mode: options.exportMode ? "export" : "preview",
245
- position: LEGEND_POSITION,
277
+ position: {
278
+ placement: "top-center",
279
+ titleRelation: header.inline ? "inline-with-title" : "below-title"
280
+ },
246
281
  activeGroup: legend.activeGroup
247
282
  });
248
283
  }
@@ -361,4 +396,4 @@ export {
361
396
  renderBlock,
362
397
  authoredCollapsedIds
363
398
  };
364
- //# sourceMappingURL=chunk-HAA25PLC.js.map
399
+ //# sourceMappingURL=chunk-6NJWBMJV.js.map
@@ -141,6 +141,15 @@ var DIRECTIVES_REGISTRY = [
141
141
  // most types via GLOBAL_BOOLEANS in utils/parsing; gantt derives its boolean
142
142
  // Set from here, and map from `map: true`.
143
143
  { token: "no-legend", category: "directive", gantt: ["boolean"], map: true },
144
+ // `legend-inline`: universal §1.9 boolean (decision #50) — the top-center-
145
+ // legend data charts (bar/line/radar/scatter/function) render the title and
146
+ // legend on one line; every other chart accepts it as a harmless no-op.
147
+ {
148
+ token: "legend-inline",
149
+ category: "directive",
150
+ gantt: ["boolean"],
151
+ map: true
152
+ },
144
153
  // ══════════════════════════════════════════════════════════
145
154
  // Highlight-only vocab (no extractable parser Set).
146
155
  // ══════════════════════════════════════════════════════════
@@ -279,7 +288,7 @@ var DIRECTIVES_REGISTRY = [
279
288
  { token: "persona", category: "directive" },
280
289
  // ── Function ─────────────────────────────────────────────
281
290
  { token: "x", category: "directive" },
282
- { token: "shade", category: "directive" },
291
+ { token: "fill", category: "directive" },
283
292
  // ── Wordcloud ────────────────────────────────────────────
284
293
  { token: "max", category: "directive" },
285
294
  { token: "size", category: "directive" },
@@ -670,11 +679,15 @@ var GLOBAL_BOOLEANS = /* @__PURE__ */ new Set([
670
679
  "fill-outline",
671
680
  "no-title",
672
681
  "no-notes",
673
- "no-legend"
682
+ "no-legend",
683
+ "legend-inline"
674
684
  ]);
675
685
  function legendSuppressed(options) {
676
686
  return options["no-legend"] === "on";
677
687
  }
688
+ function legendInlineRequested(options) {
689
+ return options["legend-inline"] === "on";
690
+ }
678
691
  var FILL_FAMILY_TOKENS = /* @__PURE__ */ new Set([
679
692
  "fill-tint",
680
693
  "fill-solid",
@@ -1136,6 +1149,7 @@ export {
1136
1149
  OPTION_NOCOLON_RE,
1137
1150
  GLOBAL_BOOLEANS,
1138
1151
  legendSuppressed,
1152
+ legendInlineRequested,
1139
1153
  FILL_FAMILY_TOKENS,
1140
1154
  fillModeFromToken,
1141
1155
  fillModeFromOptions,
@@ -1155,4 +1169,4 @@ export {
1155
1169
  splitNameAndMeta,
1156
1170
  warnUnknownMetaKeys
1157
1171
  };
1158
- //# sourceMappingURL=chunk-3FRO35WW.js.map
1172
+ //# sourceMappingURL=chunk-A2ARDILY.js.map
@@ -5,7 +5,7 @@ import {
5
5
  parseFirstLine,
6
6
  splitNameAndMeta,
7
7
  warnUnknownMetaKeys
8
- } from "./chunk-3FRO35WW.js";
8
+ } from "./chunk-A2ARDILY.js";
9
9
  import {
10
10
  makeDgmoError,
11
11
  makeFail,
@@ -338,4 +338,4 @@ function assignGlobalNumbers(result) {
338
338
  export {
339
339
  parseTechRadar
340
340
  };
341
- //# sourceMappingURL=chunk-TLNVYWPA.js.map
341
+ //# sourceMappingURL=chunk-A2PTRSAO.js.map
@@ -128,6 +128,18 @@ function formatTime(h, m, s, hours12) {
128
128
  }
129
129
  return { main: `${pad2(h)}:${pad2(m)}`, sec, ap: "" };
130
130
  }
131
+ function fixedTimeCells(s, x0, fs) {
132
+ const digit = fs * 0.6;
133
+ const colon = fs * 0.32;
134
+ const cells = [];
135
+ let x = x0;
136
+ for (const ch of s) {
137
+ const cw = ch === ":" ? colon : digit;
138
+ cells.push({ ch, x: x + cw / 2 });
139
+ x += cw;
140
+ }
141
+ return { cells, width: x - x0 };
142
+ }
131
143
  function fmtDelta(ms) {
132
144
  const m = Math.max(0, Math.round(ms / 6e4));
133
145
  if (m < 90) return `${m}m`;
@@ -213,8 +225,9 @@ export {
213
225
  formatOffsetLabel,
214
226
  fixedParts,
215
227
  formatTime,
228
+ fixedTimeCells,
216
229
  workStatus,
217
230
  sunLine,
218
231
  handAngles
219
232
  };
220
- //# sourceMappingURL=chunk-APKUAJ2L.js.map
233
+ //# sourceMappingURL=chunk-A2RUBBVT.js.map
@@ -16,12 +16,16 @@ import {
16
16
  import {
17
17
  ScaleContext
18
18
  } from "./chunk-YYVTBZZC.js";
19
+ import {
20
+ layoutInlineHeader
21
+ } from "./chunk-US3P2DQO.js";
19
22
  import {
20
23
  renderIntegratedLegend
21
- } from "./chunk-2NZOHEP4.js";
24
+ } from "./chunk-ASPS5O6F.js";
22
25
  import {
26
+ getLegendExtent,
23
27
  getMaxLegendReservedHeight
24
- } from "./chunk-J7HQPVYH.js";
28
+ } from "./chunk-GRXPFBYC.js";
25
29
  import {
26
30
  TITLE_FONT_SIZE,
27
31
  TITLE_FONT_WEIGHT,
@@ -33,7 +37,7 @@ import {
33
37
  } from "./chunk-6KFWC4CO.js";
34
38
  import {
35
39
  parseInfra
36
- } from "./chunk-S7YFT3PO.js";
40
+ } from "./chunk-RZWIPDZ2.js";
37
41
  import {
38
42
  preprocessDescriptionLine
39
43
  } from "./chunk-IYULMRBE.js";
@@ -60,10 +64,11 @@ import {
60
64
  } from "./chunk-JYDMBWRP.js";
61
65
  import {
62
66
  tagAttrKey
63
- } from "./chunk-AHTTKERF.js";
67
+ } from "./chunk-JR7Q6GHE.js";
64
68
  import {
69
+ legendInlineRequested,
65
70
  legendSuppressed
66
- } from "./chunk-3FRO35WW.js";
71
+ } from "./chunk-A2ARDILY.js";
67
72
  import {
68
73
  resolveColor
69
74
  } from "./chunk-ZKPPI6BF.js";
@@ -1293,10 +1298,10 @@ function computeInfraLegendGroups(nodes, tagGroups, palette, edges) {
1293
1298
  }
1294
1299
  return groups;
1295
1300
  }
1296
- function renderLegend(rootSvg, legendGroups, totalWidth, legendY, palette, isDark, activeGroup, playback, exportMode = false, controlsHost) {
1301
+ function renderLegend(rootSvg, legendGroups, totalWidth, legendY, palette, isDark, activeGroup, playback, exportMode = false, controlsHost, legendX = 0, inlineHeader = false) {
1297
1302
  if (legendGroups.length === 0 && !playback) return;
1298
1303
  const appHostedPlayback = controlsHost === "app" && !!playback;
1299
- const legendG = rootSvg.append("g").attr("transform", `translate(0, ${legendY})`);
1304
+ const legendG = rootSvg.append("g").attr("transform", `translate(${legendX}, ${legendY})`);
1300
1305
  if (activeGroup) {
1301
1306
  legendG.attr("data-legend-active", tagAttrKey(activeGroup));
1302
1307
  }
@@ -1312,6 +1317,12 @@ function renderLegend(rootSvg, legendGroups, totalWidth, legendY, palette, isDar
1312
1317
  activeGroup,
1313
1318
  mode: exportMode ? "export" : "preview",
1314
1319
  showEmptyGroups: true,
1320
+ ...inlineHeader && {
1321
+ position: {
1322
+ placement: "top-center",
1323
+ titleRelation: "inline-with-title"
1324
+ }
1325
+ },
1315
1326
  ...appHostedPlayback && {
1316
1327
  controlsHost: "app",
1317
1328
  controlsGroup: {
@@ -1395,7 +1406,39 @@ function renderInfra(container, layout, palette, isDark, title, titleLineNumber,
1395
1406
  const legendOffset = hasLegend && !fixedLegend ? legendDynamicH : 0;
1396
1407
  const titleOffset = title ? TITLE_OFFSET : 0;
1397
1408
  const totalWidth = layout.width;
1398
- const totalHeight = layout.height + titleOffset + legendOffset;
1409
+ const inlineRequested = legendInlineRequested(layout.options) && !fixedLegend;
1410
+ const legendExtent = inlineRequested && hasLegend ? getLegendExtent(
1411
+ {
1412
+ groups: legendGroups.map((g) => ({
1413
+ name: g.name,
1414
+ entries: g.entries.map((e) => ({
1415
+ value: e.value,
1416
+ color: e.color
1417
+ }))
1418
+ })),
1419
+ position: {
1420
+ placement: "top-center",
1421
+ titleRelation: "inline-with-title"
1422
+ },
1423
+ mode: exportMode ? "export" : "preview",
1424
+ showEmptyGroups: true
1425
+ },
1426
+ { activeGroup: activeGroup ?? null },
1427
+ totalWidth
1428
+ ) : { width: 0, height: 0 };
1429
+ const header = layoutInlineHeader({
1430
+ requested: inlineRequested,
1431
+ title: title ?? "",
1432
+ hasLegend,
1433
+ legendWidth: legendExtent.width,
1434
+ legendHeight: legendExtent.height,
1435
+ containerWidth: totalWidth,
1436
+ titleBandHeight: titleOffset,
1437
+ legendReserve: legendOffset,
1438
+ titleBaselineY: sc.sTitleY,
1439
+ titleFontSize: sc.sTitleFontSize
1440
+ });
1441
+ const totalHeight = layout.height + titleOffset + (header.inline ? 0 : legendOffset);
1399
1442
  const shouldAnimate = animate !== false;
1400
1443
  const fixedTitleH = fixedLegend && title ? TITLE_OFFSET : 0;
1401
1444
  const diagramViewHeight = fixedLegend ? layout.height + (title && !fixedTitleH ? titleOffset : 0) + legendOffset : totalHeight;
@@ -1455,9 +1498,12 @@ function renderInfra(container, layout, palette, isDark, title, titleLineNumber,
1455
1498
  `);
1456
1499
  }
1457
1500
  const contentTitleOffset = fixedTitleH ? 0 : titleOffset;
1458
- const svg = rootSvg.append("g").attr("transform", `translate(0, ${contentTitleOffset + legendOffset})`);
1501
+ const svg = rootSvg.append("g").attr(
1502
+ "transform",
1503
+ `translate(0, ${contentTitleOffset + (header.inline ? 0 : legendOffset)})`
1504
+ );
1459
1505
  if (title && !fixedTitleH) {
1460
- rootSvg.append("text").attr("class", "chart-title").attr("x", totalWidth / 2).attr("y", sc.sTitleY).attr("text-anchor", "middle").attr("font-family", FONT_FAMILY).attr("font-size", sc.sTitleFontSize).attr("font-weight", TITLE_FONT_WEIGHT).attr("fill", palette.text).attr("data-line-number", titleLineNumber != null ? titleLineNumber : "").text(title);
1506
+ rootSvg.append("text").attr("class", "chart-title").attr("x", header.titleX).attr("y", sc.sTitleY).attr("text-anchor", header.titleAnchor).attr("font-family", FONT_FAMILY).attr("font-size", sc.sTitleFontSize).attr("font-weight", TITLE_FONT_WEIGHT).attr("fill", palette.text).attr("data-line-number", titleLineNumber != null ? titleLineNumber : "").text(title);
1461
1507
  }
1462
1508
  renderGroups(svg, layout.groups, palette, isDark, sc);
1463
1509
  const speedMultiplier = playback?.speed ?? 1;
@@ -1534,13 +1580,15 @@ function renderInfra(container, layout, palette, isDark, title, titleLineNumber,
1534
1580
  rootSvg,
1535
1581
  legendGroups,
1536
1582
  totalWidth,
1537
- titleOffset,
1583
+ header.inline ? header.legendY : titleOffset,
1538
1584
  palette,
1539
1585
  isDark,
1540
1586
  activeGroup ?? null,
1541
1587
  playback ?? void 0,
1542
1588
  exportMode,
1543
- controlsHost
1589
+ controlsHost,
1590
+ header.inline ? header.legendX : 0,
1591
+ header.inline
1544
1592
  );
1545
1593
  }
1546
1594
  }
@@ -1560,4 +1608,4 @@ export {
1560
1608
  renderInfra,
1561
1609
  parseAndLayoutInfra
1562
1610
  };
1563
- //# sourceMappingURL=chunk-KS5ZSM5T.js.map
1611
+ //# sourceMappingURL=chunk-A4UJP4IS.js.map
@@ -15,10 +15,10 @@ import {
15
15
  } from "./chunk-4ASYQ347.js";
16
16
  import {
17
17
  tagAttrKey
18
- } from "./chunk-AHTTKERF.js";
18
+ } from "./chunk-JR7Q6GHE.js";
19
19
  import {
20
20
  legendSuppressed
21
- } from "./chunk-3FRO35WW.js";
21
+ } from "./chunk-A2ARDILY.js";
22
22
 
23
23
  // src/c4/layout.ts
24
24
  import dagre from "@dagrejs/dagre";
@@ -1718,4 +1718,4 @@ export {
1718
1718
  layoutC4Components,
1719
1719
  layoutC4Deployment
1720
1720
  };
1721
- //# sourceMappingURL=chunk-LRSW4JLE.js.map
1721
+ //# sourceMappingURL=chunk-AKE6C2D7.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  computeLegendLayout
3
- } from "./chunk-J7HQPVYH.js";
3
+ } from "./chunk-GRXPFBYC.js";
4
4
  import {
5
5
  FONT_FAMILY
6
6
  } from "./chunk-6KFWC4CO.js";
@@ -21,7 +21,7 @@ import {
21
21
  } from "./chunk-JYDMBWRP.js";
22
22
  import {
23
23
  tagAttrKey
24
- } from "./chunk-AHTTKERF.js";
24
+ } from "./chunk-JR7Q6GHE.js";
25
25
 
26
26
  // src/utils/legend-d3.ts
27
27
  var LEGEND_TEXT_DY = "0.32em";
@@ -292,4 +292,4 @@ export {
292
292
  renderLegendD3,
293
293
  renderIntegratedLegend
294
294
  };
295
- //# sourceMappingURL=chunk-2NZOHEP4.js.map
295
+ //# sourceMappingURL=chunk-ASPS5O6F.js.map
@@ -2,12 +2,12 @@ import {
2
2
  formatOffsetLabel,
3
3
  parseFixedOffset,
4
4
  zoneParts
5
- } from "./chunk-APKUAJ2L.js";
5
+ } from "./chunk-A2RUBBVT.js";
6
6
  import {
7
7
  extractColor,
8
8
  fillModeFromToken,
9
9
  parseFirstLine
10
- } from "./chunk-3FRO35WW.js";
10
+ } from "./chunk-A2ARDILY.js";
11
11
  import {
12
12
  makeDgmoError,
13
13
  makeFail
@@ -332,6 +332,7 @@ var DIRECTIVES = /* @__PURE__ */ new Set([
332
332
  "no-sun",
333
333
  "time-24",
334
334
  "no-title",
335
+ "legend-inline",
335
336
  // Canonical direction booleans (§1.9); key+value `direction <lr|tb>` (and
336
337
  // its `columns` value alias) stays parse-accepted legacy. These MUST be in
337
338
  // this set — otherwise a bare `direction-lr` line parses as a zone entry.
@@ -508,6 +509,8 @@ function parseClock(content, palette) {
508
509
  case "no-title":
509
510
  result.noTitle = true;
510
511
  break;
512
+ case "legend-inline":
513
+ break;
511
514
  case "fill-tint":
512
515
  case "fill-solid":
513
516
  case "fill-outline": {
@@ -672,4 +675,4 @@ export {
672
675
  searchZones,
673
676
  parseClock
674
677
  };
675
- //# sourceMappingURL=chunk-KV4HLIJE.js.map
678
+ //# sourceMappingURL=chunk-AU75JHSR.js.map
@@ -18,7 +18,7 @@ import {
18
18
  } from "./chunk-JYDMBWRP.js";
19
19
  import {
20
20
  fillModeFromOptions
21
- } from "./chunk-3FRO35WW.js";
21
+ } from "./chunk-A2ARDILY.js";
22
22
 
23
23
  // src/wireframe/renderer.ts
24
24
  import * as d3Selection from "d3-selection";
@@ -554,4 +554,4 @@ function renderModal(parent, node, ctx) {
554
554
  export {
555
555
  renderWireframe
556
556
  };
557
- //# sourceMappingURL=chunk-R5BGGBFF.js.map
557
+ //# sourceMappingURL=chunk-DS4MDEQ7.js.map