@divami-artefacts/ai-design-system 1.0.27 → 1.0.29

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/index.js CHANGED
@@ -498,7 +498,7 @@ function ae({ expanded: e, onToggle: t, labelExpanded: n = "View Less", labelCol
498
498
  }
499
499
  //#endregion
500
500
  //#region src/components/progressRaceChart/ProgressRaceChart.tsx
501
- var L = 680, R = 42, oe = 10, se = 24, ce = 24, le = 8, ue = [
501
+ var L = 660, R = 42, oe = 10, se = 24, ce = 24, le = 8, ue = [
502
502
  u.green,
503
503
  u.blue,
504
504
  u.amber,
@@ -700,28 +700,28 @@ function ge(e, t, r, i, o = !0, s = {}) {
700
700
  }
701
701
  //#endregion
702
702
  //#region src/components/multiMetricConstellationChart/MultiMetricConstellationChart.tsx
703
- var z = 780, _e = 234, ve = 130, ye = 52, be = [
703
+ var z = 780, B = 234, _e = 130, ve = 52, ye = [
704
704
  u.blue,
705
705
  u.amber,
706
706
  u.purple,
707
707
  u.green
708
- ], xe = [
708
+ ], be = [
709
709
  "Base Value",
710
710
  "Variations",
711
711
  "Commitment"
712
- ], Se = [
712
+ ], xe = [
713
713
  "Base",
714
714
  "Var",
715
715
  "Commit"
716
716
  ];
717
- function Ce({ items: e = [], "data-testid": t }) {
717
+ function Se({ items: e = [], "data-testid": t }) {
718
718
  let n = a(null), r = a(/* @__PURE__ */ new Map()), { hoveredRef: o, tooltip: l, hitZonesRef: d } = w(n, {
719
719
  width: z,
720
- height: _e
720
+ height: B
721
721
  }), p = i(() => e.filter((e) => typeof e == "object" && !!e), [e]), g = i(() => {
722
722
  let e = Math.max(...p.map((e) => e.base ?? 0)), t = Math.max(...p.map((e) => e.variation ?? 0));
723
723
  return p.map((n, r) => {
724
- let i = z * (.12 + r * .19), a = ve, o = Math.min(z * .075, ye), s = be[r % be.length], c = [
724
+ let i = z * (.12 + r * .19), a = _e, o = Math.min(z * .075, ve), s = ye[r % ye.length], c = [
725
725
  (n.base ?? 0) / (e || 1) * 100,
726
726
  (n.variation ?? 0) / (t || 1) * 100,
727
727
  n.percentage ?? 0
@@ -730,10 +730,10 @@ function Ce({ items: e = [], "data-testid": t }) {
730
730
  n.variationLabel ?? String(n.variation ?? 0),
731
731
  `${n.percentage ?? 0}%`
732
732
  ], u = c.map((e, t) => {
733
- let n = -Math.PI / 2 + t / xe.length * Math.PI * 2, r = e / 100, s = o * Math.max(.08, r);
733
+ let n = -Math.PI / 2 + t / be.length * Math.PI * 2, r = e / 100, s = o * Math.max(.08, r);
734
734
  return {
735
- name: xe[t],
736
- short: Se[t],
735
+ name: be[t],
736
+ short: xe[t],
737
737
  label: l[t],
738
738
  val: Math.round(e),
739
739
  x: i + Math.cos(n) * s,
@@ -753,8 +753,8 @@ function Ce({ items: e = [], "data-testid": t }) {
753
753
  };
754
754
  });
755
755
  }, [p]);
756
- return ge(n, z, _e, (e, t, n) => {
757
- N(r.current, o.current), d.current = [], b(e, z, _e, n, 30), g.forEach((t, i) => {
756
+ return ge(n, z, B, (e, t, n) => {
757
+ N(r.current, o.current), d.current = [], b(e, z, B, n, 30), g.forEach((t, i) => {
758
758
  let a = t.color, o = `constellation-${i}`, s = r.current.get(o) ?? 0;
759
759
  e.beginPath(), e.arc(t.cx, t.cy, t.baseR + 5, 0, Math.PI * 2), e.strokeStyle = h(u.bd, .08 + .08 * s), e.lineWidth = .5, e.stroke(), e.beginPath(), t.stars.forEach((t, n) => {
760
760
  n === 0 ? e.moveTo(t.x, t.y) : e.lineTo(t.x, t.y);
@@ -774,17 +774,17 @@ function Ce({ items: e = [], "data-testid": t }) {
774
774
  sublabel: `${t.percentage ?? 0}% committed · scatter ${t.scatter.toFixed(1)}`,
775
775
  color: a
776
776
  });
777
- }), e.font = m.font, e.textAlign = "center", e.textBaseline = "middle", e.fillStyle = m.color, e.fillText("▲ top = Base value · ▼▸ lower-right = Variations · ◂▼ lower-left = Commitment % · hover stars for details", z / 2, _e - 14), x(e, z, _e, n, .012);
777
+ }), e.font = m.font, e.textAlign = "center", e.textBaseline = "middle", e.fillStyle = m.color, e.fillText("▲ top = Base value · ▼▸ lower-right = Variations · ◂▼ lower-left = Commitment % · hover stars for details", z / 2, B - 14), x(e, z, B, n, .012);
778
778
  }, !0), g.length === 0 ? /* @__PURE__ */ s(I, {
779
779
  width: z,
780
- height: _e,
780
+ height: B,
781
781
  "data-testid": t
782
782
  }) : /* @__PURE__ */ c("div", {
783
783
  "data-testid": t,
784
784
  style: {
785
785
  position: "relative",
786
786
  width: z,
787
- height: _e
787
+ height: B
788
788
  },
789
789
  children: [/* @__PURE__ */ s("canvas", {
790
790
  ref: n,
@@ -792,70 +792,70 @@ function Ce({ items: e = [], "data-testid": t }) {
792
792
  "aria-label": "Contract value breakdown per contractor — multi-KPI constellation chart",
793
793
  style: {
794
794
  width: z,
795
- height: _e,
795
+ height: B,
796
796
  display: "block"
797
797
  }
798
798
  }), /* @__PURE__ */ s(C, {
799
799
  ...l,
800
800
  parentW: z,
801
- parentH: _e
801
+ parentH: B
802
802
  })]
803
803
  });
804
804
  }
805
805
  //#endregion
806
806
  //#region src/components/stackedHorizontalBarChart/StackedHorizontalBarChart.tsx
807
- var we = 680, Te = 220, Ee = 8, De = [
807
+ var Ce = 680, we = 220, Te = 8, Ee = [
808
808
  u.blue,
809
809
  u.amber,
810
810
  u.purple,
811
811
  u.green
812
- ], B = {
812
+ ], V = {
813
813
  left: 8,
814
814
  right: 80,
815
815
  top: 16,
816
816
  bottom: 38
817
- }, Oe = 150, V = 18;
818
- function ke(e, t, n) {
817
+ }, De = 150, H = 18;
818
+ function Oe(e, t, n) {
819
819
  if (e.measureText(t).width <= n) return t;
820
820
  let r = t;
821
821
  for (; r.length > 0 && e.measureText(r + "…").width > n;) r = r.slice(0, -1);
822
822
  return r + "…";
823
823
  }
824
- function Ae(e) {
824
+ function ke(e) {
825
825
  let t = Math.abs(e), n = e < 0 ? "-" : "";
826
826
  return t >= 1e6 ? `${n}£${(t / 1e6).toFixed(1)}M` : t >= 1e3 ? `${n}£${(t / 1e3).toFixed(1)}K` : `${n}£${t.toFixed(0)}`;
827
827
  }
828
- function je({ data: e, "data-testid": t }) {
829
- let n = a(null), r = a(/* @__PURE__ */ new Map()), [i, l] = o(!1), { items: d = [], totals: g } = e, _ = d.filter((e) => typeof e == "object" && !!e), v = [..._].sort((e, t) => (t.total ?? 0) - (e.total ?? 0)), b = i ? v : v.slice(0, Ee), x = b.length, S = Math.max(...v.map((e) => Math.abs(e.total ?? 0)), 1), T = x * V + Math.max(0, x - 1) * 8, D = B.top + B.bottom + T, k = we - B.left - Oe - B.right, A = _.length === 0, { hoveredRef: j, tooltip: P, hitZonesRef: F } = w(n, {
830
- width: we,
828
+ function Ae({ data: e, "data-testid": t }) {
829
+ let n = a(null), r = a(/* @__PURE__ */ new Map()), [i, l] = o(!1), { items: d = [], totals: g } = e, _ = d.filter((e) => typeof e == "object" && !!e), v = [..._].sort((e, t) => (t.total ?? 0) - (e.total ?? 0)), b = i ? v : v.slice(0, Te), x = b.length, S = Math.max(...v.map((e) => Math.abs(e.total ?? 0)), 1), T = x * H + Math.max(0, x - 1) * 8, D = V.top + V.bottom + T, k = Ce - V.left - De - V.right, A = _.length === 0, { hoveredRef: j, tooltip: P, hitZonesRef: F } = w(n, {
830
+ width: Ce,
831
831
  height: D
832
832
  });
833
- return ge(n, we, D, (e, t) => {
833
+ return ge(n, Ce, D, (e, t) => {
834
834
  N(r.current, j.current), F.current = [], b.forEach((n, i) => {
835
- let a = De[i % De.length], o = M(t, i, x, O), s = B.top + i * (V + 8), c = B.left + Oe, l = r.current.get(n.id) ?? 0, d = Math.max(n.base ?? 0, 0), m = Math.max(n.total ?? 0, 0), g = d / S * k * o, _ = m / S * k * o, v = _ - g;
836
- e.font = f.font, e.fillStyle = l > 0 ? a : f.color, e.textAlign = "right", e.textBaseline = "middle", e.fillText(ke(e, n.name ?? "", Oe - 16), c - 8, s + V / 2), e.fillStyle = h(u.bd, .25), e.beginPath(), e.roundRect(c, s, k, V, 4), e.fill(), g > 0 && (l > 0 && y(e, c + g / 2, s + V / 2, g * .3, a, .1 * l), e.fillStyle = h(a, .5 + l * .15), e.beginPath(), e.roundRect(c, s, g, V, 4), e.fill()), v > 2 && (e.fillStyle = h(a, .22 + l * .08), e.beginPath(), e.roundRect(c + g, s, v, V, [
835
+ let a = Ee[i % Ee.length], o = M(t, i, x, O), s = V.top + i * (H + 8), c = V.left + De, l = r.current.get(n.id) ?? 0, d = Math.max(n.base ?? 0, 0), m = Math.max(n.total ?? 0, 0), g = d / S * k * o, _ = m / S * k * o, v = _ - g;
836
+ e.font = f.font, e.fillStyle = l > 0 ? a : f.color, e.textAlign = "right", e.textBaseline = "middle", e.fillText(Oe(e, n.name ?? "", De - 16), c - 8, s + H / 2), e.fillStyle = h(u.bd, .25), e.beginPath(), e.roundRect(c, s, k, H, 4), e.fill(), g > 0 && (l > 0 && y(e, c + g / 2, s + H / 2, g * .3, a, .1 * l), e.fillStyle = h(a, .5 + l * .15), e.beginPath(), e.roundRect(c, s, g, H, 4), e.fill()), v > 2 && (e.fillStyle = h(a, .22 + l * .08), e.beginPath(), e.roundRect(c + g, s, v, H, [
837
837
  0,
838
838
  4,
839
839
  4,
840
840
  0
841
- ]), e.fill(), e.setLineDash([2, 3]), e.strokeStyle = h(a, .55), e.lineWidth = 1, e.beginPath(), e.moveTo(c + g, s + 3), e.lineTo(c + g, s + V - 3), e.stroke(), e.setLineDash([])), l > 0 && _ > 0 && (e.strokeStyle = h(a, .5 * l), e.lineWidth = 1, e.setLineDash([]), e.beginPath(), e.roundRect(c, s, _, V, 4), e.stroke()), o > .35 && (e.globalAlpha = Math.min(1, (o - .35) / .4), e.font = p.font, e.fillStyle = l > 0 ? a : p.color, e.textAlign = "left", e.textBaseline = "middle", e.fillText(n.totalLabel ?? Ae(n.total ?? 0), c + _ + 6, s + V / 2), e.globalAlpha = 1), E(F.current, n.id, c, s, Math.max(_, 1), V, {
841
+ ]), e.fill(), e.setLineDash([2, 3]), e.strokeStyle = h(a, .55), e.lineWidth = 1, e.beginPath(), e.moveTo(c + g, s + 3), e.lineTo(c + g, s + H - 3), e.stroke(), e.setLineDash([])), l > 0 && _ > 0 && (e.strokeStyle = h(a, .5 * l), e.lineWidth = 1, e.setLineDash([]), e.beginPath(), e.roundRect(c, s, _, H, 4), e.stroke()), o > .35 && (e.globalAlpha = Math.min(1, (o - .35) / .4), e.font = p.font, e.fillStyle = l > 0 ? a : p.color, e.textAlign = "left", e.textBaseline = "middle", e.fillText(n.totalLabel ?? ke(n.total ?? 0), c + _ + 6, s + H / 2), e.globalAlpha = 1), E(F.current, n.id, c, s, Math.max(_, 1), H, {
842
842
  label: n.name,
843
- value: `${n.totalLabel ?? Ae(n.total ?? 0)} total`,
844
- sublabel: `Base ${n.baseLabel ?? Ae(n.base ?? 0)} + Var ${n.variationLabel ?? Ae(n.variation ?? 0)} · ${n.percentage ?? 0}% committed`,
843
+ value: `${n.totalLabel ?? ke(n.total ?? 0)} total`,
844
+ sublabel: `Base ${n.baseLabel ?? ke(n.base ?? 0)} + Var ${n.variationLabel ?? ke(n.variation ?? 0)} · ${n.percentage ?? 0}% committed`,
845
845
  color: a
846
846
  });
847
847
  });
848
848
  let n = D - 14;
849
- e.textBaseline = "middle", e.font = m.font, e.textAlign = "left", e.fillStyle = h(u.blue, .5), e.beginPath(), e.roundRect(B.left + Oe, n - 3, 14, 6, 2), e.fill(), e.fillStyle = m.color, e.fillText("base value", B.left + Oe + 18, n), e.fillStyle = h(u.blue, .22), e.beginPath(), e.roundRect(B.left + Oe + 94, n - 3, 14, 6, 2), e.fill(), e.setLineDash([2, 3]), e.strokeStyle = h(u.blue, .5), e.lineWidth = .5, e.beginPath(), e.moveTo(B.left + Oe + 101, n - 3), e.lineTo(B.left + Oe + 101, n + 3), e.stroke(), e.setLineDash([]), e.fillStyle = m.color, e.fillText("approved variations", B.left + Oe + 112, n), e.font = m.font, e.textAlign = "right", e.fillStyle = m.color, e.fillText(`Portfolio: ${Ae(g?.total ?? 0)}`, we - 8, n);
849
+ e.textBaseline = "middle", e.font = m.font, e.textAlign = "left", e.fillStyle = h(u.blue, .5), e.beginPath(), e.roundRect(V.left + De, n - 3, 14, 6, 2), e.fill(), e.fillStyle = m.color, e.fillText("base value", V.left + De + 18, n), e.fillStyle = h(u.blue, .22), e.beginPath(), e.roundRect(V.left + De + 94, n - 3, 14, 6, 2), e.fill(), e.setLineDash([2, 3]), e.strokeStyle = h(u.blue, .5), e.lineWidth = .5, e.beginPath(), e.moveTo(V.left + De + 101, n - 3), e.lineTo(V.left + De + 101, n + 3), e.stroke(), e.setLineDash([]), e.fillStyle = m.color, e.fillText("approved variations", V.left + De + 112, n), e.font = m.font, e.textAlign = "right", e.fillStyle = m.color, e.fillText(`Portfolio: ${ke(g?.total ?? 0)}`, Ce - 8, n);
850
850
  }, !0, { easing: O }), A ? /* @__PURE__ */ s(I, {
851
- width: we,
852
- height: Te,
851
+ width: Ce,
852
+ height: we,
853
853
  message: "No contract data available",
854
854
  "data-testid": t
855
855
  }) : /* @__PURE__ */ c("div", {
856
856
  "data-testid": t,
857
857
  style: {
858
- width: we,
858
+ width: Ce,
859
859
  transition: "all 0.25s ease"
860
860
  },
861
861
  children: [/* @__PURE__ */ c("div", {
@@ -865,17 +865,17 @@ function je({ data: e, "data-testid": t }) {
865
865
  role: "img",
866
866
  "aria-label": "Total contract value per contractor — horizontal bar chart",
867
867
  style: {
868
- width: we,
868
+ width: Ce,
869
869
  height: D,
870
870
  display: "block",
871
871
  borderRadius: 8
872
872
  }
873
873
  }), /* @__PURE__ */ s(C, {
874
874
  ...P,
875
- parentW: we,
875
+ parentW: Ce,
876
876
  parentH: D
877
877
  })]
878
- }), _.length > Ee && /* @__PURE__ */ s("div", {
878
+ }), _.length > Te && /* @__PURE__ */ s("div", {
879
879
  style: { marginTop: 8 },
880
880
  children: /* @__PURE__ */ s(ae, {
881
881
  expanded: i,
@@ -886,94 +886,98 @@ function je({ data: e, "data-testid": t }) {
886
886
  }
887
887
  //#endregion
888
888
  //#region src/components/rankedCardLeaderboard/RankedCardLeaderboard.tsx
889
- var Me = 780, H = 240, Ne = 12, Pe = 10, Fe = [
889
+ var je = 780, U = 240, Me = 12, Ne = 10, Pe = 5, Fe = (je - 2 * Me - (Pe - 1) * Ne) / Pe, Ie = [
890
890
  "Highest exposure",
891
891
  "Elevated risk",
892
892
  "Moderate exposure",
893
893
  "Moderate exposure",
894
894
  "Low exposure"
895
895
  ];
896
- function Ie({ items: e = [], "data-testid": t }) {
897
- let r = a(null), o = a(0), l = a(/* @__PURE__ */ new Map()), { hoveredRef: m, tooltip: g, hitZonesRef: _ } = w(r, {
898
- width: Me,
899
- height: H
900
- }), b = [...i(() => e.filter((e) => typeof e == "object" && !!e), [e])].sort((e, t) => (t.count ?? 0) - (e.count ?? 0)).slice(0, 5), S = b.reduce((e, t) => e + (t.count ?? 0), 0);
896
+ function Le({ items: e = [], "data-testid": t }) {
897
+ let r = a(null), o = a(0), l = a(/* @__PURE__ */ new Map()), m = [...i(() => e.filter((e) => typeof e == "object" && !!e), [e])].sort((e, t) => (t.count ?? 0) - (e.count ?? 0)).slice(0, 5), g = m.reduce((e, t) => e + (t.count ?? 0), 0), _ = Math.min(Pe, m.length), b = _ > 0 ? 2 * Me + _ * Fe + (_ - 1) * Ne : je, { hoveredRef: S, tooltip: T, hitZonesRef: D } = w(r, {
898
+ width: b,
899
+ height: U
900
+ });
901
901
  return n(() => {
902
902
  let e = r.current;
903
903
  if (!e) return;
904
- let t = v(e, Me, H);
904
+ let t = v(e, b, U);
905
905
  o.current = 0;
906
- let n = (Me - 2 * Ne - 4 * Pe) / 5, i = H * .84, a = H * .08, s = Ne, c, g = () => {
906
+ let n = Fe, i = U * .84, a = U * .08, s = Me, c, _ = () => {
907
907
  o.current++;
908
908
  let e = o.current;
909
- t.clearRect(0, 0, Me, H), t.letterSpacing = f.letterSpacing, _.current = [], l.current.forEach((e, t) => {
910
- let n = t === m.current ? 1 : 0, r = e + (n - e) * .12;
909
+ t.clearRect(0, 0, b, U), t.letterSpacing = f.letterSpacing, D.current = [], l.current.forEach((e, t) => {
910
+ let n = t === S.current ? 1 : 0, r = e + (n - e) * .12;
911
911
  Math.abs(r - n) < .005 ? n === 0 ? l.current.delete(t) : l.current.set(t, 1) : l.current.set(t, r);
912
- }), m.current && !l.current.has(m.current) && l.current.set(m.current, 0), b.forEach((r, o) => {
913
- let c = o === 0, m = o === 0 ? u.red : o === 1 ? u.amber : d[o % d.length], g = s + o * (n + Pe), v = l.current.get(r.id) ?? 0, b = v * 8, x = g - b / 2, C = n + b, w = c ? j(e, .04, 3e-4) * .06 + .06 : 0;
914
- t.fillStyle = h(m, .08 + v * .07), t.beginPath(), t.roundRect(x, a, C, i, 6), t.fill(), t.strokeStyle = h(m, .2 + v * .4 + w), t.lineWidth = c ? 1.5 : 1, t.stroke(), (v > .01 || c) && y(t, x + C / 2, a + i / 2, C * .55, m, w + v * .14), t.font = p.font, t.textAlign = "left", t.textBaseline = "top", t.fillStyle = h(m, .5 + v * .35), t.fillText(`#${o + 1}`, x + 7, a + 6);
915
- let T = Math.min(n * .28, i * .32, 72), D = x + C / 2, O = a + i * .38, k = t.createRadialGradient(D, O - T * .2, 0, D, O, T);
916
- k.addColorStop(0, h(m, .5 + v * .2)), k.addColorStop(1, h(m, .2 + v * .1)), t.beginPath(), t.arc(D, O, T, 0, Math.PI * 2), t.fillStyle = k, t.fill(), t.strokeStyle = h(m, .4 + v * .3), t.lineWidth = 1, t.stroke(), t.font = p.font, t.textAlign = "center", t.textBaseline = "middle", t.fillStyle = h(u.t1, .9), t.fillText(r.abbreviation ?? r.name?.slice(0, 6) ?? "", D, O);
912
+ }), S.current && !l.current.has(S.current) && l.current.set(S.current, 0), m.forEach((r, o) => {
913
+ let c = o === 0, m = o === 0 ? u.red : o === 1 ? u.amber : d[o % d.length], _ = s + o * (n + Ne), v = l.current.get(r.id) ?? 0, b = v * 8, x = _ - b / 2, S = n + b, C = c ? j(e, .04, 3e-4) * .06 + .06 : 0;
914
+ t.fillStyle = h(m, .08 + v * .07), t.beginPath(), t.roundRect(x, a, S, i, 6), t.fill(), t.strokeStyle = h(m, .2 + v * .4 + C), t.lineWidth = c ? 1.5 : 1, t.stroke(), (v > .01 || c) && y(t, x + S / 2, a + i / 2, S * .55, m, C + v * .14), t.font = p.font, t.textAlign = "left", t.textBaseline = "top", t.fillStyle = h(m, .5 + v * .35), t.fillText(`#${o + 1}`, x + 7, a + 6);
915
+ let w = Math.min(n * .28, i * .32, 72), T = x + S / 2, O = a + i * .38, k = t.createRadialGradient(T, O - w * .2, 0, T, O, w);
916
+ k.addColorStop(0, h(m, .5 + v * .2)), k.addColorStop(1, h(m, .2 + v * .1)), t.beginPath(), t.arc(T, O, w, 0, Math.PI * 2), t.fillStyle = k, t.fill(), t.strokeStyle = h(m, .4 + v * .3), t.lineWidth = 1, t.stroke(), t.font = p.font, t.textAlign = "center", t.textBaseline = "middle", t.fillStyle = h(u.t1, .9), t.fillText(r.abbreviation ?? r.name?.slice(0, 6) ?? "", T, O);
917
917
  let A = r.label ?? String(r.count ?? 0);
918
- t.font = p.font, t.textBaseline = "alphabetic", t.fillStyle = h(m, .9 + v * .1), t.fillText(A, D, a + i * .76), r.label || (t.font = f.font, t.fillStyle = f.color, t.fillText("open EWs", D, a + i * .88));
919
- let M = Math.round((r.count ?? 0) / (S || 1) * 100), N = Fe[o] ?? "Low exposure";
920
- E(_.current, r.id, g, a, n, i, {
918
+ t.font = p.font, t.textBaseline = "alphabetic", t.fillStyle = h(m, .9 + v * .1), t.fillText(A, T, a + i * .76), r.label || (t.font = f.font, t.fillStyle = f.color, t.fillText("open EWs", T, a + i * .88));
919
+ let M = Math.round((r.count ?? 0) / (g || 1) * 100), N = Ie[o] ?? "Low exposure";
920
+ E(D.current, r.id, _, a, n, i, {
921
921
  label: r.name,
922
922
  value: `${A ?? 0} open · ${M}% of total`,
923
923
  sublabel: `Rank #${o + 1} · ${N}`,
924
924
  color: m
925
925
  });
926
- }), x(t, Me, H, e, .015), c = requestAnimationFrame(g);
926
+ }), x(t, b, U, e, .015), c = requestAnimationFrame(_);
927
927
  };
928
- return g(), () => cancelAnimationFrame(c);
929
- }, [b, S]), b.length === 0 ? /* @__PURE__ */ s(I, {
930
- width: Me,
931
- height: H,
928
+ return _(), () => cancelAnimationFrame(c);
929
+ }, [
930
+ m,
931
+ g,
932
+ b
933
+ ]), m.length === 0 ? /* @__PURE__ */ s(I, {
934
+ width: b,
935
+ height: U,
932
936
  "data-testid": t
933
937
  }) : /* @__PURE__ */ c("div", {
934
938
  "data-testid": t,
935
939
  style: {
936
940
  position: "relative",
937
- width: Me,
938
- height: H
941
+ width: b,
942
+ height: U
939
943
  },
940
944
  children: [/* @__PURE__ */ s("canvas", {
941
945
  ref: r,
942
946
  role: "img",
943
947
  "aria-label": "Contractor rank — open EW count per contractor",
944
948
  style: {
945
- width: Me,
946
- height: H,
949
+ width: b,
950
+ height: U,
947
951
  display: "block",
948
952
  borderRadius: 8
949
953
  }
950
954
  }), /* @__PURE__ */ s(C, {
951
- ...g,
952
- parentW: Me,
953
- parentH: H
955
+ ...T,
956
+ parentW: b,
957
+ parentH: U
954
958
  })]
955
959
  });
956
960
  }
957
961
  //#endregion
958
962
  //#region src/components/dotMatrixChart/DotMatrixChart.tsx
959
- var U = 680, W = 260;
960
- function Le({ items: e = [], "data-testid": t }) {
963
+ var W = 680, G = 260;
964
+ function Re({ items: e = [], "data-testid": t }) {
961
965
  let r = a(null), o = a(0), l = a(/* @__PURE__ */ new Map()), { hoveredRef: d, tooltip: p, hitZonesRef: m } = w(r, {
962
- width: U,
963
- height: W
966
+ width: W,
967
+ height: G
964
968
  }), g = i(() => e.filter((e) => typeof e == "object" && !!e), [e]);
965
969
  return n(() => {
966
970
  let e = r.current;
967
971
  if (!e) return;
968
- let t = v(e, U, W);
972
+ let t = v(e, W, G);
969
973
  o.current = 0;
970
- let n = g.length, i = Math.max(...g.map((e) => e.count), 1), a = i, s = U * .05, c = W * .1, p = U * .9 / n, _ = W * .7 / a, S = g.reduce((e, t) => e + t.count, 0), C, w = () => {
974
+ let n = g.length, i = Math.max(...g.map((e) => e.count), 1), a = i, s = W * .05, c = G * .1, p = W * .9 / n, _ = G * .7 / a, S = g.reduce((e, t) => e + t.count, 0), C, w = () => {
971
975
  o.current++;
972
976
  let e = o.current;
973
- t.clearRect(0, 0, U, W), m.current = [], l.current.forEach((e, t) => {
977
+ t.clearRect(0, 0, W, G), m.current = [], l.current.forEach((e, t) => {
974
978
  let n = t === d.current ? 1 : 0, r = e + (n - e) * .12;
975
979
  Math.abs(r - n) < .005 ? n === 0 ? l.current.delete(t) : l.current.set(t, 1) : l.current.set(t, r);
976
- }), d.current && !l.current.has(d.current) && l.current.set(d.current, 0), b(t, U, W, e, 40, h(u.blue, .04)), g.forEach((n, r) => {
980
+ }), d.current && !l.current.has(d.current) && l.current.set(d.current, 0), b(t, W, G, e, 40, h(u.blue, .04)), g.forEach((n, r) => {
977
981
  let o = n.count === i, d = u.blue, g = l.current.get(`${n.category}-col`) ?? 0;
978
982
  for (let u = 0; u < a; u++) {
979
983
  let a = s + r * p + p / 2, f = c + u * _ + _ / 2, v = Math.min(p, _) * .38;
@@ -991,40 +995,40 @@ function Le({ items: e = [], "data-testid": t }) {
991
995
  }
992
996
  let v = c + a * _ + 16;
993
997
  t.font = f.font, t.textAlign = "center", t.textBaseline = "alphabetic", t.fillStyle = o ? u.blue : h(u.t2, .65), t.fillText(n.category, s + r * p + p / 2, v);
994
- }), x(t, U, W, e, .015), C = requestAnimationFrame(w);
998
+ }), x(t, W, G, e, .015), C = requestAnimationFrame(w);
995
999
  };
996
1000
  return w(), () => cancelAnimationFrame(C);
997
1001
  }, [g]), g.length === 0 ? /* @__PURE__ */ s(I, {
998
- width: U,
999
- height: W,
1002
+ width: W,
1003
+ height: G,
1000
1004
  "data-testid": t
1001
1005
  }) : /* @__PURE__ */ c("div", {
1002
1006
  "data-testid": t,
1003
1007
  style: {
1004
1008
  position: "relative",
1005
- width: U,
1006
- height: W
1009
+ width: W,
1010
+ height: G
1007
1011
  },
1008
1012
  children: [/* @__PURE__ */ s("canvas", {
1009
1013
  ref: r,
1010
1014
  role: "img",
1011
1015
  "aria-label": "Early Warning count by category — breathing dot grid",
1012
1016
  style: {
1013
- width: U,
1014
- height: W,
1017
+ width: W,
1018
+ height: G,
1015
1019
  display: "block",
1016
1020
  borderRadius: 8
1017
1021
  }
1018
1022
  }), /* @__PURE__ */ s(C, {
1019
1023
  ...p,
1020
- parentW: U,
1021
- parentH: W
1024
+ parentW: W,
1025
+ parentH: G
1022
1026
  })]
1023
1027
  });
1024
1028
  }
1025
1029
  //#endregion
1026
1030
  //#region src/components/lineChart/LineChart.tsx
1027
- function Re({ rows: e = [], className: t, colors: n }) {
1031
+ function ze({ rows: e = [], className: t, colors: n }) {
1028
1032
  return /* @__PURE__ */ s(ee, {
1029
1033
  rows: e,
1030
1034
  variant: "line",
@@ -1034,7 +1038,7 @@ function Re({ rows: e = [], className: t, colors: n }) {
1034
1038
  }
1035
1039
  //#endregion
1036
1040
  //#region src/components/constants.ts
1037
- var ze = [
1041
+ var Be = [
1038
1042
  "#4C93D9",
1039
1043
  "#5DA537",
1040
1044
  "#F3862C",
@@ -1042,7 +1046,7 @@ var ze = [
1042
1046
  "#A0B724",
1043
1047
  "#EEBF3B",
1044
1048
  "#3C45D1"
1045
- ], Be = {
1049
+ ], Ve = {
1046
1050
  nodes: [
1047
1051
  {
1048
1052
  id: "supplier-x",
@@ -1085,8 +1089,8 @@ var ze = [
1085
1089
  };
1086
1090
  //#endregion
1087
1091
  //#region src/components/miniBars/MiniBars.tsx
1088
- function Ve({ rows: e = [], className: t, colors: n }) {
1089
- let r = n?.slices ?? ze;
1092
+ function He({ rows: e = [], className: t, colors: n }) {
1093
+ let r = n?.slices ?? Be;
1090
1094
  return /* @__PURE__ */ s("div", {
1091
1095
  className: ["d3-mini-bars", t].filter(Boolean).join(" "),
1092
1096
  children: e.map(([e, t, n], i) => /* @__PURE__ */ c("div", {
@@ -1112,7 +1116,7 @@ function Ve({ rows: e = [], className: t, colors: n }) {
1112
1116
  width: Math.max(0, Math.min(100, t)),
1113
1117
  height: "12",
1114
1118
  rx: "6",
1115
- className: `d3-mini-fill tone-${i % ze.length}`,
1119
+ className: `d3-mini-fill tone-${i % Be.length}`,
1116
1120
  fill: r[i % r.length]
1117
1121
  })]
1118
1122
  })
@@ -1124,7 +1128,7 @@ function Ve({ rows: e = [], className: t, colors: n }) {
1124
1128
  }
1125
1129
  //#endregion
1126
1130
  //#region src/utils/numberFormat.ts
1127
- var He = [
1131
+ var Ue = [
1128
1132
  {
1129
1133
  value: 0xe8d4a51000,
1130
1134
  suffix: "T",
@@ -1146,16 +1150,16 @@ var He = [
1146
1150
  divisor: 1e3
1147
1151
  }
1148
1152
  ];
1149
- function Ue(e, t = 1) {
1153
+ function We(e, t = 1) {
1150
1154
  let n = Math.abs(e), r = e < 0 ? "-" : "";
1151
- for (let e of He) if (n >= e.value) return `${r}${(n / e.divisor).toFixed(t)}${e.suffix}`;
1155
+ for (let e of Ue) if (n >= e.value) return `${r}${(n / e.divisor).toFixed(t)}${e.suffix}`;
1152
1156
  return `${r}${n.toFixed(0)}`;
1153
1157
  }
1154
1158
  //#endregion
1155
1159
  //#region src/components/radialFanTreeChart/RadialFanTreeChart.tsx
1156
- var We = 800, Ge = 320, Ke = 60, qe = 28;
1157
- function Je({ total: e = 0, totalLabel: t, items: r = [], width: o = We, "data-testid": l }) {
1158
- let m = a(null), g = a(/* @__PURE__ */ new Map()), _ = a(0), b = i(() => r.filter((e) => typeof e == "object" && !!e), [r]), x = i(() => Math.max(Ge, Ke + Math.max(0, b.length - 1) * qe), [b.length]), { hoveredRef: S, tooltip: E, hitZonesRef: O } = w(m, {
1160
+ var Ge = 800, Ke = 320, qe = 60, Je = 28;
1161
+ function Ye({ total: e = 0, totalLabel: t, items: r = [], width: o = Ge, "data-testid": l }) {
1162
+ let m = a(null), g = a(/* @__PURE__ */ new Map()), _ = a(0), b = i(() => r.filter((e) => typeof e == "object" && !!e), [r]), x = i(() => Math.max(Ke, qe + Math.max(0, b.length - 1) * Je), [b.length]), { hoveredRef: S, tooltip: E, hitZonesRef: O } = w(m, {
1159
1163
  width: o,
1160
1164
  height: x
1161
1165
  });
@@ -1184,21 +1188,21 @@ function Je({ total: e = 0, totalLabel: t, items: r = [], width: o = We, "data-t
1184
1188
  if (r.strokeStyle = h(o, v > 0 ? .8 : .45), r.lineWidth = x * (v > 0 ? 1.3 : 1), r.stroke(), m > .85) {
1185
1189
  let n = Math.min(1, (m - .85) / .15), i = 4 + (t.count ?? 0) / s * 12;
1186
1190
  y(r, _.x, _.y, i * 2.5, o, (.25 + v * .2) * n), r.beginPath(), r.arc(_.x, _.y, i * n, 0, Math.PI * 2), r.fillStyle = h(o, (.7 + v * .2) * n), r.fill();
1187
- let a = Ue(t.count ?? 0);
1191
+ let a = We(t.count ?? 0);
1188
1192
  T(O.current, t.id, _.x, _.y, i + 8, {
1189
1193
  label: t.name,
1190
1194
  value: `${a} NCEs raised`,
1191
1195
  sublabel: `${Math.round((t.count ?? 0) / (e || 1) * 100)}% of all NCEs`,
1192
1196
  color: o
1193
1197
  }), r.globalAlpha = n, r.font = f.font, r.textAlign = "left";
1194
- let c = t.abbreviation ?? t.name?.slice(0, 6) ?? "", l = ` ${Ue(t.count ?? 0)}`, d = _.x + i + 6, g = _.y + 4;
1198
+ let c = t.abbreviation ?? t.name?.slice(0, 6) ?? "", l = ` ${We(t.count ?? 0)}`, d = _.x + i + 6, g = _.y + 4;
1195
1199
  r.fillStyle = v > 0 ? o : h(u.t2, .85), r.fillText(c, d, g);
1196
1200
  let b = r.measureText(c).width;
1197
1201
  r.font = p.font, r.fillStyle = v > 0 ? o : u.t1, r.fillText(l, d + b, g), r.globalAlpha = 1;
1198
1202
  }
1199
1203
  }), r.beginPath(), r.arc(88, i, 32 * c, 0, Math.PI * 2), r.fillStyle = u.bgL, r.fill(), r.strokeStyle = h(u.blue, .6 * c), r.lineWidth = 2, r.stroke(), c > .4) {
1200
1204
  r.globalAlpha = Math.min(1, (c - .4) / .4), r.font = "500 24px 'Satoshi Variable', 'DM Sans', sans-serif", r.fillStyle = u.t1, r.textAlign = "center";
1201
- let n = t ?? Ue(e, 0);
1205
+ let n = t ?? We(e, 0);
1202
1206
  r.fillText(n, 88, i + 2), r.font = f.font, r.fillStyle = f.color, r.fillText("NCEs", 88, i + 22), r.globalAlpha = 1;
1203
1207
  }
1204
1208
  C = requestAnimationFrame(w);
@@ -1212,7 +1216,7 @@ function Je({ total: e = 0, totalLabel: t, items: r = [], width: o = We, "data-t
1212
1216
  o
1213
1217
  ]), b.length === 0 ? /* @__PURE__ */ s(I, {
1214
1218
  width: o,
1215
- height: Ge,
1219
+ height: Ke,
1216
1220
  "data-testid": l
1217
1221
  }) : /* @__PURE__ */ c("div", {
1218
1222
  "data-testid": l,
@@ -1239,21 +1243,21 @@ function Je({ total: e = 0, totalLabel: t, items: r = [], width: o = We, "data-t
1239
1243
  }
1240
1244
  //#endregion
1241
1245
  //#region src/components/pieChart/PieChart.tsx
1242
- var Ye = 192, Xe = Ye, Ze = Ye + 80;
1243
- function Qe({ rows: e = [], variant: t, className: r, colors: i }) {
1246
+ var Xe = 192, Ze = Xe, Qe = Xe + 80;
1247
+ function $e({ rows: e = [], variant: t, className: r, colors: i }) {
1244
1248
  let o = a(null), f = a(/* @__PURE__ */ new Map()), p = a(0), m = i?.slices ?? d, { hoveredRef: g, tooltip: b, hitZonesRef: x } = w(o, {
1245
- width: Xe,
1246
- height: Ze
1249
+ width: Ze,
1250
+ height: Qe
1247
1251
  });
1248
1252
  return n(() => {
1249
1253
  let n = o.current;
1250
1254
  if (!n) return;
1251
- let r = v(n, Xe, Ze);
1255
+ let r = v(n, Ze, Qe);
1252
1256
  p.current = 0;
1253
- let i = Xe / 2, a = Ye / 2, s = Ye * .4, c = t === "donut" ? Ye * .21 : 0, l = e.reduce((e, t) => e + (t.pricing ?? 0), 0) || 1, d, b = () => {
1257
+ let i = Ze / 2, a = Xe / 2, s = Xe * .4, c = t === "donut" ? Xe * .21 : 0, l = e.reduce((e, t) => e + (t.pricing ?? 0), 0) || 1, d, b = () => {
1254
1258
  p.current++;
1255
1259
  let n = p.current;
1256
- r.clearRect(0, 0, Xe, Ze);
1260
+ r.clearRect(0, 0, Ze, Qe);
1257
1261
  let o = 1 - (1 - Math.min(n / 48, 1)) ** 3;
1258
1262
  N(f.current, g.current), x.current = [];
1259
1263
  let v = -Math.PI / 2;
@@ -1267,10 +1271,10 @@ function Qe({ rows: e = [], variant: t, className: r, colors: i }) {
1267
1271
  let O = j(n, .03, 3e-4), k = s + b * 6 + (b > 0 ? O * 2 : 0);
1268
1272
  r.beginPath(), r.moveTo(i + Math.cos(v) * c, a + Math.sin(v) * c), r.arc(i, a, k, v, g), c > 0 ? r.arc(i, a, c, g, v, !0) : r.lineTo(i, a), r.closePath(), r.fillStyle = h(_, .7 + b * .2), r.fill(), r.strokeStyle = h(u.bg, .8), r.lineWidth = 1.5, r.stroke(), v = g;
1269
1273
  }), t === "donut" && e.length > 0 && y(r, i, a, c * .8, u.blue, .06);
1270
- let S = Ye + 12;
1274
+ let S = Xe + 12;
1271
1275
  e.forEach((e, t) => {
1272
1276
  let n = m[t % m.length], i = (e.pricing ?? 0) / l, a = f.current.get(e.id ?? `sl-${t}`) ?? 0, o = S + t * 18;
1273
- r.beginPath(), r.arc(8, o, 4, 0, Math.PI * 2), r.fillStyle = h(n, .8 + a * .2), r.fill(), r.font = "9px 'JetBrains Mono', monospace", r.fillStyle = h(u.t2, .7 + a * .2), r.textAlign = "left", r.fillText(e.vendor, 18, o + 3.5), r.font = "bold 9px 'JetBrains Mono', monospace", r.fillStyle = _(u.t3, n, a), r.textAlign = "right", r.fillText(`${e.pricing ?? 0} (${Math.round(i * 100)}%)`, Xe - 4, o + 3.5);
1277
+ r.beginPath(), r.arc(8, o, 4, 0, Math.PI * 2), r.fillStyle = h(n, .8 + a * .2), r.fill(), r.font = "9px 'JetBrains Mono', monospace", r.fillStyle = h(u.t2, .7 + a * .2), r.textAlign = "left", r.fillText(e.vendor, 18, o + 3.5), r.font = "bold 9px 'JetBrains Mono', monospace", r.fillStyle = _(u.t3, n, a), r.textAlign = "right", r.fillText(`${e.pricing ?? 0} (${Math.round(i * 100)}%)`, Ze - 4, o + 3.5);
1274
1278
  }), d = requestAnimationFrame(b);
1275
1279
  };
1276
1280
  return b(), () => cancelAnimationFrame(d);
@@ -1284,30 +1288,30 @@ function Qe({ rows: e = [], variant: t, className: r, colors: i }) {
1284
1288
  children: /* @__PURE__ */ c("div", {
1285
1289
  style: {
1286
1290
  position: "relative",
1287
- width: Xe,
1288
- height: Ze
1291
+ width: Ze,
1292
+ height: Qe
1289
1293
  },
1290
1294
  children: [/* @__PURE__ */ s("canvas", {
1291
1295
  ref: o,
1292
1296
  role: "img",
1293
1297
  "aria-label": `${t} chart`,
1294
1298
  style: {
1295
- width: Xe,
1296
- height: Ze,
1299
+ width: Ze,
1300
+ height: Qe,
1297
1301
  display: "block",
1298
1302
  borderRadius: 8
1299
1303
  }
1300
1304
  }), /* @__PURE__ */ s(C, {
1301
1305
  ...b,
1302
- parentW: Xe,
1303
- parentH: Ze
1306
+ parentW: Ze,
1307
+ parentH: Qe
1304
1308
  })]
1305
1309
  })
1306
1310
  });
1307
1311
  }
1308
1312
  //#endregion
1309
1313
  //#region src/components/sankey/SankeySvg.tsx
1310
- function $e(e, t, n, r) {
1314
+ function et(e, t, n, r) {
1311
1315
  let i = new Set(t.map((e) => e.source)), a = new Set(t.map((e) => e.target)), o = /* @__PURE__ */ new Map(), s = [];
1312
1316
  for (e.forEach((e) => {
1313
1317
  i.has(e.id) && !a.has(e.id) && s.push({
@@ -1352,8 +1356,8 @@ function $e(e, t, n, r) {
1352
1356
  });
1353
1357
  }), f;
1354
1358
  }
1355
- function et({ nodes: e, links: t, width: r = 960, height: o = 280, ariaLabel: f, selectedEntity: p, className: m, colors: g }) {
1356
- let _ = a(null), b = a(/* @__PURE__ */ new Map()), S = a(0), D = a([]), O = g?.nodes ?? d, k = g?.links ?? u.bd, A = g?.activeLinks ?? u.blue, M = g?.activeNodes ?? u.blue, P = i(() => $e(e, t, r, o), [
1359
+ function tt({ nodes: e, links: t, width: r = 960, height: o = 280, ariaLabel: f, selectedEntity: p, className: m, colors: g }) {
1360
+ let _ = a(null), b = a(/* @__PURE__ */ new Map()), S = a(0), D = a([]), O = g?.nodes ?? d, k = g?.links ?? u.bd, A = g?.activeLinks ?? u.blue, M = g?.activeNodes ?? u.blue, P = i(() => et(e, t, r, o), [
1357
1361
  e,
1358
1362
  t,
1359
1363
  r,
@@ -1453,7 +1457,7 @@ function et({ nodes: e, links: t, width: r = 960, height: o = 280, ariaLabel: f,
1453
1457
  }
1454
1458
  //#endregion
1455
1459
  //#region src/canvas/CausalFlowCanvas.tsx
1456
- var tt = [
1460
+ var nt = [
1457
1461
  {
1458
1462
  x: .13,
1459
1463
  y: .48
@@ -1486,7 +1490,7 @@ var tt = [
1486
1490
  x: .92,
1487
1491
  y: .22
1488
1492
  }
1489
- ], nt = [
1493
+ ], rt = [
1490
1494
  u.blue,
1491
1495
  u.orange,
1492
1496
  u.red,
@@ -1494,7 +1498,7 @@ var tt = [
1494
1498
  u.green,
1495
1499
  u.amber,
1496
1500
  u.t2
1497
- ], rt = [
1501
+ ], it = [
1498
1502
  26,
1499
1503
  24,
1500
1504
  24,
@@ -1504,21 +1508,21 @@ var tt = [
1504
1508
  22,
1505
1509
  22
1506
1510
  ];
1507
- function it(e, t) {
1511
+ function at(e, t) {
1508
1512
  let n = 1 - t;
1509
1513
  return {
1510
1514
  x: n * n * n * e.p0.x + 3 * n * n * t * e.p1.x + 3 * n * t * t * e.p2.x + t * t * t * e.p3.x,
1511
1515
  y: n * n * n * e.p0.y + 3 * n * n * t * e.p1.y + 3 * n * t * t * e.p2.y + t * t * t * e.p3.y
1512
1516
  };
1513
1517
  }
1514
- function at(e, t) {
1518
+ function ot(e, t) {
1515
1519
  let n = 1 - t, r = 3 * n * n * (e.p1.x - e.p0.x) + 6 * n * t * (e.p2.x - e.p1.x) + 3 * t * t * (e.p3.x - e.p2.x), i = 3 * n * n * (e.p1.y - e.p0.y) + 6 * n * t * (e.p2.y - e.p1.y) + 3 * t * t * (e.p3.y - e.p2.y), a = Math.sqrt(r * r + i * i) || 1;
1516
1520
  return {
1517
1521
  x: -i / a,
1518
1522
  y: r / a
1519
1523
  };
1520
1524
  }
1521
- function ot(e, t) {
1525
+ function st(e, t) {
1522
1526
  let n = t.x - e.x, r = t.y - e.y;
1523
1527
  return {
1524
1528
  p0: {
@@ -1539,7 +1543,7 @@ function ot(e, t) {
1539
1543
  }
1540
1544
  };
1541
1545
  }
1542
- function st({ nodes: e, links: t, width: r = 960, height: o = 280, selectedEntity: l }) {
1546
+ function ct({ nodes: e, links: t, width: r = 960, height: o = 280, selectedEntity: l }) {
1543
1547
  let d = a(null), f = a(0), p = a([]), { hoveredRef: m, tooltip: g, hitZonesRef: S } = w(d, {
1544
1548
  width: r,
1545
1549
  height: o
@@ -1547,15 +1551,15 @@ function st({ nodes: e, links: t, width: r = 960, height: o = 280, selectedEntit
1547
1551
  let t = /* @__PURE__ */ new Map();
1548
1552
  return e.forEach((e, n) => t.set(e.id, n)), t;
1549
1553
  }, [e]), O = i(() => t.length > 0 ? Math.max(...t.map((e) => e.value)) : 100, [t]), k = (e) => O > 1 ? e / 100 : e, A = i(() => e.map((e, t) => {
1550
- let n = tt[t % tt.length];
1554
+ let n = nt[t % nt.length];
1551
1555
  return {
1552
1556
  id: e.id,
1553
1557
  label: e.name,
1554
1558
  sub: e.valueLabel ?? "",
1555
1559
  x: n.x * r,
1556
1560
  y: n.y * o,
1557
- r: rt[t % rt.length],
1558
- color: nt[t % nt.length]
1561
+ r: it[t % it.length],
1562
+ color: rt[t % rt.length]
1559
1563
  };
1560
1564
  }), [
1561
1565
  e,
@@ -1577,7 +1581,7 @@ function st({ nodes: e, links: t, width: r = 960, height: o = 280, selectedEntit
1577
1581
  if (t.clearRect(0, 0, r, o), S.current = [], b(t, r, o, e, 50, h(u.blue, .05)), M.forEach((e, n) => {
1578
1582
  let r = A[e.fromIdx], i = A[e.toIdx];
1579
1583
  if (!r || !i) return;
1580
- let a = !!l && (r.id === l || i.id === l), o = _(r.color, i.color, .5), s = a ? .18 : .05, c = a ? .25 : .1, d = ot(r, i);
1584
+ let a = !!l && (r.id === l || i.id === l), o = _(r.color, i.color, .5), s = a ? .18 : .05, c = a ? .25 : .1, d = st(r, i);
1581
1585
  t.beginPath(), t.moveTo(d.p0.x, d.p0.y), t.bezierCurveTo(d.p1.x, d.p1.y, d.p2.x, d.p2.y, d.p3.x, d.p3.y), t.strokeStyle = h(o, s), t.lineWidth = 16, t.lineCap = "round", t.stroke(), t.strokeStyle = h(o, c), t.lineWidth = 1.5, t.stroke();
1582
1586
  for (let t = 0; t < e.conf * 2.5; t++) Math.random() < .45 && p.current.push({
1583
1587
  edgeIdx: n,
@@ -1586,7 +1590,7 @@ function st({ nodes: e, links: t, width: r = 960, height: o = 280, selectedEntit
1586
1590
  off: (Math.random() - .5) * 13,
1587
1591
  sz: .7 + Math.random() * 2
1588
1592
  });
1589
- let f = it(d, .5), m = `${Math.round(e.conf * 100)}%`;
1593
+ let f = at(d, .5), m = `${Math.round(e.conf * 100)}%`;
1590
1594
  t.font = "bold 12px 'JetBrains Mono', monospace", t.textBaseline = "middle";
1591
1595
  let g = t.measureText(m).width + 14;
1592
1596
  t.fillStyle = "rgba(10,16,24,0.88)", t.beginPath(), t.roundRect(f.x - g / 2, f.y - 11, g, 22, 6), t.fill(), t.strokeStyle = h(u.blue, .25), t.lineWidth = 1, t.stroke(), t.fillStyle = h(u.blue, .9), t.textAlign = "center", t.fillText(m, f.x, f.y);
@@ -1596,7 +1600,7 @@ function st({ nodes: e, links: t, width: r = 960, height: o = 280, selectedEntit
1596
1600
  if (!n) return !1;
1597
1601
  let r = A[n.fromIdx], i = A[n.toIdx];
1598
1602
  if (!r || !i) return !1;
1599
- let a = ot(r, i), o = it(a, e.t), s = at(a, e.t), c = o.x + s.x * e.off, l = o.y + s.y * e.off, u = Math.sin(e.t * Math.PI) * .7, d = _(r.color, i.color, e.t);
1603
+ let a = st(r, i), o = at(a, e.t), s = ot(a, e.t), c = o.x + s.x * e.off, l = o.y + s.y * e.off, u = Math.sin(e.t * Math.PI) * .7, d = _(r.color, i.color, e.t);
1600
1604
  return y(t, c, l, e.sz * 3, d, u * .1), t.beginPath(), t.arc(c, l, e.sz, 0, Math.PI * 2), t.fillStyle = h(d, u), t.fill(), !0;
1601
1605
  }), p.current.length > 350 && (p.current = p.current.slice(-350)), A.forEach((n, r) => {
1602
1606
  let i = l === n.id, a = m.current === `node-${r}`, o = j(e, .03, 3e-4) * .1 + 1, s = n.r * o * (i ? 1.15 : 1);
@@ -1653,10 +1657,10 @@ function st({ nodes: e, links: t, width: r = 960, height: o = 280, selectedEntit
1653
1657
  }
1654
1658
  //#endregion
1655
1659
  //#region src/components/sankey/ProcessSankey.tsx
1656
- function ct({ selectedEntity: e, colors: t }) {
1657
- return /* @__PURE__ */ s(st, {
1658
- nodes: Be.nodes,
1659
- links: Be.links,
1660
+ function lt({ selectedEntity: e, colors: t }) {
1661
+ return /* @__PURE__ */ s(ct, {
1662
+ nodes: Ve.nodes,
1663
+ links: Ve.links,
1660
1664
  width: 960,
1661
1665
  height: 280,
1662
1666
  selectedEntity: e
@@ -1664,7 +1668,7 @@ function ct({ selectedEntity: e, colors: t }) {
1664
1668
  }
1665
1669
  //#endregion
1666
1670
  //#region src/components/sankey/RankingSankey.tsx
1667
- function lt({ rows: e = [], className: t, colors: n }) {
1671
+ function ut({ rows: e = [], className: t, colors: n }) {
1668
1672
  let { nodes: r, links: a } = i(() => {
1669
1673
  let t = e.slice(0, 5);
1670
1674
  return {
@@ -1682,7 +1686,7 @@ function lt({ rows: e = [], className: t, colors: n }) {
1682
1686
  }))
1683
1687
  };
1684
1688
  }, [e]);
1685
- return /* @__PURE__ */ s(et, {
1689
+ return /* @__PURE__ */ s(tt, {
1686
1690
  nodes: r,
1687
1691
  links: a,
1688
1692
  width: 760,
@@ -1694,20 +1698,20 @@ function lt({ rows: e = [], className: t, colors: n }) {
1694
1698
  }
1695
1699
  //#endregion
1696
1700
  //#region src/components/balanceScaleChart/BalanceScaleChart.tsx
1697
- var ut = 500, dt = 320;
1698
- function ft({ left: e, right: t, "data-testid": r }) {
1701
+ var dt = 500, ft = 320;
1702
+ function pt({ left: e, right: t, "data-testid": r }) {
1699
1703
  let i = a(null), o = a(0);
1700
1704
  return n(() => {
1701
1705
  let n = i.current;
1702
1706
  if (!n) return;
1703
- let r = v(n, ut, dt);
1707
+ let r = v(n, dt, ft);
1704
1708
  o.current = 0;
1705
- let a = ut / 2, s = Math.max(e.value, t.value), c = (e.value - t.value) / s * 14, l, d = () => {
1709
+ let a = dt / 2, s = Math.max(e.value, t.value), c = (e.value - t.value) / s * 14, l, d = () => {
1706
1710
  o.current++;
1707
1711
  let n = o.current;
1708
- r.clearRect(0, 0, ut, dt), r.letterSpacing = f.letterSpacing;
1712
+ r.clearRect(0, 0, dt, ft), r.letterSpacing = f.letterSpacing;
1709
1713
  let i = D(Math.min(n / 80, 1)), m = c * A(Math.min(n / 80, 1)) * Math.PI / 180;
1710
- r.strokeStyle = h(u.bd, .5 * i), r.lineWidth = 2, r.beginPath(), r.moveTo(a, 100), r.lineTo(a, dt - 80), r.stroke(), r.beginPath(), r.arc(a, 100, 5 * i, 0, Math.PI * 2), r.fillStyle = u.t2, r.fill();
1714
+ r.strokeStyle = h(u.bd, .5 * i), r.lineWidth = 2, r.beginPath(), r.moveTo(a, 100), r.lineTo(a, ft - 80), r.stroke(), r.beginPath(), r.arc(a, 100, 5 * i, 0, Math.PI * 2), r.fillStyle = u.t2, r.fill();
1711
1715
  let g = {
1712
1716
  x: a - Math.cos(m) * 160,
1713
1717
  y: 100 + Math.sin(-m) * 160
@@ -1740,16 +1744,16 @@ function ft({ left: e, right: t, "data-testid": r }) {
1740
1744
  "data-testid": r,
1741
1745
  style: {
1742
1746
  position: "relative",
1743
- width: ut,
1744
- height: dt
1747
+ width: dt,
1748
+ height: ft
1745
1749
  },
1746
1750
  children: /* @__PURE__ */ s("canvas", {
1747
1751
  ref: i,
1748
1752
  role: "img",
1749
1753
  "aria-label": "Quotation balance — accepted vs submitted quotation value",
1750
1754
  style: {
1751
- width: ut,
1752
- height: dt,
1755
+ width: dt,
1756
+ height: ft,
1753
1757
  display: "block"
1754
1758
  }
1755
1759
  })
@@ -1757,25 +1761,25 @@ function ft({ left: e, right: t, "data-testid": r }) {
1757
1761
  }
1758
1762
  //#endregion
1759
1763
  //#region src/components/areaLineChart/AreaLineChart.tsx
1760
- var pt = 680, G = 280;
1761
- function mt({ points: e = [], "data-testid": t }) {
1764
+ var mt = 680, K = 280;
1765
+ function ht({ points: e = [], "data-testid": t }) {
1762
1766
  let r = a(null), o = a(/* @__PURE__ */ new Map()), l = a(0), { hoveredRef: d, tooltip: p, hitZonesRef: m } = w(r, {
1763
- width: pt,
1764
- height: G
1767
+ width: mt,
1768
+ height: K
1765
1769
  }), g = i(() => e.filter((e) => typeof e == "object" && !!e), [e]);
1766
1770
  return n(() => {
1767
1771
  let e = r.current;
1768
1772
  if (!e) return;
1769
- let t = v(e, pt, G);
1773
+ let t = v(e, mt, K);
1770
1774
  l.current = 0;
1771
- let n = pt - 54 - 28, i = G - 30 - 54, a = Math.max(...g.map((e) => e.count), 1), s = g.length, c = s > 1 ? n / (s - 1) : n, p = g.map((e, t) => ({
1775
+ let n = mt - 54 - 28, i = K - 30 - 54, a = Math.max(...g.map((e) => e.count), 1), s = g.length, c = s > 1 ? n / (s - 1) : n, p = g.map((e, t) => ({
1772
1776
  x: 54 + t * c,
1773
1777
  y: 30 + i - e.count / a * i,
1774
1778
  point: e
1775
1779
  })), _, b = () => {
1776
1780
  l.current++;
1777
1781
  let e = l.current;
1778
- t.clearRect(0, 0, pt, G), t.letterSpacing = f.letterSpacing;
1782
+ t.clearRect(0, 0, mt, K), t.letterSpacing = f.letterSpacing;
1779
1783
  let r = D(Math.min(e / 72, 1));
1780
1784
  N(o.current, d.current), m.current = [], [
1781
1785
  .25,
@@ -1785,7 +1789,7 @@ function mt({ points: e = [], "data-testid": t }) {
1785
1789
  ].forEach((e) => {
1786
1790
  let r = 30 + i - e * i;
1787
1791
  t.strokeStyle = h(u.bd, .18), t.lineWidth = 1, t.setLineDash([3, 5]), t.beginPath(), t.moveTo(54, r), t.lineTo(54 + n, r), t.stroke(), t.setLineDash([]), t.font = f.font, t.fillStyle = f.color, t.textAlign = "right", t.fillText(String(Math.round(a * e)), 48, r + 3);
1788
- }), t.save(), t.translate(12, 30 + i / 2), t.rotate(-Math.PI / 2), t.font = f.font, t.fillStyle = f.color, t.textAlign = "center", t.fillText("Submissions", 0, 0), t.restore(), t.font = f.font, t.fillStyle = f.color, t.textAlign = "center", t.fillText("Week", 54 + n / 2, G - 6), t.strokeStyle = h(u.bd, .3), t.lineWidth = 1, t.setLineDash([]), t.beginPath(), t.moveTo(54, 30 + i), t.lineTo(54 + n, 30 + i), t.stroke();
1792
+ }), t.save(), t.translate(12, 30 + i / 2), t.rotate(-Math.PI / 2), t.font = f.font, t.fillStyle = f.color, t.textAlign = "center", t.fillText("Submissions", 0, 0), t.restore(), t.font = f.font, t.fillStyle = f.color, t.textAlign = "center", t.fillText("Week", 54 + n / 2, K - 6), t.strokeStyle = h(u.bd, .3), t.lineWidth = 1, t.setLineDash([]), t.beginPath(), t.moveTo(54, 30 + i), t.lineTo(54 + n, 30 + i), t.stroke();
1789
1793
  let c = r * (s - 1), g = Math.floor(c) + 1;
1790
1794
  if (g >= 2) {
1791
1795
  t.beginPath(), t.moveTo(p[0].x, 30 + i), t.lineTo(p[0].x, p[0].y);
@@ -1813,13 +1817,13 @@ function mt({ points: e = [], "data-testid": t }) {
1813
1817
  color: u.blue
1814
1818
  }), s > 0 && S(t, e.x, 30, 30 + i, h(u.blue, .15 * s));
1815
1819
  let c = e.point.count === a;
1816
- (s > 0 || c) && y(t, e.x, e.y, 14, u.blue, (c ? .3 : 0) + s * .25), t.beginPath(), t.arc(e.x, e.y, s > 0 ? 5 : 3.5, 0, Math.PI * 2), t.fillStyle = h(u.blue, s > 0 ? 1 : .8), t.fill(), (s > 0 || c) && (t.font = f.font, t.fillStyle = u.blue, t.textAlign = "center", t.fillText(String(e.point.count), e.x, e.y - 10)), t.font = f.font, t.fillStyle = s > 0 ? u.blue : f.color, t.textAlign = "center", t.fillText(e.point.week, e.x, G - 54 + 14);
1820
+ (s > 0 || c) && y(t, e.x, e.y, 14, u.blue, (c ? .3 : 0) + s * .25), t.beginPath(), t.arc(e.x, e.y, s > 0 ? 5 : 3.5, 0, Math.PI * 2), t.fillStyle = h(u.blue, s > 0 ? 1 : .8), t.fill(), (s > 0 || c) && (t.font = f.font, t.fillStyle = u.blue, t.textAlign = "center", t.fillText(String(e.point.count), e.x, e.y - 10)), t.font = f.font, t.fillStyle = s > 0 ? u.blue : f.color, t.textAlign = "center", t.fillText(e.point.week, e.x, K - 54 + 14);
1817
1821
  }), _ = requestAnimationFrame(b);
1818
1822
  };
1819
1823
  return b(), () => cancelAnimationFrame(_);
1820
1824
  }, [g]), g.length < 2 ? /* @__PURE__ */ s(I, {
1821
- width: pt,
1822
- height: G,
1825
+ width: mt,
1826
+ height: K,
1823
1827
  "data-testid": t
1824
1828
  }) : /* @__PURE__ */ s("div", {
1825
1829
  "data-testid": t,
@@ -1831,53 +1835,53 @@ function mt({ points: e = [], "data-testid": t }) {
1831
1835
  children: /* @__PURE__ */ c("div", {
1832
1836
  style: {
1833
1837
  position: "relative",
1834
- width: pt,
1835
- height: G
1838
+ width: mt,
1839
+ height: K
1836
1840
  },
1837
1841
  children: [/* @__PURE__ */ s("canvas", {
1838
1842
  ref: r,
1839
1843
  role: "img",
1840
1844
  "aria-label": "Trend chart — count over time",
1841
1845
  style: {
1842
- width: pt,
1843
- height: G,
1846
+ width: mt,
1847
+ height: K,
1844
1848
  display: "block"
1845
1849
  }
1846
1850
  }), /* @__PURE__ */ s(C, {
1847
1851
  ...p,
1848
- parentW: pt,
1849
- parentH: G
1852
+ parentW: mt,
1853
+ parentH: K
1850
1854
  })]
1851
1855
  })
1852
1856
  });
1853
1857
  }
1854
1858
  //#endregion
1855
1859
  //#region src/components/trend/Trend.tsx
1856
- var ht = 680, K = 280, gt = 54, _t = 48, vt = 64, yt = f.font, bt = 12, xt = Math.PI * 2, St = 72, Ct = 20, wt = 5e3;
1857
- function Tt({ points: e = [], "data-testid": t }) {
1860
+ var gt = 680, q = 280, _t = 54, vt = 48, yt = 64, bt = f.font, xt = 12, St = Math.PI * 2, Ct = 72, wt = 20, Tt = 5e3;
1861
+ function Et({ points: e = [], "data-testid": t }) {
1858
1862
  let r = a(null), o = a(null), l = a(0), d = i(() => e.filter((e) => typeof e == "object" && !!e), [e]), p = i(() => {
1859
- if (d.length <= 1) return vt;
1863
+ if (d.length <= 1) return yt;
1860
1864
  let e = document.createElement("canvas").getContext("2d");
1861
- if (!e) return vt;
1862
- e.font = yt;
1863
- let t = Math.max(1, Math.ceil(d.length / Ct)), n = Math.max(...d.filter((e, n) => n % t === 0).map((t) => e.measureText(t.week).width));
1864
- return Math.max(vt, n + bt);
1865
- }, [d]), m = Math.round(p / 2), g = _t + m + Math.max(0, d.length - 1) * p, _ = Math.max(ht - gt, Math.min(g, wt)), { tooltip: y, hitZonesRef: b } = w(r, {
1865
+ if (!e) return yt;
1866
+ e.font = bt;
1867
+ let t = Math.max(1, Math.ceil(d.length / wt)), n = Math.max(...d.filter((e, n) => n % t === 0).map((t) => e.measureText(t.week).width));
1868
+ return Math.max(yt, n + xt);
1869
+ }, [d]), m = Math.round(p / 2), g = vt + m + Math.max(0, d.length - 1) * p, _ = Math.max(gt - _t, Math.min(g, Tt)), { tooltip: y, hitZonesRef: b } = w(r, {
1866
1870
  width: _,
1867
- height: K
1871
+ height: q
1868
1872
  });
1869
1873
  return n(() => {
1870
1874
  let e = r.current;
1871
1875
  if (!e) return;
1872
- let t = v(e, _, K), n = o.current ? v(o.current, gt, K) : null;
1876
+ let t = v(e, _, q), n = o.current ? v(o.current, _t, q) : null;
1873
1877
  l.current = 0;
1874
- let i = d.length <= St ? St : Math.max(24, Math.round(St * (St / d.length))), a = _ - _t, s = K - 42 - 54, c = d.map((e) => e.count), g = Math.min(...c), y = Math.max(...c), x = y - g || 1, S = d.length, C = S > 1 ? (a - m) / (S - 1) : a - m, w = Math.max(1, Math.ceil(p / C)), E = g < 0, O = E ? 42 + s - -g / x * s : 42 + s, k = d.map((e, t) => ({
1878
+ let i = d.length <= Ct ? Ct : Math.max(24, Math.round(Ct * (Ct / d.length))), a = _ - vt, s = q - 42 - 54, c = d.map((e) => e.count), g = Math.min(...c), y = Math.max(...c), x = y - g || 1, S = d.length, C = S > 1 ? (a - m) / (S - 1) : a - m, w = Math.max(1, Math.ceil(p / C)), E = g < 0, O = E ? 42 + s - -g / x * s : 42 + s, k = d.map((e, t) => ({
1875
1879
  x: m + t * C,
1876
1880
  y: 42 + s - (e.count - g) / x * s,
1877
1881
  point: e
1878
1882
  }));
1879
1883
  if (n) {
1880
- n.clearRect(0, 0, gt, K), n.letterSpacing = f.letterSpacing;
1884
+ n.clearRect(0, 0, _t, q), n.letterSpacing = f.letterSpacing;
1881
1885
  let e = E ? [
1882
1886
  g,
1883
1887
  g + x * .25,
@@ -1893,18 +1897,18 @@ function Tt({ points: e = [], "data-testid": t }) {
1893
1897
  ];
1894
1898
  e.forEach((t, r) => {
1895
1899
  let i = r / (e.length - 1), a = 42 + s - i * s;
1896
- n.font = f.font, n.fillStyle = f.color, n.textAlign = "right", n.fillText(Ue(t), gt - 6, a + 3);
1900
+ n.font = f.font, n.fillStyle = f.color, n.textAlign = "right", n.fillText(We(t), _t - 6, a + 3);
1897
1901
  }), n.save(), n.translate(12, 42 + s / 2), n.rotate(-Math.PI / 2), n.font = f.font, n.fillStyle = f.color, n.textAlign = "center", n.fillText("Count", 0, 0), n.restore();
1898
1902
  }
1899
1903
  let A = t.createLinearGradient(0, 42, 0, 42 + s);
1900
1904
  A.addColorStop(0, h(u.blue, .22)), A.addColorStop(1, h(u.blue, .02));
1901
1905
  let j = 0, M, N = (e) => {
1902
- t.font = yt, t.fillStyle = f.color, t.textAlign = "center";
1903
- for (let n = 0; n < e; n++) n % w === 0 && t.fillText(k[n].point.week, k[n].x, K - 54 + 14);
1906
+ t.font = bt, t.fillStyle = f.color, t.textAlign = "center";
1907
+ for (let n = 0; n < e; n++) n % w === 0 && t.fillText(k[n].point.week, k[n].x, q - 54 + 14);
1904
1908
  }, P = () => {
1905
1909
  l.current++;
1906
1910
  let e = Math.min(l.current / i, 1), n = D(e), r = e >= 1;
1907
- t.clearRect(0, 0, _, K), t.letterSpacing = f.letterSpacing, (E ? [
1911
+ t.clearRect(0, 0, _, q), t.letterSpacing = f.letterSpacing, (E ? [
1908
1912
  0,
1909
1913
  .25,
1910
1914
  .5,
@@ -1918,7 +1922,7 @@ function Tt({ points: e = [], "data-testid": t }) {
1918
1922
  ]).forEach((e) => {
1919
1923
  let n = 42 + s - e * s;
1920
1924
  t.strokeStyle = h(u.bd, .18), t.lineWidth = 1, t.setLineDash([3, 5]), t.beginPath(), t.moveTo(0, n), t.lineTo(a, n), t.stroke(), t.setLineDash([]);
1921
- }), t.font = f.font, t.fillStyle = f.color, t.textAlign = "center", t.fillText("Period", m + (a - m) / 2, K - 6), t.strokeStyle = h(u.bd, E ? .5 : .3), t.lineWidth = E ? 2 : 1, t.beginPath(), t.moveTo(m, E ? O : 42 + s), t.lineTo(a, E ? O : 42 + s), t.stroke();
1925
+ }), t.font = f.font, t.fillStyle = f.color, t.textAlign = "center", t.fillText("Period", m + (a - m) / 2, q - 6), t.strokeStyle = h(u.bd, E ? .5 : .3), t.lineWidth = E ? 2 : 1, t.beginPath(), t.moveTo(m, E ? O : 42 + s), t.lineTo(a, E ? O : 42 + s), t.stroke();
1922
1926
  let o = n * (S - 1), c = Math.floor(o) + 1;
1923
1927
  if (c >= 2) {
1924
1928
  let e = E ? O : 42 + s;
@@ -1935,7 +1939,7 @@ function Tt({ points: e = [], "data-testid": t }) {
1935
1939
  e === 0 ? t.moveTo(i, a) : t.lineTo(i, a);
1936
1940
  }
1937
1941
  t.strokeStyle = h(u.blue, .85), t.lineWidth = 2, t.stroke(), t.fillStyle = h(u.blue, .8), t.beginPath();
1938
- for (let e = 0; e < c; e++) t.moveTo(k[e].x + 3.5, k[e].y), t.arc(k[e].x, k[e].y, 3.5, 0, xt);
1942
+ for (let e = 0; e < c; e++) t.moveTo(k[e].x + 3.5, k[e].y), t.arc(k[e].x, k[e].y, 3.5, 0, St);
1939
1943
  if (t.fill(), c > j) {
1940
1944
  b.current = [];
1941
1945
  for (let e = 0; e < c; e++) T(b.current, `pt-${e}`, k[e].x, k[e].y, 10, {
@@ -1955,8 +1959,8 @@ function Tt({ points: e = [], "data-testid": t }) {
1955
1959
  p,
1956
1960
  b
1957
1961
  ]), d.length < 2 ? /* @__PURE__ */ s(I, {
1958
- width: ht,
1959
- height: K,
1962
+ width: gt,
1963
+ height: q,
1960
1964
  "data-testid": t
1961
1965
  }) : /* @__PURE__ */ c("div", {
1962
1966
  "data-testid": t,
@@ -1969,8 +1973,8 @@ function Tt({ points: e = [], "data-testid": t }) {
1969
1973
  ref: o,
1970
1974
  "aria-hidden": "true",
1971
1975
  style: {
1972
- width: gt,
1973
- height: K,
1976
+ width: _t,
1977
+ height: q,
1974
1978
  display: "block",
1975
1979
  flexShrink: 0
1976
1980
  }
@@ -1984,7 +1988,7 @@ function Tt({ points: e = [], "data-testid": t }) {
1984
1988
  style: {
1985
1989
  position: "relative",
1986
1990
  width: _,
1987
- height: K
1991
+ height: q
1988
1992
  },
1989
1993
  children: [/* @__PURE__ */ s("canvas", {
1990
1994
  ref: r,
@@ -1992,13 +1996,13 @@ function Tt({ points: e = [], "data-testid": t }) {
1992
1996
  "aria-label": "Trend chart — count over time",
1993
1997
  style: {
1994
1998
  width: _,
1995
- height: K,
1999
+ height: q,
1996
2000
  display: "block"
1997
2001
  }
1998
2002
  }), /* @__PURE__ */ s(C, {
1999
2003
  ...y,
2000
2004
  parentW: _,
2001
- parentH: K
2005
+ parentH: q
2002
2006
  })]
2003
2007
  })
2004
2008
  })]
@@ -2006,88 +2010,88 @@ function Tt({ points: e = [], "data-testid": t }) {
2006
2010
  }
2007
2011
  //#endregion
2008
2012
  //#region src/components/proportionalBandChart/ProportionalBandChart.tsx
2009
- var q = 680, Et = 240;
2010
- function Dt(e, t, n) {
2013
+ var Dt = 680, Ot = 240, kt = 28, At = 156;
2014
+ function jt(e, t, n) {
2011
2015
  if (e.measureText(t).width <= n) return t;
2012
2016
  let r = t;
2013
2017
  for (; r.length > 0 && e.measureText(`${r}…`).width > n;) r = r.slice(0, -1);
2014
2018
  return `${r}…`;
2015
2019
  }
2016
- var Ot = {
2020
+ var Mt = {
2017
2021
  Critical: u.red,
2018
2022
  High: u.orange,
2019
2023
  Medium: u.amber,
2020
2024
  Low: u.green
2021
2025
  };
2022
- function kt({ severities: e = [], "data-testid": t }) {
2023
- let r = a(null), o = a(/* @__PURE__ */ new Map()), l = a(0), { hoveredRef: d, tooltip: m, hitZonesRef: g } = w(r, {
2024
- width: q,
2025
- height: Et
2026
- }), _ = i(() => e.filter((e) => typeof e == "object" && !!e), [e]);
2026
+ function Nt({ severities: e = [], "data-testid": t }) {
2027
+ let r = a(null), o = a(/* @__PURE__ */ new Map()), l = a(0), d = i(() => e.filter((e) => typeof e == "object" && !!e), [e]), m = d.length > 0 ? Math.min(Dt, 2 * kt + d.length * At) : Dt, { hoveredRef: g, tooltip: _, hitZonesRef: b } = w(r, {
2028
+ width: m,
2029
+ height: Ot
2030
+ });
2027
2031
  return n(() => {
2028
2032
  let e = r.current;
2029
2033
  if (!e) return;
2030
- let t = v(e, q, Et);
2034
+ let t = v(e, m, Ot);
2031
2035
  l.current = 0;
2032
- let n = _.reduce((e, t) => e + (t.count ?? 0), 0), i = q - 28 - 28, a = Et - 50 - 52, s = _.map((e) => (e.count ?? 0) / (n || 1) * i), c, m = () => {
2036
+ let n = d.reduce((e, t) => e + (t.count ?? 0), 0), i = kt, a = kt, s = m - i - a, c = Ot - 50 - 52, _ = d.map((e) => (e.count ?? 0) / (n || 1) * s), x, S = () => {
2033
2037
  l.current++;
2034
2038
  let e = l.current;
2035
- t.clearRect(0, 0, q, Et), t.letterSpacing = f.letterSpacing;
2039
+ t.clearRect(0, 0, m, Ot), t.letterSpacing = f.letterSpacing;
2036
2040
  let r = O(Math.min(e / 60, 1));
2037
- N(o.current, d.current), g.current = [], t.strokeStyle = h(u.bd, .2), t.lineWidth = 1, t.beginPath(), t.rect(28, 50, i, a), t.stroke(), t.strokeStyle = h(u.t2, .15), t.lineWidth = 1, t.setLineDash([4, 4]), t.beginPath(), t.moveTo(q / 2, 50), t.lineTo(q / 2, 50 + a), t.stroke(), t.setLineDash([]);
2038
- let v = 28;
2039
- _.forEach((e, i) => {
2040
- let c = Ot[e.severity] ?? u.blue, l = s[i], d = o.current.get(e.severity) ?? 0, m = v + l / 2, _ = l * .85, b = l * r, x = _ * r, S = m - x / 2;
2041
- if (b > 0 && (d > 0 && y(t, v + b / 2, 50 + a / 2, b * .4, c, .15 * d), t.beginPath(), t.moveTo(S, 50), t.lineTo(S + x, 50), t.lineTo(v + b, 50 + a), t.lineTo(v, 50 + a), t.closePath(), t.fillStyle = h(c, .45 + d * .25), t.fill(), t.strokeStyle = h(c, (.5 + d * .3) * r), t.lineWidth = d > 0 ? 2 : 1, t.beginPath(), t.moveTo(S, 50), t.lineTo(S + x, 50), t.stroke(), t.strokeStyle = h(c, (.3 + d * .3) * r), t.lineWidth = d > 0 ? 2 : 1, t.beginPath(), t.moveTo(v, 50 + a), t.lineTo(v + b, 50 + a), t.stroke()), E(g.current, e.severity, v, 50, l, a, {
2041
+ N(o.current, g.current), b.current = [], t.strokeStyle = h(u.bd, .2), t.lineWidth = 1, t.beginPath(), t.rect(i, 50, s, c), t.stroke(), t.strokeStyle = h(u.t2, .15), t.lineWidth = 1, t.setLineDash([4, 4]), t.beginPath(), t.moveTo(m / 2, 50), t.lineTo(m / 2, 50 + c), t.stroke(), t.setLineDash([]);
2042
+ let a = i;
2043
+ d.forEach((e, i) => {
2044
+ let s = Mt[e.severity] ?? u.blue, l = _[i], d = o.current.get(e.severity) ?? 0, m = a + l / 2, g = l * .85, v = l * r, x = g * r, S = m - x / 2;
2045
+ if (v > 0 && (d > 0 && y(t, a + v / 2, 50 + c / 2, v * .4, s, .15 * d), t.beginPath(), t.moveTo(S, 50), t.lineTo(S + x, 50), t.lineTo(a + v, 50 + c), t.lineTo(a, 50 + c), t.closePath(), t.fillStyle = h(s, .45 + d * .25), t.fill(), t.strokeStyle = h(s, (.5 + d * .3) * r), t.lineWidth = d > 0 ? 2 : 1, t.beginPath(), t.moveTo(S, 50), t.lineTo(S + x, 50), t.stroke(), t.strokeStyle = h(s, (.3 + d * .3) * r), t.lineWidth = d > 0 ? 2 : 1, t.beginPath(), t.moveTo(a, 50 + c), t.lineTo(a + v, 50 + c), t.stroke()), E(b.current, e.severity, a, 50, l, c, {
2042
2046
  label: e.severity,
2043
2047
  value: `${e.count} Early Warnings`,
2044
2048
  sublabel: `${Math.round((e.count ?? 0) / (n || 1) * 100)}% of all EWs`,
2045
- color: c
2049
+ color: s
2046
2050
  }), r > .5) {
2047
- let i = Math.min(1, (r - .5) / .5), o = v + l / 2;
2048
- t.globalAlpha = i, t.font = f.font, t.fillStyle = d > 0 ? c : h(c, .9), t.textAlign = "center", t.fillText(Dt(t, e.severity, l - 12), o, 38), t.font = p.font, t.fillStyle = d > 0 ? u.t1 : h(u.t1, .85), t.fillText(String(e.count), o, 50 + a / 2 + 6), t.font = f.font, t.fillStyle = d > 0 ? c : f.color, t.fillText(`${Math.round((e.count ?? 0) / (n || 1) * 100)}%`, o, 50 + a + 18), t.globalAlpha = 1;
2051
+ let i = Math.min(1, (r - .5) / .5), o = a + l / 2;
2052
+ t.globalAlpha = i, t.font = f.font, t.fillStyle = d > 0 ? s : h(s, .9), t.textAlign = "center", t.fillText(jt(t, e.severity, l - 12), o, 38), t.font = p.font, t.fillStyle = d > 0 ? u.t1 : h(u.t1, .85), t.fillText(String(e.count), o, 50 + c / 2 + 6), t.font = f.font, t.fillStyle = d > 0 ? s : f.color, t.fillText(`${Math.round((e.count ?? 0) / (n || 1) * 100)}%`, o, 50 + c + 18), t.globalAlpha = 1;
2049
2053
  }
2050
- v += l;
2054
+ a += l;
2051
2055
  });
2052
- let b = t.createLinearGradient(28, 0, 28 + i, 0);
2053
- b.addColorStop(0, h(u.red, .03)), b.addColorStop(.33, h(u.orange, .03)), b.addColorStop(.66, h(u.amber, .03)), b.addColorStop(1, h(u.green, .03)), t.fillStyle = b, t.fillRect(28, 50, i * r, a), c = requestAnimationFrame(m);
2056
+ let v = t.createLinearGradient(i, 0, i + s, 0);
2057
+ v.addColorStop(0, h(u.red, .03)), v.addColorStop(.33, h(u.orange, .03)), v.addColorStop(.66, h(u.amber, .03)), v.addColorStop(1, h(u.green, .03)), t.fillStyle = v, t.fillRect(i, 50, s * r, c), x = requestAnimationFrame(S);
2054
2058
  };
2055
- return m(), () => cancelAnimationFrame(c);
2056
- }, [_]), _.length === 0 ? /* @__PURE__ */ s(I, {
2057
- width: q,
2058
- height: Et,
2059
+ return S(), () => cancelAnimationFrame(x);
2060
+ }, [d, m]), d.length === 0 ? /* @__PURE__ */ s(I, {
2061
+ width: m,
2062
+ height: Ot,
2059
2063
  "data-testid": t
2060
2064
  }) : /* @__PURE__ */ c("div", {
2061
2065
  "data-testid": t,
2062
2066
  style: {
2063
2067
  position: "relative",
2064
- width: q,
2065
- height: Et
2068
+ width: m,
2069
+ height: Ot
2066
2070
  },
2067
2071
  children: [/* @__PURE__ */ s("canvas", {
2068
2072
  ref: r,
2069
2073
  role: "img",
2070
2074
  "aria-label": "Early Warning severity distribution — prism spectrum bands",
2071
2075
  style: {
2072
- width: q,
2073
- height: Et,
2076
+ width: m,
2077
+ height: Ot,
2074
2078
  display: "block"
2075
2079
  }
2076
2080
  }), /* @__PURE__ */ s(C, {
2077
- ...m,
2078
- parentW: q,
2079
- parentH: Et
2081
+ ..._,
2082
+ parentW: m,
2083
+ parentH: Ot
2080
2084
  })]
2081
2085
  });
2082
2086
  }
2083
2087
  //#endregion
2084
2088
  //#region src/components/hubAndSpokeRadialChart/HubAndSpokeRadialChart.tsx
2085
- var J = 460, Y = 300, At = {
2089
+ var J = 300, Y = 280, Pt = 100, Ft = {
2086
2090
  Open: u.red,
2087
2091
  Submitted: u.amber,
2088
2092
  Closed: u.green
2089
2093
  };
2090
- function jt({ segments: e = [], title: t, "data-testid": r }) {
2094
+ function It({ segments: e = [], title: t, "data-testid": r }) {
2091
2095
  let o = a(null), l = a(0), d = a(/* @__PURE__ */ new Map()), { hoveredRef: m, tooltip: g, hitZonesRef: _ } = w(o, {
2092
2096
  width: J,
2093
2097
  height: Y
@@ -2097,21 +2101,21 @@ function jt({ segments: e = [], title: t, "data-testid": r }) {
2097
2101
  if (!e) return;
2098
2102
  let t = v(e, J, Y);
2099
2103
  l.current = 0;
2100
- let n = J * .5, r = Y * .54, i = J * .22, a = S.reduce((e, t) => e + (t.count ?? 0), 0), s = Math.max(...S.map((e) => e.count ?? 0), 1), c, g = () => {
2104
+ let n = J * .5, r = Y * .56, i = Pt, a = S.reduce((e, t) => e + (t.count ?? 0), 0), s = Math.max(...S.map((e) => e.count ?? 0), 1), c, g = () => {
2101
2105
  l.current++;
2102
2106
  let e = l.current;
2103
2107
  t.clearRect(0, 0, J, Y), t.letterSpacing = f.letterSpacing, _.current = [], d.current.forEach((e, t) => {
2104
2108
  let n = t === m.current ? 1 : 0, r = e + (n - e) * .12;
2105
2109
  Math.abs(r - n) < .005 ? n === 0 ? d.current.delete(t) : d.current.set(t, 1) : d.current.set(t, r);
2106
2110
  }), m.current && !d.current.has(m.current) && d.current.set(m.current, 0), b(t, J, Y, e, 40, h(u.blue, .04)), S.forEach((a, o) => {
2107
- let c = o / 3 * Math.PI * 2 - Math.PI / 2, l = n + Math.cos(c) * i, d = r + Math.sin(c) * i, f = At[a.status] ?? u.blue, m = 2 + a.count / s * 8;
2111
+ let c = o / 3 * Math.PI * 2 - Math.PI / 2, l = n + Math.cos(c) * i, d = r + Math.sin(c) * i, f = Ft[a.status] ?? u.blue, m = 2 + a.count / s * 8;
2108
2112
  t.beginPath(), t.moveTo(n, r), t.lineTo(l, d), t.strokeStyle = h(f, .08), t.lineWidth = m * 2, t.stroke(), t.beginPath(), t.moveTo(n, r), t.lineTo(l, d), t.strokeStyle = h(f, .25), t.lineWidth = 1, t.stroke();
2109
2113
  let g = (e * .005 + o * .33) % 1, _ = n + (l - n) * g, v = r + (d - r) * g;
2110
2114
  y(t, _, v, 6, f, .4), t.beginPath(), t.arc(_, v, 2, 0, Math.PI * 2), t.fillStyle = h(f, .8), t.fill();
2111
2115
  let b = (n + l) / 2, x = (r + d) / 2;
2112
2116
  t.font = p.font, t.textAlign = "center", t.textBaseline = "middle", t.fillStyle = h(f, .85), t.fillText(String(a.count), b, x);
2113
2117
  }), S.forEach((e, o) => {
2114
- let c = o / 3 * Math.PI * 2 - Math.PI / 2, l = n + Math.cos(c) * i, p = r + Math.sin(c) * i, m = At[e.status] ?? u.blue, g = 10 + e.count / s * 18, v = d.current.get(e.status) ?? 0;
2118
+ let c = o / 3 * Math.PI * 2 - Math.PI / 2, l = n + Math.cos(c) * i, p = r + Math.sin(c) * i, m = Ft[e.status] ?? u.blue, g = 10 + e.count / s * 18, v = d.current.get(e.status) ?? 0;
2115
2119
  y(t, l, p, g * 2.5, m, .2 + v * .15);
2116
2120
  let b = t.createRadialGradient(l, p - g * .2, 0, l, p, g);
2117
2121
  b.addColorStop(0, h(m, .8 + v * .2)), b.addColorStop(1, h(m, .4 + v * .1)), t.beginPath(), t.arc(l, p, g, 0, Math.PI * 2), t.fillStyle = b, t.fill(), t.font = "bold " + f.font, t.textAlign = "center", t.textBaseline = "middle", t.fillStyle = h(u.t1, .9), t.fillText(e.status, l, p), T(_.current, e.status, l, p, g + 6, {
@@ -2161,8 +2165,8 @@ function jt({ segments: e = [], title: t, "data-testid": r }) {
2161
2165
  }
2162
2166
  //#endregion
2163
2167
  //#region src/components/trendChart/TrendChart.tsx
2164
- var Mt = 280, X = 96;
2165
- function Nt({ points: e = [], className: t, colors: r }) {
2168
+ var Lt = 280, X = 96;
2169
+ function Rt({ points: e = [], className: t, colors: r }) {
2166
2170
  let o = a(null), d = a(/* @__PURE__ */ new Map()), f = a(0), p = i(() => e.filter(Array.isArray).map(([e, t]) => {
2167
2171
  let n = String(t).match(/-?\d+(\.\d+)?/);
2168
2172
  return {
@@ -2170,18 +2174,18 @@ function Nt({ points: e = [], className: t, colors: r }) {
2170
2174
  value: n ? Number(n[0]) : 0
2171
2175
  };
2172
2176
  }), [e]), { mouseRef: m, hoveredRef: g, tooltip: _, hitZonesRef: b } = w(o, {
2173
- width: Mt,
2177
+ width: Lt,
2174
2178
  height: X
2175
2179
  });
2176
2180
  return n(() => {
2177
2181
  let e = o.current;
2178
2182
  if (!e) return;
2179
- let t = v(e, Mt, X);
2183
+ let t = v(e, Lt, X);
2180
2184
  f.current = 0;
2181
2185
  let n = r?.line ?? u.blue, i = r?.point ?? u.blue, a = r?.axisLine ?? u.bd, s, c = () => {
2182
2186
  f.current++;
2183
2187
  let e = f.current;
2184
- if (t.clearRect(0, 0, Mt, X), p.length < 2) {
2188
+ if (t.clearRect(0, 0, Lt, X), p.length < 2) {
2185
2189
  s = requestAnimationFrame(c);
2186
2190
  return;
2187
2191
  }
@@ -2190,8 +2194,8 @@ function Nt({ points: e = [], className: t, colors: r }) {
2190
2194
  right: 12,
2191
2195
  top: 16,
2192
2196
  bottom: 20
2193
- }, o = Mt - r.left - r.right, l = X - r.top - r.bottom, _ = p.map((e) => e.value), v = Math.min(..._), x = Math.max(..._) - v || 1, C = (e) => r.left + e / (p.length - 1) * o, w = (e) => r.top + (1 - (e - v) / x) * l, E = 1 - (1 - Math.min(e / 48, 1)) ** 3, D = Math.max(2, Math.floor(E * p.length));
2194
- if (N(d.current, g.current), b.current = [], t.strokeStyle = h(a, .3), t.lineWidth = .5, t.setLineDash([]), t.beginPath(), t.moveTo(r.left, X - r.bottom), t.lineTo(Mt - r.right, X - r.bottom), t.stroke(), t.font = "9px 'JetBrains Mono', monospace", t.fillStyle = h(u.t4, .9), t.textAlign = "center", p.forEach((e, n) => {
2197
+ }, o = Lt - r.left - r.right, l = X - r.top - r.bottom, _ = p.map((e) => e.value), v = Math.min(..._), x = Math.max(..._) - v || 1, C = (e) => r.left + e / (p.length - 1) * o, w = (e) => r.top + (1 - (e - v) / x) * l, E = 1 - (1 - Math.min(e / 48, 1)) ** 3, D = Math.max(2, Math.floor(E * p.length));
2198
+ if (N(d.current, g.current), b.current = [], t.strokeStyle = h(a, .3), t.lineWidth = .5, t.setLineDash([]), t.beginPath(), t.moveTo(r.left, X - r.bottom), t.lineTo(Lt - r.right, X - r.bottom), t.stroke(), t.font = "9px 'JetBrains Mono', monospace", t.fillStyle = h(u.t4, .9), t.textAlign = "center", p.forEach((e, n) => {
2195
2199
  t.fillText(e.label.replace("Day ", "D"), C(n), X - 4);
2196
2200
  }), m.current.over && g.current) {
2197
2201
  let e = parseInt(g.current.split("-")[1]);
@@ -2228,7 +2232,7 @@ function Nt({ points: e = [], className: t, colors: r }) {
2228
2232
  children: /* @__PURE__ */ c("div", {
2229
2233
  style: {
2230
2234
  position: "relative",
2231
- width: Mt,
2235
+ width: Lt,
2232
2236
  height: X
2233
2237
  },
2234
2238
  children: [/* @__PURE__ */ s("canvas", {
@@ -2236,14 +2240,14 @@ function Nt({ points: e = [], className: t, colors: r }) {
2236
2240
  role: "img",
2237
2241
  "aria-label": "trend chart",
2238
2242
  style: {
2239
- width: Mt,
2243
+ width: Lt,
2240
2244
  height: X,
2241
2245
  display: "block",
2242
2246
  borderRadius: 8
2243
2247
  }
2244
2248
  }), /* @__PURE__ */ s(C, {
2245
2249
  ..._,
2246
- parentW: Mt,
2250
+ parentW: Lt,
2247
2251
  parentH: X
2248
2252
  })]
2249
2253
  })
@@ -2251,27 +2255,27 @@ function Nt({ points: e = [], className: t, colors: r }) {
2251
2255
  }
2252
2256
  //#endregion
2253
2257
  //#region src/components/segmentedSplitBarChart/SegmentedSplitBarChart.tsx
2254
- function Pt(e, t, n) {
2258
+ function zt(e, t, n) {
2255
2259
  if (e.measureText(t).width <= n) return t;
2256
2260
  let r = t;
2257
2261
  for (; r.length > 0 && e.measureText(r + "…").width > n;) r = r.slice(0, -1);
2258
2262
  return r + "…";
2259
2263
  }
2260
- var Ft = 680, It = 8, Lt = 26, Rt = 14, zt = 16, Bt = 32;
2261
- function Vt({ items: e = [], "data-testid": t }) {
2262
- let r = a(null), l = a(/* @__PURE__ */ new Map()), d = a(0), [g, _] = o(!1), b = i(() => e.filter((e) => typeof e == "object" && !!e), [e]), x = i(() => g ? b : b.slice(0, It), [b, g]), S = zt + Bt + x.length * (Lt + Rt) - Rt, { hoveredRef: T, tooltip: D, hitZonesRef: k } = w(r, {
2263
- width: Ft,
2264
+ var Bt = 680, Vt = 8, Ht = 26, Ut = 14, Wt = 16, Gt = 32;
2265
+ function Kt({ items: e = [], "data-testid": t }) {
2266
+ let r = a(null), l = a(/* @__PURE__ */ new Map()), d = a(0), [g, _] = o(!1), b = i(() => e.filter((e) => typeof e == "object" && !!e), [e]), x = i(() => g ? b : b.slice(0, Vt), [b, g]), S = Wt + Gt + x.length * (Ht + Ut) - Ut, { hoveredRef: T, tooltip: D, hitZonesRef: k } = w(r, {
2267
+ width: Bt,
2264
2268
  height: S
2265
2269
  });
2266
2270
  return n(() => {
2267
2271
  let e = r.current;
2268
2272
  if (!e) return;
2269
- let t = v(e, Ft, S);
2273
+ let t = v(e, Bt, S);
2270
2274
  d.current = 0;
2271
- let n = zt, i = Bt, a = Lt, o = Rt, s = Ft - 60 - 28, c = Math.max(...x.map((e) => (e.implemented ?? 0) + (e.unimplemented ?? 0)), 1), g = x.length * (a + o) - o, _ = n + (S - n - i - g) / 2, b, C = () => {
2275
+ let n = Wt, i = Gt, a = Ht, o = Ut, s = Bt - 60 - 28, c = Math.max(...x.map((e) => (e.implemented ?? 0) + (e.unimplemented ?? 0)), 1), g = x.length * (a + o) - o, _ = n + (S - n - i - g) / 2, b, C = () => {
2272
2276
  d.current++;
2273
2277
  let e = d.current;
2274
- t.clearRect(0, 0, Ft, S);
2278
+ t.clearRect(0, 0, Bt, S);
2275
2279
  let n = O(Math.min(e / 60, 1));
2276
2280
  N(l.current, T.current), k.current = [], x.forEach((e, r) => {
2277
2281
  let i = M(n, r, x.length, O), d = _ + r * (a + o), m = (e.implemented ?? 0) + (e.unimplemented ?? 0), g = (e.implemented ?? 0) / c * s * i, v = (e.unimplemented ?? 0) / c * s * i, b = `${e.id}-impl`, S = `${e.id}-un`, C = l.current.get(b) ?? 0, w = l.current.get(S) ?? 0;
@@ -2285,7 +2289,7 @@ function Vt({ items: e = [], "data-testid": t }) {
2285
2289
  value: `${e.unimplemented ?? 0} variations`,
2286
2290
  sublabel: `${Math.round((e.unimplemented ?? 0) / (m || 1) * 100)}% pending`,
2287
2291
  color: u.amber
2288
- }), t.font = f.font, t.fillStyle = u.t2, t.textAlign = "right", t.fillText(Pt(t, e.abbreviation ?? e.name ?? "", 44), 52, d + a / 2 + 4), t.fillStyle = h(u.bd, .15), t.beginPath(), t.roundRect(60, d, m / c * s, a, 4), t.fill(), g > 0 && (C > 0 && y(t, 60 + g / 2, d + a / 2, g * .3, u.green, .12 * C), t.fillStyle = h(u.green, .6 + C * .2), t.beginPath(), t.roundRect(60, d, g, a, [
2292
+ }), t.font = f.font, t.fillStyle = u.t2, t.textAlign = "right", t.fillText(zt(t, e.abbreviation ?? e.name ?? "", 44), 52, d + a / 2 + 4), t.fillStyle = h(u.bd, .15), t.beginPath(), t.roundRect(60, d, m / c * s, a, 4), t.fill(), g > 0 && (C > 0 && y(t, 60 + g / 2, d + a / 2, g * .3, u.green, .12 * C), t.fillStyle = h(u.green, .6 + C * .2), t.beginPath(), t.roundRect(60, d, g, a, [
2289
2293
  4,
2290
2294
  0,
2291
2295
  0,
@@ -2302,16 +2306,16 @@ function Vt({ items: e = [], "data-testid": t }) {
2302
2306
  };
2303
2307
  return C(), () => cancelAnimationFrame(b);
2304
2308
  }, [x, S]), b.length === 0 ? /* @__PURE__ */ s(I, {
2305
- width: Ft,
2309
+ width: Bt,
2306
2310
  height: 160,
2307
2311
  "data-testid": t
2308
2312
  }) : /* @__PURE__ */ c("div", {
2309
2313
  "data-testid": t,
2310
- style: { width: Ft },
2314
+ style: { width: Bt },
2311
2315
  children: [/* @__PURE__ */ c("div", {
2312
2316
  style: {
2313
2317
  position: "relative",
2314
- width: Ft,
2318
+ width: Bt,
2315
2319
  height: S
2316
2320
  },
2317
2321
  children: [/* @__PURE__ */ s("canvas", {
@@ -2319,16 +2323,16 @@ function Vt({ items: e = [], "data-testid": t }) {
2319
2323
  role: "img",
2320
2324
  "aria-label": "Implemented vs unimplemented variations per contractor — split bar",
2321
2325
  style: {
2322
- width: Ft,
2326
+ width: Bt,
2323
2327
  height: S,
2324
2328
  display: "block"
2325
2329
  }
2326
2330
  }), /* @__PURE__ */ s(C, {
2327
2331
  ...D,
2328
- parentW: Ft,
2332
+ parentW: Bt,
2329
2333
  parentH: S
2330
2334
  })]
2331
- }), b.length > It && /* @__PURE__ */ s("div", {
2335
+ }), b.length > Vt && /* @__PURE__ */ s("div", {
2332
2336
  style: { marginTop: 8 },
2333
2337
  children: /* @__PURE__ */ s(ae, {
2334
2338
  expanded: g,
@@ -2339,18 +2343,18 @@ function Vt({ items: e = [], "data-testid": t }) {
2339
2343
  }
2340
2344
  //#endregion
2341
2345
  //#region src/components/weeklyFlow/WeeklyFlow.tsx
2342
- var Ht = 800, Ut = 360;
2343
- function Wt({ items: e = [], "data-testid": t }) {
2346
+ var qt = 800, Jt = 360;
2347
+ function Yt({ items: e = [], "data-testid": t }) {
2344
2348
  let r = a(null), i = a(/* @__PURE__ */ new Map()), o = a(0), { hoveredRef: l, tooltip: m, hitZonesRef: g } = w(r, {
2345
- width: Ht,
2346
- height: Ut
2349
+ width: qt,
2350
+ height: Jt
2347
2351
  });
2348
2352
  return n(() => {
2349
2353
  let t = r.current;
2350
2354
  if (!t) return;
2351
- let n = v(t, Ht, Ut);
2355
+ let n = v(t, qt, Jt);
2352
2356
  o.current = 0;
2353
- let a = e.reduce((e, t) => e + (t.base ?? 0), 0), s = e.reduce((e, t) => e + (t.variation ?? 0), 0), c = e.reduce((e, t) => e + (t.total ?? 0), 0), m = Ut - 20 - 26, _ = m - 6 * (e.length - 1), b = 20, x = e.map((e, t) => {
2357
+ let a = e.reduce((e, t) => e + (t.base ?? 0), 0), s = e.reduce((e, t) => e + (t.variation ?? 0), 0), c = e.reduce((e, t) => e + (t.total ?? 0), 0), m = Jt - 20 - 26, _ = m - 6 * (e.length - 1), b = 20, x = e.map((e, t) => {
2354
2358
  let n = Math.max(24, (e.total ?? 0) / (c || 1) * _), r = {
2355
2359
  x: 100 - 110 / 2,
2356
2360
  y: b,
@@ -2378,16 +2382,16 @@ function Wt({ items: e = [], "data-testid": t }) {
2378
2382
  }, j, P = () => {
2379
2383
  o.current++;
2380
2384
  let t = o.current;
2381
- n.clearRect(0, 0, Ht, Ut), n.letterSpacing = f.letterSpacing;
2385
+ n.clearRect(0, 0, qt, Jt), n.letterSpacing = f.letterSpacing;
2382
2386
  let r = D(Math.min(t / 80, 1));
2383
2387
  if (N(i.current, l.current), g.current = [], e.forEach((t, o) => {
2384
2388
  let c = x[o], l = M(r, o, e.length, D), u = i.current.get(t.id) ?? 0;
2385
2389
  if (l < .01) return;
2386
2390
  let d = (t.base ?? 0) / (t.total || 1), f = (t.variation ?? 0) / (t.total || 1), p = c.h * d, m = c.h * f, h = c.y + p / 2, g = c.y + p + m / 2, _ = Math.max(2, (t.base ?? 0) / a * C), v = Math.max(2, (t.variation ?? 0) / s * w), y = O.y + e.slice(0, o).reduce((e, t) => e + (t.base ?? 0) / a * C, 0) + _ / 2, b = k.y + e.slice(0, o).reduce((e, t) => e + (t.variation ?? 0) / s * w, 0) + v / 2, S = u * .2 + .18;
2387
- Gt(n, c.x + 110, h, 420 - 110 / 2, y, _ * l, c.color, S), Gt(n, c.x + 110, g, 420 - 110 / 2, b, v * l, c.color, S * .75);
2391
+ Xt(n, c.x + 110, h, 420 - 110 / 2, y, _ * l, c.color, S), Xt(n, c.x + 110, g, 420 - 110 / 2, b, v * l, c.color, S * .75);
2388
2392
  }), r > .3) {
2389
2393
  let e = Math.min(1, (r - .3) / .7), t = A.y + a / c * m / 2, i = A.y + m - s / c * m / 2;
2390
- Gt(n, 475, O.cy, 720 - 110 / 2, t, C * e, u.blue, .25 * e), Gt(n, 475, k.cy, 720 - 110 / 2, i, w * e, u.amber, .22 * e);
2394
+ Xt(n, 475, O.cy, 720 - 110 / 2, t, C * e, u.blue, .25 * e), Xt(n, 475, k.cy, 720 - 110 / 2, i, w * e, u.amber, .22 * e);
2391
2395
  }
2392
2396
  if ([
2393
2397
  "Contractors",
@@ -2399,7 +2403,7 @@ function Wt({ items: e = [], "data-testid": t }) {
2399
2403
  420,
2400
2404
  720
2401
2405
  ][t];
2402
- n.font = f.font, n.fillStyle = f.color, n.textAlign = "center", n.fillText(e, r, Ut - 8);
2406
+ n.font = f.font, n.fillStyle = f.color, n.textAlign = "center", n.fillText(e, r, Jt - 8);
2403
2407
  }), e.forEach((t, a) => {
2404
2408
  let o = x[a], s = M(r, a, e.length, D), c = i.current.get(t.id) ?? 0;
2405
2409
  E(g.current, t.id, o.x, o.y, 110, o.h, {
@@ -2423,33 +2427,33 @@ function Wt({ items: e = [], "data-testid": t }) {
2423
2427
  "data-testid": t,
2424
2428
  style: {
2425
2429
  position: "relative",
2426
- width: Ht,
2427
- height: Ut
2430
+ width: qt,
2431
+ height: Jt
2428
2432
  },
2429
2433
  children: [/* @__PURE__ */ s("canvas", {
2430
2434
  ref: r,
2431
2435
  role: "img",
2432
2436
  "aria-label": "Weekly report flow — base value and variations per contractor flowing to total commitment",
2433
2437
  style: {
2434
- width: Ht,
2435
- height: Ut,
2438
+ width: qt,
2439
+ height: Jt,
2436
2440
  display: "block"
2437
2441
  }
2438
2442
  }), /* @__PURE__ */ s(C, {
2439
2443
  ...m,
2440
- parentW: Ht,
2441
- parentH: Ut
2444
+ parentW: qt,
2445
+ parentH: Jt
2442
2446
  })]
2443
2447
  });
2444
2448
  }
2445
- function Gt(e, t, n, r, i, a, o, s) {
2449
+ function Xt(e, t, n, r, i, a, o, s) {
2446
2450
  let c = (t + r) / 2;
2447
2451
  e.beginPath(), e.moveTo(t, n - a / 2), e.bezierCurveTo(c, n - a / 2, c, i - a / 2, r, i - a / 2), e.lineTo(r, i + a / 2), e.bezierCurveTo(c, i + a / 2, c, n + a / 2, t, n + a / 2), e.closePath(), e.fillStyle = h(o, s), e.fill();
2448
2452
  }
2449
2453
  //#endregion
2450
2454
  //#region src/components/visualizationRenderer/VisualizationRenderer.tsx
2451
- function Kt({ config: e, className: t }) {
2452
- return e.type === "line" ? /* @__PURE__ */ s(Re, {
2455
+ function Zt({ config: e, className: t }) {
2456
+ return e.type === "line" ? /* @__PURE__ */ s(ze, {
2453
2457
  rows: e.rows,
2454
2458
  className: t
2455
2459
  }) : e.type === "area" ? /* @__PURE__ */ s(te, {
@@ -2458,30 +2462,30 @@ function Kt({ config: e, className: t }) {
2458
2462
  }) : e.type === "bar" ? /* @__PURE__ */ s(ie, {
2459
2463
  rows: e.rows,
2460
2464
  className: t
2461
- }) : e.type === "pie" ? /* @__PURE__ */ s(Qe, {
2465
+ }) : e.type === "pie" ? /* @__PURE__ */ s($e, {
2462
2466
  rows: e.rows,
2463
2467
  variant: "pie",
2464
2468
  className: t
2465
- }) : e.type === "donut" ? /* @__PURE__ */ s(Qe, {
2469
+ }) : e.type === "donut" ? /* @__PURE__ */ s($e, {
2466
2470
  rows: e.rows,
2467
2471
  variant: "donut",
2468
2472
  className: t
2469
- }) : e.type === "sankey" ? /* @__PURE__ */ s(lt, {
2473
+ }) : e.type === "sankey" ? /* @__PURE__ */ s(ut, {
2470
2474
  rows: e.rows,
2471
2475
  className: t
2472
- }) : e.type === "flow" ? /* @__PURE__ */ s(ct, {
2476
+ }) : e.type === "flow" ? /* @__PURE__ */ s(lt, {
2473
2477
  selectedEntity: e.selectedEntity,
2474
2478
  className: t
2475
- }) : e.type === "trend" ? /* @__PURE__ */ s(Nt, {
2479
+ }) : e.type === "trend" ? /* @__PURE__ */ s(Rt, {
2476
2480
  points: e.points,
2477
2481
  className: t
2478
- }) : e.type === "mini-bars" ? /* @__PURE__ */ s(Ve, {
2482
+ }) : e.type === "mini-bars" ? /* @__PURE__ */ s(He, {
2479
2483
  rows: e.rows,
2480
2484
  className: t
2481
- }) : e.type === "stacked-horizontal-bar-chart" ? /* @__PURE__ */ s(je, { data: e.data }) : e.type === "multi-metric-constellation-chart" ? /* @__PURE__ */ s(Ce, { items: e.items }) : e.type === "progress-race-chart" ? /* @__PURE__ */ s(fe, { items: e.items }) : e.type === "hub-and-spoke-radial-chart" ? /* @__PURE__ */ s(jt, {
2485
+ }) : e.type === "stacked-horizontal-bar-chart" ? /* @__PURE__ */ s(Ae, { data: e.data }) : e.type === "multi-metric-constellation-chart" ? /* @__PURE__ */ s(Se, { items: e.items }) : e.type === "progress-race-chart" ? /* @__PURE__ */ s(fe, { items: e.items }) : e.type === "hub-and-spoke-radial-chart" ? /* @__PURE__ */ s(It, {
2482
2486
  segments: e.segments,
2483
2487
  title: e.title
2484
- }) : e.type === "dot-matrix-chart" ? /* @__PURE__ */ s(Le, { items: e.items }) : e.type === "ranked-card-leaderboard" ? /* @__PURE__ */ s(Ie, { items: e.items }) : e.type === "proportional-band-chart" ? /* @__PURE__ */ s(kt, { severities: e.severities }) : e.type === "radial-fan-tree-chart" ? /* @__PURE__ */ s(Je, {
2488
+ }) : e.type === "dot-matrix-chart" ? /* @__PURE__ */ s(Re, { items: e.items }) : e.type === "ranked-card-leaderboard" ? /* @__PURE__ */ s(Le, { items: e.items }) : e.type === "proportional-band-chart" ? /* @__PURE__ */ s(Nt, { severities: e.severities }) : e.type === "radial-fan-tree-chart" ? /* @__PURE__ */ s(Ye, {
2485
2489
  total: e.total,
2486
2490
  totalLabel: e.totalLabel,
2487
2491
  items: e.items
@@ -2489,47 +2493,47 @@ function Kt({ config: e, className: t }) {
2489
2493
  value: e.value,
2490
2494
  confirmed: e.confirmed,
2491
2495
  total: e.total
2492
- }) : e.type === "segmented-split-bar-chart" ? /* @__PURE__ */ s(Vt, { items: e.items }) : e.type === "balance-scale-chart" ? /* @__PURE__ */ s(ft, {
2496
+ }) : e.type === "segmented-split-bar-chart" ? /* @__PURE__ */ s(Kt, { items: e.items }) : e.type === "balance-scale-chart" ? /* @__PURE__ */ s(pt, {
2493
2497
  left: e.left,
2494
2498
  right: e.right
2495
- }) : e.type === "area-line-chart" ? /* @__PURE__ */ s(mt, { points: e.points }) : e.type === "trend-view" ? /* @__PURE__ */ s(Tt, { points: e.points }) : e.type === "weekly-flow" ? /* @__PURE__ */ s(Wt, { items: e.items }) : /* @__PURE__ */ s("div", {
2499
+ }) : e.type === "area-line-chart" ? /* @__PURE__ */ s(ht, { points: e.points }) : e.type === "trend-view" ? /* @__PURE__ */ s(Et, { points: e.points }) : e.type === "weekly-flow" ? /* @__PURE__ */ s(Yt, { items: e.items }) : /* @__PURE__ */ s("div", {
2496
2500
  className: "viz-empty",
2497
2501
  children: "Visualization unavailable"
2498
2502
  });
2499
2503
  }
2500
2504
  //#endregion
2501
2505
  //#region src/utils/mounts.tsx
2502
- var qt = [];
2503
- function Jt(e) {
2506
+ var Qt = [];
2507
+ function $t(e) {
2504
2508
  try {
2505
2509
  return JSON.parse(decodeURIComponent(e));
2506
2510
  } catch {
2507
2511
  return null;
2508
2512
  }
2509
2513
  }
2510
- function Yt() {
2511
- for (; qt.length;) {
2512
- let e = qt.pop();
2514
+ function en() {
2515
+ for (; Qt.length;) {
2516
+ let e = Qt.pop();
2513
2517
  e && e.unmount();
2514
2518
  }
2515
2519
  }
2516
- function Xt() {
2517
- Yt(), document.querySelectorAll("[data-d3-viz]").forEach((t) => {
2520
+ function tn() {
2521
+ en(), document.querySelectorAll("[data-d3-viz]").forEach((t) => {
2518
2522
  let n = t.dataset.d3Viz;
2519
2523
  if (!n) return;
2520
- let r = Jt(n);
2524
+ let r = $t(n);
2521
2525
  if (!r) return;
2522
2526
  let i = e(t);
2523
- qt.push(i), i.render(/* @__PURE__ */ s(Kt, { config: r }));
2527
+ Qt.push(i), i.render(/* @__PURE__ */ s(Zt, { config: r }));
2524
2528
  });
2525
2529
  }
2526
- function Zt(e) {
2530
+ function nn(e) {
2527
2531
  return encodeURIComponent(JSON.stringify(e));
2528
2532
  }
2529
2533
  //#endregion
2530
2534
  //#region src/components/donutChart/DonutChart.tsx
2531
- function Qt({ rows: e = [], className: t, colors: n }) {
2532
- return /* @__PURE__ */ s(Qe, {
2535
+ function rn({ rows: e = [], className: t, colors: n }) {
2536
+ return /* @__PURE__ */ s($e, {
2533
2537
  rows: e,
2534
2538
  variant: "donut",
2535
2539
  className: t,
@@ -2548,7 +2552,7 @@ var Z = {
2548
2552
  red: u.red,
2549
2553
  amber: u.amber,
2550
2554
  green: u.green
2551
- }, Q = "'Satoshi Variable', 'DM Sans', sans-serif", $t = {
2555
+ }, Q = "'Satoshi Variable', 'DM Sans', sans-serif", an = {
2552
2556
  color: "#F7F7F7",
2553
2557
  fontFamily: Q,
2554
2558
  fontSize: 24,
@@ -2561,7 +2565,7 @@ var Z = {
2561
2565
  fontWeight: 400,
2562
2566
  lineHeight: "20px"
2563
2567
  };
2564
- function en({ chips: e = [] }) {
2568
+ function on({ chips: e = [] }) {
2565
2569
  return /* @__PURE__ */ s("div", {
2566
2570
  style: {
2567
2571
  display: "flex",
@@ -2583,7 +2587,7 @@ function en({ chips: e = [] }) {
2583
2587
  },
2584
2588
  children: [/* @__PURE__ */ s("span", {
2585
2589
  style: {
2586
- ...$t,
2590
+ ...an,
2587
2591
  color: e.color ?? Z.t1
2588
2592
  },
2589
2593
  children: e.value
@@ -2597,7 +2601,7 @@ function en({ chips: e = [] }) {
2597
2601
  }, t))
2598
2602
  });
2599
2603
  }
2600
- function tn({ items: e = [] }) {
2604
+ function sn({ items: e = [] }) {
2601
2605
  return /* @__PURE__ */ s("div", {
2602
2606
  style: {
2603
2607
  display: "flex",
@@ -2620,7 +2624,7 @@ function tn({ items: e = [] }) {
2620
2624
  },
2621
2625
  children: [/* @__PURE__ */ s("div", {
2622
2626
  style: {
2623
- ...$t,
2627
+ ...an,
2624
2628
  color: e.color ?? Z.t1
2625
2629
  },
2626
2630
  children: e.value
@@ -2631,7 +2635,7 @@ function tn({ items: e = [] }) {
2631
2635
  }, t))
2632
2636
  });
2633
2637
  }
2634
- function nn({ items: e = [] }) {
2638
+ function cn({ items: e = [] }) {
2635
2639
  return /* @__PURE__ */ s("div", {
2636
2640
  style: {
2637
2641
  display: "flex",
@@ -2663,7 +2667,7 @@ function nn({ items: e = [] }) {
2663
2667
  }),
2664
2668
  /* @__PURE__ */ s("span", {
2665
2669
  style: {
2666
- ...$t,
2670
+ ...an,
2667
2671
  fontSize: 18,
2668
2672
  color: e.color ?? Z.t1,
2669
2673
  minWidth: 70,
@@ -2682,7 +2686,7 @@ function nn({ items: e = [] }) {
2682
2686
  }, t))
2683
2687
  });
2684
2688
  }
2685
- function rn({ items: e = [] }) {
2689
+ function ln({ items: e = [] }) {
2686
2690
  return /* @__PURE__ */ s("div", {
2687
2691
  style: {
2688
2692
  display: "flex",
@@ -2704,7 +2708,7 @@ function rn({ items: e = [] }) {
2704
2708
  },
2705
2709
  children: [/* @__PURE__ */ s("div", {
2706
2710
  style: {
2707
- ...$t,
2711
+ ...an,
2708
2712
  color: e.color ?? Z.t1
2709
2713
  },
2710
2714
  children: e.value
@@ -2715,12 +2719,12 @@ function rn({ items: e = [] }) {
2715
2719
  }, t))
2716
2720
  });
2717
2721
  }
2718
- var an = {
2722
+ var un = {
2719
2723
  red: Z.red,
2720
2724
  amber: Z.amber,
2721
2725
  green: Z.green
2722
2726
  };
2723
- function on({ items: e = [] }) {
2727
+ function dn({ items: e = [] }) {
2724
2728
  return /* @__PURE__ */ s("div", {
2725
2729
  style: {
2726
2730
  display: "flex",
@@ -2728,7 +2732,7 @@ function on({ items: e = [] }) {
2728
2732
  gap: 5
2729
2733
  },
2730
2734
  children: e.map((e, t) => {
2731
- let n = an[e.severity];
2735
+ let n = un[e.severity];
2732
2736
  return /* @__PURE__ */ c("div", {
2733
2737
  style: {
2734
2738
  display: "flex",
@@ -2753,7 +2757,7 @@ function on({ items: e = [] }) {
2753
2757
  })
2754
2758
  });
2755
2759
  }
2756
- function sn({ min: e, max: t, unit: n, dots: r = [], chips: i = [] }) {
2760
+ function fn({ min: e, max: t, unit: n, dots: r = [], chips: i = [] }) {
2757
2761
  let a = t - e;
2758
2762
  return /* @__PURE__ */ c("div", { children: [/* @__PURE__ */ c("div", {
2759
2763
  style: {
@@ -2863,9 +2867,9 @@ function sn({ min: e, max: t, unit: n, dots: r = [], chips: i = [] }) {
2863
2867
  }, r);
2864
2868
  })
2865
2869
  ]
2866
- }), i && i.length > 0 && /* @__PURE__ */ s(en, { chips: i })] });
2870
+ }), i && i.length > 0 && /* @__PURE__ */ s(on, { chips: i })] });
2867
2871
  }
2868
- function cn({ leftPct: e, leftLabel: t, leftValue: n, leftColor: r, rightPct: i, rightLabel: a, rightValue: o, rightColor: l, chips: d }) {
2872
+ function pn({ leftPct: e, leftLabel: t, leftValue: n, leftColor: r, rightPct: i, rightLabel: a, rightValue: o, rightColor: l, chips: d }) {
2869
2873
  let f = r ?? u.blue, p = l ?? u.blue;
2870
2874
  return /* @__PURE__ */ c("div", { children: [
2871
2875
  /* @__PURE__ */ c("div", {
@@ -2959,10 +2963,10 @@ function cn({ leftPct: e, leftLabel: t, leftValue: n, leftColor: r, rightPct: i,
2959
2963
  })
2960
2964
  })]
2961
2965
  }),
2962
- d && d.length > 0 && /* @__PURE__ */ s(en, { chips: d })
2966
+ d && d.length > 0 && /* @__PURE__ */ s(on, { chips: d })
2963
2967
  ] });
2964
2968
  }
2965
- function ln({ pct: e, label: t, color: n, chips: r }) {
2969
+ function mn({ pct: e, label: t, color: n, chips: r }) {
2966
2970
  let i = n ?? u.blue, a = 2 * Math.PI * 30, o = a * (1 - e / 100);
2967
2971
  return /* @__PURE__ */ c("div", {
2968
2972
  style: {
@@ -3043,7 +3047,7 @@ function ln({ pct: e, label: t, color: n, chips: r }) {
3043
3047
  },
3044
3048
  children: [/* @__PURE__ */ s("span", {
3045
3049
  style: {
3046
- ...$t,
3050
+ ...an,
3047
3051
  color: e.color ?? Z.t1
3048
3052
  },
3049
3053
  children: e.value
@@ -3056,16 +3060,16 @@ function ln({ pct: e, label: t, color: n, chips: r }) {
3056
3060
  })]
3057
3061
  });
3058
3062
  }
3059
- var un = {
3063
+ var hn = {
3060
3064
  green: "#34D39918",
3061
3065
  amber: "#FBBF2418",
3062
3066
  red: "#F0606018"
3063
- }, dn = {
3067
+ }, gn = {
3064
3068
  green: "#34D399",
3065
3069
  amber: "#FBBF24",
3066
3070
  red: "#F06060"
3067
3071
  };
3068
- function fn({ items: e = [] }) {
3072
+ function _n({ items: e = [] }) {
3069
3073
  return /* @__PURE__ */ s("div", {
3070
3074
  style: {
3071
3075
  display: "flex",
@@ -3129,8 +3133,8 @@ function fn({ items: e = [] }) {
3129
3133
  style: {
3130
3134
  fontSize: 18,
3131
3135
  fontWeight: 500,
3132
- color: dn[e.badgeSeverity],
3133
- background: un[e.badgeSeverity],
3136
+ color: gn[e.badgeSeverity],
3137
+ background: hn[e.badgeSeverity],
3134
3138
  padding: "2px 7px",
3135
3139
  borderRadius: 4,
3136
3140
  fontFamily: Q,
@@ -3153,12 +3157,12 @@ function fn({ items: e = [] }) {
3153
3157
  }, t))
3154
3158
  });
3155
3159
  }
3156
- var pn = {
3160
+ var vn = {
3157
3161
  red: Z.red,
3158
3162
  amber: Z.amber,
3159
3163
  green: Z.green
3160
3164
  };
3161
- function mn({ items: e = [] }) {
3165
+ function yn({ items: e = [] }) {
3162
3166
  return /* @__PURE__ */ s("div", {
3163
3167
  style: {
3164
3168
  display: "flex",
@@ -3166,7 +3170,7 @@ function mn({ items: e = [] }) {
3166
3170
  gap: 5
3167
3171
  },
3168
3172
  children: e.map((e, t) => {
3169
- let n = pn[e.severity];
3173
+ let n = vn[e.severity];
3170
3174
  return /* @__PURE__ */ c("div", {
3171
3175
  style: {
3172
3176
  display: "flex",
@@ -3218,7 +3222,7 @@ function mn({ items: e = [] }) {
3218
3222
  })
3219
3223
  });
3220
3224
  }
3221
- function hn({ columns: e = [], rows: t = [] }) {
3225
+ function bn({ columns: e = [], rows: t = [] }) {
3222
3226
  return /* @__PURE__ */ c("div", {
3223
3227
  style: {
3224
3228
  display: "flex",
@@ -3281,21 +3285,21 @@ function hn({ columns: e = [], rows: t = [] }) {
3281
3285
  }, t))]
3282
3286
  });
3283
3287
  }
3284
- function gn({ block: e }) {
3288
+ function xn({ block: e }) {
3285
3289
  if (!e) return null;
3286
3290
  switch (e.type) {
3287
- case "stats": return /* @__PURE__ */ s(tn, { items: e.items });
3288
- case "ranked": return /* @__PURE__ */ s(nn, { items: e.items });
3289
- case "chips": return /* @__PURE__ */ s(rn, { items: e.items });
3290
- case "badges": return /* @__PURE__ */ s(on, { items: e.items });
3291
- case "dot-strip": return /* @__PURE__ */ s(sn, {
3291
+ case "stats": return /* @__PURE__ */ s(sn, { items: e.items });
3292
+ case "ranked": return /* @__PURE__ */ s(cn, { items: e.items });
3293
+ case "chips": return /* @__PURE__ */ s(ln, { items: e.items });
3294
+ case "badges": return /* @__PURE__ */ s(dn, { items: e.items });
3295
+ case "dot-strip": return /* @__PURE__ */ s(fn, {
3292
3296
  min: e.min,
3293
3297
  max: e.max,
3294
3298
  unit: e.unit,
3295
3299
  dots: e.dots,
3296
3300
  chips: e.chips
3297
3301
  });
3298
- case "proportion": return /* @__PURE__ */ s(cn, {
3302
+ case "proportion": return /* @__PURE__ */ s(pn, {
3299
3303
  leftPct: e.leftPct,
3300
3304
  leftLabel: e.leftLabel,
3301
3305
  leftValue: e.leftValue,
@@ -3306,15 +3310,15 @@ function gn({ block: e }) {
3306
3310
  rightColor: e.rightColor,
3307
3311
  chips: e.chips
3308
3312
  });
3309
- case "ring": return /* @__PURE__ */ s(ln, {
3313
+ case "ring": return /* @__PURE__ */ s(mn, {
3310
3314
  pct: e.pct,
3311
3315
  label: e.label,
3312
3316
  color: e.color,
3313
3317
  chips: e.chips
3314
3318
  });
3315
- case "scorecard-rows": return /* @__PURE__ */ s(fn, { items: e.items });
3316
- case "flags-list": return /* @__PURE__ */ s(mn, { items: e.items });
3317
- case "comparison-rows": return /* @__PURE__ */ s(hn, {
3319
+ case "scorecard-rows": return /* @__PURE__ */ s(_n, { items: e.items });
3320
+ case "flags-list": return /* @__PURE__ */ s(yn, { items: e.items });
3321
+ case "comparison-rows": return /* @__PURE__ */ s(bn, {
3318
3322
  columns: e.columns,
3319
3323
  rows: e.rows
3320
3324
  });
@@ -3323,14 +3327,14 @@ function gn({ block: e }) {
3323
3327
  }
3324
3328
  //#endregion
3325
3329
  //#region src/components/keyHighlights/Takeaway.tsx
3326
- var _n = "'Satoshi Variable', 'DM Sans', sans-serif", vn = {
3330
+ var Sn = "'Satoshi Variable', 'DM Sans', sans-serif", Cn = {
3327
3331
  color: "#C2C2C2",
3328
- fontFamily: _n,
3332
+ fontFamily: Sn,
3329
3333
  fontSize: 18,
3330
3334
  fontWeight: 400,
3331
3335
  lineHeight: 1.65
3332
3336
  };
3333
- function yn({ text: e }) {
3337
+ function wn({ text: e }) {
3334
3338
  return /* @__PURE__ */ c("div", {
3335
3339
  style: {
3336
3340
  padding: "8px 0px",
@@ -3343,16 +3347,16 @@ function yn({ text: e }) {
3343
3347
  fontSize: 18,
3344
3348
  fontWeight: 500,
3345
3349
  color: u.t1,
3346
- fontFamily: _n,
3350
+ fontFamily: Sn,
3347
3351
  lineHeight: 1.65,
3348
3352
  marginRight: 8
3349
3353
  },
3350
3354
  children: "Takeaway"
3351
3355
  }), /* @__PURE__ */ s("span", {
3352
- style: { ...vn },
3356
+ style: { ...Cn },
3353
3357
  children: e
3354
3358
  })]
3355
3359
  });
3356
3360
  }
3357
3361
  //#endregion
3358
- export { te as AreaChart, ie as BarChart, l as ChartFrame, Qt as DonutChart, gn as KeyHighlights, Re as LineChart, Ve as MiniBars, Qe as PieChart, ct as ProcessSankey, lt as RankingSankey, et as SankeySvg, ee as SeriesChart, yn as Takeaway, Tt as Trend, Nt as TrendChart, Kt as VisualizationRenderer, Yt as cleanupVisualizationMounts, Xt as hydrateVisualizationMounts, Zt as serializeVisualizationConfig };
3362
+ export { te as AreaChart, ie as BarChart, l as ChartFrame, rn as DonutChart, xn as KeyHighlights, ze as LineChart, He as MiniBars, $e as PieChart, lt as ProcessSankey, ut as RankingSankey, tt as SankeySvg, ee as SeriesChart, wn as Takeaway, Et as Trend, Rt as TrendChart, Zt as VisualizationRenderer, en as cleanupVisualizationMounts, tn as hydrateVisualizationMounts, nn as serializeVisualizationConfig };