@diagrammo/dgmo 0.25.0 → 0.25.1

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.
package/dist/auto.mjs CHANGED
@@ -16328,6 +16328,9 @@ function parseMap(content) {
16328
16328
  break;
16329
16329
  // ── Cosmetic `no-*` opt-outs: bare flags, idempotent (mirror `no-legend`,
16330
16330
  // no dup warning); each defaults the feature ON when absent. ──
16331
+ case "no-title":
16332
+ d.noTitle = true;
16333
+ break;
16331
16334
  case "no-legend":
16332
16335
  d.noLegend = true;
16333
16336
  break;
@@ -16349,6 +16352,9 @@ function parseMap(content) {
16349
16352
  case "no-colorize":
16350
16353
  d.noColorize = true;
16351
16354
  break;
16355
+ case "no-cluster-pois":
16356
+ d.noClusterPois = true;
16357
+ break;
16352
16358
  }
16353
16359
  }
16354
16360
  function handleTag(trimmed, line12) {
@@ -16650,13 +16656,15 @@ var init_parser12 = __esm({
16650
16656
  "locale",
16651
16657
  "active-tag",
16652
16658
  "caption",
16659
+ "no-title",
16653
16660
  "no-legend",
16654
16661
  "no-coastline",
16655
16662
  "no-relief",
16656
16663
  "no-context-labels",
16657
16664
  "no-region-labels",
16658
16665
  "no-poi-labels",
16659
- "no-colorize"
16666
+ "no-colorize",
16667
+ "no-cluster-pois"
16660
16668
  ]);
16661
16669
  }
16662
16670
  });
@@ -37366,18 +37374,10 @@ var init_layout11 = __esm({
37366
37374
  // src/pert/renderer.ts
37367
37375
  var renderer_exports11 = {};
37368
37376
  __export(renderer_exports11, {
37369
- PERT_LEGEND_PILL_HEIGHT: () => PERT_LEGEND_PILL_HEIGHT,
37370
- highlightPertCriticalPath: () => highlightPertCriticalPath,
37371
- highlightPertSet: () => highlightPertSet,
37372
37377
  measurePertAnalysisBlock: () => measurePertAnalysisBlock,
37373
- pertLegendBlockWidth: () => pertLegendBlockWidth,
37374
- pertLegendEntries: () => pertLegendEntries,
37375
- renderLegendBlock: () => renderLegendBlock,
37376
37378
  renderPert: () => renderPert,
37377
37379
  renderPertAnalysisBlock: () => renderPertAnalysisBlock,
37378
- renderPertForExport: () => renderPertForExport,
37379
- resetPertCriticalPath: () => resetPertCriticalPath,
37380
- resetPertHighlight: () => resetPertHighlight
37380
+ renderPertForExport: () => renderPertForExport
37381
37381
  });
37382
37382
  import * as d3Selection12 from "d3-selection";
37383
37383
  import * as d3Shape8 from "d3-shape";
@@ -37462,16 +37462,14 @@ function renderPert(container, resolved, layout, palette, isDark, options = {})
37462
37462
  const standaloneFieldLegendWidthForExport = layout.width;
37463
37463
  const analysisBlockHeight = analysisLayer.analysisHasContent ? CAPTION_TOP_GAP + analysisLayer.analysisRowHeight : 0;
37464
37464
  const fieldLegendBlockHeight = analysisLayer.fieldLegendStandalone ? CAPTION_TOP_GAP + fieldLegendHeightFor(standaloneFieldLegendWidthForExport) : 0;
37465
- const showTopLegend = options.showTopLegend ?? true;
37466
- const legendEntries = showTopLegend ? pertLegendEntries(resolved) : [];
37465
+ const showLegend = options.showLegend ?? true;
37467
37466
  const tagLegendActive = resolveActiveTagGroup(
37468
37467
  resolved.tagGroups,
37469
37468
  resolved.options.activeTag,
37470
37469
  options.activeTagOverride
37471
37470
  );
37472
- const showTagLegend = showTopLegend && resolved.tagGroups.length > 0;
37473
- const tagLegendBlockHeight = showTagLegend ? LEGEND_PILL_HEIGHT + LEGEND_BOTTOM_GAP : 0;
37474
- const legendBlockHeight = (legendEntries.length > 0 ? LEGEND_TOP_GAP + LEGEND_PILL_HEIGHT + LEGEND_BOTTOM_GAP : 0) + tagLegendBlockHeight;
37471
+ const showTagLegend = showLegend && resolved.tagGroups.length > 0;
37472
+ const legendBlockHeight = showTagLegend ? LEGEND_TOP_GAP + LEGEND_PILL_HEIGHT + LEGEND_BOTTOM_GAP : 0;
37475
37473
  const naturalChartWidth = layout.width + DIAGRAM_PADDING11 * 2;
37476
37474
  const minAnalysisRowW = analysisLayer.analysisHasContent ? analysisLayer.minContentWidth + 2 * DIAGRAM_PADDING11 : 0;
37477
37475
  const naturalWidth = Math.max(naturalChartWidth, minAnalysisRowW);
@@ -37494,8 +37492,7 @@ function renderPert(container, resolved, layout, palette, isDark, options = {})
37494
37492
  const sLegendTopGap = ctx.aesthetic(LEGEND_TOP_GAP);
37495
37493
  const sLegendBottomGap = ctx.aesthetic(LEGEND_BOTTOM_GAP);
37496
37494
  const sLegendPillHeight = ctx.structural(LEGEND_PILL_HEIGHT);
37497
- const sTagLegendBlockHeight = showTagLegend ? sLegendPillHeight + sLegendBottomGap : 0;
37498
- const sLegendBlockHeight = (legendEntries.length > 0 ? sLegendTopGap + sLegendPillHeight + sLegendBottomGap : 0) + sTagLegendBlockHeight;
37495
+ const sLegendBlockHeight = showTagLegend ? sLegendTopGap + sLegendPillHeight + sLegendBottomGap : 0;
37499
37496
  const sNodeRadius = ctx.structural(NODE_RADIUS2);
37500
37497
  const sNodeStrokeWidth = ctx.structural(NODE_STROKE_WIDTH10);
37501
37498
  const sNodeFontSize = ctx.text(NODE_FONT_SIZE4);
@@ -37527,17 +37524,8 @@ function renderPert(container, resolved, layout, palette, isDark, options = {})
37527
37524
  }
37528
37525
  const offsetX = Math.max(sDiagramPad, (svgW - layout.width) / 2);
37529
37526
  const offsetY = sDiagramPad + sTitleHeight + sLegendBlockHeight;
37530
- if (legendEntries.length > 0) {
37531
- renderLegendBlock(svg, legendEntries, {
37532
- x: 0,
37533
- y: sDiagramPad + sTitleHeight + sLegendTopGap,
37534
- width: svgW,
37535
- palette,
37536
- isDark
37537
- });
37538
- }
37539
37527
  if (showTagLegend) {
37540
- const tagLegendY = sDiagramPad + sTitleHeight + (legendEntries.length > 0 ? sLegendTopGap + sLegendPillHeight : sLegendTopGap);
37528
+ const tagLegendY = sDiagramPad + sTitleHeight + sLegendTopGap;
37541
37529
  renderTagLegendRow(svg, resolved, palette, isDark, {
37542
37530
  x: 0,
37543
37531
  y: tagLegendY,
@@ -37621,8 +37609,7 @@ function renderPertForExport(content, theme, palette, now) {
37621
37609
  }
37622
37610
  const captionBoxHeight = captionBullets.length > 0 ? captionBullets.length * CAPTION_LINE_HEIGHT + 2 * CAPTION_BOX_PADDING_Y + CAPTION_HEADER_BAND_HEIGHT : 0;
37623
37611
  const captionBlockHeight = captionBullets.length > 0 ? CAPTION_TOP_GAP + captionBoxHeight : 0;
37624
- const legendEntries = pertLegendEntries(resolved);
37625
- const legendBlockHeight = legendEntries.length > 0 ? LEGEND_TOP_GAP + LEGEND_PILL_HEIGHT + LEGEND_BOTTOM_GAP : 0;
37612
+ const legendBlockHeight = resolved.tagGroups.length > 0 ? LEGEND_TOP_GAP + LEGEND_PILL_HEIGHT + LEGEND_BOTTOM_GAP : 0;
37626
37613
  const exportWidth = layout.width + DIAGRAM_PADDING11 * 2;
37627
37614
  const exportHeight = layout.height + DIAGRAM_PADDING11 * 2 + titleHeight + legendBlockHeight + captionBlockHeight;
37628
37615
  const container = document.createElement("div");
@@ -38162,22 +38149,22 @@ function renderEdges2(root, resolved, layout, palette, collapsedSet, sc = {}) {
38162
38149
  if (srcGroup && tgtGroup && srcGroup === tgtGroup && collapsedSet.has(srcGroup)) {
38163
38150
  continue;
38164
38151
  }
38165
- const isCritical2 = criticalSet.has(e.source) && criticalSet.has(e.target);
38152
+ const isCritical = criticalSet.has(e.source) && criticalSet.has(e.target);
38166
38153
  let band;
38167
38154
  if (mcOn) {
38168
38155
  const sc2 = critById.get(e.source);
38169
38156
  const tc = critById.get(e.target);
38170
38157
  const minC = sc2 === null || tc === null || sc2 === void 0 || tc === void 0 ? null : Math.min(sc2, tc);
38171
38158
  band = criticalityBand(minC);
38172
- if (band === null && isCritical2) band = "red";
38159
+ if (band === null && isCritical) band = "red";
38173
38160
  } else {
38174
- band = isCritical2 ? "red" : null;
38161
+ band = isCritical ? "red" : null;
38175
38162
  }
38176
38163
  const path = lineGenerator6(e.points);
38177
38164
  if (!path) continue;
38178
38165
  const sESW = sc.edgeStrokeWidth ?? EDGE_STROKE_WIDTH10;
38179
38166
  const sELFS = sc.edgeLabelFontSize ?? 10;
38180
- layer.append("path").attr("class", "pert-edge").attr("d", path).attr("fill", "none").attr("stroke", bandColor(band, palette, palette.textMuted)).attr("stroke-width", sESW).attr("marker-end", `url(#${bandArrow(band)})`).attr("data-source", e.source).attr("data-target", e.target).attr("data-critical", String(isCritical2)).attr("data-critical-path", String(isCritical2)).attr("data-criticality-band", band ?? "");
38167
+ layer.append("path").attr("class", "pert-edge").attr("d", path).attr("fill", "none").attr("stroke", bandColor(band, palette, palette.textMuted)).attr("stroke-width", sESW).attr("marker-end", `url(#${bandArrow(band)})`).attr("data-source", e.source).attr("data-target", e.target).attr("data-critical", String(isCritical)).attr("data-critical-path", String(isCritical)).attr("data-criticality-band", band ?? "");
38181
38168
  const parsedEdge = edgeByKey.get(`${e.source}->${e.target}`);
38182
38169
  const labelText = parsedEdge ? formatEdgeLabel(parsedEdge) : null;
38183
38170
  if (labelText) {
@@ -38229,7 +38216,7 @@ function renderNodes2(root, _defs, resolved, layout, palette, isDark, sizing, on
38229
38216
  const r = byId.get(node.id);
38230
38217
  if (!r) continue;
38231
38218
  if (r.activity.groupId && collapsedSet.has(r.activity.groupId)) continue;
38232
- const isCritical2 = r.isCriticalPath;
38219
+ const isCritical = r.isCriticalPath;
38233
38220
  const isTbd = tbdSet.has(node.id);
38234
38221
  const dashArray = isTbd ? "4,3" : "none";
38235
38222
  const isTopMu = topMuIds.has(node.id);
@@ -38237,14 +38224,14 @@ function renderNodes2(root, _defs, resolved, layout, palette, isDark, sizing, on
38237
38224
  let band;
38238
38225
  if (mcOn) {
38239
38226
  band = criticalityBand(r.criticality);
38240
- if (band === null && isCritical2) band = "red";
38227
+ if (band === null && isCritical) band = "red";
38241
38228
  } else {
38242
- band = isCritical2 ? "red" : null;
38229
+ band = isCritical ? "red" : null;
38243
38230
  }
38244
38231
  const g = layer.append("g").attr("class", "pert-node").attr("transform", `translate(${node.x}, ${node.y})`).attr("data-activity-id", node.id).attr("data-line-number", String(r.activity.lineNumber)).attr(
38245
38232
  "data-group-id",
38246
38233
  r.activity.groupId !== void 0 ? r.activity.groupId : ""
38247
- ).attr("data-critical-path", String(isCritical2)).attr("data-criticality-band", band ?? "").attr("data-duration-rank", isTopMu ? "top" : isBottomMu ? "bottom" : "");
38234
+ ).attr("data-critical-path", String(isCritical)).attr("data-criticality-band", band ?? "").attr("data-duration-rank", isTopMu ? "top" : isBottomMu ? "bottom" : "");
38248
38235
  if (r.activity.tags) {
38249
38236
  for (const [tagKey, tagValue] of Object.entries(r.activity.tags)) {
38250
38237
  g.attr(`data-tag-${tagKey}`, String(tagValue).toLowerCase());
@@ -38554,69 +38541,6 @@ function computeAnchorPinSet(resolved) {
38554
38541
  }
38555
38542
  return pinned;
38556
38543
  }
38557
- function isCritical(el, mcOn) {
38558
- if (mcOn) {
38559
- return HIGHLIGHT_BANDS.has(el.getAttribute("data-criticality-band") ?? "");
38560
- }
38561
- return el.getAttribute("data-critical-path") === "true";
38562
- }
38563
- function isInHighlightSet(el, kind, mcOn) {
38564
- if (kind === "critical") return isCritical(el, mcOn);
38565
- if (kind === "milestone") {
38566
- return el.getAttribute("data-milestone") === "true";
38567
- }
38568
- return el.hasAttribute("data-anchor");
38569
- }
38570
- function highlightPertSet(container, kind) {
38571
- const svg = container.querySelector("svg");
38572
- if (!svg) return;
38573
- const mcOn = Array.from(svg.querySelectorAll(".pert-edge")).some((e) => {
38574
- const b = e.getAttribute("data-criticality-band");
38575
- return b !== null && b !== "" && b !== "red";
38576
- });
38577
- const candidates = svg.querySelectorAll(
38578
- ".pert-node, .pert-edge, .pert-group-collapsed"
38579
- );
38580
- let anyMatch = false;
38581
- for (const el of candidates) {
38582
- if (isInHighlightSet(el, kind, mcOn)) {
38583
- anyMatch = true;
38584
- break;
38585
- }
38586
- }
38587
- if (!anyMatch) return;
38588
- svg.setAttribute("data-pert-highlight-active", kind);
38589
- for (const el of svg.querySelectorAll(".pert-node, .pert-edge")) {
38590
- el.setAttribute(
38591
- "opacity",
38592
- isInHighlightSet(el, kind, mcOn) ? "1" : String(FADE_OPACITY)
38593
- );
38594
- }
38595
- for (const el of svg.querySelectorAll(".pert-group")) {
38596
- const inSet = el.classList.contains("pert-group-collapsed") && isInHighlightSet(el, kind, mcOn);
38597
- el.setAttribute(
38598
- "opacity",
38599
- inSet ? "1" : String(FADE_OPACITY)
38600
- );
38601
- }
38602
- }
38603
- function highlightPertCriticalPath(container) {
38604
- highlightPertSet(container, "critical");
38605
- }
38606
- function resetPertHighlight(container) {
38607
- const svg = container.querySelector("svg");
38608
- if (!svg) return;
38609
- svg.removeAttribute("data-pert-highlight-active");
38610
- svg.removeAttribute("data-critical-path-active");
38611
- for (const el of svg.querySelectorAll(
38612
- ".pert-node, .pert-edge, .pert-group"
38613
- )) {
38614
- el.removeAttribute("opacity");
38615
- }
38616
- }
38617
- function resetPertCriticalPath(container) {
38618
- resetPertHighlight(container);
38619
- }
38620
38544
  function anchorAnnotationText(resolved) {
38621
38545
  const anchor = resolved.options.anchor;
38622
38546
  if (anchor === null) return null;
@@ -38669,70 +38593,6 @@ function renderCaptionBlock(svg, bullets, args) {
38669
38593
  if (i > 0) tspan.attr("dy", CAPTION_LINE_HEIGHT);
38670
38594
  });
38671
38595
  }
38672
- function pertLegendEntries(resolved) {
38673
- const entries = [];
38674
- if (resolved.activities.length > 0) {
38675
- entries.push({ kind: "critical", label: "Critical Path" });
38676
- }
38677
- if (resolved.options.anchor !== null) {
38678
- entries.push({ kind: "anchor", label: "Anchor" });
38679
- }
38680
- if (resolved.activities.some((a) => a.activity.isMilestone)) {
38681
- entries.push({ kind: "milestone", label: "Milestone" });
38682
- }
38683
- return entries;
38684
- }
38685
- function legendSwatchWidth(kind) {
38686
- if (kind === "critical") return LEGEND_DOT_R * 2;
38687
- if (kind === "anchor") return PIN_ICON_W;
38688
- return LEGEND_FONT_SIZE;
38689
- }
38690
- function legendPillWidth(entry) {
38691
- const labelW = measureLegendText(entry.label, LEGEND_FONT_SIZE);
38692
- return Math.ceil(
38693
- LEGEND_PILL_PADDING_X + legendSwatchWidth(entry.kind) + LEGEND_SWATCH_GAP + labelW + LEGEND_PILL_PADDING_X
38694
- );
38695
- }
38696
- function legendNaturalWidth(entries) {
38697
- if (entries.length === 0) return 0;
38698
- let total = 0;
38699
- for (const e of entries) total += legendPillWidth(e);
38700
- total += (entries.length - 1) * LEGEND_PILL_GAP;
38701
- return total;
38702
- }
38703
- function pertLegendBlockWidth(entries) {
38704
- return legendNaturalWidth(entries);
38705
- }
38706
- function renderLegendBlock(svg, entries, args) {
38707
- if (entries.length === 0) return;
38708
- const { x, y, width, palette, isDark } = args;
38709
- const groupBg = isDark ? mix(palette.surface, palette.bg, 50) : mix(palette.surface, palette.bg, 30);
38710
- const block = svg.append("g").attr("class", "pert-legend").attr("data-pert-legend", "");
38711
- const totalW = legendNaturalWidth(entries);
38712
- let pillX = x + (width - totalW) / 2;
38713
- for (const entry of entries) {
38714
- const pillW = legendPillWidth(entry);
38715
- const pill = block.append("g").attr("class", "pert-legend-entry").attr("data-legend-entry", entry.kind).attr("transform", `translate(${pillX}, ${y})`).style("cursor", "pointer");
38716
- pill.append("rect").attr("class", "pert-legend-pill").attr("width", pillW).attr("height", LEGEND_PILL_HEIGHT).attr("rx", LEGEND_PILL_HEIGHT / 2).attr("ry", LEGEND_PILL_HEIGHT / 2).attr("fill", groupBg);
38717
- const swatchW = legendSwatchWidth(entry.kind);
38718
- const swatchCx = LEGEND_PILL_PADDING_X + swatchW / 2;
38719
- const swatchCy = LEGEND_PILL_HEIGHT / 2;
38720
- if (entry.kind === "critical") {
38721
- pill.append("circle").attr("class", "pert-legend-swatch").attr("cx", swatchCx).attr("cy", swatchCy).attr("r", LEGEND_DOT_R).attr("fill", palette.colors.red);
38722
- } else if (entry.kind === "anchor") {
38723
- drawAnchorPin(
38724
- pill,
38725
- swatchCx - PIN_ICON_W / 2,
38726
- swatchCy,
38727
- palette.textMuted
38728
- );
38729
- } else {
38730
- pill.append("text").attr("class", "pert-legend-swatch").attr("x", swatchCx).attr("y", swatchCy).attr("text-anchor", "middle").attr("dominant-baseline", "central").attr("font-family", FONT_FAMILY).attr("font-size", LEGEND_FONT_SIZE + 1).attr("fill", palette.textMuted).text("\u25C6");
38731
- }
38732
- pill.append("text").attr("class", "pert-legend-label").attr("x", LEGEND_PILL_PADDING_X + swatchW + LEGEND_SWATCH_GAP).attr("y", swatchCy).attr("dominant-baseline", "central").attr("font-family", FONT_FAMILY).attr("font-size", LEGEND_FONT_SIZE).attr("font-weight", 500).attr("fill", palette.textMuted).text(entry.label);
38733
- pillX += pillW + LEGEND_PILL_GAP;
38734
- }
38735
- }
38736
38596
  function renderTagLegendRow(svg, resolved, palette, isDark, args) {
38737
38597
  if (resolved.tagGroups.length === 0) return;
38738
38598
  const { x, y, width, activeGroup, exportMode } = args;
@@ -39179,7 +39039,7 @@ function formatScurveDate(iso) {
39179
39039
  if (month < 0 || month > 11 || isNaN(day)) return iso;
39180
39040
  return `${SCURVE_MONTH_NAMES[month]} ${day}`;
39181
39041
  }
39182
- var DIAGRAM_PADDING11, NODE_FONT_SIZE4, NODE_CELL_FONT_SIZE2, NODE_RADIUS2, NODE_STROKE_WIDTH10, NODE_TOP_ROW_HEIGHT, NODE_BOTTOM_ROW_HEIGHT, EDGE_STROKE_WIDTH10, ARROWHEAD_W4, ARROWHEAD_H4, CONTAINER_RADIUS3, CONTAINER_LABEL_FONT_SIZE3, CONTAINER_HEADER_HEIGHT3, COLLAPSE_BAR_HEIGHT7, FADE_OPACITY, DURATION_FADE_OPACITY, PIN_ICON_W, PIN_ICON_H, LEGEND_PILL_HEIGHT, LEGEND_PILL_PADDING_X, LEGEND_PILL_GAP, LEGEND_SWATCH_GAP, LEGEND_FONT_SIZE, LEGEND_TOP_GAP, LEGEND_BOTTOM_GAP, FIELD_LEGEND_HEADER_BAND_HEIGHT, FIELD_LEGEND_CELL_VPAD, FIELD_LEGEND_LABEL_FONT_SIZE, FIELD_LEGEND_DESC_FONT_SIZE, FIELD_LEGEND_DESC_LINE_HEIGHT, FIELD_LEGEND_LABEL_DESC_GAP, FIELD_LEGEND_CELLS, lineGenerator6, FIELD_LEGEND_MIN_W, HIGHLIGHT_BANDS, SUB_BULLET_INDENT, CAPTION_HEADER_BAND_HEIGHT, TORNADO_TOP_N, TORNADO_ROW_HEIGHT, TORNADO_NAME_COL_W, TORNADO_BAR_FONT_SIZE, TORNADO_BAR_HEIGHT, SUMMARY_MIN_W, SUMMARY_MAX_W, ANALYSIS_GAP, COL1_VSTACK_GAP, TORNADO_MIN_W, SCURVE_MIN_W, SCURVE_BOX_HEIGHT, SCURVE_PLOT_PADDING_X, SCURVE_PLOT_PADDING_RIGHT, SCURVE_PLOT_PADDING_BOTTOM, SCURVE_TICK_FONT_SIZE, SCURVE_PERCENTILE_RADIUS, PERT_LEGEND_PILL_HEIGHT, DAYS_PER_UNIT, SCURVE_MONTH_NAMES, UNIT_TO_DAYS_LOCAL2;
39042
+ var DIAGRAM_PADDING11, NODE_FONT_SIZE4, NODE_CELL_FONT_SIZE2, NODE_RADIUS2, NODE_STROKE_WIDTH10, NODE_TOP_ROW_HEIGHT, NODE_BOTTOM_ROW_HEIGHT, EDGE_STROKE_WIDTH10, ARROWHEAD_W4, ARROWHEAD_H4, CONTAINER_RADIUS3, CONTAINER_LABEL_FONT_SIZE3, CONTAINER_HEADER_HEIGHT3, COLLAPSE_BAR_HEIGHT7, DURATION_FADE_OPACITY, PIN_ICON_W, PIN_ICON_H, LEGEND_PILL_HEIGHT, LEGEND_TOP_GAP, LEGEND_BOTTOM_GAP, FIELD_LEGEND_HEADER_BAND_HEIGHT, FIELD_LEGEND_CELL_VPAD, FIELD_LEGEND_LABEL_FONT_SIZE, FIELD_LEGEND_DESC_FONT_SIZE, FIELD_LEGEND_DESC_LINE_HEIGHT, FIELD_LEGEND_LABEL_DESC_GAP, FIELD_LEGEND_CELLS, lineGenerator6, FIELD_LEGEND_MIN_W, SUB_BULLET_INDENT, CAPTION_HEADER_BAND_HEIGHT, TORNADO_TOP_N, TORNADO_ROW_HEIGHT, TORNADO_NAME_COL_W, TORNADO_BAR_FONT_SIZE, TORNADO_BAR_HEIGHT, SUMMARY_MIN_W, SUMMARY_MAX_W, ANALYSIS_GAP, COL1_VSTACK_GAP, TORNADO_MIN_W, SCURVE_MIN_W, SCURVE_BOX_HEIGHT, SCURVE_PLOT_PADDING_X, SCURVE_PLOT_PADDING_RIGHT, SCURVE_PLOT_PADDING_BOTTOM, SCURVE_TICK_FONT_SIZE, SCURVE_PERCENTILE_RADIUS, DAYS_PER_UNIT, SCURVE_MONTH_NAMES, UNIT_TO_DAYS_LOCAL2;
39183
39043
  var init_renderer11 = __esm({
39184
39044
  "src/pert/renderer.ts"() {
39185
39045
  "use strict";
@@ -39208,15 +39068,10 @@ var init_renderer11 = __esm({
39208
39068
  CONTAINER_LABEL_FONT_SIZE3 = 13;
39209
39069
  CONTAINER_HEADER_HEIGHT3 = 28;
39210
39070
  COLLAPSE_BAR_HEIGHT7 = 6;
39211
- FADE_OPACITY = 0.15;
39212
39071
  DURATION_FADE_OPACITY = 0.55;
39213
39072
  PIN_ICON_W = 13;
39214
39073
  PIN_ICON_H = 13;
39215
39074
  LEGEND_PILL_HEIGHT = LEGEND_HEIGHT;
39216
- LEGEND_PILL_PADDING_X = 8;
39217
- LEGEND_PILL_GAP = 8;
39218
- LEGEND_SWATCH_GAP = LEGEND_ENTRY_DOT_GAP;
39219
- LEGEND_FONT_SIZE = LEGEND_PILL_FONT_SIZE;
39220
39075
  LEGEND_TOP_GAP = 12;
39221
39076
  LEGEND_BOTTOM_GAP = 12;
39222
39077
  FIELD_LEGEND_HEADER_BAND_HEIGHT = 26;
@@ -39253,7 +39108,6 @@ var init_renderer11 = __esm({
39253
39108
  ];
39254
39109
  lineGenerator6 = d3Shape8.line().x((d) => d.x).y((d) => d.y).curve(d3Shape8.curveBasis);
39255
39110
  FIELD_LEGEND_MIN_W = 220;
39256
- HIGHLIGHT_BANDS = /* @__PURE__ */ new Set(["red", "orange", "yellow"]);
39257
39111
  SUB_BULLET_INDENT = 20;
39258
39112
  CAPTION_HEADER_BAND_HEIGHT = CAPTION_LINE_HEIGHT + 8;
39259
39113
  TORNADO_TOP_N = 10;
@@ -39273,7 +39127,6 @@ var init_renderer11 = __esm({
39273
39127
  SCURVE_PLOT_PADDING_BOTTOM = 44;
39274
39128
  SCURVE_TICK_FONT_SIZE = 13;
39275
39129
  SCURVE_PERCENTILE_RADIUS = 4;
39276
- PERT_LEGEND_PILL_HEIGHT = LEGEND_PILL_HEIGHT;
39277
39130
  DAYS_PER_UNIT = {
39278
39131
  min: 1 / (60 * 24),
39279
39132
  h: 1 / 24,
@@ -40800,31 +40653,31 @@ function renderGantt(container, resolved, palette, isDark, options, exportDims)
40800
40653
  todayHoverG.on("mouseenter", () => {
40801
40654
  g.selectAll(".gantt-task").attr(
40802
40655
  "opacity",
40803
- FADE_OPACITY2
40656
+ FADE_OPACITY
40804
40657
  );
40805
40658
  g.selectAll(".gantt-milestone").attr(
40806
40659
  "opacity",
40807
- FADE_OPACITY2
40660
+ FADE_OPACITY
40808
40661
  );
40809
40662
  g.selectAll(
40810
40663
  ".gantt-group-bar, .gantt-group-summary"
40811
- ).attr("opacity", FADE_OPACITY2);
40812
- svg.selectAll(".gantt-group-label").attr("opacity", FADE_OPACITY2);
40813
- svg.selectAll(".gantt-task-label").attr("opacity", FADE_OPACITY2);
40814
- svg.selectAll(".gantt-lane-header").attr("opacity", FADE_OPACITY2);
40664
+ ).attr("opacity", FADE_OPACITY);
40665
+ svg.selectAll(".gantt-group-label").attr("opacity", FADE_OPACITY);
40666
+ svg.selectAll(".gantt-task-label").attr("opacity", FADE_OPACITY);
40667
+ svg.selectAll(".gantt-lane-header").attr("opacity", FADE_OPACITY);
40815
40668
  g.selectAll(
40816
40669
  ".gantt-lane-band, .gantt-lane-accent, .gantt-lane-band-group"
40817
- ).attr("opacity", FADE_OPACITY2);
40670
+ ).attr("opacity", FADE_OPACITY);
40818
40671
  g.selectAll(
40819
40672
  ".gantt-dep-arrow, .gantt-dep-arrowhead"
40820
- ).attr("opacity", FADE_OPACITY2);
40673
+ ).attr("opacity", FADE_OPACITY);
40821
40674
  g.selectAll(".gantt-era-group").attr(
40822
40675
  "opacity",
40823
- FADE_OPACITY2
40676
+ FADE_OPACITY
40824
40677
  );
40825
40678
  g.selectAll(".gantt-marker-group").attr(
40826
40679
  "opacity",
40827
- FADE_OPACITY2
40680
+ FADE_OPACITY
40828
40681
  );
40829
40682
  showGanttDateIndicators(
40830
40683
  g,
@@ -41056,28 +40909,28 @@ function applyCriticalPathHighlight(svg, chartG) {
41056
40909
  const el = d3Selection13.select(this);
41057
40910
  el.attr(
41058
40911
  "opacity",
41059
- el.attr("data-critical-path") === "true" ? 1 : FADE_OPACITY2
40912
+ el.attr("data-critical-path") === "true" ? 1 : FADE_OPACITY
41060
40913
  );
41061
40914
  });
41062
- chartG.selectAll(".gantt-milestone").attr("opacity", FADE_OPACITY2);
41063
- chartG.selectAll(".gantt-group-bar, .gantt-group-summary").attr("opacity", FADE_OPACITY2);
40915
+ chartG.selectAll(".gantt-milestone").attr("opacity", FADE_OPACITY);
40916
+ chartG.selectAll(".gantt-group-bar, .gantt-group-summary").attr("opacity", FADE_OPACITY);
41064
40917
  svg.selectAll(".gantt-task-label").each(function() {
41065
40918
  const el = d3Selection13.select(this);
41066
40919
  el.attr(
41067
40920
  "opacity",
41068
- el.attr("data-critical-path") === "true" ? 1 : FADE_OPACITY2
40921
+ el.attr("data-critical-path") === "true" ? 1 : FADE_OPACITY
41069
40922
  );
41070
40923
  });
41071
- svg.selectAll(".gantt-group-label").attr("opacity", FADE_OPACITY2);
41072
- svg.selectAll(".gantt-group-band-bg, .gantt-group-band-accent").attr("opacity", FADE_OPACITY2);
41073
- svg.selectAll(".gantt-lane-header").attr("opacity", FADE_OPACITY2);
41074
- svg.selectAll(".gantt-lane-band-bg, .gantt-lane-band-accent").attr("opacity", FADE_OPACITY2);
41075
- chartG.selectAll(".gantt-lane-band, .gantt-lane-accent").attr("opacity", FADE_OPACITY2);
40924
+ svg.selectAll(".gantt-group-label").attr("opacity", FADE_OPACITY);
40925
+ svg.selectAll(".gantt-group-band-bg, .gantt-group-band-accent").attr("opacity", FADE_OPACITY);
40926
+ svg.selectAll(".gantt-lane-header").attr("opacity", FADE_OPACITY);
40927
+ svg.selectAll(".gantt-lane-band-bg, .gantt-lane-band-accent").attr("opacity", FADE_OPACITY);
40928
+ chartG.selectAll(".gantt-lane-band, .gantt-lane-accent").attr("opacity", FADE_OPACITY);
41076
40929
  chartG.selectAll(".gantt-dep-arrow, .gantt-dep-arrowhead").each(function() {
41077
40930
  const el = d3Selection13.select(this);
41078
40931
  el.attr(
41079
40932
  "opacity",
41080
- el.attr("data-critical-path") === "true" ? 0.7 : FADE_OPACITY2
40933
+ el.attr("data-critical-path") === "true" ? 0.7 : FADE_OPACITY
41081
40934
  );
41082
40935
  });
41083
40936
  }
@@ -41256,27 +41109,27 @@ function renderTagLegend(svg, chartG, tagGroups, activeGroupName, chartLeftMargi
41256
41109
  const el = d3Selection13.select(this);
41257
41110
  el.attr(
41258
41111
  "opacity",
41259
- el.attr(`data-tag-${tagKey}`) === ev ? 1 : FADE_OPACITY2
41112
+ el.attr(`data-tag-${tagKey}`) === ev ? 1 : FADE_OPACITY
41260
41113
  );
41261
41114
  });
41262
- chartG.selectAll(".gantt-milestone").attr("opacity", FADE_OPACITY2);
41263
- chartG.selectAll(".gantt-group-bar, .gantt-group-summary").attr("opacity", FADE_OPACITY2);
41115
+ chartG.selectAll(".gantt-milestone").attr("opacity", FADE_OPACITY);
41116
+ chartG.selectAll(".gantt-group-bar, .gantt-group-summary").attr("opacity", FADE_OPACITY);
41264
41117
  svg.selectAll(".gantt-task-label").each(function() {
41265
41118
  const el = d3Selection13.select(this);
41266
41119
  el.attr(
41267
41120
  "opacity",
41268
- el.attr(`data-tag-${tagKey}`) === ev ? 1 : FADE_OPACITY2
41121
+ el.attr(`data-tag-${tagKey}`) === ev ? 1 : FADE_OPACITY
41269
41122
  );
41270
41123
  });
41271
- svg.selectAll(".gantt-group-label").attr("opacity", FADE_OPACITY2);
41124
+ svg.selectAll(".gantt-group-label").attr("opacity", FADE_OPACITY);
41272
41125
  svg.selectAll(".gantt-lane-header").each(function() {
41273
41126
  const el = d3Selection13.select(this);
41274
41127
  el.attr(
41275
41128
  "opacity",
41276
- el.attr(`data-tag-${tagKey}`) === ev ? 1 : FADE_OPACITY2
41129
+ el.attr(`data-tag-${tagKey}`) === ev ? 1 : FADE_OPACITY
41277
41130
  );
41278
41131
  });
41279
- chartG.selectAll(".gantt-lane-band, .gantt-lane-accent").attr("opacity", FADE_OPACITY2);
41132
+ chartG.selectAll(".gantt-lane-band, .gantt-lane-accent").attr("opacity", FADE_OPACITY);
41280
41133
  } else {
41281
41134
  if (criticalPathActive) {
41282
41135
  applyCriticalPathHighlight(svg, chartG);
@@ -41381,27 +41234,27 @@ function renderErasAndMarkers(g, svg, resolved, xScale, innerHeight, palette, er
41381
41234
  eraG.on("mouseenter", () => {
41382
41235
  g.selectAll(".gantt-task").attr(
41383
41236
  "opacity",
41384
- FADE_OPACITY2
41237
+ FADE_OPACITY
41385
41238
  );
41386
41239
  g.selectAll(".gantt-milestone").attr(
41387
41240
  "opacity",
41388
- FADE_OPACITY2
41241
+ FADE_OPACITY
41389
41242
  );
41390
41243
  g.selectAll(
41391
41244
  ".gantt-group-bar, .gantt-group-summary"
41392
- ).attr("opacity", FADE_OPACITY2);
41393
- svg.selectAll(".gantt-group-label").attr("opacity", FADE_OPACITY2);
41394
- svg.selectAll(".gantt-task-label").attr("opacity", FADE_OPACITY2);
41395
- svg.selectAll(".gantt-lane-header").attr("opacity", FADE_OPACITY2);
41245
+ ).attr("opacity", FADE_OPACITY);
41246
+ svg.selectAll(".gantt-group-label").attr("opacity", FADE_OPACITY);
41247
+ svg.selectAll(".gantt-task-label").attr("opacity", FADE_OPACITY);
41248
+ svg.selectAll(".gantt-lane-header").attr("opacity", FADE_OPACITY);
41396
41249
  g.selectAll(
41397
41250
  ".gantt-lane-band, .gantt-lane-accent, .gantt-lane-band-group"
41398
- ).attr("opacity", FADE_OPACITY2);
41251
+ ).attr("opacity", FADE_OPACITY);
41399
41252
  g.selectAll(
41400
41253
  ".gantt-dep-arrow, .gantt-dep-arrowhead"
41401
- ).attr("opacity", FADE_OPACITY2);
41254
+ ).attr("opacity", FADE_OPACITY);
41402
41255
  g.selectAll(".gantt-marker-group").attr(
41403
41256
  "opacity",
41404
- FADE_OPACITY2
41257
+ FADE_OPACITY
41405
41258
  );
41406
41259
  eraRect.attr("opacity", hoverEraOpacity);
41407
41260
  if (eraTruncated) eraLabel.text(era.label);
@@ -41459,31 +41312,31 @@ function renderErasAndMarkers(g, svg, resolved, xScale, innerHeight, palette, er
41459
41312
  markerG.on("mouseenter", () => {
41460
41313
  g.selectAll(".gantt-task").attr(
41461
41314
  "opacity",
41462
- FADE_OPACITY2
41315
+ FADE_OPACITY
41463
41316
  );
41464
41317
  g.selectAll(".gantt-milestone").attr(
41465
41318
  "opacity",
41466
- FADE_OPACITY2
41319
+ FADE_OPACITY
41467
41320
  );
41468
41321
  g.selectAll(
41469
41322
  ".gantt-group-bar, .gantt-group-summary"
41470
- ).attr("opacity", FADE_OPACITY2);
41471
- svg.selectAll(".gantt-group-label").attr("opacity", FADE_OPACITY2);
41472
- svg.selectAll(".gantt-task-label").attr("opacity", FADE_OPACITY2);
41473
- svg.selectAll(".gantt-lane-header").attr("opacity", FADE_OPACITY2);
41323
+ ).attr("opacity", FADE_OPACITY);
41324
+ svg.selectAll(".gantt-group-label").attr("opacity", FADE_OPACITY);
41325
+ svg.selectAll(".gantt-task-label").attr("opacity", FADE_OPACITY);
41326
+ svg.selectAll(".gantt-lane-header").attr("opacity", FADE_OPACITY);
41474
41327
  g.selectAll(
41475
41328
  ".gantt-lane-band, .gantt-lane-accent, .gantt-lane-band-group"
41476
- ).attr("opacity", FADE_OPACITY2);
41329
+ ).attr("opacity", FADE_OPACITY);
41477
41330
  g.selectAll(
41478
41331
  ".gantt-dep-arrow, .gantt-dep-arrowhead"
41479
- ).attr("opacity", FADE_OPACITY2);
41332
+ ).attr("opacity", FADE_OPACITY);
41480
41333
  g.selectAll(".gantt-era-group").attr(
41481
41334
  "opacity",
41482
- FADE_OPACITY2
41335
+ FADE_OPACITY
41483
41336
  );
41484
41337
  g.selectAll(".gantt-marker-group").attr(
41485
41338
  "opacity",
41486
- FADE_OPACITY2
41339
+ FADE_OPACITY
41487
41340
  );
41488
41341
  markerG.attr("opacity", 1);
41489
41342
  markerLine.attr("opacity", 0.8);
@@ -41559,7 +41412,7 @@ function renderSprintBands(g, svg, resolved, xScale, innerHeight, palette) {
41559
41412
  const id = el.attr("data-task-id");
41560
41413
  el.attr(
41561
41414
  "opacity",
41562
- id && overlappingTaskIds.has(id) ? 1 : FADE_OPACITY2
41415
+ id && overlappingTaskIds.has(id) ? 1 : FADE_OPACITY
41563
41416
  );
41564
41417
  });
41565
41418
  g.selectAll(".gantt-milestone").each(function() {
@@ -41567,7 +41420,7 @@ function renderSprintBands(g, svg, resolved, xScale, innerHeight, palette) {
41567
41420
  const id = el.attr("data-task-id");
41568
41421
  el.attr(
41569
41422
  "opacity",
41570
- id && overlappingTaskIds.has(id) ? 1 : FADE_OPACITY2
41423
+ id && overlappingTaskIds.has(id) ? 1 : FADE_OPACITY
41571
41424
  );
41572
41425
  });
41573
41426
  svg.selectAll(".gantt-task-label").each(function() {
@@ -41575,7 +41428,7 @@ function renderSprintBands(g, svg, resolved, xScale, innerHeight, palette) {
41575
41428
  const id = el.attr("data-task-id");
41576
41429
  el.attr(
41577
41430
  "opacity",
41578
- id && overlappingTaskIds.has(id) ? 1 : FADE_OPACITY2
41431
+ id && overlappingTaskIds.has(id) ? 1 : FADE_OPACITY
41579
41432
  );
41580
41433
  });
41581
41434
  g.selectAll(
@@ -41585,7 +41438,7 @@ function renderSprintBands(g, svg, resolved, xScale, innerHeight, palette) {
41585
41438
  const name = el.attr("data-group");
41586
41439
  el.attr(
41587
41440
  "opacity",
41588
- name && overlappingGroupNames.has(name) ? 1 : FADE_OPACITY2
41441
+ name && overlappingGroupNames.has(name) ? 1 : FADE_OPACITY
41589
41442
  );
41590
41443
  });
41591
41444
  svg.selectAll(".gantt-group-label").each(function() {
@@ -41593,19 +41446,19 @@ function renderSprintBands(g, svg, resolved, xScale, innerHeight, palette) {
41593
41446
  const name = el.attr("data-group");
41594
41447
  el.attr(
41595
41448
  "opacity",
41596
- name && overlappingGroupNames.has(name) ? 1 : FADE_OPACITY2
41449
+ name && overlappingGroupNames.has(name) ? 1 : FADE_OPACITY
41597
41450
  );
41598
41451
  });
41599
- svg.selectAll(".gantt-lane-header").attr("opacity", FADE_OPACITY2);
41452
+ svg.selectAll(".gantt-lane-header").attr("opacity", FADE_OPACITY);
41600
41453
  g.selectAll(
41601
41454
  ".gantt-lane-band, .gantt-lane-accent, .gantt-lane-band-group"
41602
- ).attr("opacity", FADE_OPACITY2);
41455
+ ).attr("opacity", FADE_OPACITY);
41603
41456
  g.selectAll(
41604
41457
  ".gantt-dep-arrow, .gantt-dep-arrowhead"
41605
- ).attr("opacity", FADE_OPACITY2);
41458
+ ).attr("opacity", FADE_OPACITY);
41606
41459
  g.selectAll(".gantt-marker-group").attr(
41607
41460
  "opacity",
41608
- FADE_OPACITY2
41461
+ FADE_OPACITY
41609
41462
  );
41610
41463
  sprintRect.attr("opacity", SPRINT_HOVER_OPACITY);
41611
41464
  const startVisible = rawSx >= chartMinX;
@@ -41674,20 +41527,20 @@ function highlightDeps(g, svg, taskId, resolved) {
41674
41527
  g.selectAll(".gantt-task").each(function() {
41675
41528
  const el = d3Selection13.select(this);
41676
41529
  const id = el.attr("data-task-id");
41677
- el.attr("opacity", id && related.has(id) ? 1 : FADE_OPACITY2);
41530
+ el.attr("opacity", id && related.has(id) ? 1 : FADE_OPACITY);
41678
41531
  });
41679
41532
  g.selectAll(".gantt-milestone").attr(
41680
41533
  "opacity",
41681
- FADE_OPACITY2
41534
+ FADE_OPACITY
41682
41535
  );
41683
41536
  g.selectAll(
41684
41537
  ".gantt-group-bar, .gantt-group-summary"
41685
- ).attr("opacity", FADE_OPACITY2);
41686
- svg.selectAll(".gantt-group-label").attr("opacity", FADE_OPACITY2);
41687
- svg.selectAll(".gantt-lane-header").attr("opacity", FADE_OPACITY2);
41538
+ ).attr("opacity", FADE_OPACITY);
41539
+ svg.selectAll(".gantt-group-label").attr("opacity", FADE_OPACITY);
41540
+ svg.selectAll(".gantt-lane-header").attr("opacity", FADE_OPACITY);
41688
41541
  g.selectAll(".gantt-lane-band, .gantt-lane-accent").attr(
41689
41542
  "opacity",
41690
- FADE_OPACITY2
41543
+ FADE_OPACITY
41691
41544
  );
41692
41545
  g.selectAll(
41693
41546
  ".gantt-dep-arrow, .gantt-dep-arrowhead"
@@ -41696,52 +41549,52 @@ function highlightDeps(g, svg, taskId, resolved) {
41696
41549
  const from = el.attr("data-dep-from");
41697
41550
  const to = el.attr("data-dep-to");
41698
41551
  const isRelated = from && related.has(from) || to && related.has(to);
41699
- el.attr("opacity", isRelated ? 0.5 : FADE_OPACITY2);
41552
+ el.attr("opacity", isRelated ? 0.5 : FADE_OPACITY);
41700
41553
  });
41701
41554
  g.selectAll(".gantt-marker-group").attr(
41702
41555
  "opacity",
41703
- FADE_OPACITY2
41556
+ FADE_OPACITY
41704
41557
  );
41705
41558
  }
41706
41559
  function highlightGroup(g, svg, groupName) {
41707
41560
  g.selectAll(".gantt-task").each(function() {
41708
41561
  const el = d3Selection13.select(this);
41709
- el.attr("opacity", el.attr("data-group") === groupName ? 1 : FADE_OPACITY2);
41562
+ el.attr("opacity", el.attr("data-group") === groupName ? 1 : FADE_OPACITY);
41710
41563
  });
41711
41564
  g.selectAll(".gantt-milestone").each(function() {
41712
41565
  const el = d3Selection13.select(this);
41713
- el.attr("opacity", el.attr("data-group") === groupName ? 1 : FADE_OPACITY2);
41566
+ el.attr("opacity", el.attr("data-group") === groupName ? 1 : FADE_OPACITY);
41714
41567
  });
41715
41568
  g.selectAll(
41716
41569
  ".gantt-group-bar, .gantt-group-summary"
41717
41570
  ).each(function() {
41718
41571
  const el = d3Selection13.select(this);
41719
- el.attr("opacity", el.attr("data-group") === groupName ? 1 : FADE_OPACITY2);
41572
+ el.attr("opacity", el.attr("data-group") === groupName ? 1 : FADE_OPACITY);
41720
41573
  });
41721
41574
  svg.selectAll(".gantt-group-label").each(function() {
41722
41575
  const el = d3Selection13.select(this);
41723
- el.attr("opacity", el.attr("data-group") === groupName ? 1 : FADE_OPACITY2);
41576
+ el.attr("opacity", el.attr("data-group") === groupName ? 1 : FADE_OPACITY);
41724
41577
  });
41725
41578
  svg.selectAll(".gantt-task-label").each(function() {
41726
41579
  const el = d3Selection13.select(this);
41727
- el.attr("opacity", el.attr("data-group") === groupName ? 1 : FADE_OPACITY2);
41580
+ el.attr("opacity", el.attr("data-group") === groupName ? 1 : FADE_OPACITY);
41728
41581
  });
41729
41582
  svg.selectAll(".gantt-group-band-bg, .gantt-group-band-accent").each(function() {
41730
41583
  const el = d3Selection13.select(this);
41731
41584
  el.attr(
41732
41585
  "opacity",
41733
- el.attr("data-group") === groupName ? 1 : FADE_OPACITY2
41586
+ el.attr("data-group") === groupName ? 1 : FADE_OPACITY
41734
41587
  );
41735
41588
  });
41736
- svg.selectAll(".gantt-lane-header").attr("opacity", FADE_OPACITY2);
41737
- svg.selectAll(".gantt-lane-band-bg, .gantt-lane-band-accent").attr("opacity", FADE_OPACITY2);
41589
+ svg.selectAll(".gantt-lane-header").attr("opacity", FADE_OPACITY);
41590
+ svg.selectAll(".gantt-lane-band-bg, .gantt-lane-band-accent").attr("opacity", FADE_OPACITY);
41738
41591
  g.selectAll(".gantt-lane-band, .gantt-lane-accent").attr(
41739
41592
  "opacity",
41740
- FADE_OPACITY2
41593
+ FADE_OPACITY
41741
41594
  );
41742
41595
  g.selectAll(".gantt-marker-group").attr(
41743
41596
  "opacity",
41744
- FADE_OPACITY2
41597
+ FADE_OPACITY
41745
41598
  );
41746
41599
  }
41747
41600
  function highlightLane(g, svg, tagKey, laneName) {
@@ -41749,105 +41602,105 @@ function highlightLane(g, svg, tagKey, laneName) {
41749
41602
  const laneValue = laneName.toLowerCase();
41750
41603
  g.selectAll(".gantt-task").each(function() {
41751
41604
  const el = d3Selection13.select(this);
41752
- el.attr("opacity", el.attr(tagAttr) === laneValue ? 1 : FADE_OPACITY2);
41605
+ el.attr("opacity", el.attr(tagAttr) === laneValue ? 1 : FADE_OPACITY);
41753
41606
  });
41754
41607
  g.selectAll(".gantt-milestone").each(function() {
41755
41608
  const el = d3Selection13.select(this);
41756
- el.attr("opacity", el.attr(tagAttr) === laneValue ? 1 : FADE_OPACITY2);
41609
+ el.attr("opacity", el.attr(tagAttr) === laneValue ? 1 : FADE_OPACITY);
41757
41610
  });
41758
41611
  svg.selectAll(".gantt-task-label").each(function() {
41759
41612
  const el = d3Selection13.select(this);
41760
- el.attr("opacity", el.attr(tagAttr) === laneValue ? 1 : FADE_OPACITY2);
41613
+ el.attr("opacity", el.attr(tagAttr) === laneValue ? 1 : FADE_OPACITY);
41761
41614
  });
41762
41615
  svg.selectAll(".gantt-lane-header").each(function() {
41763
41616
  const el = d3Selection13.select(this);
41764
- el.attr("opacity", el.attr("data-lane") === laneName ? 1 : FADE_OPACITY2);
41617
+ el.attr("opacity", el.attr("data-lane") === laneName ? 1 : FADE_OPACITY);
41765
41618
  });
41766
41619
  g.selectAll(".gantt-lane-band-group").each(function() {
41767
41620
  const el = d3Selection13.select(this);
41768
- el.attr("opacity", el.attr("data-lane") === laneName ? 1 : FADE_OPACITY2);
41621
+ el.attr("opacity", el.attr("data-lane") === laneName ? 1 : FADE_OPACITY);
41769
41622
  });
41770
41623
  svg.selectAll(".gantt-lane-band-bg, .gantt-lane-band-accent").each(function() {
41771
41624
  const el = d3Selection13.select(this);
41772
- el.attr("opacity", el.attr("data-lane") === laneName ? 1 : FADE_OPACITY2);
41625
+ el.attr("opacity", el.attr("data-lane") === laneName ? 1 : FADE_OPACITY);
41773
41626
  });
41774
41627
  g.selectAll(
41775
41628
  ".gantt-group-bar, .gantt-group-summary"
41776
- ).attr("opacity", FADE_OPACITY2);
41777
- svg.selectAll(".gantt-group-label").attr("opacity", FADE_OPACITY2);
41778
- svg.selectAll(".gantt-group-band-bg, .gantt-group-band-accent").attr("opacity", FADE_OPACITY2);
41629
+ ).attr("opacity", FADE_OPACITY);
41630
+ svg.selectAll(".gantt-group-label").attr("opacity", FADE_OPACITY);
41631
+ svg.selectAll(".gantt-group-band-bg, .gantt-group-band-accent").attr("opacity", FADE_OPACITY);
41779
41632
  g.selectAll(".gantt-marker-group").attr(
41780
41633
  "opacity",
41781
- FADE_OPACITY2
41634
+ FADE_OPACITY
41782
41635
  );
41783
41636
  }
41784
41637
  function highlightTask(g, svg, taskId) {
41785
41638
  g.selectAll(".gantt-task").each(function() {
41786
41639
  const el = d3Selection13.select(this);
41787
- el.attr("opacity", el.attr("data-task-id") === taskId ? 1 : FADE_OPACITY2);
41640
+ el.attr("opacity", el.attr("data-task-id") === taskId ? 1 : FADE_OPACITY);
41788
41641
  });
41789
41642
  g.selectAll(".gantt-milestone").attr(
41790
41643
  "opacity",
41791
- FADE_OPACITY2
41644
+ FADE_OPACITY
41792
41645
  );
41793
41646
  svg.selectAll(".gantt-task-label").each(function() {
41794
41647
  const el = d3Selection13.select(this);
41795
- el.attr("opacity", el.attr("data-task-id") === taskId ? 1 : FADE_OPACITY2);
41648
+ el.attr("opacity", el.attr("data-task-id") === taskId ? 1 : FADE_OPACITY);
41796
41649
  });
41797
41650
  g.selectAll(
41798
41651
  ".gantt-group-bar, .gantt-group-summary"
41799
- ).attr("opacity", FADE_OPACITY2);
41800
- svg.selectAll(".gantt-group-label").attr("opacity", FADE_OPACITY2);
41801
- svg.selectAll(".gantt-group-band-bg, .gantt-group-band-accent").attr("opacity", FADE_OPACITY2);
41802
- svg.selectAll(".gantt-lane-header").attr("opacity", FADE_OPACITY2);
41803
- svg.selectAll(".gantt-lane-band-bg, .gantt-lane-band-accent").attr("opacity", FADE_OPACITY2);
41652
+ ).attr("opacity", FADE_OPACITY);
41653
+ svg.selectAll(".gantt-group-label").attr("opacity", FADE_OPACITY);
41654
+ svg.selectAll(".gantt-group-band-bg, .gantt-group-band-accent").attr("opacity", FADE_OPACITY);
41655
+ svg.selectAll(".gantt-lane-header").attr("opacity", FADE_OPACITY);
41656
+ svg.selectAll(".gantt-lane-band-bg, .gantt-lane-band-accent").attr("opacity", FADE_OPACITY);
41804
41657
  g.selectAll(
41805
41658
  ".gantt-lane-band, .gantt-lane-accent, .gantt-lane-band-group"
41806
- ).attr("opacity", FADE_OPACITY2);
41659
+ ).attr("opacity", FADE_OPACITY);
41807
41660
  g.selectAll(
41808
41661
  ".gantt-dep-arrow, .gantt-dep-arrowhead"
41809
- ).attr("opacity", FADE_OPACITY2);
41662
+ ).attr("opacity", FADE_OPACITY);
41810
41663
  g.selectAll(".gantt-marker-group").attr(
41811
41664
  "opacity",
41812
- FADE_OPACITY2
41665
+ FADE_OPACITY
41813
41666
  );
41814
41667
  }
41815
41668
  function highlightMilestone(g, svg, taskId) {
41816
41669
  g.selectAll(".gantt-task").attr(
41817
41670
  "opacity",
41818
- FADE_OPACITY2
41671
+ FADE_OPACITY
41819
41672
  );
41820
41673
  g.selectAll(".gantt-milestone").each(function() {
41821
41674
  const el = d3Selection13.select(this);
41822
- el.attr("opacity", el.attr("data-task-id") === taskId ? 1 : FADE_OPACITY2);
41675
+ el.attr("opacity", el.attr("data-task-id") === taskId ? 1 : FADE_OPACITY);
41823
41676
  });
41824
41677
  svg.selectAll(".gantt-task-label").each(function() {
41825
41678
  const el = d3Selection13.select(this);
41826
- el.attr("opacity", el.attr("data-task-id") === taskId ? 1 : FADE_OPACITY2);
41679
+ el.attr("opacity", el.attr("data-task-id") === taskId ? 1 : FADE_OPACITY);
41827
41680
  });
41828
41681
  g.selectAll(
41829
41682
  ".gantt-group-bar, .gantt-group-summary"
41830
- ).attr("opacity", FADE_OPACITY2);
41831
- svg.selectAll(".gantt-group-label").attr("opacity", FADE_OPACITY2);
41832
- svg.selectAll(".gantt-group-band-bg, .gantt-group-band-accent").attr("opacity", FADE_OPACITY2);
41833
- svg.selectAll(".gantt-lane-header").attr("opacity", FADE_OPACITY2);
41834
- svg.selectAll(".gantt-lane-band-bg, .gantt-lane-band-accent").attr("opacity", FADE_OPACITY2);
41683
+ ).attr("opacity", FADE_OPACITY);
41684
+ svg.selectAll(".gantt-group-label").attr("opacity", FADE_OPACITY);
41685
+ svg.selectAll(".gantt-group-band-bg, .gantt-group-band-accent").attr("opacity", FADE_OPACITY);
41686
+ svg.selectAll(".gantt-lane-header").attr("opacity", FADE_OPACITY);
41687
+ svg.selectAll(".gantt-lane-band-bg, .gantt-lane-band-accent").attr("opacity", FADE_OPACITY);
41835
41688
  g.selectAll(
41836
41689
  ".gantt-lane-band, .gantt-lane-accent, .gantt-lane-band-group"
41837
- ).attr("opacity", FADE_OPACITY2);
41690
+ ).attr("opacity", FADE_OPACITY);
41838
41691
  g.selectAll(
41839
41692
  ".gantt-dep-arrow, .gantt-dep-arrowhead"
41840
- ).attr("opacity", FADE_OPACITY2);
41693
+ ).attr("opacity", FADE_OPACITY);
41841
41694
  g.selectAll(".gantt-marker-group").attr(
41842
41695
  "opacity",
41843
- FADE_OPACITY2
41696
+ FADE_OPACITY
41844
41697
  );
41845
41698
  }
41846
41699
  function highlightTaskLabel(svg, lineNumber) {
41847
41700
  const ln = String(lineNumber);
41848
41701
  svg.selectAll(".gantt-task-label").each(function() {
41849
41702
  const el = d3Selection13.select(this);
41850
- el.attr("opacity", el.attr("data-line-number") === ln ? 1 : FADE_OPACITY2);
41703
+ el.attr("opacity", el.attr("data-line-number") === ln ? 1 : FADE_OPACITY);
41851
41704
  });
41852
41705
  }
41853
41706
  function resetTaskLabels(svg) {
@@ -42121,7 +41974,7 @@ function renderTimeScaleHorizontal(g, scale, _innerWidth, innerHeight, textColor
42121
41974
  g.append("text").attr("class", "gantt-scale-tick").attr("x", tick.pos).attr("y", innerHeight + tickLen + 12).attr("text-anchor", "middle").attr("font-size", "10px").attr("fill", textColor).attr("opacity", opacity).text(tick.label);
42122
41975
  }
42123
41976
  }
42124
- var BAR_H, ROW_GAP, GROUP_GAP2, MILESTONE_SIZE, MIN_LEFT_MARGIN, BOTTOM_MARGIN, RIGHT_MARGIN, CHAR_W2, LABEL_PAD2, LABEL_GAP, BAND_ACCENT_W, BAND_RADIUS, bandClipCounter, JS_DAY_TO_WEEKDAY2, ERA_COLORS, SPRINT_BAND_OPACITY, SPRINT_HOVER_OPACITY, SPRINT_BOUNDARY_OPACITY, FADE_OPACITY2, MONTH_ABBR2;
41977
+ var BAR_H, ROW_GAP, GROUP_GAP2, MILESTONE_SIZE, MIN_LEFT_MARGIN, BOTTOM_MARGIN, RIGHT_MARGIN, CHAR_W2, LABEL_PAD2, LABEL_GAP, BAND_ACCENT_W, BAND_RADIUS, bandClipCounter, JS_DAY_TO_WEEKDAY2, ERA_COLORS, SPRINT_BAND_OPACITY, SPRINT_HOVER_OPACITY, SPRINT_BOUNDARY_OPACITY, FADE_OPACITY, MONTH_ABBR2;
42125
41978
  var init_renderer12 = __esm({
42126
41979
  "src/gantt/renderer.ts"() {
42127
41980
  "use strict";
@@ -42162,7 +42015,7 @@ var init_renderer12 = __esm({
42162
42015
  SPRINT_BAND_OPACITY = 0.05;
42163
42016
  SPRINT_HOVER_OPACITY = 0.12;
42164
42017
  SPRINT_BOUNDARY_OPACITY = 0.3;
42165
- FADE_OPACITY2 = 0.1;
42018
+ FADE_OPACITY = 0.1;
42166
42019
  MONTH_ABBR2 = [
42167
42020
  "Jan",
42168
42021
  "Feb",
@@ -47488,7 +47341,8 @@ function layoutMap(resolved, data, size, opts) {
47488
47341
  palette.bg,
47489
47342
  mutedBasemap ? isDark ? MUTED_FOREIGN_DARK : MUTED_FOREIGN_LIGHT : isDark ? FOREIGN_TINT_DARK : FOREIGN_TINT_LIGHT
47490
47343
  );
47491
- const colorizeActive = resolved.directives.noColorize !== true && !hasRamp && resolved.tagGroups.length === 0;
47344
+ const hasDirectColor = resolved.regions.some((r) => r.color !== void 0);
47345
+ const colorizeActive = resolved.directives.noColorize !== true && !hasRamp && !hasDirectColor && resolved.tagGroups.length === 0;
47492
47346
  const colorByIso = /* @__PURE__ */ new Map();
47493
47347
  if (colorizeActive) {
47494
47348
  const adjacency = /* @__PURE__ */ new Map();
@@ -47584,16 +47438,17 @@ function layoutMap(resolved, data, size, opts) {
47584
47438
  };
47585
47439
  }
47586
47440
  }
47441
+ const shownTitle = resolved.directives.noTitle ? null : resolved.title;
47587
47442
  const TITLE_GAP2 = 16;
47588
47443
  let topPad = FIT_PAD;
47589
- if (resolved.title && resolved.pois.length > 0) {
47444
+ if (shownTitle && resolved.pois.length > 0) {
47590
47445
  const bannerBottom = (resolved.subtitle ? TITLE_Y + TITLE_FONT_SIZE : TITLE_Y) + TITLE_FONT_SIZE / 2;
47591
47446
  topPad = Math.max(FIT_PAD, bannerBottom + TITLE_GAP2);
47592
47447
  }
47593
47448
  const legendBand = mapLegendBand(legend, {
47594
47449
  width,
47595
47450
  mode: opts.legendMode ?? "preview",
47596
- hasTitle: Boolean(resolved.title),
47451
+ hasTitle: Boolean(shownTitle),
47597
47452
  hasSubtitle: Boolean(resolved.subtitle)
47598
47453
  });
47599
47454
  if (legendBand > topPad) topPad = legendBand;
@@ -48682,7 +48537,7 @@ function layoutMap(resolved, data, size, opts) {
48682
48537
  width,
48683
48538
  height,
48684
48539
  background: water,
48685
- title: resolved.title,
48540
+ title: shownTitle,
48686
48541
  ...resolved.subtitle !== void 0 && { subtitle: resolved.subtitle },
48687
48542
  ...resolved.caption !== void 0 && { caption: resolved.caption },
48688
48543
  regions,
@@ -49091,9 +48946,10 @@ function renderMap(container, resolved, data, palette, isDark, onClickItem, expo
49091
48946
  wireSync(lt, leg.lineNumber);
49092
48947
  }
49093
48948
  });
48949
+ const clusterUi = !exportDims && !resolved.directives.noClusterPois;
49094
48950
  const gSpider = svg.append("g").attr("class", "dgmo-map-spider");
49095
48951
  for (const cl of layout.clusters) {
49096
- if (!exportDims) {
48952
+ if (clusterUi) {
49097
48953
  gSpider.append("circle").attr("cx", cl.cx).attr("cy", cl.cy).attr("r", cl.hitR).attr("fill", "transparent").attr("data-cluster-hit", cl.id).style("cursor", "pointer");
49098
48954
  }
49099
48955
  for (const leg of cl.legs) {
@@ -49185,13 +49041,18 @@ function renderMap(container, resolved, data, palette, isDark, onClickItem, expo
49185
49041
  }
49186
49042
  wireSync(t, lab.lineNumber);
49187
49043
  }
49188
- if (!exportDims && layout.clusters.length) {
49044
+ if (clusterUi && layout.clusters.length) {
49189
49045
  const gBadge = svg.append("g").attr("class", "dgmo-map-cluster-badges");
49190
49046
  for (const cl of layout.clusters) {
49191
49047
  const g = gBadge.append("g").attr("data-cluster", cl.id).style("opacity", 0).style("pointer-events", "none");
49192
49048
  const R = 9;
49193
49049
  g.append("circle").attr("cx", cl.cx).attr("cy", cl.cy).attr("r", R).attr("fill", mix(palette.textMuted, palette.bg, 35)).attr("stroke", palette.textMuted).attr("stroke-width", 1);
49194
49050
  g.append("circle").attr("cx", cl.cx).attr("cy", cl.cy).attr("r", R + 2.5).attr("fill", "none").attr("stroke", palette.textMuted).attr("stroke-width", 1);
49051
+ const beadR = R + 2.5;
49052
+ for (const leg of cl.legs) {
49053
+ const a = Math.atan2(leg.y2 - cl.cy, leg.x2 - cl.cx);
49054
+ g.append("circle").attr("class", "dgmo-map-cluster-bead").attr("cx", cl.cx + beadR * Math.cos(a)).attr("cy", cl.cy + beadR * Math.sin(a)).attr("r", 1.8).attr("fill", leg.color).attr("stroke", palette.bg).attr("stroke-width", 0.5);
49055
+ }
49195
49056
  emitText(
49196
49057
  g,
49197
49058
  cl.cx,
@@ -52116,10 +51977,12 @@ function renderSequenceDiagram(container, parsed, palette, isDark, _onNavigateTo
52116
51977
  isDark ? 15 : 20
52117
51978
  ) : isDark ? palette.surface : palette.bg;
52118
51979
  const strokeColor = groupTagColor || palette.textMuted;
52119
- const groupG = svg.append("g").attr("class", "group-box-wrapper").attr("data-group-toggle", "").attr("data-group-line", String(group.lineNumber)).attr("cursor", "pointer");
51980
+ const groupG = svg.append("g").attr("class", "group-box-wrapper").attr("data-group-toggle", "").attr("data-group-line", String(group.lineNumber)).attr("tabindex", "0").attr("role", "button").attr("aria-expanded", "true").attr("cursor", "pointer");
52120
51981
  groupG.append("title").text("Click to collapse");
52121
- groupG.append("rect").attr("x", minX).attr("y", boxY).attr("width", maxX - minX).attr("height", boxH).attr("rx", 6).attr("fill", fillColor).attr("stroke", strokeColor).attr("stroke-width", 1).attr("stroke-opacity", 0.5).attr("class", "group-box");
52122
- groupG.append("text").attr("x", minX + 8).attr("y", boxY + GROUP_LABEL_SIZE + 4).attr("fill", strokeColor).attr("font-size", GROUP_LABEL_SIZE).attr("font-weight", "bold").attr("opacity", 0.7).attr("class", "group-label").text(group.name);
51982
+ groupG.append("rect").attr("x", minX).attr("y", boxY).attr("width", maxX - minX).attr("height", boxH).attr("rx", 6).attr("fill", fillColor).attr("stroke", strokeColor).attr("stroke-width", 1).attr("stroke-opacity", 0.5).attr("pointer-events", "none").attr("class", "group-box");
51983
+ groupG.append("rect").attr("x", minX).attr("y", boxY).attr("width", maxX - minX).attr("height", participantStartY - boxY).attr("fill", "transparent").attr("class", "group-label-hit");
51984
+ groupG.append("text").attr("x", minX + 8).attr("y", boxY + GROUP_LABEL_SIZE + 4).attr("fill", strokeColor).attr("font-size", GROUP_LABEL_SIZE).attr("opacity", 0.7).attr("pointer-events", "none").attr("class", "group-chevron").text("\u25BE");
51985
+ groupG.append("text").attr("x", minX + 8 + GROUP_LABEL_SIZE + 2).attr("y", boxY + GROUP_LABEL_SIZE + 4).attr("fill", strokeColor).attr("font-size", GROUP_LABEL_SIZE).attr("font-weight", "bold").attr("opacity", 0.7).attr("pointer-events", "none").attr("class", "group-label").text(group.name);
52123
51986
  }
52124
51987
  const lifelineStartY = lifelineStartY0;
52125
51988
  participants.forEach((participant) => {
@@ -52161,7 +52024,7 @@ function renderSequenceDiagram(container, parsed, palette, isDark, _onNavigateTo
52161
52024
  const participantG = svg.select(
52162
52025
  `.participant[data-participant-id="${participant.id}"]`
52163
52026
  );
52164
- participantG.attr("data-group-toggle", "").attr("data-group-line", String(meta.lineNumber)).attr("cursor", "pointer");
52027
+ participantG.attr("data-group-toggle", "").attr("data-group-line", String(meta.lineNumber)).attr("tabindex", "0").attr("role", "button").attr("aria-expanded", "false").attr("cursor", "pointer");
52165
52028
  participantG.append("title").text("Click to expand");
52166
52029
  const pFill = effectiveTagColor ? mix(
52167
52030
  effectiveTagColor,
@@ -54144,7 +54007,7 @@ function renderArcDiagram(container, parsed, palette, _isDark, onClickItem, expo
54144
54007
  neighbors2.get(link.source).add(link.target);
54145
54008
  neighbors2.get(link.target).add(link.source);
54146
54009
  }
54147
- const FADE_OPACITY3 = 0.1;
54010
+ const FADE_OPACITY2 = 0.1;
54148
54011
  function handleMouseEnter(hovered) {
54149
54012
  const connected = neighbors2.get(hovered);
54150
54013
  g.selectAll(".arc-link").each(function() {
@@ -54152,13 +54015,13 @@ function renderArcDiagram(container, parsed, palette, _isDark, onClickItem, expo
54152
54015
  const src = el.attr("data-source");
54153
54016
  const tgt = el.attr("data-target");
54154
54017
  const isRelated = src === hovered || tgt === hovered;
54155
- el.attr("stroke-opacity", isRelated ? 0.85 : FADE_OPACITY3);
54018
+ el.attr("stroke-opacity", isRelated ? 0.85 : FADE_OPACITY2);
54156
54019
  });
54157
54020
  g.selectAll(".arc-node").each(function() {
54158
54021
  const el = d3Selection23.select(this);
54159
54022
  const name = el.attr("data-node");
54160
54023
  const isRelated = name === hovered || connected.has(name);
54161
- el.attr("opacity", isRelated ? 1 : FADE_OPACITY3);
54024
+ el.attr("opacity", isRelated ? 1 : FADE_OPACITY2);
54162
54025
  });
54163
54026
  }
54164
54027
  function handleMouseLeave() {
@@ -54182,11 +54045,11 @@ function renderArcDiagram(container, parsed, palette, _isDark, onClickItem, expo
54182
54045
  g.selectAll(".arc-link").each(function() {
54183
54046
  const el = d3Selection23.select(this);
54184
54047
  const isRelated = members.has(el.attr("data-source")) || members.has(el.attr("data-target"));
54185
- el.attr("stroke-opacity", isRelated ? 0.85 : FADE_OPACITY3);
54048
+ el.attr("stroke-opacity", isRelated ? 0.85 : FADE_OPACITY2);
54186
54049
  });
54187
54050
  g.selectAll(".arc-node").each(function() {
54188
54051
  const el = d3Selection23.select(this);
54189
- el.attr("opacity", members.has(el.attr("data-node")) ? 1 : FADE_OPACITY3);
54052
+ el.attr("opacity", members.has(el.attr("data-node")) ? 1 : FADE_OPACITY2);
54190
54053
  });
54191
54054
  g.selectAll(".arc-group-band").each(function() {
54192
54055
  const el = d3Selection23.select(this);
@@ -54708,23 +54571,23 @@ function setupTimeline(container, parsed, palette, isDark, exportDims, activeTag
54708
54571
  };
54709
54572
  }
54710
54573
  function makeTimelineHoverHelpers() {
54711
- const FADE_OPACITY3 = 0.1;
54574
+ const FADE_OPACITY2 = 0.1;
54712
54575
  function fadeToGroup(g, groupName) {
54713
54576
  g.selectAll(".tl-event").each(function() {
54714
54577
  const el = d3Selection23.select(this);
54715
54578
  const evGroup = el.attr("data-group");
54716
- el.attr("opacity", evGroup === groupName ? 1 : FADE_OPACITY3);
54579
+ el.attr("opacity", evGroup === groupName ? 1 : FADE_OPACITY2);
54717
54580
  });
54718
54581
  g.selectAll(".tl-legend-item, .tl-lane-header").each(
54719
54582
  function() {
54720
54583
  const el = d3Selection23.select(this);
54721
54584
  const name = el.attr("data-group");
54722
- el.attr("opacity", name === groupName ? 1 : FADE_OPACITY3);
54585
+ el.attr("opacity", name === groupName ? 1 : FADE_OPACITY2);
54723
54586
  }
54724
54587
  );
54725
54588
  g.selectAll(".tl-marker").attr(
54726
54589
  "opacity",
54727
- FADE_OPACITY3
54590
+ FADE_OPACITY2
54728
54591
  );
54729
54592
  }
54730
54593
  function fadeToEra(g, eraStart, eraEnd) {
@@ -54734,40 +54597,40 @@ function makeTimelineHoverHelpers() {
54734
54597
  const endDate = el.attr("data-end-date");
54735
54598
  const evEnd = endDate ? parseFloat(endDate) : date;
54736
54599
  const inside = evEnd >= eraStart && date <= eraEnd;
54737
- el.attr("opacity", inside ? 1 : FADE_OPACITY3);
54600
+ el.attr("opacity", inside ? 1 : FADE_OPACITY2);
54738
54601
  });
54739
54602
  g.selectAll(".tl-legend-item, .tl-lane-header").attr(
54740
54603
  "opacity",
54741
- FADE_OPACITY3
54604
+ FADE_OPACITY2
54742
54605
  );
54743
54606
  g.selectAll(".tl-era").each(function() {
54744
54607
  const el = d3Selection23.select(this);
54745
54608
  const s = parseFloat(el.attr("data-era-start"));
54746
54609
  const e = parseFloat(el.attr("data-era-end"));
54747
54610
  const isSelf = s === eraStart && e === eraEnd;
54748
- el.attr("opacity", isSelf ? 1 : FADE_OPACITY3);
54611
+ el.attr("opacity", isSelf ? 1 : FADE_OPACITY2);
54749
54612
  });
54750
54613
  g.selectAll(".tl-marker").each(function() {
54751
54614
  const el = d3Selection23.select(this);
54752
54615
  const date = parseFloat(el.attr("data-marker-date"));
54753
54616
  const inside = date >= eraStart && date <= eraEnd;
54754
- el.attr("opacity", inside ? 1 : FADE_OPACITY3);
54617
+ el.attr("opacity", inside ? 1 : FADE_OPACITY2);
54755
54618
  });
54756
54619
  }
54757
54620
  function fadeToMarker(g, markerDate) {
54758
54621
  g.selectAll(".tl-event").attr(
54759
54622
  "opacity",
54760
- FADE_OPACITY3
54623
+ FADE_OPACITY2
54761
54624
  );
54762
- g.selectAll(".tl-era").attr("opacity", FADE_OPACITY3);
54625
+ g.selectAll(".tl-era").attr("opacity", FADE_OPACITY2);
54763
54626
  g.selectAll(".tl-legend-item, .tl-lane-header").attr(
54764
54627
  "opacity",
54765
- FADE_OPACITY3
54628
+ FADE_OPACITY2
54766
54629
  );
54767
54630
  g.selectAll(".tl-marker").each(function() {
54768
54631
  const el = d3Selection23.select(this);
54769
54632
  const date = parseFloat(el.attr("data-marker-date"));
54770
- el.attr("opacity", date === markerDate ? 1 : FADE_OPACITY3);
54633
+ el.attr("opacity", date === markerDate ? 1 : FADE_OPACITY2);
54771
54634
  });
54772
54635
  }
54773
54636
  function fadeReset(g) {
@@ -54781,15 +54644,15 @@ function makeTimelineHoverHelpers() {
54781
54644
  g.selectAll(".tl-event").each(function() {
54782
54645
  const el = d3Selection23.select(this);
54783
54646
  const val = el.attr(attrName);
54784
- el.attr("opacity", val === tagValue ? 1 : FADE_OPACITY3);
54647
+ el.attr("opacity", val === tagValue ? 1 : FADE_OPACITY2);
54785
54648
  });
54786
54649
  g.selectAll(".tl-legend-item, .tl-lane-header").attr(
54787
54650
  "opacity",
54788
- FADE_OPACITY3
54651
+ FADE_OPACITY2
54789
54652
  );
54790
54653
  g.selectAll(".tl-marker").attr(
54791
54654
  "opacity",
54792
- FADE_OPACITY3
54655
+ FADE_OPACITY2
54793
54656
  );
54794
54657
  g.selectAll(".tl-tag-legend-entry").each(function() {
54795
54658
  const el = d3Selection23.select(this);
@@ -54798,7 +54661,7 @@ function makeTimelineHoverHelpers() {
54798
54661
  const entryGroup = el.attr("data-tag-group");
54799
54662
  el.attr(
54800
54663
  "opacity",
54801
- entryGroup === tagKey && entryValue === tagValue ? 1 : FADE_OPACITY3
54664
+ entryGroup === tagKey && entryValue === tagValue ? 1 : FADE_OPACITY2
54802
54665
  );
54803
54666
  });
54804
54667
  }
@@ -54808,7 +54671,7 @@ function makeTimelineHoverHelpers() {
54808
54671
  }
54809
54672
  }
54810
54673
  return {
54811
- FADE_OPACITY: FADE_OPACITY3,
54674
+ FADE_OPACITY: FADE_OPACITY2,
54812
54675
  fadeToGroup,
54813
54676
  fadeToEra,
54814
54677
  fadeToMarker,
@@ -54820,7 +54683,7 @@ function makeTimelineHoverHelpers() {
54820
54683
  function renderTimelineTagLegendOverlay(container, parsed, palette, isDark, setup, hovers, onClickItem, exportDims, swimlaneTagGroup, activeTagGroup, onTagStateChange, viewMode, exportMode) {
54821
54684
  if (parsed.timelineTagGroups.length === 0) return;
54822
54685
  const { width, textColor, groupColorMap, solid } = setup;
54823
- const { FADE_OPACITY: FADE_OPACITY3, fadeReset, fadeToTagValue } = hovers;
54686
+ const { FADE_OPACITY: FADE_OPACITY2, fadeReset, fadeToTagValue } = hovers;
54824
54687
  const title = parsed.noTitle ? null : parsed.title;
54825
54688
  const { timelineEvents } = parsed;
54826
54689
  const LG_HEIGHT = LEGEND_HEIGHT;
@@ -54910,7 +54773,7 @@ function renderTimelineTagLegendOverlay(container, parsed, palette, isDark, setu
54910
54773
  const eg = el.attr("data-tag-group") ?? el.node()?.closest?.("[data-tag-group]")?.getAttribute("data-tag-group");
54911
54774
  el.attr(
54912
54775
  "opacity",
54913
- eg === tagKey && ev === tagVal ? 1 : FADE_OPACITY3
54776
+ eg === tagKey && ev === tagVal ? 1 : FADE_OPACITY2
54914
54777
  );
54915
54778
  });
54916
54779
  } else {
@@ -57669,6 +57532,9 @@ async function renderForExport(content, theme, palette, viewState, options) {
57669
57532
  const { renderSequenceDiagram: renderSequenceDiagram2 } = await Promise.resolve().then(() => (init_renderer20(), renderer_exports20));
57670
57533
  const seqParsed = parseSequenceDgmo2(content);
57671
57534
  if (seqParsed.error || seqParsed.participants.length === 0) return "";
57535
+ const collapsedSections = viewState?.cs ? new Set(viewState.cs) : void 0;
57536
+ const collapsedGroups = viewState?.cg ? new Set(viewState.cg.map(Number).filter((n) => Number.isFinite(n))) : void 0;
57537
+ const seqActiveTagGroup = viewState?.tag ?? options?.tagGroup;
57672
57538
  renderSequenceDiagram2(
57673
57539
  container,
57674
57540
  seqParsed,
@@ -57677,9 +57543,11 @@ async function renderForExport(content, theme, palette, viewState, options) {
57677
57543
  void 0,
57678
57544
  {
57679
57545
  exportWidth: EXPORT_WIDTH,
57680
- ...options?.tagGroup !== void 0 && {
57681
- activeTagGroup: options.tagGroup
57682
- }
57546
+ ...seqActiveTagGroup !== void 0 && {
57547
+ activeTagGroup: seqActiveTagGroup
57548
+ },
57549
+ ...collapsedSections !== void 0 && { collapsedSections },
57550
+ ...collapsedGroups !== void 0 && { collapsedGroups }
57683
57551
  }
57684
57552
  );
57685
57553
  } else if (parsed.type === "wordcloud") {
@@ -58630,6 +58498,7 @@ var DIRECTIVE_KEYWORDS = /* @__PURE__ */ new Set([
58630
58498
  "no-region-labels",
58631
58499
  "no-poi-labels",
58632
58500
  "no-colorize",
58501
+ "no-cluster-pois",
58633
58502
  "poi",
58634
58503
  "route",
58635
58504
  // Data charts
@@ -59299,7 +59168,7 @@ pre.dgmo, code.language-dgmo, pre > code.language-dgmo,
59299
59168
 
59300
59169
  // src/auto/index.ts
59301
59170
  init_safe_href();
59302
- var VERSION = "0.25.0";
59171
+ var VERSION = "0.25.1";
59303
59172
  var DEFAULTS = {
59304
59173
  theme: "auto",
59305
59174
  palette: "nord",