@diagrammo/dgmo 0.73.0 → 0.75.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 (187) hide show
  1. package/dist/advanced.d.ts +11 -49
  2. package/dist/advanced.js +94 -94
  3. package/dist/{analyzer-KQWXVQOI.js → analyzer-QTDQEMS5.js} +4 -6
  4. package/dist/block.js +49 -49
  5. package/dist/{calculator-2Z5DUTOB.js → calculator-CVQ54JNE.js} +3 -3
  6. package/dist/chart-meta.js +42 -42
  7. package/dist/{charts-d3-S6JPQQFZ.js → charts-d3-SQEVMIAM.js} +8 -8
  8. package/dist/{chunk-OYK45NY5.js → chunk-2NRIGEHZ.js} +3 -3
  9. package/dist/{chunk-ZIJXK3U5.js → chunk-2QRIMMIH.js} +3 -3
  10. package/dist/{chunk-PFZDLHHG.js → chunk-32MOGTKT.js} +43 -206
  11. package/dist/{chunk-NQJ7DDUT.js → chunk-3H4PDNP4.js} +3 -3
  12. package/dist/{chunk-K7P4SCB3.js → chunk-3LJNQ6LR.js} +7 -7
  13. package/dist/{chunk-7VMUKH2Z.js → chunk-3SP6G4LN.js} +3 -3
  14. package/dist/{chunk-2PU5XWLA.js → chunk-3SQJZMPO.js} +4 -129
  15. package/dist/{chunk-4K5H6LON.js → chunk-4YER7UCV.js} +3 -3
  16. package/dist/{chunk-BVNTXVYJ.js → chunk-5PFNUDXR.js} +3 -3
  17. package/dist/{chunk-OR3OX32W.js → chunk-76IBFEYW.js} +6 -6
  18. package/dist/{chunk-4FKEI4MF.js → chunk-76LHNLGX.js} +2 -2
  19. package/dist/{chunk-JLSGQMRA.js → chunk-76NHL5UG.js} +2 -2
  20. package/dist/{chunk-KUDYLU3M.js → chunk-7BMX2M3F.js} +2 -2
  21. package/dist/{chunk-FQDH6AL3.js → chunk-7EZ5AKBK.js} +6 -6
  22. package/dist/{chunk-CLKRRKV6.js → chunk-7G4XMHDB.js} +8 -8
  23. package/dist/{chunk-3AXUJ5PT.js → chunk-7NSNE52V.js} +5 -4
  24. package/dist/{chunk-XVJWAE2F.js → chunk-AFR6GWXD.js} +5 -5
  25. package/dist/{chunk-25LXU4OQ.js → chunk-AYM472K3.js} +7 -7
  26. package/dist/{chunk-K3O2CZTD.js → chunk-BCB24FG7.js} +4 -4
  27. package/dist/{chunk-E27E4ZFN.js → chunk-BFTRW24X.js} +3 -3
  28. package/dist/{chunk-WPEHUSUQ.js → chunk-BWJLLNUX.js} +3 -3
  29. package/dist/{chunk-INOSOL3J.js → chunk-C2WH3BMS.js} +2 -2
  30. package/dist/{chunk-TP42IN23.js → chunk-CAPR5DET.js} +4 -4
  31. package/dist/{chunk-ABH626W7.js → chunk-CLQJAGWL.js} +58 -54
  32. package/dist/{chunk-3X3UD7PN.js → chunk-COCMMQXW.js} +4 -4
  33. package/dist/{chunk-V7E3RZLQ.js → chunk-CQKD6GOC.js} +3 -3
  34. package/dist/{chunk-2M2UC5EU.js → chunk-CRLVJZWX.js} +2 -2
  35. package/dist/{chunk-A4GOY3PE.js → chunk-DEW62ON3.js} +1 -3
  36. package/dist/{chunk-KCHCOXAL.js → chunk-DJL5PO27.js} +2 -2
  37. package/dist/{chunk-5EI23VVR.js → chunk-DSH7NJ2G.js} +5 -5
  38. package/dist/{chunk-LMJKHQ4W.js → chunk-DU3OIBQE.js} +3 -3
  39. package/dist/{chunk-VWIXRNY2.js → chunk-DY7KDZUF.js} +3 -3
  40. package/dist/{chunk-DTYZAXEH.js → chunk-F4CPZRG2.js} +3 -3
  41. package/dist/{chunk-2TFWQM3E.js → chunk-F4V67JXG.js} +2 -2
  42. package/dist/{chunk-RYHZFP7Y.js → chunk-FPRMP6YA.js} +3 -3
  43. package/dist/{chunk-H454ZVAS.js → chunk-GEURKGZS.js} +6 -6
  44. package/dist/{chunk-KI2L4DWM.js → chunk-GRN44Z6A.js} +2 -2
  45. package/dist/{chunk-X6LXZJPT.js → chunk-HFCKU73Y.js} +6 -6
  46. package/dist/{chunk-FQFQGPWA.js → chunk-HGFKDSKZ.js} +5 -5
  47. package/dist/{chunk-XGBUCXU7.js → chunk-HOIAQ3P2.js} +3 -3
  48. package/dist/{chunk-ARM4G2HJ.js → chunk-ICVIJLBA.js} +4 -4
  49. package/dist/{chunk-FGXBIOVK.js → chunk-IFC3JXCT.js} +2 -2
  50. package/dist/{chunk-B5CIHVBP.js → chunk-IGQW7TKM.js} +7 -7
  51. package/dist/{chunk-DZC2OCK3.js → chunk-IHUOYDLN.js} +8 -8
  52. package/dist/{chunk-54SJUHNY.js → chunk-JL7BDLC6.js} +6 -6
  53. package/dist/{chunk-SNZFXGSE.js → chunk-JLODGGN2.js} +3 -3
  54. package/dist/{chunk-3OKBXV3I.js → chunk-JQ575OAK.js} +3 -3
  55. package/dist/{chunk-OMQ5V5NH.js → chunk-KRTLS3G6.js} +4 -4
  56. package/dist/{chunk-4NYJEK4R.js → chunk-KWSBNLSC.js} +2 -2
  57. package/dist/{chunk-7GYSVN4Z.js → chunk-LKS56RDT.js} +2 -2
  58. package/dist/{chunk-3ATHNEOQ.js → chunk-LXXVHLTH.js} +3 -3
  59. package/dist/{chunk-QFHPGDR5.js → chunk-LYLRNAX2.js} +2 -2
  60. package/dist/{chunk-TTVHS3D5.js → chunk-M3IVOGZE.js} +102 -97
  61. package/dist/{chunk-CVGTEAIO.js → chunk-M526IKKH.js} +2 -2
  62. package/dist/{chunk-W242EWZZ.js → chunk-M5JT2AU7.js} +4 -4
  63. package/dist/{chunk-MK55PZVB.js → chunk-M5OOAP65.js} +4 -3
  64. package/dist/{chunk-YJMWEZOB.js → chunk-MG3DE3VO.js} +2 -2
  65. package/dist/{chunk-TJS3J5B3.js → chunk-NHQ7HUAS.js} +3 -3
  66. package/dist/{chunk-TXWW4UZM.js → chunk-OKXWPKUC.js} +2 -2
  67. package/dist/{chunk-PJHYUVD3.js → chunk-OUJG73YJ.js} +7 -7
  68. package/dist/{chunk-T4L4LKXO.js → chunk-Q6BAFS7I.js} +3 -3
  69. package/dist/{chunk-KZKRK57S.js → chunk-QI4Q5ZZH.js} +7 -7
  70. package/dist/{chunk-D5ZZOTE6.js → chunk-QMFIZQTB.js} +2 -2
  71. package/dist/{chunk-IDEJ3J4J.js → chunk-QOVM5VRC.js} +3 -3
  72. package/dist/{chunk-O7ZKDUDX.js → chunk-QT5UMFPE.js} +2 -2
  73. package/dist/{chunk-JPVRJS74.js → chunk-QUYYL3LP.js} +4 -4
  74. package/dist/{chunk-YGKYQ7LA.js → chunk-R5JPMW2F.js} +40 -40
  75. package/dist/{chunk-NE7JHZCQ.js → chunk-RWFMOVHG.js} +3 -3
  76. package/dist/{chunk-RJUMXXKR.js → chunk-S5P5Z5Y5.js} +3 -3
  77. package/dist/{chunk-XL2C26LV.js → chunk-SH4PPRU7.js} +2 -2
  78. package/dist/{chunk-XOOYMOIW.js → chunk-SUA56ZSB.js} +3 -3
  79. package/dist/{chunk-2AC2KTVM.js → chunk-SWEKCK34.js} +3 -3
  80. package/dist/{chunk-WTMP6VZ6.js → chunk-TDHD3HNO.js} +3 -3
  81. package/dist/{chunk-AMYMV4JZ.js → chunk-TN754B3R.js} +2 -2
  82. package/dist/{chunk-XUCHK3OJ.js → chunk-TPN7RJOM.js} +3 -3
  83. package/dist/{chunk-6G2GJGUC.js → chunk-U5B3TUEW.js} +3 -3
  84. package/dist/{chunk-6LGPL4LP.js → chunk-U74EGVOA.js} +4 -4
  85. package/dist/{chunk-LGASNVZE.js → chunk-U7AO6FRL.js} +4 -4
  86. package/dist/{chunk-RN3PAL4E.js → chunk-UBW53CNS.js} +2 -2
  87. package/dist/{chunk-VQEW7XMN.js → chunk-UCZBRGJN.js} +2 -2
  88. package/dist/{chunk-HQ34V2XV.js → chunk-UJBP57UJ.js} +28 -11
  89. package/dist/{chunk-EPJHJF3J.js → chunk-UTTRJ6KN.js} +5 -5
  90. package/dist/{chunk-RXSAE6F5.js → chunk-UWYZIGCB.js} +3 -3
  91. package/dist/{chunk-7S5WQXI3.js → chunk-VBJCGGNF.js} +2 -2
  92. package/dist/{chunk-IEZYF5CN.js → chunk-W7UBPARG.js} +3 -3
  93. package/dist/{chunk-X6LVGU4W.js → chunk-WQXD3IIN.js} +2 -2
  94. package/dist/{chunk-ITAFWUSB.js → chunk-XCAEHWQB.js} +3 -3
  95. package/dist/{chunk-WDKLODC3.js → chunk-XFLLYY3V.js} +7 -7
  96. package/dist/{chunk-MZMK474U.js → chunk-XHROEQ23.js} +6 -6
  97. package/dist/{chunk-Q446PFCV.js → chunk-Y2CYNRL7.js} +2 -2
  98. package/dist/{chunk-A34AXXBO.js → chunk-YVDBBWEP.js} +5 -5
  99. package/dist/{chunk-ZQ5SROS2.js → chunk-Z7KVOVE4.js} +2 -2
  100. package/dist/{chunk-I4YT5KL6.js → chunk-ZM27UI5O.js} +3 -3
  101. package/dist/{chunk-AG3Z47VY.js → chunk-ZMKCG3FT.js} +6 -6
  102. package/dist/completion-registry.js +4 -3
  103. package/dist/dgmo-router-KYNLRE7S.js +89 -0
  104. package/dist/{dimensions-PRZSDFWR.js → dimensions-NLQ64ED5.js} +6 -6
  105. package/dist/editor.js +1 -0
  106. package/dist/{flowchart-parser-HR25V5AH.js → flowchart-parser-LY5GGQL2.js} +4 -4
  107. package/dist/{flowchart-renderer-FY63GDRH.js → flowchart-renderer-RIJ5FZKO.js} +6 -6
  108. package/dist/highlight.js +1 -0
  109. package/dist/index.js +49 -49
  110. package/dist/{layout-PKGNLY6P.js → layout-5ILNODTP.js} +4 -4
  111. package/dist/{layout-O4PR46GN.js → layout-EM4DLMAX.js} +3 -3
  112. package/dist/{layout-BWHNERBW.js → layout-RV2T2YTT.js} +4 -4
  113. package/dist/{layout-43A4YMAH.js → layout-UJ62RQQ3.js} +3 -3
  114. package/dist/{layout-4URV4OXF.js → layout-VUZ3MLOI.js} +4 -4
  115. package/dist/{layout-U5OVRUOK.js → layout-ZAGUFT2G.js} +4 -4
  116. package/dist/{parser-XS7DL63K.js → parser-2GMHFSTS.js} +4 -4
  117. package/dist/{parser-23MYMNF6.js → parser-3AOMUX5D.js} +4 -4
  118. package/dist/{parser-XTSWP4N3.js → parser-3KQONLXZ.js} +3 -3
  119. package/dist/{parser-X5RGCC3C.js → parser-4DLU4SNG.js} +3 -3
  120. package/dist/{parser-AN4SUBQ6.js → parser-4KFJKLP2.js} +3 -3
  121. package/dist/{parser-W2LEO5QM.js → parser-5XFGK5C5.js} +4 -4
  122. package/dist/{parser-PDPZ2I6C.js → parser-6FUESG4N.js} +4 -4
  123. package/dist/{parser-GPZYL6ZE.js → parser-B2XQNHZM.js} +3 -3
  124. package/dist/{parser-W3QZBUOF.js → parser-CJNP7RKR.js} +4 -4
  125. package/dist/{parser-BTTFGJGI.js → parser-E3OHNNTH.js} +4 -4
  126. package/dist/{parser-A665TNOV.js → parser-EQ4I3TSH.js} +5 -5
  127. package/dist/{parser-2FNHLEBN.js → parser-F4ZKDGUZ.js} +3 -3
  128. package/dist/{parser-PCALQIW2.js → parser-GCVSRQPY.js} +4 -4
  129. package/dist/{parser-3JDQL7QF.js → parser-H4ZUNLX4.js} +3 -3
  130. package/dist/{parser-CAAFD3HB.js → parser-JYIZEKAS.js} +4 -4
  131. package/dist/{parser-SQMOEVG4.js → parser-L7RXUKYN.js} +4 -4
  132. package/dist/{parser-DIQ2E5MR.js → parser-L7T7FY3H.js} +4 -4
  133. package/dist/{parser-SQFNO6XG.js → parser-LUOINP6H.js} +4 -4
  134. package/dist/{parser-XGUJ7SMG.js → parser-LV7PQBUG.js} +4 -4
  135. package/dist/{parser-EDXD6ZGJ.js → parser-ML3LVNDV.js} +4 -4
  136. package/dist/{parser-DBOJKLDF.js → parser-PR3OR3LO.js} +5 -5
  137. package/dist/{parser-MDYNA6JL.js → parser-QOIZGW7I.js} +4 -4
  138. package/dist/{parser-BCQBK2XB.js → parser-RDBXEVI4.js} +4 -4
  139. package/dist/{parser-5RY6ID5M.js → parser-TA5TYZNL.js} +5 -5
  140. package/dist/{parser-6YBYIFS2.js → parser-UTR5WE4O.js} +4 -4
  141. package/dist/{parser-COBTDQPC.js → parser-WCFG3DZA.js} +3 -3
  142. package/dist/{parser-2FZ4BDEW.js → parser-WMJEPZDC.js} +4 -4
  143. package/dist/{parser-VQX2LVUJ.js → parser-WQNT7T2P.js} +3 -3
  144. package/dist/{parser-TATBFGQ2.js → parser-WWRRG2DV.js} +4 -4
  145. package/dist/{parser-BC2TAVB3.js → parser-XVSDFO56.js} +3 -3
  146. package/dist/{parser-5CAGM3ED.js → parser-YWQCC33R.js} +4 -4
  147. package/dist/{parser-VJEHPDOO.js → parser-ZT3PU2HT.js} +4 -4
  148. package/dist/{parser-WQCSMLUI.js → parser-ZXQZZK6W.js} +3 -3
  149. package/dist/pert.d.ts +4 -33
  150. package/dist/{renderer-MCWAHNQG.js → renderer-3FB56573.js} +5 -5
  151. package/dist/{renderer-2E2Z5N66.js → renderer-4EWGZLJ6.js} +4 -4
  152. package/dist/{renderer-J2N5YBFP.js → renderer-4PNVGHVA.js} +5 -5
  153. package/dist/{renderer-S42JPAZO.js → renderer-5W3HWIUL.js} +6 -6
  154. package/dist/{renderer-DU6D3S6K.js → renderer-73QHYZ2Q.js} +8 -8
  155. package/dist/{renderer-V7476J5G.js → renderer-A2YWSBPY.js} +9 -9
  156. package/dist/{renderer-VG4C23TY.js → renderer-BUEFD2IF.js} +5 -5
  157. package/dist/{renderer-XNLRQWM6.js → renderer-CGOPX4HW.js} +9 -10
  158. package/dist/{renderer-ODDULMVE.js → renderer-CO5O5VR5.js} +6 -6
  159. package/dist/{renderer-SW5YUK6H.js → renderer-D7N7PPB7.js} +5 -5
  160. package/dist/{renderer-KJNTNI22.js → renderer-DKW273R7.js} +7 -7
  161. package/dist/{renderer-6U6YW4HX.js → renderer-F24V3RD3.js} +7 -7
  162. package/dist/{renderer-EAQNSDTC.js → renderer-FGGDZZFQ.js} +8 -8
  163. package/dist/{renderer-HZCYBOAB.js → renderer-FUJNSC5X.js} +4 -4
  164. package/dist/{renderer-XL54ZE4H.js → renderer-GF6S5ZX6.js} +8 -8
  165. package/dist/{renderer-NXOSBZPO.js → renderer-GJDVPXI3.js} +9 -9
  166. package/dist/{renderer-YX6S3U4L.js → renderer-JMJ7Q5OC.js} +7 -7
  167. package/dist/{renderer-WG6CUDWI.js → renderer-KMOGGMM7.js} +9 -9
  168. package/dist/{renderer-AKZECRNK.js → renderer-LBNVKVO3.js} +9 -9
  169. package/dist/{renderer-BUMIZJIY.js → renderer-MUW4G2N6.js} +10 -10
  170. package/dist/{renderer-IMZKZ6TV.js → renderer-PIEPRK6M.js} +8 -8
  171. package/dist/{renderer-4HGNWJRC.js → renderer-PKRKLOYR.js} +7 -7
  172. package/dist/{renderer-YIJYYZZE.js → renderer-PR3KLNST.js} +7 -7
  173. package/dist/{renderer-SCIHPARI.js → renderer-QAMOXOZ2.js} +3 -3
  174. package/dist/{renderer-MJCSBYAR.js → renderer-RUHC6D3B.js} +7 -7
  175. package/dist/{renderer-2DIH3YW6.js → renderer-UUP6OX6F.js} +7 -7
  176. package/dist/renderer-UYYBJ7OB.js +76 -0
  177. package/dist/{renderer-BY5AAKV7.js → renderer-UYZSP7MF.js} +7 -7
  178. package/dist/{renderer-GQUJVPVA.js → renderer-WDSBFDQ2.js} +8 -8
  179. package/dist/{renderer-TBWE67FB.js → renderer-XBL6CLN2.js} +7 -7
  180. package/dist/{renderer-R7Q72DM4.js → renderer-ZAJ5353N.js} +4 -4
  181. package/dist/{renderer-radial-ZZAAPDSY.js → renderer-radial-MZP3SVTZ.js} +6 -6
  182. package/dist/{state-parser-4DJ67MNV.js → state-parser-TPA67IXM.js} +5 -5
  183. package/dist/{state-renderer-IABX3URA.js → state-renderer-454ADT7E.js} +9 -9
  184. package/docs/language-reference.md +7 -6
  185. package/package.json +2 -2
  186. package/dist/dgmo-router-AE6FUBV3.js +0 -89
  187. package/dist/renderer-LKZZID6J.js +0 -76
@@ -598,7 +598,6 @@ function analyzePert(parsed) {
598
598
  groups: [],
599
599
  tagGroups: parsed.tagGroups.slice(),
600
600
  mode: "monte-carlo",
601
- summaryRows: null,
602
601
  projectSubtitle: null,
603
602
  projectMu: null,
604
603
  projectSigma: null,
@@ -652,23 +651,12 @@ function analyzePert(parsed) {
652
651
  projectStart = addCalendarDays(anchor.date, -projectMuDays);
653
652
  }
654
653
  }
655
- const summaryRows = buildSummary({
656
- mode,
657
- projectMu: projectMuOut,
658
- projectSigma: projectSigmaOut,
659
- unit,
660
- parsedActivities: activities,
661
- monteCarloResult,
662
- trialsClamped,
663
- anchor: parsed.options.anchor,
664
- today: parsed.options.today,
665
- ...sprintDays !== void 0 && { sprintDays }
666
- });
667
654
  const projectSubtitle = buildProjectSubtitle({
668
655
  projectMu: projectMuOut,
669
656
  projectSigma: projectSigmaOut,
670
657
  unit,
671
- anchor: parsed.options.anchor
658
+ anchor: parsed.options.anchor,
659
+ mcRan: mode === "monte-carlo" && monteCarloResult !== null
672
660
  });
673
661
  return {
674
662
  options: parsed.options,
@@ -677,7 +665,6 @@ function analyzePert(parsed) {
677
665
  groups: resolvedGroups,
678
666
  tagGroups: parsed.tagGroups.slice(),
679
667
  mode,
680
- summaryRows,
681
668
  projectSubtitle,
682
669
  projectMu: projectMuOut,
683
670
  projectSigma: projectSigmaOut,
@@ -842,121 +829,11 @@ function rollupGroup(group, expandedById, resolvedById, criticalSet, unit, sprin
842
829
  criticality
843
830
  };
844
831
  }
845
- function roundConservative(durationDays, _mode) {
846
- return Math.ceil(durationDays);
847
- }
848
- function buildSummary(input) {
849
- const {
850
- mode,
851
- projectMu,
852
- projectSigma,
853
- unit,
854
- parsedActivities,
855
- monteCarloResult,
856
- trialsClamped,
857
- sprintDays,
858
- today
859
- } = input;
860
- const anchor = input.anchor ?? null;
861
- if (parsedActivities.length === 0) return null;
862
- if (projectMu === null) {
863
- if (anchor?.kind === "backward") {
864
- return [
865
- { text: "Expected duration: ?", level: 0 },
866
- { text: "P50 latest-safe start: ?", level: 0 },
867
- { text: "P80 latest-safe start: ?", level: 0 },
868
- { text: "P95 latest-safe start: ?", level: 0 }
869
- ];
870
- }
871
- const tbdCount = parsedActivities.filter(
872
- (a) => a.duration === null && !a.isMilestone
873
- ).length;
874
- return [
875
- {
876
- text: `Expected duration unknown \u2014 ${tbdCount} ${tbdCount === 1 ? "activity has" : "activities have"} no estimate.`,
877
- level: 0
878
- }
879
- ];
880
- }
881
- const rows = [];
882
- const mc = mode === "monte-carlo" && monteCarloResult !== null;
883
- const sigmaPositive = projectSigma !== null && projectSigma > 0;
884
- const showMcDetail = mc && sigmaPositive;
885
- const sigmaParen = showMcDetail ? ` (\xB1 ${roundForCaption(projectSigma)} ${pluralizeUnit(projectSigma, unit)})` : "";
886
- if (anchor?.kind === "forward") {
887
- const projectMuDays = projectMu * unitToDays(unit);
888
- rows.push({
889
- text: `Expected finish: ${addCalendarDays(anchor.date, projectMuDays)}${sigmaParen}.`,
890
- level: 0
891
- });
892
- } else if (anchor?.kind === "backward") {
893
- const projectMuDays = projectMu * unitToDays(unit);
894
- rows.push({
895
- text: `Expected start: ${addCalendarDays(anchor.date, -projectMuDays)}${sigmaParen}.`,
896
- level: 0
897
- });
898
- } else {
899
- const muStr = `${roundForCaption(projectMu)} ${pluralizeUnit(projectMu, unit)}`;
900
- rows.push({
901
- text: `Expected duration: ${muStr}${sigmaParen}.`,
902
- level: 0
903
- });
904
- }
905
- if (showMcDetail) {
906
- const percentiles = [
907
- { pct: 50, days: monteCarloResult.p50 },
908
- { pct: 80, days: monteCarloResult.p80 },
909
- { pct: 95, days: monteCarloResult.p95 }
910
- ];
911
- if (anchor?.kind === "forward") {
912
- for (const { pct, days } of percentiles) {
913
- const offsetDays = roundConservative(days, "forward");
914
- const date = addCalendarDays(anchor.date, offsetDays);
915
- rows.push({ text: `P${pct} finish: ${date}.`, level: 1 });
916
- }
917
- } else if (anchor?.kind === "backward") {
918
- for (const { pct, days } of percentiles) {
919
- const offsetDays = roundConservative(days, "backward");
920
- const date = addCalendarDays(anchor.date, -offsetDays);
921
- const isPast = today.length > 0 && date < today;
922
- const suffix = isPast ? " (latest-safe start has passed)" : "";
923
- const row = {
924
- text: `P${pct} latest-safe start: ${date}${suffix}`,
925
- level: 1
926
- };
927
- if (isPast) row.isPast = true;
928
- rows.push(row);
929
- }
930
- } else {
931
- for (const { pct, days } of percentiles) {
932
- const v = fromDays(days, unit, sprintDays);
933
- rows.push({ text: `P${pct}: ${formatPercentile(v, unit)}.`, level: 1 });
934
- }
935
- }
936
- }
937
- if (mc && projectSigma === 0) {
938
- const filtered = rows.filter(
939
- (r) => r.text.startsWith("Expected ")
940
- );
941
- filtered.push({
942
- text: "(No variance in estimates \u2014 all activities have O = M = P.)",
943
- level: 0
944
- });
945
- return filtered;
946
- }
947
- if (trialsClamped) {
948
- rows.push({
949
- text: "Insufficient trials configured (`trials` < 100) \u2014 falling back to deterministic analysis.",
950
- level: 0
951
- });
952
- }
953
- return rows;
954
- }
955
832
  function buildProjectSubtitle(input) {
956
833
  const anchor = input.anchor ?? null;
957
834
  const { projectMu, projectSigma, unit } = input;
958
835
  const sigmaPositive = projectSigma !== null && projectSigma > 0;
959
- const sigmaParen = sigmaPositive ? ` (\xB1 ${roundForCaption(projectSigma)})` : "";
836
+ const sigmaParen = sigmaPositive && input.mcRan !== false ? ` (\xB1 ${formatPercentile(projectSigma, unit)})` : "";
960
837
  if (projectMu === null) {
961
838
  if (anchor?.kind === "forward") {
962
839
  return `Expected finish: ? \xB7 \u2248 ? ${pluralizeUnit(2, unit)} of work`;
@@ -1036,7 +913,6 @@ function emptyResolved(parsed, diagnostics) {
1036
913
  })),
1037
914
  tagGroups: parsed.tagGroups.slice(),
1038
915
  mode: "analytical",
1039
- summaryRows: null,
1040
916
  projectSubtitle: null,
1041
917
  projectMu: null,
1042
918
  projectSigma: null,
@@ -1056,7 +932,6 @@ export {
1056
932
  simulateCanonical,
1057
933
  simulateFast,
1058
934
  analyzePert,
1059
- buildSummary,
1060
935
  buildProjectSubtitle
1061
936
  };
1062
- //# sourceMappingURL=chunk-2PU5XWLA.js.map
937
+ //# sourceMappingURL=chunk-3SQJZMPO.js.map
@@ -8,7 +8,7 @@ import {
8
8
  tagAttrKey,
9
9
  validateTagGroupNames,
10
10
  validateTagValues
11
- } from "./chunk-4FKEI4MF.js";
11
+ } from "./chunk-76LHNLGX.js";
12
12
  import {
13
13
  TREEMAP_REGISTRY,
14
14
  extractColor,
@@ -21,7 +21,7 @@ import {
21
21
  stripQuotes,
22
22
  warnUnknownMetaKeys,
23
23
  withTagAliases
24
- } from "./chunk-MK55PZVB.js";
24
+ } from "./chunk-M5OOAP65.js";
25
25
  import {
26
26
  emit,
27
27
  formatDgmoError,
@@ -445,4 +445,4 @@ export {
445
445
  TREEMAP_DIAGNOSTICS,
446
446
  parseTreemap
447
447
  };
448
- //# sourceMappingURL=chunk-4K5H6LON.js.map
448
+ //# sourceMappingURL=chunk-4YER7UCV.js.map
@@ -8,14 +8,14 @@ import {
8
8
  resolveActiveTagGroup,
9
9
  stripDefaultModifier,
10
10
  tagAttrKey
11
- } from "./chunk-4FKEI4MF.js";
11
+ } from "./chunk-76LHNLGX.js";
12
12
  import {
13
13
  extractColor,
14
14
  fillModeFromToken,
15
15
  measureIndent,
16
16
  parseFirstLine,
17
17
  splitNameAndMeta
18
- } from "./chunk-MK55PZVB.js";
18
+ } from "./chunk-M5OOAP65.js";
19
19
  import {
20
20
  makeDgmoError,
21
21
  makeFail
@@ -392,4 +392,4 @@ function parseBracket(content, palette) {
392
392
  export {
393
393
  parseBracket
394
394
  };
395
- //# sourceMappingURL=chunk-BVNTXVYJ.js.map
395
+ //# sourceMappingURL=chunk-5PFNUDXR.js.map
@@ -14,15 +14,15 @@ import {
14
14
  } from "./chunk-FJ57274M.js";
15
15
  import {
16
16
  layoutInlineHeader
17
- } from "./chunk-YJMWEZOB.js";
17
+ } from "./chunk-MG3DE3VO.js";
18
18
  import {
19
19
  TITLE_FONT_SIZE,
20
20
  TITLE_FONT_WEIGHT,
21
21
  TITLE_Y
22
- } from "./chunk-A4GOY3PE.js";
22
+ } from "./chunk-DEW62ON3.js";
23
23
  import {
24
24
  renderIntegratedLegend
25
- } from "./chunk-O7ZKDUDX.js";
25
+ } from "./chunk-QT5UMFPE.js";
26
26
  import {
27
27
  getLegendExtent,
28
28
  getMaxLegendReservedHeight
@@ -42,12 +42,12 @@ import {
42
42
  import {
43
43
  resolveTagColor,
44
44
  tagAttrKey
45
- } from "./chunk-4FKEI4MF.js";
45
+ } from "./chunk-76LHNLGX.js";
46
46
  import {
47
47
  fillModeFromOptions,
48
48
  legendInlineRequested,
49
49
  legendSuppressed
50
- } from "./chunk-MK55PZVB.js";
50
+ } from "./chunk-M5OOAP65.js";
51
51
  import {
52
52
  contrastText,
53
53
  mix,
@@ -317,4 +317,4 @@ export {
317
317
  renderFamilyForExport,
318
318
  renderFamily
319
319
  };
320
- //# sourceMappingURL=chunk-OR3OX32W.js.map
320
+ //# sourceMappingURL=chunk-76IBFEYW.js.map
@@ -2,7 +2,7 @@ import {
2
2
  peelQuotedName,
3
3
  stripQuotes,
4
4
  tokenizeQuoteAware
5
- } from "./chunk-MK55PZVB.js";
5
+ } from "./chunk-M5OOAP65.js";
6
6
  import {
7
7
  CATEGORICAL_COLOR_ORDER,
8
8
  RECOGNIZED_COLOR_NAMES,
@@ -290,4 +290,4 @@ export {
290
290
  activeTagNoMatchMessage,
291
291
  matchTagBlockHeading
292
292
  };
293
- //# sourceMappingURL=chunk-4FKEI4MF.js.map
293
+ //# sourceMappingURL=chunk-76LHNLGX.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  extractColor,
3
3
  measureIndent
4
- } from "./chunk-MK55PZVB.js";
4
+ } from "./chunk-M5OOAP65.js";
5
5
  import {
6
6
  makeDgmoError
7
7
  } from "./chunk-5SI6T5A5.js";
@@ -73,4 +73,4 @@ function tryCollectNote(lines, index, indent, palette, diagnostics) {
73
73
  export {
74
74
  tryCollectNote
75
75
  };
76
- //# sourceMappingURL=chunk-JLSGQMRA.js.map
76
+ //# sourceMappingURL=chunk-76NHL5UG.js.map
@@ -2,7 +2,7 @@ import {
2
2
  extractColor,
3
3
  measureIndent,
4
4
  parseFirstLine
5
- } from "./chunk-MK55PZVB.js";
5
+ } from "./chunk-M5OOAP65.js";
6
6
  import {
7
7
  emit,
8
8
  formatDgmoError,
@@ -507,4 +507,4 @@ export {
507
507
  VERSION_CONTROL_DIAGNOSTICS,
508
508
  parseVersionControl
509
509
  };
510
- //# sourceMappingURL=chunk-KUDYLU3M.js.map
510
+ //# sourceMappingURL=chunk-7BMX2M3F.js.map
@@ -22,15 +22,15 @@ import {
22
22
  } from "./chunk-24YPR5EH.js";
23
23
  import {
24
24
  layoutInlineHeader
25
- } from "./chunk-YJMWEZOB.js";
25
+ } from "./chunk-MG3DE3VO.js";
26
26
  import {
27
27
  TITLE_FONT_SIZE,
28
28
  TITLE_FONT_WEIGHT,
29
29
  TITLE_Y
30
- } from "./chunk-A4GOY3PE.js";
30
+ } from "./chunk-DEW62ON3.js";
31
31
  import {
32
32
  renderIntegratedLegend
33
- } from "./chunk-O7ZKDUDX.js";
33
+ } from "./chunk-QT5UMFPE.js";
34
34
  import {
35
35
  getLegendExtent,
36
36
  getMaxLegendReservedHeight
@@ -45,12 +45,12 @@ import {
45
45
  } from "./chunk-MTGGOCND.js";
46
46
  import {
47
47
  resolveTagColor
48
- } from "./chunk-4FKEI4MF.js";
48
+ } from "./chunk-76LHNLGX.js";
49
49
  import {
50
50
  fillModeFromOptions,
51
51
  legendInlineRequested,
52
52
  legendSuppressed
53
- } from "./chunk-MK55PZVB.js";
53
+ } from "./chunk-M5OOAP65.js";
54
54
  import {
55
55
  contrastText,
56
56
  mix,
@@ -838,4 +838,4 @@ export {
838
838
  renderBoxesAndLines,
839
839
  renderBoxesAndLinesForExport
840
840
  };
841
- //# sourceMappingURL=chunk-FQDH6AL3.js.map
841
+ //# sourceMappingURL=chunk-7EZ5AKBK.js.map
@@ -25,17 +25,17 @@ import {
25
25
  } from "./chunk-24YPR5EH.js";
26
26
  import {
27
27
  layoutInlineHeader
28
- } from "./chunk-YJMWEZOB.js";
28
+ } from "./chunk-MG3DE3VO.js";
29
29
  import {
30
30
  serializeSvg
31
31
  } from "./chunk-RU2HHHYA.js";
32
32
  import {
33
33
  TITLE_FONT_SIZE,
34
34
  TITLE_FONT_WEIGHT
35
- } from "./chunk-A4GOY3PE.js";
35
+ } from "./chunk-DEW62ON3.js";
36
36
  import {
37
37
  renderIntegratedLegend
38
- } from "./chunk-O7ZKDUDX.js";
38
+ } from "./chunk-QT5UMFPE.js";
39
39
  import {
40
40
  getLegendExtent,
41
41
  getMaxLegendReservedHeight
@@ -59,12 +59,12 @@ import {
59
59
  } from "./chunk-IYULMRBE.js";
60
60
  import {
61
61
  tagAttrKey
62
- } from "./chunk-4FKEI4MF.js";
62
+ } from "./chunk-76LHNLGX.js";
63
63
  import {
64
64
  fillModeFromOptions,
65
65
  legendInlineRequested,
66
66
  legendSuppressed
67
- } from "./chunk-MK55PZVB.js";
67
+ } from "./chunk-M5OOAP65.js";
68
68
  import {
69
69
  contrastText,
70
70
  mix,
@@ -449,8 +449,8 @@ function renderLegend(parent, legendGroups, palette, isDark, activeTagGroup, fix
449
449
  }
450
450
  }
451
451
  async function renderSitemapForExport(content, theme, palette) {
452
- const { parseSitemap } = await import("./parser-XS7DL63K.js");
453
- const { layoutSitemap } = await import("./layout-4URV4OXF.js");
452
+ const { parseSitemap } = await import("./parser-2GMHFSTS.js");
453
+ const { layoutSitemap } = await import("./layout-VUZ3MLOI.js");
454
454
  const { getPalette } = await import("./palettes-54YSI3IX.js");
455
455
  const isDark = theme === "dark";
456
456
  const effectivePalette = palette ?? (isDark ? getPalette("nord").dark : getPalette("nord").light);
@@ -500,4 +500,4 @@ export {
500
500
  renderSitemap,
501
501
  renderSitemapForExport
502
502
  };
503
- //# sourceMappingURL=chunk-CLKRRKV6.js.map
503
+ //# sourceMappingURL=chunk-7G4XMHDB.js.map
@@ -17,7 +17,7 @@ import {
17
17
  stripDefaultModifier,
18
18
  validateTagGroupNames,
19
19
  validateTagValues
20
- } from "./chunk-4FKEI4MF.js";
20
+ } from "./chunk-76LHNLGX.js";
21
21
  import {
22
22
  AliasRegistry,
23
23
  FILL_FAMILY_TOKENS,
@@ -31,7 +31,7 @@ import {
31
31
  splitNameAndMeta,
32
32
  warnUnknownMetaKeys,
33
33
  withTagAliases
34
- } from "./chunk-MK55PZVB.js";
34
+ } from "./chunk-M5OOAP65.js";
35
35
  import {
36
36
  NAME_DIAGNOSTIC_CODES,
37
37
  formatDgmoError,
@@ -49,7 +49,8 @@ var KNOWN_SEQ_BOOLEANS = /* @__PURE__ */ new Set([
49
49
  "fill-outline",
50
50
  "no-title",
51
51
  "no-legend",
52
- "legend-inline"
52
+ "legend-inline",
53
+ "autonumber"
53
54
  ]);
54
55
  var NO_PREFIX_ONLY_BOOLEANS = /* @__PURE__ */ new Set(["activations"]);
55
56
  var VALID_PARTICIPANT_TYPES = /* @__PURE__ */ new Set([
@@ -1071,4 +1072,4 @@ export {
1071
1072
  parseSequenceDgmo,
1072
1073
  looksLikeSequence
1073
1074
  };
1074
- //# sourceMappingURL=chunk-3AXUJ5PT.js.map
1075
+ //# sourceMappingURL=chunk-7NSNE52V.js.map
@@ -8,15 +8,15 @@ import {
8
8
  import {
9
9
  INLINE_HEADER_PAD,
10
10
  layoutInlineHeader
11
- } from "./chunk-YJMWEZOB.js";
11
+ } from "./chunk-MG3DE3VO.js";
12
12
  import {
13
13
  TITLE_FONT_SIZE,
14
14
  TITLE_FONT_WEIGHT,
15
15
  TITLE_Y
16
- } from "./chunk-A4GOY3PE.js";
16
+ } from "./chunk-DEW62ON3.js";
17
17
  import {
18
18
  renderIntegratedLegend
19
- } from "./chunk-O7ZKDUDX.js";
19
+ } from "./chunk-QT5UMFPE.js";
20
20
  import {
21
21
  controlsGroupCapsuleWidth,
22
22
  getLegendExtent,
@@ -52,7 +52,7 @@ import {
52
52
  resolveActiveTagGroup,
53
53
  resolveTagColor,
54
54
  tagAttrKey
55
- } from "./chunk-4FKEI4MF.js";
55
+ } from "./chunk-76LHNLGX.js";
56
56
  import {
57
57
  contrastText,
58
58
  getSeriesColors,
@@ -2152,4 +2152,4 @@ export {
2152
2152
  renderGantt,
2153
2153
  buildTagLaneRowList
2154
2154
  };
2155
- //# sourceMappingURL=chunk-XVJWAE2F.js.map
2155
+ //# sourceMappingURL=chunk-AFR6GWXD.js.map
@@ -4,7 +4,7 @@ import {
4
4
  layoutC4Containers,
5
5
  layoutC4Context,
6
6
  layoutC4Deployment
7
- } from "./chunk-RYHZFP7Y.js";
7
+ } from "./chunk-FPRMP6YA.js";
8
8
  import {
9
9
  renderInlineText
10
10
  } from "./chunk-WGC42WJU.js";
@@ -21,10 +21,10 @@ import {
21
21
  import {
22
22
  TITLE_FONT_SIZE,
23
23
  TITLE_FONT_WEIGHT
24
- } from "./chunk-A4GOY3PE.js";
24
+ } from "./chunk-DEW62ON3.js";
25
25
  import {
26
26
  renderIntegratedLegend
27
- } from "./chunk-O7ZKDUDX.js";
27
+ } from "./chunk-QT5UMFPE.js";
28
28
  import {
29
29
  FONT_FAMILY
30
30
  } from "./chunk-UTCPNJND.js";
@@ -37,16 +37,16 @@ import {
37
37
  } from "./chunk-MTGGOCND.js";
38
38
  import {
39
39
  parseC4
40
- } from "./chunk-I4YT5KL6.js";
40
+ } from "./chunk-ZM27UI5O.js";
41
41
  import {
42
42
  preprocessDescriptionLine
43
43
  } from "./chunk-IYULMRBE.js";
44
44
  import {
45
45
  tagAttrKey
46
- } from "./chunk-4FKEI4MF.js";
46
+ } from "./chunk-76LHNLGX.js";
47
47
  import {
48
48
  fillModeFromOptions
49
- } from "./chunk-MK55PZVB.js";
49
+ } from "./chunk-M5OOAP65.js";
50
50
  import {
51
51
  contrastText,
52
52
  mix,
@@ -1039,4 +1039,4 @@ export {
1039
1039
  renderC4Deployment,
1040
1040
  renderC4DeploymentForExport
1041
1041
  };
1042
- //# sourceMappingURL=chunk-25LXU4OQ.js.map
1042
+ //# sourceMappingURL=chunk-AYM472K3.js.map
@@ -11,10 +11,10 @@ import {
11
11
  TITLE_FONT_SIZE,
12
12
  TITLE_FONT_WEIGHT,
13
13
  TITLE_Y
14
- } from "./chunk-A4GOY3PE.js";
14
+ } from "./chunk-DEW62ON3.js";
15
15
  import {
16
16
  renderIntegratedLegend
17
- } from "./chunk-O7ZKDUDX.js";
17
+ } from "./chunk-QT5UMFPE.js";
18
18
  import {
19
19
  FONT_FAMILY
20
20
  } from "./chunk-UTCPNJND.js";
@@ -27,7 +27,7 @@ import {
27
27
  } from "./chunk-MTGGOCND.js";
28
28
  import {
29
29
  fillModeFromOptions
30
- } from "./chunk-MK55PZVB.js";
30
+ } from "./chunk-M5OOAP65.js";
31
31
  import {
32
32
  contrastText,
33
33
  shapeFill
@@ -985,4 +985,4 @@ export {
985
985
  renderCycle,
986
986
  renderCycleForExport
987
987
  };
988
- //# sourceMappingURL=chunk-K3O2CZTD.js.map
988
+ //# sourceMappingURL=chunk-BCB24FG7.js.map
@@ -12,7 +12,7 @@ import {
12
12
  import {
13
13
  TITLE_FONT_SIZE,
14
14
  TITLE_Y
15
- } from "./chunk-A4GOY3PE.js";
15
+ } from "./chunk-DEW62ON3.js";
16
16
  import {
17
17
  compactNumber,
18
18
  computeLegendLayout
@@ -22,7 +22,7 @@ import {
22
22
  } from "./chunk-YT5ICQ4R.js";
23
23
  import {
24
24
  tagAttrKey
25
- } from "./chunk-4FKEI4MF.js";
25
+ } from "./chunk-76LHNLGX.js";
26
26
  import {
27
27
  contrastRatio,
28
28
  mix,
@@ -3365,4 +3365,4 @@ export {
3365
3365
  albersSkewFallback,
3366
3366
  layoutMap
3367
3367
  };
3368
- //# sourceMappingURL=chunk-E27E4ZFN.js.map
3368
+ //# sourceMappingURL=chunk-BFTRW24X.js.map
@@ -9,7 +9,7 @@ import {
9
9
  stripDefaultModifier,
10
10
  tagAttrKey,
11
11
  validateTagGroupNames
12
- } from "./chunk-4FKEI4MF.js";
12
+ } from "./chunk-76LHNLGX.js";
13
13
  import {
14
14
  MAP_DIRECTIVE_KEY_SET,
15
15
  MAP_REGISTRY,
@@ -18,7 +18,7 @@ import {
18
18
  peelRampColors,
19
19
  splitNameAndMeta,
20
20
  withTagAliases
21
- } from "./chunk-MK55PZVB.js";
21
+ } from "./chunk-M5OOAP65.js";
22
22
  import {
23
23
  NEGATIVE_VALUE_DX,
24
24
  emit,
@@ -657,4 +657,4 @@ export {
657
657
  looksLikeMap,
658
658
  parseMap
659
659
  };
660
- //# sourceMappingURL=chunk-WPEHUSUQ.js.map
660
+ //# sourceMappingURL=chunk-BWJLLNUX.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  resolveTagColor,
3
3
  tagAttrKey
4
- } from "./chunk-4FKEI4MF.js";
4
+ } from "./chunk-76LHNLGX.js";
5
5
  import {
6
6
  mix
7
7
  } from "./chunk-GLREDNBA.js";
@@ -176,4 +176,4 @@ export {
176
176
  formatPct,
177
177
  buildLegend
178
178
  };
179
- //# sourceMappingURL=chunk-INOSOL3J.js.map
179
+ //# sourceMappingURL=chunk-C2WH3BMS.js.map
@@ -5,17 +5,17 @@ import {
5
5
  TITLE_FONT_SIZE,
6
6
  TITLE_FONT_WEIGHT,
7
7
  TITLE_Y
8
- } from "./chunk-A4GOY3PE.js";
8
+ } from "./chunk-DEW62ON3.js";
9
9
  import {
10
10
  FONT_FAMILY
11
11
  } from "./chunk-UTCPNJND.js";
12
12
  import {
13
13
  resolveTagColor,
14
14
  tagAttrKey
15
- } from "./chunk-4FKEI4MF.js";
15
+ } from "./chunk-76LHNLGX.js";
16
16
  import {
17
17
  fillModeFromOptions
18
- } from "./chunk-MK55PZVB.js";
18
+ } from "./chunk-M5OOAP65.js";
19
19
  import {
20
20
  contrastText,
21
21
  mix,
@@ -401,4 +401,4 @@ function drawCenteredLabel(g, label, cx, cy, fill, fontSize, tight = false, halo
401
401
  export {
402
402
  renderSwimlaneForExport
403
403
  };
404
- //# sourceMappingURL=chunk-TP42IN23.js.map
404
+ //# sourceMappingURL=chunk-CAPR5DET.js.map