@diagrammo/dgmo 0.52.0 → 0.54.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (339) hide show
  1. package/.cursorrules +59 -58
  2. package/.github/copilot-instructions.md +59 -58
  3. package/.windsurfrules +59 -58
  4. package/SKILL.md +59 -58
  5. package/dist/advanced.d.ts +101 -230
  6. package/dist/advanced.js +330 -658
  7. package/dist/analyzer-TDN5KJFP.js +15 -0
  8. package/dist/auto.css +14 -6
  9. package/dist/auto.js +163 -139
  10. package/dist/auto.mjs +1859 -885
  11. package/dist/block.css +14 -6
  12. package/dist/block.js +96 -81
  13. package/dist/calculator-VBIT6GQF.js +11 -0
  14. package/dist/chart-meta-CPNVUZ5J.d.ts +232 -0
  15. package/dist/chart-meta.d.ts +2 -0
  16. package/dist/chart-meta.js +108 -0
  17. package/dist/charts-d3-25E4VWXO.js +27 -0
  18. package/dist/chunk-2CW5ZTNH.js +58 -0
  19. package/dist/{chunk-BPY242XU.js → chunk-2NYXI35Z.js} +32 -14
  20. package/dist/{chunk-AUIM2NVH.js → chunk-2NZOHEP4.js} +7 -8
  21. package/dist/{chunk-HFMYN6N2.js → chunk-3B2GXZCX.js} +4 -3
  22. package/dist/chunk-3FRO35WW.js +1158 -0
  23. package/dist/{chunk-J7TLCB2Q.js → chunk-3IUHKMJI.js} +2 -2
  24. package/dist/{chunk-R3YSD62R.js → chunk-3KHJJP3J.js} +3 -3
  25. package/dist/{chunk-6LBQ7ELG.js → chunk-3SBHODJ4.js} +36 -17
  26. package/dist/{chunk-4UNQ6X24.js → chunk-3SEEP2JM.js} +4 -4
  27. package/dist/{chunk-7L4UJOY6.js → chunk-3TYUXC7D.js} +2 -2
  28. package/dist/{chunk-Y2ZE3MSG.js → chunk-43E26CDA.js} +2 -2
  29. package/dist/{chunk-CCNDLW7Z.js → chunk-47JNEKJA.js} +9 -9
  30. package/dist/{chunk-WCT3NYCV.js → chunk-4ASYQ347.js} +33 -8
  31. package/dist/{chunk-I5IGB56C.js → chunk-4QV26TEG.js} +41 -1
  32. package/dist/{chunk-INE5YJBZ.js → chunk-4T6OCSJ2.js} +8 -8
  33. package/dist/{chunk-CXK4DZH3.js → chunk-4W2PE66Q.js} +12 -2
  34. package/dist/{chunk-7KINELPI.js → chunk-4ZIKWVSQ.js} +17 -16
  35. package/dist/{chunk-JED6ZDEE.js → chunk-5HWPEYWB.js} +2 -2
  36. package/dist/{chunk-HWX6ZHF3.js → chunk-5VXU6MND.js} +6 -6
  37. package/dist/{chunk-44VCIPHF.js → chunk-5XSNLXU5.js} +23 -20
  38. package/dist/{chunk-4AQRFDXL.js → chunk-62Y27T4C.js} +2 -2
  39. package/dist/{chunk-QHXCAEMX.js → chunk-6KL7TFLS.js} +5 -5
  40. package/dist/{chunk-5BHJZH62.js → chunk-6OYDOQ2Q.js} +18 -6
  41. package/dist/{chunk-5HILBT7X.js → chunk-7JDTNFAK.js} +3 -3
  42. package/dist/{chunk-JRCOYRRH.js → chunk-7K6NDSXH.js} +9 -9
  43. package/dist/{chunk-5NGAO4QK.js → chunk-7SP4C6EV.js} +11 -11
  44. package/dist/{chunk-I46X5VUA.js → chunk-7TF3QOOD.js} +25 -1
  45. package/dist/{chunk-WRNFDFPU.js → chunk-7U4OR7CD.js} +2 -2
  46. package/dist/{chunk-5RP7JRVP.js → chunk-7UPFTBOW.js} +21 -17
  47. package/dist/{chunk-AAXZDUOV.js → chunk-A3BDLDYG.js} +17 -16
  48. package/dist/{chunk-GCYTI3DE.js → chunk-ADCHLNWT.js} +56 -10
  49. package/dist/{chunk-QBZYACOG.js → chunk-ADYKAKE3.js} +3 -3
  50. package/dist/{chunk-HHKO6SKY.js → chunk-AHTTKERF.js} +3 -3
  51. package/dist/{chunk-BKVOYV6I.js → chunk-AJFHNS67.js} +15 -15
  52. package/dist/{chunk-EMLPOL77.js → chunk-AQEYUVGJ.js} +124 -41
  53. package/dist/{chunk-3LK5DNED.js → chunk-B4XS2AF2.js} +3 -3
  54. package/dist/{chunk-REJAIQ5S.js → chunk-B7N5KYXQ.js} +16 -16
  55. package/dist/chunk-BEOAKGNA.js +484 -0
  56. package/dist/{chunk-SMRFPVLQ.js → chunk-BM7MG6HT.js} +4 -4
  57. package/dist/{chunk-P3NRSSUU.js → chunk-BULHGPHK.js} +3 -3
  58. package/dist/{chunk-QZX5S6R3.js → chunk-BWYFIVZF.js} +149 -89
  59. package/dist/{chunk-UBLHQTLV.js → chunk-BZJIITYM.js} +11 -10
  60. package/dist/{chunk-PRI2OD4E.js → chunk-C2UORMIA.js} +11 -6
  61. package/dist/{chunk-3YRPZ7ZZ.js → chunk-CCGWX6AO.js} +4 -4
  62. package/dist/{chunk-H7KENAZO.js → chunk-COJW2NEY.js} +73 -13
  63. package/dist/{chunk-WBRZJOEC.js → chunk-COVYNAKJ.js} +6 -6
  64. package/dist/{chunk-7QE3XMRK.js → chunk-CSHFU6LT.js} +13 -13
  65. package/dist/{chunk-6EJITS44.js → chunk-DLU643TF.js} +7 -7
  66. package/dist/{chunk-LBMS4AW6.js → chunk-DPGQ5UMO.js} +14 -14
  67. package/dist/{chunk-LTXOLDUZ.js → chunk-EAI6XJ7D.js} +12 -5
  68. package/dist/{chunk-FT3ZYWET.js → chunk-EPRF3ZRV.js} +11 -10
  69. package/dist/chunk-EQOMY4PY.js +404 -0
  70. package/dist/{chunk-USZW2HHU.js → chunk-EQW6HOP4.js} +4 -3
  71. package/dist/{chunk-HBPDFCQY.js → chunk-F7XM366V.js} +10 -9
  72. package/dist/{chunk-DYWQFQJP.js → chunk-FFVFZLRT.js} +57 -24
  73. package/dist/{chunk-77FGAVZC.js → chunk-FR6UFVSV.js} +19 -17
  74. package/dist/{chunk-MUE65OTD.js → chunk-FVMKCZHF.js} +8 -6
  75. package/dist/{chunk-3QD7VP3U.js → chunk-GK32ZFZY.js} +17 -10
  76. package/dist/{chunk-TJVLKNGR.js → chunk-GKYHWJXI.js} +5 -5
  77. package/dist/{chunk-FQMUHRVC.js → chunk-GQ5ECRP4.js} +13 -10
  78. package/dist/{chunk-5QKQSSPO.js → chunk-GRM2A4BG.js} +4 -4
  79. package/dist/{chunk-OTOHI4JO.js → chunk-H3HFC3SQ.js} +2 -2
  80. package/dist/{chunk-BPIZNB5O.js → chunk-HAA25PLC.js} +10 -10
  81. package/dist/{chunk-YIBAWQGJ.js → chunk-HFEOOQ46.js} +4 -4
  82. package/dist/{chunk-J76PIKAT.js → chunk-HO3RCNF6.js} +3 -3
  83. package/dist/{chunk-7DF4J4RL.js → chunk-I47VHSPS.js} +19 -13
  84. package/dist/{chunk-5SEVICBT.js → chunk-ICKXIMBA.js} +10 -9
  85. package/dist/{chunk-A44USUV7.js → chunk-ICZ7M6IZ.js} +23 -17
  86. package/dist/{chunk-SWSIKFEB.js → chunk-IOIMQHQ6.js} +4 -4
  87. package/dist/{chunk-6HQH6JZE.js → chunk-IYNKLCAZ.js} +7 -7
  88. package/dist/{chunk-YAA6IID3.js → chunk-J7HQPVYH.js} +2 -2
  89. package/dist/{chunk-WBM7ZNDI.js → chunk-JYDMBWRP.js} +35 -18
  90. package/dist/{chunk-ZJV7GYR4.js → chunk-KBVOVDYP.js} +8 -8
  91. package/dist/{chunk-ICPJPQ5C.js → chunk-KDK5EKUR.js} +3 -3
  92. package/dist/{chunk-FHGVORFO.js → chunk-KINOX74I.js} +12 -12
  93. package/dist/{chunk-XD6ZYURY.js → chunk-KQ3FNRGR.js} +7 -14
  94. package/dist/{chunk-3HGU63UY.js → chunk-KQYQECWQ.js} +17 -16
  95. package/dist/{chunk-MUVJ57EP.js → chunk-KS5ZSM5T.js} +20 -17
  96. package/dist/{chunk-FY5MSZAP.js → chunk-KV4HLIJE.js} +21 -6
  97. package/dist/{chunk-LGT3PZCJ.js → chunk-LPJ6H5X4.js} +17 -17
  98. package/dist/{chunk-ONU3U4GL.js → chunk-LRSW4JLE.js} +52 -16
  99. package/dist/{chunk-TPFKKXCB.js → chunk-M24VXUFG.js} +7 -7
  100. package/dist/{chunk-QJMKPUYK.js → chunk-M3H7ZE6C.js} +21 -14
  101. package/dist/{chunk-QVENJMNX.js → chunk-MEQYZZFR.js} +2 -2
  102. package/dist/{chunk-75G3Q4DK.js → chunk-MTZOXISJ.js} +9 -9
  103. package/dist/{chunk-J7KJR3R6.js → chunk-N7BSBAVP.js} +133 -696
  104. package/dist/{chunk-VQOCMUWI.js → chunk-NUTWTV6G.js} +13 -11
  105. package/dist/{chunk-7BIZCTAX.js → chunk-O576GYAP.js} +3 -3
  106. package/dist/{chunk-H6PI3KJT.js → chunk-ODUT5WMC.js} +2 -2
  107. package/dist/{chunk-AL672HNE.js → chunk-OJ435DQZ.js} +17 -7
  108. package/dist/{chunk-3HF5YEFJ.js → chunk-OR3R27CU.js} +4 -4
  109. package/dist/{chunk-QGATPIPX.js → chunk-OSXQKC3S.js} +35 -23
  110. package/dist/{chunk-FUPF2UYQ.js → chunk-PIXZTCKH.js} +51 -108
  111. package/dist/{chunk-QOOUC2J5.js → chunk-Q5IHQ4NW.js} +12 -2
  112. package/dist/{chunk-4IHAV6O7.js → chunk-QBYP2FBZ.js} +10 -478
  113. package/dist/{chunk-GU46PPT3.js → chunk-QXGACPS2.js} +5 -5
  114. package/dist/{chunk-FMDSF3OV.js → chunk-QZAW5SFH.js} +2 -2
  115. package/dist/{chunk-YTMTPUH4.js → chunk-R5BGGBFF.js} +4 -4
  116. package/dist/{chunk-KGVZ5VGH.js → chunk-RIEAN4D5.js} +16 -12
  117. package/dist/{chunk-5223KXFD.js → chunk-RJ5LBZ5U.js} +7 -7
  118. package/dist/{chunk-K4EOKJA6.js → chunk-RRGKMJYL.js} +45 -18
  119. package/dist/{chunk-TTIM6YTT.js → chunk-S7FOIURR.js} +14 -13
  120. package/dist/{chunk-IM6PDDCE.js → chunk-S7YFT3PO.js} +78 -23
  121. package/dist/{chunk-ZEF5M5MB.js → chunk-SBOAZ7YK.js} +82 -296
  122. package/dist/{chunk-6NYWYNBI.js → chunk-SSHS42QG.js} +6 -6
  123. package/dist/{chunk-NNS4E7CW.js → chunk-T3FAJAJT.js} +18 -9
  124. package/dist/{chunk-ROOE4R4Y.js → chunk-T7Y554OK.js} +146 -18
  125. package/dist/chunk-TGOMHUOV.js +218 -0
  126. package/dist/{chunk-K2I2XOZD.js → chunk-TJN2OIVG.js} +30 -15
  127. package/dist/{chunk-VILVLS7P.js → chunk-TLNVYWPA.js} +8 -4
  128. package/dist/{chunk-GJFAMOGK.js → chunk-U4IN6AHE.js} +7 -7
  129. package/dist/chunk-U7VO6JAA.js +566 -0
  130. package/dist/{chunk-MX2EY5Y7.js → chunk-UEU6IYKY.js} +2 -2
  131. package/dist/{chunk-J6QROYDA.js → chunk-UIT7E6UF.js} +26 -10
  132. package/dist/{chunk-Z72XRXD4.js → chunk-UJRTPOHH.js} +3 -3
  133. package/dist/{chunk-TYS6CSS5.js → chunk-UU6LUYUH.js} +2 -2
  134. package/dist/{chunk-VL2O2F3W.js → chunk-VHO3YBTB.js} +2 -2
  135. package/dist/{chunk-4YFKQ5WT.js → chunk-VMSBMIHW.js} +5 -5
  136. package/dist/{chunk-Z5QVYKR7.js → chunk-VQFDBNYF.js} +4 -4
  137. package/dist/{chunk-UNURMIQO.js → chunk-W6PCFRPL.js} +4 -4
  138. package/dist/{chunk-FFUN5D66.js → chunk-WF64MW5G.js} +2 -2
  139. package/dist/{chunk-T4A4TSTJ.js → chunk-WKNAJ4BR.js} +20 -18
  140. package/dist/{chunk-CIRFIL4M.js → chunk-WW4BQ744.js} +11 -11
  141. package/dist/{chunk-ARGMQ3H4.js → chunk-WWHECSYZ.js} +3 -3
  142. package/dist/{chunk-ZNWAYU6N.js → chunk-XWODFBHJ.js} +73 -18
  143. package/dist/{chunk-HQQNCY7W.js → chunk-YENNFS5F.js} +10 -10
  144. package/dist/{chunk-TLVIHFRO.js → chunk-ZKPPI6BF.js} +2 -2
  145. package/dist/cli.cjs +173 -157
  146. package/dist/clock.js +9 -1
  147. package/dist/completion-registry.d.ts +129 -0
  148. package/dist/completion-registry.js +1270 -0
  149. package/dist/{compute-G55RG53N.js → compute-JAP5E2E4.js} +2 -2
  150. package/dist/countdown.js +4 -3
  151. package/dist/dgmo-router-TGZWFIZO.js +88 -0
  152. package/dist/dimensions-L6BXQXXL.js +22 -0
  153. package/dist/editor.js +51 -5
  154. package/dist/element.js +163 -139
  155. package/dist/element.mjs +1859 -885
  156. package/dist/flowchart-parser-UKYOW3VM.js +21 -0
  157. package/dist/{flowchart-renderer-MNCDS7MV.js → flowchart-renderer-DCFKUDDR.js} +16 -16
  158. package/dist/highlight.js +55 -6
  159. package/dist/index.d.ts +4 -2
  160. package/dist/index.js +89 -81
  161. package/dist/layout-25Y3VDYF.js +19 -0
  162. package/dist/layout-4SPLI4HG.js +15 -0
  163. package/dist/layout-5XGYNYVT.js +9 -0
  164. package/dist/{layout-OAC4PEAC.js → layout-A6OIGZN2.js} +7 -7
  165. package/dist/layout-AZUPXWSK.js +15 -0
  166. package/dist/{layout-F4WO357A.js → layout-CAAKQX4W.js} +3 -3
  167. package/dist/{layout-A5UHRWVH.js → layout-CB3XWCOI.js} +3 -3
  168. package/dist/layout-CH4HFFRD.js +15 -0
  169. package/dist/layout-G2ABQJQZ.js +20 -0
  170. package/dist/{layout-7QXCNOVS.js → layout-HBWT2G23.js} +3 -3
  171. package/dist/{layout-2L3WMRYU.js → layout-ITLPDG6M.js} +9 -8
  172. package/dist/layout-NF4EWFLT.js +17 -0
  173. package/dist/layout-NY7MHJCL.js +15 -0
  174. package/dist/layout-QBNAMEOA.js +19 -0
  175. package/dist/layout-SP7HJWKA.js +17 -0
  176. package/dist/{layout-search-55FU6HD3.js → layout-search-LUI475P3.js} +56 -35
  177. package/dist/legend-constants-B77VKB3R.js +54 -0
  178. package/dist/{palettes-UDLZ2SA4.js → palettes-FGTNFARW.js} +4 -4
  179. package/dist/parser-2UWWNTFL.js +12 -0
  180. package/dist/parser-3RXYQSA7.js +18 -0
  181. package/dist/parser-5C3PEZK3.js +11 -0
  182. package/dist/parser-66RYGJRB.js +20 -0
  183. package/dist/parser-6GN5YJBJ.js +13 -0
  184. package/dist/parser-6MQM7WT3.js +15 -0
  185. package/dist/{parser-DQAFLUJB.js → parser-7UI6UQ7B.js} +7 -7
  186. package/dist/parser-B2A7XOAK.js +12 -0
  187. package/dist/parser-CCNJKDDA.js +16 -0
  188. package/dist/parser-ESHNUFME.js +13 -0
  189. package/dist/parser-F4FEU57T.js +11 -0
  190. package/dist/parser-FHRMFUNX.js +15 -0
  191. package/dist/parser-FPCWDYQV.js +13 -0
  192. package/dist/parser-FY3YFFBS.js +20 -0
  193. package/dist/parser-GML6V2KZ.js +14 -0
  194. package/dist/parser-HA3PF5FL.js +15 -0
  195. package/dist/parser-KTYF6WO5.js +11 -0
  196. package/dist/{parser-ZL5QUFVH.js → parser-LTA2BOZO.js} +5 -5
  197. package/dist/parser-LU7UAKNB.js +13 -0
  198. package/dist/parser-MHKYQPC2.js +11 -0
  199. package/dist/parser-MVSYFK63.js +17 -0
  200. package/dist/parser-O7YQYFEN.js +15 -0
  201. package/dist/parser-OPIXXUY4.js +21 -0
  202. package/dist/parser-S4EJPNVN.js +19 -0
  203. package/dist/parser-T3D7BV6O.js +11 -0
  204. package/dist/{parser-YKYMQG3B.js → parser-VVE4THG3.js} +6 -6
  205. package/dist/parser-WPPJGB4R.js +12 -0
  206. package/dist/parser-X5XLFY4Z.js +22 -0
  207. package/dist/parser-XCPMEB2Z.js +11 -0
  208. package/dist/parser-XRDUX2AR.js +14 -0
  209. package/dist/parser-YPWYT46P.js +16 -0
  210. package/dist/parser-YULS5MLD.js +13 -0
  211. package/dist/pert.d.ts +2 -0
  212. package/dist/registry-CaSw0PSH.d.ts +350 -0
  213. package/dist/renderer-2DME63VZ.js +16 -0
  214. package/dist/renderer-3VY3VXJE.js +37 -0
  215. package/dist/renderer-4A32DX5L.js +24 -0
  216. package/dist/renderer-4K5YYX5R.js +28 -0
  217. package/dist/renderer-6CFML5G3.js +22 -0
  218. package/dist/renderer-7HMZ5OCJ.js +16 -0
  219. package/dist/renderer-7ZNVOVFG.js +16 -0
  220. package/dist/{renderer-CQY6ATOS.js → renderer-B7Y6I7JX.js} +9 -8
  221. package/dist/renderer-C3RI4OPJ.js +33 -0
  222. package/dist/renderer-CJ56SUMF.js +26 -0
  223. package/dist/renderer-COJZZ4F6.js +25 -0
  224. package/dist/renderer-FXMGCSRP.js +26 -0
  225. package/dist/{renderer-HSHHVYWF.js → renderer-G4UOW3RH.js} +7 -7
  226. package/dist/renderer-HQ4JFZOV.js +27 -0
  227. package/dist/{renderer-NHO46CT2.js → renderer-K7XLVPH5.js} +6 -6
  228. package/dist/{renderer-ZWIH4WDW.js → renderer-LHVCKEWF.js} +13 -13
  229. package/dist/renderer-OZX5KGQM.js +21 -0
  230. package/dist/{renderer-3F7OS2AX.js → renderer-P3YQES7B.js} +16 -16
  231. package/dist/renderer-PLVIARM7.js +24 -0
  232. package/dist/renderer-RA4PTAMF.js +19 -0
  233. package/dist/renderer-RMAM2SOJ.js +28 -0
  234. package/dist/renderer-SES7QZYL.js +37 -0
  235. package/dist/renderer-TQ5QDZOE.js +22 -0
  236. package/dist/renderer-V5SNTPAM.js +27 -0
  237. package/dist/{renderer-5DAKMIU2.js → renderer-WCWI4I6A.js} +5 -5
  238. package/dist/renderer-WVD6G2TS.js +34 -0
  239. package/dist/{renderer-DT4XRFEP.js → renderer-X2LYSMLU.js} +7 -7
  240. package/dist/renderer-Y3NXZINM.js +24 -0
  241. package/dist/{renderer-KNFTTOBL.js → renderer-YEFOOULC.js} +14 -14
  242. package/dist/renderer-YP3P6UVT.js +24 -0
  243. package/dist/renderer-YVMETH6V.js +29 -0
  244. package/dist/renderer-Z4GNKNXO.js +24 -0
  245. package/dist/renderer-radial-VYBZAXXE.js +21 -0
  246. package/dist/{resolver-EMTGNR3D.js → resolver-WFKZYBJ2.js} +4 -4
  247. package/dist/state-parser-VIW2WNA5.js +19 -0
  248. package/dist/state-renderer-H22AQD3U.js +38 -0
  249. package/dist/{themes-32xj5ZTW.d.ts → themes-tbBkIVsn.d.ts} +2 -349
  250. package/docs/ai-integration.md +59 -58
  251. package/docs/language-reference.md +323 -286
  252. package/fonts/Inter-Bold.woff2 +0 -0
  253. package/fonts/Inter-Regular.woff2 +0 -0
  254. package/gallery/fixtures/boxes-and-lines-diverging.dgmo +1 -2
  255. package/gallery/fixtures/boxes-and-lines.dgmo +1 -1
  256. package/gallery/fixtures/clock.dgmo +1 -1
  257. package/gallery/fixtures/event-line.dgmo +1 -1
  258. package/gallery/fixtures/gantt-full.dgmo +1 -1
  259. package/gallery/fixtures/gantt-sprints.dgmo +9 -9
  260. package/gallery/fixtures/gantt.dgmo +1 -1
  261. package/gallery/fixtures/legacy-syntax-backcompat.dgmo +16 -0
  262. package/gallery/fixtures/state-tags.dgmo +40 -0
  263. package/gallery/fixtures/swimlane.dgmo +1 -1
  264. package/gallery/fixtures/timeline-intraday.dgmo +1 -1
  265. package/package.json +9 -1
  266. package/dist/analyzer-BJ54GIFB.js +0 -15
  267. package/dist/calculator-LDYQCDDY.js +0 -11
  268. package/dist/charts-d3-MXEP6BNP.js +0 -26
  269. package/dist/chunk-BRENJ2BQ.js +0 -714
  270. package/dist/chunk-FQ7HTV52.js +0 -364
  271. package/dist/dgmo-router-X7ZGAPIE.js +0 -86
  272. package/dist/dimensions-45H6JQEY.js +0 -22
  273. package/dist/flowchart-parser-UKELHBSB.js +0 -21
  274. package/dist/layout-46N4JJYK.js +0 -17
  275. package/dist/layout-A4XWNVID.js +0 -14
  276. package/dist/layout-AM2JWW3X.js +0 -15
  277. package/dist/layout-EE6GE46Y.js +0 -17
  278. package/dist/layout-G23F7LDH.js +0 -9
  279. package/dist/layout-GM4UGR7B.js +0 -19
  280. package/dist/layout-GQQJXNYH.js +0 -15
  281. package/dist/layout-IIE2S5FK.js +0 -20
  282. package/dist/layout-VMCRX66I.js +0 -14
  283. package/dist/layout-ZDOSXL5G.js +0 -19
  284. package/dist/parser-2ECN6JA2.js +0 -16
  285. package/dist/parser-4WTIHM5J.js +0 -11
  286. package/dist/parser-5H2BTSJQ.js +0 -11
  287. package/dist/parser-75KVXUNS.js +0 -16
  288. package/dist/parser-774AC53T.js +0 -13
  289. package/dist/parser-BE4YCSRU.js +0 -11
  290. package/dist/parser-CNGUQUQI.js +0 -11
  291. package/dist/parser-DEUUSQIN.js +0 -22
  292. package/dist/parser-EYCKNKQA.js +0 -21
  293. package/dist/parser-FXISIU6A.js +0 -14
  294. package/dist/parser-GTB4XC7P.js +0 -18
  295. package/dist/parser-GVEPAUSD.js +0 -12
  296. package/dist/parser-HSQGTY4G.js +0 -19
  297. package/dist/parser-HVKRINUS.js +0 -11
  298. package/dist/parser-J5MIEYO4.js +0 -15
  299. package/dist/parser-KMZIXLDZ.js +0 -13
  300. package/dist/parser-LJHXWSXU.js +0 -14
  301. package/dist/parser-PT3W72G5.js +0 -15
  302. package/dist/parser-SBJQDPHL.js +0 -15
  303. package/dist/parser-SUWWWCMX.js +0 -12
  304. package/dist/parser-SXDRNZOA.js +0 -13
  305. package/dist/parser-UMILOW3M.js +0 -14
  306. package/dist/parser-UP3AZ367.js +0 -13
  307. package/dist/parser-WHPRV3X5.js +0 -20
  308. package/dist/parser-WX3UODSJ.js +0 -12
  309. package/dist/parser-XCIEN3KN.js +0 -13
  310. package/dist/parser-XIRTUMVN.js +0 -18
  311. package/dist/parser-YKCGIG45.js +0 -11
  312. package/dist/parser-ZGM2OJ6Y.js +0 -22
  313. package/dist/renderer-4QB4K7Q3.js +0 -24
  314. package/dist/renderer-5H4SY7YY.js +0 -22
  315. package/dist/renderer-5PIQPFOX.js +0 -16
  316. package/dist/renderer-6MU37QF5.js +0 -19
  317. package/dist/renderer-AQVMWJ4M.js +0 -27
  318. package/dist/renderer-BDDW6K7N.js +0 -24
  319. package/dist/renderer-BNB3VIDY.js +0 -26
  320. package/dist/renderer-CVW75CXL.js +0 -37
  321. package/dist/renderer-ERHBSTQT.js +0 -25
  322. package/dist/renderer-IDPVUFNB.js +0 -28
  323. package/dist/renderer-ILX6BGKR.js +0 -21
  324. package/dist/renderer-JP663HKG.js +0 -22
  325. package/dist/renderer-MVUZBESR.js +0 -16
  326. package/dist/renderer-N4EBR2FV.js +0 -28
  327. package/dist/renderer-NO2QJ5LZ.js +0 -27
  328. package/dist/renderer-OGFV5RXX.js +0 -34
  329. package/dist/renderer-PDLESJMS.js +0 -37
  330. package/dist/renderer-T4MTNINC.js +0 -24
  331. package/dist/renderer-TOUGFGTM.js +0 -24
  332. package/dist/renderer-U3KPD43Y.js +0 -34
  333. package/dist/renderer-X334IJU2.js +0 -26
  334. package/dist/renderer-Y5OAMOCR.js +0 -23
  335. package/dist/renderer-YONAKAJU.js +0 -16
  336. package/dist/renderer-YWMI6Y2U.js +0 -29
  337. package/dist/renderer-radial-7CGZMVMS.js +0 -21
  338. package/dist/state-parser-BATWAID2.js +0 -18
  339. package/dist/state-renderer-3FKZJ3LP.js +0 -34
@@ -1,35 +1,35 @@
1
1
  import {
2
2
  renderCollapseBar,
3
3
  renderNodeCard
4
- } from "./chunk-OTOHI4JO.js";
4
+ } from "./chunk-H3HFC3SQ.js";
5
5
  import {
6
6
  CARD_RADIUS,
7
7
  CONTAINER_RADIUS
8
8
  } from "./chunk-3CIOJ5YJ.js";
9
9
  import {
10
10
  renderIntegratedLegend
11
- } from "./chunk-AUIM2NVH.js";
11
+ } from "./chunk-2NZOHEP4.js";
12
12
  import {
13
13
  getMaxLegendReservedHeight
14
- } from "./chunk-YAA6IID3.js";
14
+ } from "./chunk-J7HQPVYH.js";
15
15
  import {
16
16
  FONT_FAMILY
17
17
  } from "./chunk-6KFWC4CO.js";
18
18
  import {
19
19
  measureText,
20
20
  wrapTextToWidth
21
- } from "./chunk-WCT3NYCV.js";
21
+ } from "./chunk-4ASYQ347.js";
22
22
  import {
23
23
  contrastText,
24
24
  mix,
25
25
  shapeFill,
26
26
  themeBaseBg
27
- } from "./chunk-WBM7ZNDI.js";
27
+ } from "./chunk-JYDMBWRP.js";
28
28
  import {
29
29
  resolveActiveTagGroup,
30
30
  resolveTagColor,
31
31
  tagAttrKey
32
- } from "./chunk-HHKO6SKY.js";
32
+ } from "./chunk-AHTTKERF.js";
33
33
 
34
34
  // src/sketch/renderer.ts
35
35
  import * as d3 from "d3-selection";
@@ -1059,4 +1059,4 @@ export {
1059
1059
  sketchEdgeGeometry,
1060
1060
  renderSketchForExport
1061
1061
  };
1062
- //# sourceMappingURL=chunk-6HQH6JZE.js.map
1062
+ //# sourceMappingURL=chunk-IYNKLCAZ.js.map
@@ -13,7 +13,7 @@ import {
13
13
  LEGEND_TOGGLE_DOT_R,
14
14
  measureLegendText,
15
15
  truncateLegendText
16
- } from "./chunk-QOOUC2J5.js";
16
+ } from "./chunk-Q5IHQ4NW.js";
17
17
 
18
18
  // src/utils/number-format.ts
19
19
  function compactNumber(n) {
@@ -545,4 +545,4 @@ export {
545
545
  getLegendReservedHeight,
546
546
  getMaxLegendReservedHeight
547
547
  };
548
- //# sourceMappingURL=chunk-YAA6IID3.js.map
548
+ //# sourceMappingURL=chunk-J7HQPVYH.js.map
@@ -1,9 +1,13 @@
1
1
  import {
2
2
  CATEGORICAL_COLOR_ORDER
3
- } from "./chunk-TLVIHFRO.js";
3
+ } from "./chunk-ZKPPI6BF.js";
4
4
 
5
5
  // src/palettes/color-utils.ts
6
+ var HEX_TO_HSL_CACHE = /* @__PURE__ */ new Map();
7
+ var HEX_TO_HSL_CACHE_MAX = 5e3;
6
8
  function hexToHSL(hex) {
9
+ const cached = HEX_TO_HSL_CACHE.get(hex);
10
+ if (cached) return { ...cached };
7
11
  const raw = hex.replace("#", "");
8
12
  const full = raw.length === 3 ? [...raw].map((c) => c + c).join("") : raw;
9
13
  const r = parseInt(full.substring(0, 2), 16) / 255;
@@ -12,24 +16,29 @@ function hexToHSL(hex) {
12
16
  const max = Math.max(r, g, b);
13
17
  const min = Math.min(r, g, b);
14
18
  const l = (max + min) / 2;
19
+ let result;
15
20
  if (max === min) {
16
- return { h: 0, s: 0, l: Math.round(l * 100) };
17
- }
18
- const d = max - min;
19
- const s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
20
- let h;
21
- if (max === r) {
22
- h = ((g - b) / d + (g < b ? 6 : 0)) / 6;
23
- } else if (max === g) {
24
- h = ((b - r) / d + 2) / 6;
21
+ result = { h: 0, s: 0, l: Math.round(l * 100) };
25
22
  } else {
26
- h = ((r - g) / d + 4) / 6;
23
+ const d = max - min;
24
+ const s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
25
+ let h;
26
+ if (max === r) {
27
+ h = ((g - b) / d + (g < b ? 6 : 0)) / 6;
28
+ } else if (max === g) {
29
+ h = ((b - r) / d + 2) / 6;
30
+ } else {
31
+ h = ((r - g) / d + 4) / 6;
32
+ }
33
+ result = {
34
+ h: Math.round(h * 360),
35
+ s: Math.round(s * 100),
36
+ l: Math.round(l * 100)
37
+ };
27
38
  }
28
- return {
29
- h: Math.round(h * 360),
30
- s: Math.round(s * 100),
31
- l: Math.round(l * 100)
32
- };
39
+ if (HEX_TO_HSL_CACHE.size >= HEX_TO_HSL_CACHE_MAX) HEX_TO_HSL_CACHE.clear();
40
+ HEX_TO_HSL_CACHE.set(hex, result);
41
+ return { ...result };
33
42
  }
34
43
  function hslToHex(h, s, l) {
35
44
  const sNorm = s / 100;
@@ -87,7 +96,12 @@ function shade(hex, base, amount) {
87
96
  const sb = Math.round(b + (bb - b) * amount);
88
97
  return `#${sr.toString(16).padStart(2, "0")}${sg.toString(16).padStart(2, "0")}${sb.toString(16).padStart(2, "0")}`;
89
98
  }
99
+ var MIX_CACHE = /* @__PURE__ */ new Map();
100
+ var MIX_CACHE_MAX = 5e3;
90
101
  function mix(a, b, pct) {
102
+ const key = `${a}|${b}|${pct}`;
103
+ const cached = MIX_CACHE.get(key);
104
+ if (cached !== void 0) return cached;
91
105
  const parse = (h) => {
92
106
  const r = h.replace("#", "");
93
107
  const f = r.length === 3 ? [...r].map((c2) => c2 + c2).join("") : r;
@@ -99,7 +113,10 @@ function mix(a, b, pct) {
99
113
  };
100
114
  const [ar, ag, ab] = parse(a), [br, bg, bb] = parse(b), t = pct / 100;
101
115
  const c = (x, y) => Math.round(x * t + y * (1 - t)).toString(16).padStart(2, "0");
102
- return `#${c(ar, br)}${c(ag, bg)}${c(ab, bb)}`;
116
+ const out = `#${c(ar, br)}${c(ag, bg)}${c(ab, bb)}`;
117
+ if (MIX_CACHE.size >= MIX_CACHE_MAX) MIX_CACHE.clear();
118
+ MIX_CACHE.set(key, out);
119
+ return out;
103
120
  }
104
121
  function valueRampColor(low, high, t, _opts) {
105
122
  const tc = Math.max(0, Math.min(1, t));
@@ -224,4 +241,4 @@ export {
224
241
  getSegmentColors,
225
242
  politicalTints
226
243
  };
227
- //# sourceMappingURL=chunk-WBM7ZNDI.js.map
244
+ //# sourceMappingURL=chunk-JYDMBWRP.js.map
@@ -2,37 +2,37 @@ import {
2
2
  buildAdjacency,
3
3
  featureBboxPrimary,
4
4
  pointInGeometry
5
- } from "./chunk-I5IGB56C.js";
5
+ } from "./chunk-4QV26TEG.js";
6
6
  import {
7
7
  rectCircleOverlap,
8
8
  rectsOverlap,
9
9
  segmentRectOverlap,
10
10
  segmentsCross
11
- } from "./chunk-VL2O2F3W.js";
11
+ } from "./chunk-VHO3YBTB.js";
12
12
  import {
13
13
  compactNumber,
14
14
  computeLegendLayout
15
- } from "./chunk-YAA6IID3.js";
15
+ } from "./chunk-J7HQPVYH.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-Q5IHQ4NW.js";
23
23
  import {
24
24
  contrastRatio,
25
25
  mix,
26
26
  politicalTints,
27
27
  relativeLuminance,
28
28
  valueRampColor
29
- } from "./chunk-WBM7ZNDI.js";
29
+ } from "./chunk-JYDMBWRP.js";
30
30
  import {
31
31
  tagAttrKey
32
- } from "./chunk-HHKO6SKY.js";
32
+ } from "./chunk-AHTTKERF.js";
33
33
  import {
34
34
  resolveColor
35
- } from "./chunk-TLVIHFRO.js";
35
+ } from "./chunk-ZKPPI6BF.js";
36
36
 
37
37
  // src/map/legend-band.ts
38
38
  var LEGEND_TOP_GAP = 8;
@@ -3177,4 +3177,4 @@ export {
3177
3177
  albersSkewFallback,
3178
3178
  layoutMap
3179
3179
  };
3180
- //# sourceMappingURL=chunk-ZJV7GYR4.js.map
3180
+ //# sourceMappingURL=chunk-KBVOVDYP.js.map
@@ -5,11 +5,11 @@ import {
5
5
  splitNameAndMeta,
6
6
  tryParseSharedOption,
7
7
  warnUnknownMetaKeys
8
- } from "./chunk-BRENJ2BQ.js";
8
+ } from "./chunk-3FRO35WW.js";
9
9
  import {
10
10
  makeDgmoError,
11
11
  makeFail
12
- } from "./chunk-CXK4DZH3.js";
12
+ } from "./chunk-4W2PE66Q.js";
13
13
 
14
14
  // src/pyramid/parser.ts
15
15
  var MAX_LAYERS = 15;
@@ -127,4 +127,4 @@ function parsePyramid(content) {
127
127
  export {
128
128
  parsePyramid
129
129
  };
130
- //# sourceMappingURL=chunk-ICPJPQ5C.js.map
130
+ //# sourceMappingURL=chunk-KDK5EKUR.js.map
@@ -7,11 +7,11 @@ import {
7
7
  } from "./chunk-YYVTBZZC.js";
8
8
  import {
9
9
  renderIntegratedLegend
10
- } from "./chunk-AUIM2NVH.js";
10
+ } from "./chunk-2NZOHEP4.js";
11
11
  import {
12
12
  controlsGroupCapsuleWidth,
13
13
  getMaxLegendReservedHeight
14
- } from "./chunk-YAA6IID3.js";
14
+ } from "./chunk-J7HQPVYH.js";
15
15
  import {
16
16
  TITLE_FONT_SIZE,
17
17
  TITLE_FONT_WEIGHT,
@@ -34,26 +34,26 @@ import {
34
34
  LEGEND_PILL_PAD,
35
35
  measureLegendText,
36
36
  truncateLegendText
37
- } from "./chunk-QOOUC2J5.js";
37
+ } from "./chunk-Q5IHQ4NW.js";
38
38
  import {
39
39
  CHAR_WIDTH_RATIO,
40
40
  measureText,
41
41
  truncateText
42
- } from "./chunk-WCT3NYCV.js";
42
+ } from "./chunk-4ASYQ347.js";
43
43
  import {
44
44
  contrastText,
45
45
  getSeriesColors,
46
46
  mix,
47
47
  shapeFill
48
- } from "./chunk-WBM7ZNDI.js";
48
+ } from "./chunk-JYDMBWRP.js";
49
+ import {
50
+ normalizeName
51
+ } from "./chunk-NOTA6TEI.js";
49
52
  import {
50
53
  resolveActiveTagGroup,
51
54
  resolveTagColor,
52
55
  tagAttrKey
53
- } from "./chunk-HHKO6SKY.js";
54
- import {
55
- normalizeName
56
- } from "./chunk-NOTA6TEI.js";
56
+ } from "./chunk-AHTTKERF.js";
57
57
 
58
58
  // src/gantt/renderer.ts
59
59
  import * as d3Scale from "d3-scale";
@@ -177,7 +177,7 @@ function renderGantt(container, resolved, palette, isDark, options, exportDims)
177
177
  const showTitle = !!title && !resolved.options.noTitle;
178
178
  const titleHeight = showTitle ? 50 : 20;
179
179
  const containerWidth = exportDims?.width ?? (container.clientWidth || 800);
180
- const hasTagLegend = resolved.tagGroups.length > 0 || hasCriticalPath || hasDependencies;
180
+ const hasTagLegend = !resolved.options.noLegend && (resolved.tagGroups.length > 0 || hasCriticalPath || hasDependencies);
181
181
  const tagLegendReserve = hasTagLegend ? getMaxLegendReservedHeight(
182
182
  {
183
183
  groups: resolved.tagGroups.map((tg) => ({
@@ -238,7 +238,7 @@ function renderGantt(container, resolved, palette, isDark, options, exportDims)
238
238
  }
239
239
  function drawLegend() {
240
240
  svg.selectAll(".gantt-tag-legend-container").remove();
241
- if (resolved.tagGroups.length > 0 || hasCriticalPath || hasDependencies) {
241
+ if (hasTagLegend) {
242
242
  const legendY = sTitleHeight;
243
243
  renderTagLegend(
244
244
  svg,
@@ -2105,4 +2105,4 @@ export {
2105
2105
  renderGantt,
2106
2106
  buildTagLaneRowList
2107
2107
  };
2108
- //# sourceMappingURL=chunk-FHGVORFO.js.map
2108
+ //# sourceMappingURL=chunk-KINOX74I.js.map
@@ -8,7 +8,7 @@ import {
8
8
  stripDefaultModifier,
9
9
  tagAttrKey,
10
10
  validateTagGroupNames
11
- } from "./chunk-HHKO6SKY.js";
11
+ } from "./chunk-AHTTKERF.js";
12
12
  import {
13
13
  JOURNEY_MAP_REGISTRY,
14
14
  OPTION_NOCOLON_RE,
@@ -19,16 +19,16 @@ import {
19
19
  splitNameAndMeta,
20
20
  warnUnknownMetaKeys,
21
21
  withTagAliases
22
- } from "./chunk-BRENJ2BQ.js";
22
+ } from "./chunk-3FRO35WW.js";
23
23
  import {
24
24
  resolveColorWithDiagnostic
25
- } from "./chunk-TLVIHFRO.js";
25
+ } from "./chunk-ZKPPI6BF.js";
26
26
  import {
27
27
  formatDgmoError,
28
28
  makeDgmoError,
29
29
  makeFail,
30
30
  suggest
31
- } from "./chunk-CXK4DZH3.js";
31
+ } from "./chunk-4W2PE66Q.js";
32
32
 
33
33
  // src/journey-map/parser.ts
34
34
  var PHASE_RE = /^\[(.+?)\]$/;
@@ -38,11 +38,9 @@ var KNOWN_BOOLEANS = /* @__PURE__ */ new Set([
38
38
  "fill-tint",
39
39
  "fill-solid",
40
40
  "fill-outline",
41
- "no-title"
41
+ "no-title",
42
+ "no-legend"
42
43
  ]);
43
- var REMOVED_BOOLEANS = {
44
- "no-legend": '"no-legend" has been removed \u2014 remove tag groups to hide the legend.'
45
- };
46
44
  function parseJourneyMap(content, palette) {
47
45
  const options = {};
48
46
  const result = {
@@ -213,11 +211,6 @@ function parseJourneyMap(content, palette) {
213
211
  continue;
214
212
  }
215
213
  }
216
- const removedMsg = REMOVED_BOOLEANS[trimmed.toLowerCase()];
217
- if (removedMsg && !PHASE_RE.test(trimmed)) {
218
- warn(lineNumber, removedMsg);
219
- continue;
220
- }
221
214
  if (KNOWN_BOOLEANS.has(trimmed.toLowerCase()) && !PHASE_RE.test(trimmed)) {
222
215
  options[trimmed.toLowerCase()] = "on";
223
216
  continue;
@@ -411,4 +404,4 @@ function parseStepLine(trimmed, lineNumber, counter, aliasMap, warn, diagnostics
411
404
  export {
412
405
  parseJourneyMap
413
406
  };
414
- //# sourceMappingURL=chunk-XD6ZYURY.js.map
407
+ //# sourceMappingURL=chunk-KQ3FNRGR.js.map
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  computeNodeText,
3
3
  layoutMindmap
4
- } from "./chunk-HWX6ZHF3.js";
5
- import {
6
- renderInlineText
7
- } from "./chunk-3HDBAXF5.js";
4
+ } from "./chunk-5VXU6MND.js";
8
5
  import {
9
6
  extractExportSvg,
10
7
  runInExportContainer
11
8
  } from "./chunk-JTSMEYIZ.js";
9
+ import {
10
+ renderInlineText
11
+ } from "./chunk-3HDBAXF5.js";
12
12
  import {
13
13
  COLLAPSE_BAR_HEIGHT,
14
14
  EDGE_STROKE_WIDTH,
@@ -19,10 +19,10 @@ import {
19
19
  } from "./chunk-YYVTBZZC.js";
20
20
  import {
21
21
  renderIntegratedLegend
22
- } from "./chunk-AUIM2NVH.js";
22
+ } from "./chunk-2NZOHEP4.js";
23
23
  import {
24
24
  getMaxLegendReservedHeight
25
- } from "./chunk-YAA6IID3.js";
25
+ } from "./chunk-J7HQPVYH.js";
26
26
  import {
27
27
  TITLE_FONT_SIZE,
28
28
  TITLE_FONT_WEIGHT
@@ -30,25 +30,26 @@ import {
30
30
  import {
31
31
  FONT_FAMILY
32
32
  } from "./chunk-6KFWC4CO.js";
33
- import {
34
- LEGEND_GROUP_GAP
35
- } from "./chunk-QOOUC2J5.js";
36
33
  import {
37
34
  parseMindmap
38
- } from "./chunk-AL672HNE.js";
35
+ } from "./chunk-OJ435DQZ.js";
39
36
  import {
40
37
  preprocessDescriptionLine
41
38
  } from "./chunk-IYULMRBE.js";
39
+ import {
40
+ LEGEND_GROUP_GAP
41
+ } from "./chunk-Q5IHQ4NW.js";
42
42
  import {
43
43
  contrastText,
44
44
  shapeFill
45
- } from "./chunk-WBM7ZNDI.js";
45
+ } from "./chunk-JYDMBWRP.js";
46
46
  import {
47
47
  tagAttrKey
48
- } from "./chunk-HHKO6SKY.js";
48
+ } from "./chunk-AHTTKERF.js";
49
49
  import {
50
- fillModeFromOptions
51
- } from "./chunk-BRENJ2BQ.js";
50
+ fillModeFromOptions,
51
+ legendSuppressed
52
+ } from "./chunk-3FRO35WW.js";
52
53
 
53
54
  // src/mindmap/renderer.ts
54
55
  import * as d3Selection from "d3-selection";
@@ -91,7 +92,7 @@ function renderMindmap(container, parsed, layout, palette, isDark, onClickItem,
91
92
  const svg = d3Selection.select(container).append("svg").attr("width", containerWidth).attr("height", containerHeight).attr("viewBox", `0 0 ${containerWidth} ${containerHeight}`).attr("preserveAspectRatio", "xMidYMin meet").style("font-family", FONT_FAMILY);
92
93
  const appHosted = options?.controlsHost === "app";
93
94
  const hasControls = !!options?.onToggleColorByDepth || !!options?.onToggleDescriptions;
94
- const hasLegend = parsed.tagGroups.length > 0 || hasControls && !appHosted;
95
+ const hasLegend = (parsed.tagGroups.length > 0 || hasControls && !appHosted) && !legendSuppressed(parsed.options);
95
96
  const fixedLegend = !isExport && hasLegend;
96
97
  const legendReserve = fixedLegend ? getMaxLegendReservedHeight(
97
98
  {
@@ -389,4 +390,4 @@ export {
389
390
  renderMindmap,
390
391
  renderMindmapForExport
391
392
  };
392
- //# sourceMappingURL=chunk-3HGU63UY.js.map
393
+ //# sourceMappingURL=chunk-KQYQECWQ.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  computeInfra
3
- } from "./chunk-A44USUV7.js";
3
+ } from "./chunk-ICZ7M6IZ.js";
4
4
  import {
5
5
  layoutInfra
6
- } from "./chunk-Y2ZE3MSG.js";
6
+ } from "./chunk-43E26CDA.js";
7
7
  import {
8
8
  renderInlineText
9
9
  } from "./chunk-3HDBAXF5.js";
@@ -18,10 +18,10 @@ import {
18
18
  } from "./chunk-YYVTBZZC.js";
19
19
  import {
20
20
  renderIntegratedLegend
21
- } from "./chunk-AUIM2NVH.js";
21
+ } from "./chunk-2NZOHEP4.js";
22
22
  import {
23
23
  getMaxLegendReservedHeight
24
- } from "./chunk-YAA6IID3.js";
24
+ } from "./chunk-J7HQPVYH.js";
25
25
  import {
26
26
  TITLE_FONT_SIZE,
27
27
  TITLE_FONT_WEIGHT,
@@ -31,6 +31,12 @@ import {
31
31
  import {
32
32
  FONT_FAMILY
33
33
  } from "./chunk-6KFWC4CO.js";
34
+ import {
35
+ parseInfra
36
+ } from "./chunk-S7YFT3PO.js";
37
+ import {
38
+ preprocessDescriptionLine
39
+ } from "./chunk-IYULMRBE.js";
34
40
  import {
35
41
  LEGEND_CAPSULE_PAD,
36
42
  LEGEND_DOT_R,
@@ -41,29 +47,26 @@ import {
41
47
  LEGEND_PILL_FONT_SIZE,
42
48
  LEGEND_PILL_PAD,
43
49
  measureLegendText
44
- } from "./chunk-QOOUC2J5.js";
50
+ } from "./chunk-Q5IHQ4NW.js";
45
51
  import {
46
52
  CHAR_WIDTH_RATIO,
47
53
  measureText,
48
54
  truncateText
49
- } from "./chunk-WCT3NYCV.js";
50
- import {
51
- parseInfra
52
- } from "./chunk-IM6PDDCE.js";
53
- import {
54
- preprocessDescriptionLine
55
- } from "./chunk-IYULMRBE.js";
55
+ } from "./chunk-4ASYQ347.js";
56
56
  import {
57
57
  contrastText,
58
58
  mix,
59
59
  shapeFill
60
- } from "./chunk-WBM7ZNDI.js";
60
+ } from "./chunk-JYDMBWRP.js";
61
61
  import {
62
62
  tagAttrKey
63
- } from "./chunk-HHKO6SKY.js";
63
+ } from "./chunk-AHTTKERF.js";
64
+ import {
65
+ legendSuppressed
66
+ } from "./chunk-3FRO35WW.js";
64
67
  import {
65
68
  resolveColor
66
- } from "./chunk-TLVIHFRO.js";
69
+ } from "./chunk-ZKPPI6BF.js";
67
70
 
68
71
  // src/infra/renderer.ts
69
72
  import * as d3Selection from "d3-selection";
@@ -1378,7 +1381,7 @@ function renderInfra(container, layout, palette, isDark, title, titleLineNumber,
1378
1381
  palette,
1379
1382
  layout.edges
1380
1383
  );
1381
- const hasLegend = legendGroups.length > 0 || !!playback && !appHostedPlayback;
1384
+ const hasLegend = (legendGroups.length > 0 || !!playback && !appHostedPlayback) && !legendSuppressed(layout.options);
1382
1385
  const fixedLegend = !exportMode && hasLegend;
1383
1386
  const legendDynamicH = hasLegend ? getMaxLegendReservedHeight(
1384
1387
  {
@@ -1557,4 +1560,4 @@ export {
1557
1560
  renderInfra,
1558
1561
  parseAndLayoutInfra
1559
1562
  };
1560
- //# sourceMappingURL=chunk-MUVJ57EP.js.map
1563
+ //# sourceMappingURL=chunk-KS5ZSM5T.js.map
@@ -7,11 +7,11 @@ import {
7
7
  extractColor,
8
8
  fillModeFromToken,
9
9
  parseFirstLine
10
- } from "./chunk-BRENJ2BQ.js";
10
+ } from "./chunk-3FRO35WW.js";
11
11
  import {
12
12
  makeDgmoError,
13
13
  makeFail
14
- } from "./chunk-CXK4DZH3.js";
14
+ } from "./chunk-4W2PE66Q.js";
15
15
 
16
16
  // src/clock/zone-coords.ts
17
17
  var ZONE_COORDS = {
@@ -326,10 +326,17 @@ function searchZones(query, nowMs, limit = 8) {
326
326
  var DIRECTIVES = /* @__PURE__ */ new Set([
327
327
  "analog",
328
328
  "hours",
329
+ "workweek",
330
+ // Legacy alias for `workweek` (decision #48).
329
331
  "days",
330
332
  "no-sun",
331
333
  "time-24",
332
334
  "no-title",
335
+ // Canonical direction booleans (§1.9); key+value `direction <lr|tb>` (and
336
+ // its `columns` value alias) stays parse-accepted legacy. These MUST be in
337
+ // this set — otherwise a bare `direction-lr` line parses as a zone entry.
338
+ "direction-lr",
339
+ "direction-tb",
333
340
  "direction",
334
341
  "color-by",
335
342
  "fill-tint",
@@ -478,12 +485,14 @@ function parseClock(content, palette) {
478
485
  }
479
486
  break;
480
487
  }
488
+ // `workweek` is canonical; `days` is the legacy alias (decision #48).
489
+ case "workweek":
481
490
  case "days": {
482
491
  const parsed = parseDays(rest);
483
492
  if (parsed === null) {
484
493
  softError(
485
494
  lineNum,
486
- `"days" needs weekdays like mon-fri or mon,wed,fri (got "${rest}").`
495
+ `"${key}" needs weekdays like mon-fri or mon,wed,fri (got "${rest}").`
487
496
  );
488
497
  } else {
489
498
  workDays = parsed;
@@ -520,9 +529,15 @@ function parseClock(content, palette) {
520
529
  }
521
530
  break;
522
531
  }
532
+ case "direction-lr":
533
+ result.columns = true;
534
+ break;
535
+ case "direction-tb":
536
+ result.columns = false;
537
+ break;
523
538
  case "direction": {
524
539
  const v = rest.trim().toLowerCase();
525
- result.columns = v.startsWith("lr") || v === "columns";
540
+ result.columns = v === "lr" || v === "columns";
526
541
  break;
527
542
  }
528
543
  }
@@ -638,7 +653,7 @@ function parseClock(content, palette) {
638
653
  } else if (workDays !== null) {
639
654
  warn(
640
655
  result.titleLineNumber ?? 1,
641
- "`days` has no effect without `hours` \u2014 the working-hours status needs a window."
656
+ "`workweek` has no effect without `hours` \u2014 the working-hours status needs a window."
642
657
  );
643
658
  }
644
659
  result.entries = entries;
@@ -657,4 +672,4 @@ export {
657
672
  searchZones,
658
673
  parseClock
659
674
  };
660
- //# sourceMappingURL=chunk-FY5MSZAP.js.map
675
+ //# sourceMappingURL=chunk-KV4HLIJE.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  analyzePert
3
- } from "./chunk-J76PIKAT.js";
3
+ } from "./chunk-HO3RCNF6.js";
4
4
  import {
5
5
  computeNodeSizing,
6
6
  layoutPert
7
- } from "./chunk-GU46PPT3.js";
7
+ } from "./chunk-QXGACPS2.js";
8
8
  import {
9
9
  COLLAPSE_BAR_HEIGHT,
10
10
  CONTAINER_HEADER_HEIGHT,
@@ -18,7 +18,7 @@ import {
18
18
  } from "./chunk-YYVTBZZC.js";
19
19
  import {
20
20
  renderIntegratedLegend
21
- } from "./chunk-AUIM2NVH.js";
21
+ } from "./chunk-2NZOHEP4.js";
22
22
  import {
23
23
  CAPTION_BOX_PADDING_X,
24
24
  CAPTION_BOX_PADDING_Y,
@@ -33,34 +33,34 @@ import {
33
33
  import {
34
34
  FONT_FAMILY
35
35
  } from "./chunk-6KFWC4CO.js";
36
- import {
37
- LEGEND_HEIGHT
38
- } from "./chunk-QOOUC2J5.js";
39
- import {
40
- measureText,
41
- truncateText,
42
- wrapTextToWidth
43
- } from "./chunk-WCT3NYCV.js";
44
36
  import {
45
37
  parsePert
46
- } from "./chunk-K4EOKJA6.js";
38
+ } from "./chunk-RRGKMJYL.js";
47
39
  import {
48
40
  addCalendarDays,
49
41
  formatDuration,
50
42
  formatScheduleValue,
51
43
  formatSlackValue,
52
44
  formatSprintCell
53
- } from "./chunk-7L4UJOY6.js";
45
+ } from "./chunk-3TYUXC7D.js";
46
+ import {
47
+ LEGEND_HEIGHT
48
+ } from "./chunk-Q5IHQ4NW.js";
49
+ import {
50
+ measureText,
51
+ truncateText,
52
+ wrapTextToWidth
53
+ } from "./chunk-4ASYQ347.js";
54
54
  import {
55
55
  contrastText,
56
56
  mix,
57
57
  shapeFill,
58
58
  themeBaseBg
59
- } from "./chunk-WBM7ZNDI.js";
59
+ } from "./chunk-JYDMBWRP.js";
60
60
  import {
61
61
  resolveActiveTagGroup,
62
62
  resolveTagColor
63
- } from "./chunk-HHKO6SKY.js";
63
+ } from "./chunk-AHTTKERF.js";
64
64
 
65
65
  // src/pert/renderer.ts
66
66
  import * as d3Selection from "d3-selection";
@@ -185,7 +185,7 @@ function renderPert(container, resolved, layout, palette, isDark, options = {})
185
185
  resolved.options.activeTag,
186
186
  options.activeTagOverride
187
187
  );
188
- const showTagLegend = showLegend && resolved.tagGroups.length > 0;
188
+ const showTagLegend = showLegend && !resolved.options.noLegend && resolved.tagGroups.length > 0;
189
189
  const legendBlockHeight = showTagLegend ? LEGEND_TOP_GAP + LEGEND_PILL_HEIGHT + LEGEND_BOTTOM_GAP : 0;
190
190
  const naturalChartWidth = layout.width + DIAGRAM_PADDING * 2;
191
191
  const minAnalysisRowW = analysisLayer.analysisHasContent ? analysisLayer.minContentWidth + 2 * DIAGRAM_PADDING : 0;
@@ -1823,4 +1823,4 @@ export {
1823
1823
  measurePertAnalysisBlock,
1824
1824
  renderPertAnalysisBlock
1825
1825
  };
1826
- //# sourceMappingURL=chunk-LGT3PZCJ.js.map
1826
+ //# sourceMappingURL=chunk-LPJ6H5X4.js.map