@divami-artefacts/ai-design-system 1.0.6 → 1.0.8

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
@@ -844,88 +844,88 @@ function Ae({ data: e, "data-testid": t }) {
844
844
  }
845
845
  //#endregion
846
846
  //#region src/components/contractorRank/ContractorRank.tsx
847
- var je = 780, B = 240, Me = 12, Ne = 10, Pe = [
847
+ var B = 780, V = 240, je = 12, Me = 10, Ne = [
848
848
  "Highest exposure",
849
849
  "Elevated risk",
850
850
  "Moderate exposure",
851
851
  "Moderate exposure",
852
852
  "Low exposure"
853
853
  ];
854
- function Fe({ contractors: e = [], "data-testid": t }) {
854
+ function Pe({ contractors: e = [], "data-testid": t }) {
855
855
  let r = a(null), i = a(0), o = a(/* @__PURE__ */ new Map()), { hoveredRef: l, tooltip: p, hitZonesRef: h } = C(r, {
856
- width: je,
857
- height: B
856
+ width: B,
857
+ height: V
858
858
  }), g = [...e].sort((e, t) => (t.count ?? 0) - (e.count ?? 0)).slice(0, 5), y = g.reduce((e, t) => e + (t.count ?? 0), 0);
859
859
  return n(() => {
860
860
  let e = r.current;
861
861
  if (!e) return;
862
- let t = _(e, je, B);
862
+ let t = _(e, B, V);
863
863
  i.current = 0;
864
- let n = Math.min(5, g.length), a = (je - 2 * Me - (n - 1) * Ne) / n, s = B * .84, c = B * .08, p, x = () => {
864
+ let n = Math.min(5, g.length), a = (B - 2 * je - (n - 1) * Me) / n, s = V * .84, c = V * .08, p, x = () => {
865
865
  i.current++;
866
866
  let e = i.current;
867
- t.clearRect(0, 0, je, B), h.current = [], o.current.forEach((e, t) => {
867
+ t.clearRect(0, 0, B, V), h.current = [], o.current.forEach((e, t) => {
868
868
  let n = t === l.current ? 1 : 0, r = e + (n - e) * .12;
869
869
  Math.abs(r - n) < .005 ? n === 0 ? o.current.delete(t) : o.current.set(t, 1) : o.current.set(t, r);
870
870
  }), l.current && !o.current.has(l.current) && o.current.set(l.current, 0), g.forEach((n, r) => {
871
- let i = r === 0, l = r === 0 ? u.red : r === 1 ? u.amber : d[r % d.length], p = Me + r * (a + Ne), g = o.current.get(n.id) ?? 0, _ = g * 8, b = p - _ / 2, x = a + _, S = i ? A(e, .04, 3e-4) * .06 + .06 : 0;
871
+ let i = r === 0, l = r === 0 ? u.red : r === 1 ? u.amber : d[r % d.length], p = je + r * (a + Me), g = o.current.get(n.id) ?? 0, _ = g * 8, b = p - _ / 2, x = a + _, S = i ? A(e, .04, 3e-4) * .06 + .06 : 0;
872
872
  t.fillStyle = m(l, .08 + g * .07), t.beginPath(), t.roundRect(b, c, x, s, 6), t.fill(), t.strokeStyle = m(l, .2 + g * .4 + S), t.lineWidth = i ? 1.5 : 1, t.stroke(), (g > .01 || i) && v(t, b + x / 2, c + s / 2, x * .55, l, S + g * .14), t.font = "bold " + f.font, t.textAlign = "left", t.textBaseline = "top", t.fillStyle = m(l, .5 + g * .35), t.fillText(`#${r + 1}`, b + 7, c + 6);
873
873
  let C = Math.min(a * .28, s * .32, 72), w = b + x / 2, E = c + s * .38, D = t.createRadialGradient(w, E - C * .2, 0, w, E, C);
874
874
  D.addColorStop(0, m(l, .5 + g * .2)), D.addColorStop(1, m(l, .2 + g * .1)), t.beginPath(), t.arc(w, E, C, 0, Math.PI * 2), t.fillStyle = D, t.fill(), t.strokeStyle = m(l, .4 + g * .3), t.lineWidth = 1, t.stroke(), t.font = "bold " + f.font, t.textAlign = "center", t.textBaseline = "middle", t.fillStyle = m(u.t1, .9), t.fillText(n.abbreviation ?? n.name.slice(0, 6), w, E), t.font = "bold 14px 'Satoshi Variable', 'DM Sans', sans-serif", t.textBaseline = "alphabetic", t.fillStyle = m(l, .9 + g * .1), t.fillText(String(n.count ?? 0), w, c + s * .76), t.font = f.font, t.fillStyle = f.color, t.fillText("open EWs", w, c + s * .88);
875
- let O = Math.round((n.count ?? 0) / (y || 1) * 100), k = Pe[r] ?? "Low exposure";
875
+ let O = Math.round((n.count ?? 0) / (y || 1) * 100), k = Ne[r] ?? "Low exposure";
876
876
  T(h.current, n.id, p, c, a, s, {
877
877
  label: n.name,
878
878
  value: `${n.count ?? 0} open · ${O}% of total`,
879
879
  sublabel: `Rank #${r + 1} · ${k}`,
880
880
  color: l
881
881
  });
882
- }), b(t, je, B, e, .015), p = requestAnimationFrame(x);
882
+ }), b(t, B, V, e, .015), p = requestAnimationFrame(x);
883
883
  };
884
884
  return x(), () => cancelAnimationFrame(p);
885
885
  }, [g, y]), /* @__PURE__ */ c("div", {
886
886
  "data-testid": t,
887
887
  style: {
888
888
  position: "relative",
889
- width: je,
890
- height: B
889
+ width: B,
890
+ height: V
891
891
  },
892
892
  children: [/* @__PURE__ */ s("canvas", {
893
893
  ref: r,
894
894
  role: "img",
895
895
  "aria-label": "Contractor rank — open EW count per contractor",
896
896
  style: {
897
- width: je,
898
- height: B,
897
+ width: B,
898
+ height: V,
899
899
  display: "block",
900
900
  borderRadius: 8
901
901
  }
902
902
  }), /* @__PURE__ */ s(S, {
903
903
  ...p,
904
- parentW: je,
905
- parentH: B
904
+ parentW: B,
905
+ parentH: V
906
906
  })]
907
907
  });
908
908
  }
909
909
  //#endregion
910
910
  //#region src/components/ewCategory/EWCategory.tsx
911
- var V = 680, H = 260;
912
- function Ie({ categories: e = [], "data-testid": t }) {
911
+ var H = 680, U = 260;
912
+ function Fe({ categories: e = [], "data-testid": t }) {
913
913
  let r = a(null), i = a(0), o = a(/* @__PURE__ */ new Map()), { hoveredRef: l, tooltip: d, hitZonesRef: f } = C(r, {
914
- width: V,
915
- height: H
914
+ width: H,
915
+ height: U
916
916
  });
917
917
  return n(() => {
918
918
  let t = r.current;
919
919
  if (!t) return;
920
- let n = _(t, V, H);
920
+ let n = _(t, H, U);
921
921
  i.current = 0;
922
- let a = e.length, s = Math.max(...e.map((e) => e.count), 1), c = s, d = V * .05, p = H * .1, h = V * .9 / a, g = H * .7 / c, x = e.reduce((e, t) => e + t.count, 0), S, C = () => {
922
+ let a = e.length, s = Math.max(...e.map((e) => e.count), 1), c = s, d = H * .05, p = U * .1, h = H * .9 / a, g = U * .7 / c, x = e.reduce((e, t) => e + t.count, 0), S, C = () => {
923
923
  i.current++;
924
924
  let t = i.current;
925
- n.clearRect(0, 0, V, H), f.current = [], o.current.forEach((e, t) => {
925
+ n.clearRect(0, 0, H, U), f.current = [], o.current.forEach((e, t) => {
926
926
  let n = t === l.current ? 1 : 0, r = e + (n - e) * .12;
927
927
  Math.abs(r - n) < .005 ? n === 0 ? o.current.delete(t) : o.current.set(t, 1) : o.current.set(t, r);
928
- }), l.current && !o.current.has(l.current) && o.current.set(l.current, 0), y(n, V, H, t, 40, m(u.blue, .04)), e.forEach((e, r) => {
928
+ }), l.current && !o.current.has(l.current) && o.current.set(l.current, 0), y(n, H, U, t, 40, m(u.blue, .04)), e.forEach((e, r) => {
929
929
  let i = e.count === s, a = i ? u.cyan : u.blue, l = o.current.get(`${e.category}-col`) ?? 0;
930
930
  for (let u = 0; u < c; u++) {
931
931
  let c = d + r * h + h / 2, _ = p + u * g + g / 2, y = Math.min(h, g) * .38;
@@ -943,36 +943,36 @@ function Ie({ categories: e = [], "data-testid": t }) {
943
943
  }
944
944
  let _ = p + c * g + 16;
945
945
  n.font = `${i ? "bold " : ""}9px 'JetBrains Mono', monospace`, n.textAlign = "center", n.textBaseline = "alphabetic", n.fillStyle = i ? u.cyan : m(u.t2, .65), n.fillText(e.category, d + r * h + h / 2, _);
946
- }), b(n, V, H, t, .015), S = requestAnimationFrame(C);
946
+ }), b(n, H, U, t, .015), S = requestAnimationFrame(C);
947
947
  };
948
948
  return C(), () => cancelAnimationFrame(S);
949
949
  }, [e]), /* @__PURE__ */ c("div", {
950
950
  "data-testid": t,
951
951
  style: {
952
952
  position: "relative",
953
- width: V,
954
- height: H
953
+ width: H,
954
+ height: U
955
955
  },
956
956
  children: [/* @__PURE__ */ s("canvas", {
957
957
  ref: r,
958
958
  role: "img",
959
959
  "aria-label": "Early Warning count by category — breathing dot grid",
960
960
  style: {
961
- width: V,
962
- height: H,
961
+ width: H,
962
+ height: U,
963
963
  display: "block",
964
964
  borderRadius: 8
965
965
  }
966
966
  }), /* @__PURE__ */ s(S, {
967
967
  ...d,
968
- parentW: V,
969
- parentH: H
968
+ parentW: H,
969
+ parentH: U
970
970
  })]
971
971
  });
972
972
  }
973
973
  //#endregion
974
974
  //#region src/components/lineChart/LineChart.tsx
975
- function Le({ rows: e = [], className: t, colors: n }) {
975
+ function Ie({ rows: e = [], className: t, colors: n }) {
976
976
  return /* @__PURE__ */ s(te, {
977
977
  rows: e,
978
978
  variant: "line",
@@ -982,7 +982,7 @@ function Le({ rows: e = [], className: t, colors: n }) {
982
982
  }
983
983
  //#endregion
984
984
  //#region src/components/constants.ts
985
- var Re = [
985
+ var Le = [
986
986
  "#36BFFA",
987
987
  "#16B364",
988
988
  "#D444F1",
@@ -991,7 +991,7 @@ var Re = [
991
991
  "#7A5AF8",
992
992
  "#EF6820",
993
993
  "#D92D20"
994
- ], ze = {
994
+ ], Re = {
995
995
  nodes: [
996
996
  {
997
997
  id: "supplier-x",
@@ -1034,8 +1034,8 @@ var Re = [
1034
1034
  };
1035
1035
  //#endregion
1036
1036
  //#region src/components/miniBars/MiniBars.tsx
1037
- function Be({ rows: e = [], className: t, colors: n }) {
1038
- let r = n?.slices ?? Re;
1037
+ function ze({ rows: e = [], className: t, colors: n }) {
1038
+ let r = n?.slices ?? Le;
1039
1039
  return /* @__PURE__ */ s("div", {
1040
1040
  className: ["d3-mini-bars", t].filter(Boolean).join(" "),
1041
1041
  children: e.map(([e, t, n], i) => /* @__PURE__ */ c("div", {
@@ -1061,7 +1061,7 @@ function Be({ rows: e = [], className: t, colors: n }) {
1061
1061
  width: Math.max(0, Math.min(100, t)),
1062
1062
  height: "12",
1063
1063
  rx: "6",
1064
- className: `d3-mini-fill tone-${i % Re.length}`,
1064
+ className: `d3-mini-fill tone-${i % Le.length}`,
1065
1065
  fill: r[i % r.length]
1066
1066
  })]
1067
1067
  })
@@ -1073,24 +1073,24 @@ function Be({ rows: e = [], className: t, colors: n }) {
1073
1073
  }
1074
1074
  //#endregion
1075
1075
  //#region src/components/nceTree/NCETree.tsx
1076
- var Ve = 680, He = 320;
1077
- function Ue({ total: e = 0, byContractor: t = [], "data-testid": r }) {
1076
+ var Be = 680, Ve = 320;
1077
+ function He({ total: e = 0, byContractor: t = [], "data-testid": r }) {
1078
1078
  let i = a(null), o = a(/* @__PURE__ */ new Map()), l = a(0), { hoveredRef: p, tooltip: h, hitZonesRef: g } = C(i, {
1079
- width: Ve,
1080
- height: He
1079
+ width: Be,
1080
+ height: Ve
1081
1081
  });
1082
1082
  return n(() => {
1083
1083
  let n = i.current;
1084
1084
  if (!n) return;
1085
- let r = _(n, Ve, He);
1085
+ let r = _(n, Be, Ve);
1086
1086
  l.current = 0;
1087
- let a = He / 2, s = Ve - 80, c = Math.max(...t.map((e) => e.count ?? 0)), h = (He - 60) / (t.length - 1), y = t.map((e, t) => ({
1087
+ let a = Ve / 2, s = Be - 80, c = Math.max(...t.map((e) => e.count ?? 0)), h = (Ve - 60) / (t.length - 1), y = t.map((e, t) => ({
1088
1088
  x: s,
1089
1089
  y: 30 + t * h
1090
1090
  })), b, x = () => {
1091
1091
  l.current++;
1092
1092
  let n = l.current;
1093
- r.clearRect(0, 0, Ve, He);
1093
+ r.clearRect(0, 0, Be, Ve);
1094
1094
  let i = E(Math.min(n / 72, 1));
1095
1095
  M(o.current, p.current), g.current = [], v(r, 88, a, 48 * i, u.blue, .15 * i), t.forEach((n, l) => {
1096
1096
  let p = d[l % d.length], h = j(i, l, t.length, E), _ = y[l], b = o.current.get(n.id) ?? 0, x = Math.max(1.5, (n.count ?? 0) / c * 6);
@@ -1117,42 +1117,42 @@ function Ue({ total: e = 0, byContractor: t = [], "data-testid": r }) {
1117
1117
  "data-testid": r,
1118
1118
  style: {
1119
1119
  position: "relative",
1120
- width: Ve,
1121
- height: He
1120
+ width: Be,
1121
+ height: Ve
1122
1122
  },
1123
1123
  children: [/* @__PURE__ */ s("canvas", {
1124
1124
  ref: i,
1125
1125
  role: "img",
1126
1126
  "aria-label": "NCE fault tree — NCEs per contractor as branching tree",
1127
1127
  style: {
1128
- width: Ve,
1129
- height: He,
1128
+ width: Be,
1129
+ height: Ve,
1130
1130
  display: "block"
1131
1131
  }
1132
1132
  }), /* @__PURE__ */ s(S, {
1133
1133
  ...h,
1134
- parentW: Ve,
1135
- parentH: He
1134
+ parentW: Be,
1135
+ parentH: Ve
1136
1136
  })]
1137
1137
  });
1138
1138
  }
1139
1139
  //#endregion
1140
1140
  //#region src/components/pieChart/PieChart.tsx
1141
- var We = 192, Ge = We, Ke = We + 80;
1142
- function qe({ rows: e = [], variant: t, className: r, colors: i }) {
1141
+ var Ue = 192, We = Ue, Ge = Ue + 80;
1142
+ function Ke({ rows: e = [], variant: t, className: r, colors: i }) {
1143
1143
  let o = a(null), f = a(/* @__PURE__ */ new Map()), p = a(0), h = i?.slices ?? d, { hoveredRef: y, tooltip: b, hitZonesRef: x } = C(o, {
1144
- width: Ge,
1145
- height: Ke
1144
+ width: We,
1145
+ height: Ge
1146
1146
  });
1147
1147
  return n(() => {
1148
1148
  let n = o.current;
1149
1149
  if (!n) return;
1150
- let r = _(n, Ge, Ke);
1150
+ let r = _(n, We, Ge);
1151
1151
  p.current = 0;
1152
- let i = Ge / 2, a = We / 2, s = We * .4, c = t === "donut" ? We * .21 : 0, l = e.reduce((e, t) => e + (t.pricing ?? 0), 0) || 1, d, b = () => {
1152
+ let i = We / 2, a = Ue / 2, s = Ue * .4, c = t === "donut" ? Ue * .21 : 0, l = e.reduce((e, t) => e + (t.pricing ?? 0), 0) || 1, d, b = () => {
1153
1153
  p.current++;
1154
1154
  let n = p.current;
1155
- r.clearRect(0, 0, Ge, Ke);
1155
+ r.clearRect(0, 0, We, Ge);
1156
1156
  let o = 1 - (1 - Math.min(n / 48, 1)) ** 3;
1157
1157
  M(f.current, y.current), x.current = [];
1158
1158
  let _ = -Math.PI / 2;
@@ -1166,10 +1166,10 @@ function qe({ rows: e = [], variant: t, className: r, colors: i }) {
1166
1166
  let O = A(n, .03, 3e-4), k = s + b * 6 + (b > 0 ? O * 2 : 0);
1167
1167
  r.beginPath(), r.moveTo(i + Math.cos(_) * c, a + Math.sin(_) * c), r.arc(i, a, k, _, g), c > 0 ? r.arc(i, a, c, g, _, !0) : r.lineTo(i, a), r.closePath(), r.fillStyle = m(y, .7 + b * .2), r.fill(), r.strokeStyle = m(u.bg, .8), r.lineWidth = 1.5, r.stroke(), _ = g;
1168
1168
  }), t === "donut" && e.length > 0 && v(r, i, a, c * .8, u.blue, .06);
1169
- let S = We + 12;
1169
+ let S = Ue + 12;
1170
1170
  e.forEach((e, t) => {
1171
1171
  let n = h[t % h.length], i = (e.pricing ?? 0) / l, a = f.current.get(e.id ?? `sl-${t}`) ?? 0, o = S + t * 18;
1172
- r.beginPath(), r.arc(8, o, 4, 0, Math.PI * 2), r.fillStyle = m(n, .8 + a * .2), r.fill(), r.font = "9px 'JetBrains Mono', monospace", r.fillStyle = m(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 = g(u.t3, n, a), r.textAlign = "right", r.fillText(`${e.pricing ?? 0} (${Math.round(i * 100)}%)`, Ge - 4, o + 3.5);
1172
+ r.beginPath(), r.arc(8, o, 4, 0, Math.PI * 2), r.fillStyle = m(n, .8 + a * .2), r.fill(), r.font = "9px 'JetBrains Mono', monospace", r.fillStyle = m(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 = g(u.t3, n, a), r.textAlign = "right", r.fillText(`${e.pricing ?? 0} (${Math.round(i * 100)}%)`, We - 4, o + 3.5);
1173
1173
  }), d = requestAnimationFrame(b);
1174
1174
  };
1175
1175
  return b(), () => cancelAnimationFrame(d);
@@ -1183,30 +1183,30 @@ function qe({ rows: e = [], variant: t, className: r, colors: i }) {
1183
1183
  children: /* @__PURE__ */ c("div", {
1184
1184
  style: {
1185
1185
  position: "relative",
1186
- width: Ge,
1187
- height: Ke
1186
+ width: We,
1187
+ height: Ge
1188
1188
  },
1189
1189
  children: [/* @__PURE__ */ s("canvas", {
1190
1190
  ref: o,
1191
1191
  role: "img",
1192
1192
  "aria-label": `${t} chart`,
1193
1193
  style: {
1194
- width: Ge,
1195
- height: Ke,
1194
+ width: We,
1195
+ height: Ge,
1196
1196
  display: "block",
1197
1197
  borderRadius: 8
1198
1198
  }
1199
1199
  }), /* @__PURE__ */ s(S, {
1200
1200
  ...b,
1201
- parentW: Ge,
1202
- parentH: Ke
1201
+ parentW: We,
1202
+ parentH: Ge
1203
1203
  })]
1204
1204
  })
1205
1205
  });
1206
1206
  }
1207
1207
  //#endregion
1208
1208
  //#region src/components/sankey/SankeySvg.tsx
1209
- function Je(e, t, n, r) {
1209
+ function qe(e, t, n, r) {
1210
1210
  let i = new Set(t.map((e) => e.source)), a = new Set(t.map((e) => e.target)), o = /* @__PURE__ */ new Map(), s = [];
1211
1211
  for (e.forEach((e) => {
1212
1212
  i.has(e.id) && !a.has(e.id) && s.push({
@@ -1251,8 +1251,8 @@ function Je(e, t, n, r) {
1251
1251
  });
1252
1252
  }), f;
1253
1253
  }
1254
- function Ye({ nodes: e, links: t, width: r = 960, height: o = 280, ariaLabel: f, selectedEntity: p, className: h, colors: g }) {
1255
- let y = a(null), x = a(/* @__PURE__ */ new Map()), E = a(0), D = a([]), O = g?.nodes ?? d, k = g?.links ?? u.bd, j = g?.activeLinks ?? u.blue, ee = g?.activeNodes ?? u.blue, N = i(() => Je(e, t, r, o), [
1254
+ function Je({ nodes: e, links: t, width: r = 960, height: o = 280, ariaLabel: f, selectedEntity: p, className: h, colors: g }) {
1255
+ let y = a(null), x = a(/* @__PURE__ */ new Map()), E = a(0), D = a([]), O = g?.nodes ?? d, k = g?.links ?? u.bd, j = g?.activeLinks ?? u.blue, ee = g?.activeNodes ?? u.blue, N = i(() => qe(e, t, r, o), [
1256
1256
  e,
1257
1257
  t,
1258
1258
  r,
@@ -1352,7 +1352,7 @@ function Ye({ nodes: e, links: t, width: r = 960, height: o = 280, ariaLabel: f,
1352
1352
  }
1353
1353
  //#endregion
1354
1354
  //#region src/canvas/CausalFlowCanvas.tsx
1355
- var Xe = [
1355
+ var Ye = [
1356
1356
  {
1357
1357
  x: .13,
1358
1358
  y: .48
@@ -1385,7 +1385,7 @@ var Xe = [
1385
1385
  x: .92,
1386
1386
  y: .22
1387
1387
  }
1388
- ], Ze = [
1388
+ ], Xe = [
1389
1389
  u.blue,
1390
1390
  u.cyan,
1391
1391
  u.orange,
@@ -1394,7 +1394,7 @@ var Xe = [
1394
1394
  u.green,
1395
1395
  u.amber,
1396
1396
  u.t2
1397
- ], Qe = [
1397
+ ], Ze = [
1398
1398
  26,
1399
1399
  24,
1400
1400
  24,
@@ -1404,21 +1404,21 @@ var Xe = [
1404
1404
  22,
1405
1405
  22
1406
1406
  ];
1407
- function $e(e, t) {
1407
+ function Qe(e, t) {
1408
1408
  let n = 1 - t;
1409
1409
  return {
1410
1410
  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,
1411
1411
  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
1412
1412
  };
1413
1413
  }
1414
- function et(e, t) {
1414
+ function $e(e, t) {
1415
1415
  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;
1416
1416
  return {
1417
1417
  x: -i / a,
1418
1418
  y: r / a
1419
1419
  };
1420
1420
  }
1421
- function tt(e, t) {
1421
+ function et(e, t) {
1422
1422
  let n = t.x - e.x, r = t.y - e.y;
1423
1423
  return {
1424
1424
  p0: {
@@ -1439,7 +1439,7 @@ function tt(e, t) {
1439
1439
  }
1440
1440
  };
1441
1441
  }
1442
- function nt({ nodes: e, links: t, width: r = 960, height: o = 280, selectedEntity: l }) {
1442
+ function tt({ nodes: e, links: t, width: r = 960, height: o = 280, selectedEntity: l }) {
1443
1443
  let d = a(null), f = a(0), p = a([]), { hoveredRef: h, tooltip: x, hitZonesRef: T } = C(d, {
1444
1444
  width: r,
1445
1445
  height: o
@@ -1447,15 +1447,15 @@ function nt({ nodes: e, links: t, width: r = 960, height: o = 280, selectedEntit
1447
1447
  let t = /* @__PURE__ */ new Map();
1448
1448
  return e.forEach((e, n) => t.set(e.id, n)), t;
1449
1449
  }, [e]), O = i(() => t.length > 0 ? Math.max(...t.map((e) => e.value)) : 100, [t]), k = (e) => O > 1 ? e / 100 : e, j = i(() => e.map((e, t) => {
1450
- let n = Xe[t % Xe.length];
1450
+ let n = Ye[t % Ye.length];
1451
1451
  return {
1452
1452
  id: e.id,
1453
1453
  label: e.name,
1454
1454
  sub: e.valueLabel ?? "",
1455
1455
  x: n.x * r,
1456
1456
  y: n.y * o,
1457
- r: Qe[t % Qe.length],
1458
- color: Ze[t % Ze.length]
1457
+ r: Ze[t % Ze.length],
1458
+ color: Xe[t % Xe.length]
1459
1459
  };
1460
1460
  }), [
1461
1461
  e,
@@ -1477,7 +1477,7 @@ function nt({ nodes: e, links: t, width: r = 960, height: o = 280, selectedEntit
1477
1477
  if (t.clearRect(0, 0, r, o), T.current = [], y(t, r, o, e, 50, m(u.blue, .05)), M.forEach((e, n) => {
1478
1478
  let r = j[e.fromIdx], i = j[e.toIdx];
1479
1479
  if (!r || !i) return;
1480
- let a = !!l && (r.id === l || i.id === l), o = g(r.color, i.color, .5), s = a ? .18 : .05, c = a ? .25 : .1, d = tt(r, i);
1480
+ let a = !!l && (r.id === l || i.id === l), o = g(r.color, i.color, .5), s = a ? .18 : .05, c = a ? .25 : .1, d = et(r, i);
1481
1481
  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 = m(o, s), t.lineWidth = 16, t.lineCap = "round", t.stroke(), t.strokeStyle = m(o, c), t.lineWidth = 1.5, t.stroke();
1482
1482
  for (let t = 0; t < e.conf * 2.5; t++) Math.random() < .45 && p.current.push({
1483
1483
  edgeIdx: n,
@@ -1486,7 +1486,7 @@ function nt({ nodes: e, links: t, width: r = 960, height: o = 280, selectedEntit
1486
1486
  off: (Math.random() - .5) * 13,
1487
1487
  sz: .7 + Math.random() * 2
1488
1488
  });
1489
- let f = $e(d, .5), h = `${Math.round(e.conf * 100)}%`;
1489
+ let f = Qe(d, .5), h = `${Math.round(e.conf * 100)}%`;
1490
1490
  t.font = "bold 12px 'JetBrains Mono', monospace", t.textBaseline = "middle";
1491
1491
  let _ = t.measureText(h).width + 14;
1492
1492
  t.fillStyle = "rgba(10,16,24,0.88)", t.beginPath(), t.roundRect(f.x - _ / 2, f.y - 11, _, 22, 6), t.fill(), t.strokeStyle = m(u.cyan, .25), t.lineWidth = 1, t.stroke(), t.fillStyle = m(u.cyan, .9), t.textAlign = "center", t.fillText(h, f.x, f.y);
@@ -1496,7 +1496,7 @@ function nt({ nodes: e, links: t, width: r = 960, height: o = 280, selectedEntit
1496
1496
  if (!n) return !1;
1497
1497
  let r = j[n.fromIdx], i = j[n.toIdx];
1498
1498
  if (!r || !i) return !1;
1499
- let a = tt(r, i), o = $e(a, e.t), s = et(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 = g(r.color, i.color, e.t);
1499
+ let a = et(r, i), o = Qe(a, e.t), s = $e(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 = g(r.color, i.color, e.t);
1500
1500
  return v(t, c, l, e.sz * 3, d, u * .1), t.beginPath(), t.arc(c, l, e.sz, 0, Math.PI * 2), t.fillStyle = m(d, u), t.fill(), !0;
1501
1501
  }), p.current.length > 350 && (p.current = p.current.slice(-350)), j.forEach((n, r) => {
1502
1502
  let i = l === n.id, a = h.current === `node-${r}`, o = A(e, .03, 3e-4) * .1 + 1, s = n.r * o * (i ? 1.15 : 1);
@@ -1553,10 +1553,10 @@ function nt({ nodes: e, links: t, width: r = 960, height: o = 280, selectedEntit
1553
1553
  }
1554
1554
  //#endregion
1555
1555
  //#region src/components/sankey/ProcessSankey.tsx
1556
- function rt({ selectedEntity: e, colors: t }) {
1557
- return /* @__PURE__ */ s(nt, {
1558
- nodes: ze.nodes,
1559
- links: ze.links,
1556
+ function nt({ selectedEntity: e, colors: t }) {
1557
+ return /* @__PURE__ */ s(tt, {
1558
+ nodes: Re.nodes,
1559
+ links: Re.links,
1560
1560
  width: 960,
1561
1561
  height: 280,
1562
1562
  selectedEntity: e
@@ -1564,7 +1564,7 @@ function rt({ selectedEntity: e, colors: t }) {
1564
1564
  }
1565
1565
  //#endregion
1566
1566
  //#region src/components/sankey/RankingSankey.tsx
1567
- function it({ rows: e = [], className: t, colors: n }) {
1567
+ function rt({ rows: e = [], className: t, colors: n }) {
1568
1568
  let { nodes: r, links: a } = i(() => {
1569
1569
  let t = e.slice(0, 5);
1570
1570
  return {
@@ -1582,7 +1582,7 @@ function it({ rows: e = [], className: t, colors: n }) {
1582
1582
  }))
1583
1583
  };
1584
1584
  }, [e]);
1585
- return /* @__PURE__ */ s(Ye, {
1585
+ return /* @__PURE__ */ s(Je, {
1586
1586
  nodes: r,
1587
1587
  links: a,
1588
1588
  width: 760,
@@ -1594,20 +1594,20 @@ function it({ rows: e = [], className: t, colors: n }) {
1594
1594
  }
1595
1595
  //#endregion
1596
1596
  //#region src/components/quotationBalance/QuotationBalance.tsx
1597
- var at = 500, ot = 320;
1598
- function st({ accepted: e, submitted: t, "data-testid": r }) {
1597
+ var it = 500, at = 320;
1598
+ function ot({ accepted: e, submitted: t, "data-testid": r }) {
1599
1599
  let i = a(null), o = a(0);
1600
1600
  return n(() => {
1601
1601
  let n = i.current;
1602
1602
  if (!n) return;
1603
- let r = _(n, at, ot);
1603
+ let r = _(n, it, at);
1604
1604
  o.current = 0;
1605
- let a = at / 2, s = Math.max(e.value, t.value), c = (e.value - t.value) / s * 14, l, d = () => {
1605
+ let a = it / 2, s = Math.max(e.value, t.value), c = (e.value - t.value) / s * 14, l, d = () => {
1606
1606
  o.current++;
1607
1607
  let n = o.current;
1608
- r.clearRect(0, 0, at, ot);
1608
+ r.clearRect(0, 0, it, at);
1609
1609
  let i = E(Math.min(n / 80, 1)), p = c * k(Math.min(n / 80, 1)) * Math.PI / 180;
1610
- r.strokeStyle = m(u.bd, .5 * i), r.lineWidth = 2, r.beginPath(), r.moveTo(a, 100), r.lineTo(a, ot - 80), r.stroke(), r.beginPath(), r.arc(a, 100, 5 * i, 0, Math.PI * 2), r.fillStyle = u.t2, r.fill();
1610
+ r.strokeStyle = m(u.bd, .5 * i), r.lineWidth = 2, r.beginPath(), r.moveTo(a, 100), r.lineTo(a, at - 80), r.stroke(), r.beginPath(), r.arc(a, 100, 5 * i, 0, Math.PI * 2), r.fillStyle = u.t2, r.fill();
1611
1611
  let h = {
1612
1612
  x: a - Math.cos(p) * 160,
1613
1613
  y: 100 + Math.sin(-p) * 160
@@ -1633,23 +1633,23 @@ function st({ accepted: e, submitted: t, "data-testid": r }) {
1633
1633
  6
1634
1634
  ]), r.fill(), r.stroke(), r.strokeStyle = m(u.t3, .35 * i), r.lineWidth = 1, [-90 / 3, 90 / 3].forEach((e) => {
1635
1635
  r.beginPath(), r.moveTo(g.x + e, g.y + 4), r.lineTo(g.x + e, x), r.stroke();
1636
- }), i > .5 && (r.globalAlpha = Math.min(1, (i - .5) / .5), r.font = "bold 14px 'JetBrains Mono', monospace", r.fillStyle = u.amber, r.textAlign = "center", r.fillText(t.label, g.x, x + b + 18), r.font = f.font, r.fillStyle = f.color, r.fillText("Submitted", g.x, x + b + 32), r.fillText(`${t.count} quotations`, g.x, x + b + 44), r.globalAlpha = 1), i > .85 && Math.abs(c) > 1 && (r.globalAlpha = Math.min(1, (i - .85) / .15) * .6, r.font = f.font, r.fillStyle = f.color, r.textAlign = "center", r.fillText(`${Math.abs(c).toFixed(1)}° tilt toward accepted`, a, ot - 12), r.globalAlpha = 1), l = requestAnimationFrame(d);
1636
+ }), i > .5 && (r.globalAlpha = Math.min(1, (i - .5) / .5), r.font = "bold 14px 'JetBrains Mono', monospace", r.fillStyle = u.amber, r.textAlign = "center", r.fillText(t.label, g.x, x + b + 18), r.font = f.font, r.fillStyle = f.color, r.fillText("Submitted", g.x, x + b + 32), r.fillText(`${t.count} quotations`, g.x, x + b + 44), r.globalAlpha = 1), i > .85 && Math.abs(c) > 1 && (r.globalAlpha = Math.min(1, (i - .85) / .15) * .6, r.font = f.font, r.fillStyle = f.color, r.textAlign = "center", r.fillText(`${Math.abs(c).toFixed(1)}° tilt toward accepted`, a, at - 12), r.globalAlpha = 1), l = requestAnimationFrame(d);
1637
1637
  };
1638
1638
  return d(), () => cancelAnimationFrame(l);
1639
1639
  }, [e, t]), /* @__PURE__ */ s("div", {
1640
1640
  "data-testid": r,
1641
1641
  style: {
1642
1642
  position: "relative",
1643
- width: at,
1644
- height: ot
1643
+ width: it,
1644
+ height: at
1645
1645
  },
1646
1646
  children: /* @__PURE__ */ s("canvas", {
1647
1647
  ref: i,
1648
1648
  role: "img",
1649
1649
  "aria-label": "Quotation balance — accepted vs submitted quotation value",
1650
1650
  style: {
1651
- width: at,
1652
- height: ot,
1651
+ width: it,
1652
+ height: at,
1653
1653
  display: "block"
1654
1654
  }
1655
1655
  })
@@ -1657,25 +1657,25 @@ function st({ accepted: e, submitted: t, "data-testid": r }) {
1657
1657
  }
1658
1658
  //#endregion
1659
1659
  //#region src/components/quotationTrend/QuotationTrend.tsx
1660
- var ct = 680, U = 280;
1661
- function lt({ trend: e = [], "data-testid": t }) {
1660
+ var st = 680, W = 280;
1661
+ function ct({ trend: e = [], "data-testid": t }) {
1662
1662
  let r = a(null), i = a(/* @__PURE__ */ new Map()), o = a(0), { hoveredRef: l, tooltip: d, hitZonesRef: p } = C(r, {
1663
- width: ct,
1664
- height: U
1663
+ width: st,
1664
+ height: W
1665
1665
  });
1666
1666
  return n(() => {
1667
1667
  let t = r.current;
1668
1668
  if (!t) return;
1669
- let n = _(t, ct, U);
1669
+ let n = _(t, st, W);
1670
1670
  o.current = 0;
1671
- let a = ct - 54 - 28, s = U - 30 - 54, c = Math.max(...e.map((e) => e.count), 1), d = e.length, h = d > 1 ? a / (d - 1) : a, g = e.map((e, t) => ({
1671
+ let a = st - 54 - 28, s = W - 30 - 54, c = Math.max(...e.map((e) => e.count), 1), d = e.length, h = d > 1 ? a / (d - 1) : a, g = e.map((e, t) => ({
1672
1672
  x: 54 + t * h,
1673
1673
  y: 30 + s - e.count / c * s,
1674
1674
  point: e
1675
1675
  })), y, b = () => {
1676
1676
  o.current++;
1677
1677
  let e = o.current;
1678
- n.clearRect(0, 0, ct, U);
1678
+ n.clearRect(0, 0, st, W);
1679
1679
  let t = E(Math.min(e / 72, 1));
1680
1680
  M(i.current, l.current), p.current = [], [
1681
1681
  .25,
@@ -1685,7 +1685,7 @@ function lt({ trend: e = [], "data-testid": t }) {
1685
1685
  ].forEach((e) => {
1686
1686
  let t = 30 + s - e * s;
1687
1687
  n.strokeStyle = m(u.bd, .18), n.lineWidth = 1, n.setLineDash([3, 5]), n.beginPath(), n.moveTo(54, t), n.lineTo(54 + a, t), n.stroke(), n.setLineDash([]), n.font = f.font, n.fillStyle = f.color, n.textAlign = "right", n.fillText(String(Math.round(c * e)), 48, t + 3);
1688
- }), n.save(), n.translate(12, 30 + s / 2), n.rotate(-Math.PI / 2), n.font = f.font, n.fillStyle = f.color, n.textAlign = "center", n.fillText("Submissions", 0, 0), n.restore(), n.font = f.font, n.fillStyle = f.color, n.textAlign = "center", n.fillText("Week", 54 + a / 2, U - 6), n.strokeStyle = m(u.bd, .3), n.lineWidth = 1, n.setLineDash([]), n.beginPath(), n.moveTo(54, 30 + s), n.lineTo(54 + a, 30 + s), n.stroke();
1688
+ }), n.save(), n.translate(12, 30 + s / 2), n.rotate(-Math.PI / 2), n.font = f.font, n.fillStyle = f.color, n.textAlign = "center", n.fillText("Submissions", 0, 0), n.restore(), n.font = f.font, n.fillStyle = f.color, n.textAlign = "center", n.fillText("Week", 54 + a / 2, W - 6), n.strokeStyle = m(u.bd, .3), n.lineWidth = 1, n.setLineDash([]), n.beginPath(), n.moveTo(54, 30 + s), n.lineTo(54 + a, 30 + s), n.stroke();
1689
1689
  let r = t * (d - 1), h = Math.floor(r) + 1;
1690
1690
  if (h >= 2) {
1691
1691
  n.beginPath(), n.moveTo(g[0].x, 30 + s), n.lineTo(g[0].x, g[0].y);
@@ -1713,7 +1713,7 @@ function lt({ trend: e = [], "data-testid": t }) {
1713
1713
  color: u.cyan
1714
1714
  }), a > 0 && x(n, e.x, 30, 30 + s, m(u.cyan, .15 * a));
1715
1715
  let o = e.point.count === c;
1716
- (a > 0 || o) && v(n, e.x, e.y, 14, u.cyan, (o ? .3 : 0) + a * .25), n.beginPath(), n.arc(e.x, e.y, a > 0 ? 5 : 3.5, 0, Math.PI * 2), n.fillStyle = m(u.cyan, a > 0 ? 1 : .8), n.fill(), (a > 0 || o) && (n.font = "500 14px 'Satoshi Variable', 'DM Sans', sans-serif", n.fillStyle = u.cyan, n.textAlign = "center", n.fillText(String(e.point.count), e.x, e.y - 10)), n.font = "500 14px 'Satoshi Variable', 'DM Sans', sans-serif", n.fillStyle = a > 0 ? u.cyan : f.color, n.textAlign = "center", n.fillText(e.point.week, e.x, U - 54 + 14);
1716
+ (a > 0 || o) && v(n, e.x, e.y, 14, u.cyan, (o ? .3 : 0) + a * .25), n.beginPath(), n.arc(e.x, e.y, a > 0 ? 5 : 3.5, 0, Math.PI * 2), n.fillStyle = m(u.cyan, a > 0 ? 1 : .8), n.fill(), (a > 0 || o) && (n.font = "500 14px 'Satoshi Variable', 'DM Sans', sans-serif", n.fillStyle = u.cyan, n.textAlign = "center", n.fillText(String(e.point.count), e.x, e.y - 10)), n.font = "500 14px 'Satoshi Variable', 'DM Sans', sans-serif", n.fillStyle = a > 0 ? u.cyan : f.color, n.textAlign = "center", n.fillText(e.point.week, e.x, W - 54 + 14);
1717
1717
  }), y = requestAnimationFrame(b);
1718
1718
  };
1719
1719
  return b(), () => cancelAnimationFrame(y);
@@ -1727,54 +1727,54 @@ function lt({ trend: e = [], "data-testid": t }) {
1727
1727
  children: /* @__PURE__ */ c("div", {
1728
1728
  style: {
1729
1729
  position: "relative",
1730
- width: ct,
1731
- height: U
1730
+ width: st,
1731
+ height: W
1732
1732
  },
1733
1733
  children: [/* @__PURE__ */ s("canvas", {
1734
1734
  ref: r,
1735
1735
  role: "img",
1736
1736
  "aria-label": "Trend chart — count over time",
1737
1737
  style: {
1738
- width: ct,
1739
- height: U,
1738
+ width: st,
1739
+ height: W,
1740
1740
  display: "block"
1741
1741
  }
1742
1742
  }), /* @__PURE__ */ s(S, {
1743
1743
  ...d,
1744
- parentW: ct,
1745
- parentH: U
1744
+ parentW: st,
1745
+ parentH: W
1746
1746
  })]
1747
1747
  })
1748
1748
  });
1749
1749
  }
1750
1750
  //#endregion
1751
1751
  //#region src/components/trend/Trend.tsx
1752
- var ut = 680, W = 280, dt = 54, ft = 28, pt = 64, mt = "500 14px 'Satoshi Variable', 'DM Sans', sans-serif", ht = 12;
1753
- function gt({ trend: e = [], "data-testid": t }) {
1752
+ var lt = 680, G = 280, ut = 54, dt = 28, ft = 64, pt = "500 14px 'Satoshi Variable', 'DM Sans', sans-serif", mt = 12;
1753
+ function ht({ trend: e = [], "data-testid": t }) {
1754
1754
  let r = a(null), o = a(/* @__PURE__ */ new Map()), l = a(0), d = i(() => {
1755
- if (e.length <= 1) return pt;
1755
+ if (e.length <= 1) return ft;
1756
1756
  let t = document.createElement("canvas").getContext("2d");
1757
- if (!t) return pt;
1758
- t.font = mt;
1757
+ if (!t) return ft;
1758
+ t.font = pt;
1759
1759
  let n = Math.max(...e.map((e) => t.measureText(e.week).width));
1760
- return Math.max(pt, n + ht);
1761
- }, [e]), p = Math.max(ut, dt + ft + Math.max(0, e.length - 1) * d), { hoveredRef: h, tooltip: g, hitZonesRef: y } = C(r, {
1760
+ return Math.max(ft, n + mt);
1761
+ }, [e]), p = Math.max(lt, ut + dt + Math.max(0, e.length - 1) * d), { hoveredRef: h, tooltip: g, hitZonesRef: y } = C(r, {
1762
1762
  width: p,
1763
- height: W
1763
+ height: G
1764
1764
  });
1765
1765
  return n(() => {
1766
1766
  let t = r.current;
1767
1767
  if (!t) return;
1768
- let n = _(t, p, W);
1768
+ let n = _(t, p, G);
1769
1769
  l.current = 0;
1770
- let i = dt, a = ft, s = p - i - a, c = W - 30 - 54, g = Math.max(...e.map((e) => e.count), 1), b = e.length, S = b > 1 ? Math.max(s / (b - 1), d) : s, C = e.map((e, t) => ({
1770
+ let i = ut, a = dt, s = p - i - a, c = G - 30 - 54, g = Math.max(...e.map((e) => e.count), 1), b = e.length, S = b > 1 ? Math.max(s / (b - 1), d) : s, C = e.map((e, t) => ({
1771
1771
  x: i + t * S,
1772
1772
  y: 30 + c - e.count / g * c,
1773
1773
  point: e
1774
1774
  })), T, D = () => {
1775
1775
  l.current++;
1776
1776
  let e = l.current;
1777
- n.clearRect(0, 0, p, W);
1777
+ n.clearRect(0, 0, p, G);
1778
1778
  let t = E(Math.min(e / 72, 1));
1779
1779
  M(o.current, h.current), y.current = [], [
1780
1780
  .25,
@@ -1784,7 +1784,7 @@ function gt({ trend: e = [], "data-testid": t }) {
1784
1784
  ].forEach((e) => {
1785
1785
  let t = 30 + c - e * c;
1786
1786
  n.strokeStyle = m(u.bd, .18), n.lineWidth = 1, n.setLineDash([3, 5]), n.beginPath(), n.moveTo(i, t), n.lineTo(i + s, t), n.stroke(), n.setLineDash([]), n.font = f.font, n.fillStyle = f.color, n.textAlign = "right", n.fillText(String(Math.round(g * e)), i - 6, t + 3);
1787
- }), n.save(), n.translate(12, 30 + c / 2), n.rotate(-Math.PI / 2), n.font = f.font, n.fillStyle = f.color, n.textAlign = "center", n.fillText("Count", 0, 0), n.restore(), n.font = f.font, n.fillStyle = f.color, n.textAlign = "center", n.fillText("Period", i + s / 2, W - 6), n.strokeStyle = m(u.bd, .3), n.lineWidth = 1, n.setLineDash([]), n.beginPath(), n.moveTo(i, 30 + c), n.lineTo(i + s, 30 + c), n.stroke();
1787
+ }), n.save(), n.translate(12, 30 + c / 2), n.rotate(-Math.PI / 2), n.font = f.font, n.fillStyle = f.color, n.textAlign = "center", n.fillText("Count", 0, 0), n.restore(), n.font = f.font, n.fillStyle = f.color, n.textAlign = "center", n.fillText("Period", i + s / 2, G - 6), n.strokeStyle = m(u.bd, .3), n.lineWidth = 1, n.setLineDash([]), n.beginPath(), n.moveTo(i, 30 + c), n.lineTo(i + s, 30 + c), n.stroke();
1788
1788
  let r = t * (b - 1), a = Math.floor(r) + 1;
1789
1789
  if (a >= 2) {
1790
1790
  n.beginPath(), n.moveTo(C[0].x, 30 + c), n.lineTo(C[0].x, C[0].y);
@@ -1812,7 +1812,7 @@ function gt({ trend: e = [], "data-testid": t }) {
1812
1812
  color: u.cyan
1813
1813
  }), i > 0 && x(n, e.x, 30, 30 + c, m(u.cyan, .15 * i));
1814
1814
  let s = e.point.count === g;
1815
- (i > 0 || s) && v(n, e.x, e.y, 14, u.cyan, (s ? .3 : 0) + i * .25), n.beginPath(), n.arc(e.x, e.y, i > 0 ? 5 : 3.5, 0, Math.PI * 2), n.fillStyle = m(u.cyan, i > 0 ? 1 : .8), n.fill(), (i > 0 || s) && (n.font = mt, n.fillStyle = u.cyan, n.textAlign = "center", n.fillText(String(e.point.count), e.x, e.y - 10)), n.font = mt, n.fillStyle = i > 0 ? u.cyan : f.color, n.textAlign = "center", n.fillText(e.point.week, e.x, W - 54 + 14);
1815
+ (i > 0 || s) && v(n, e.x, e.y, 14, u.cyan, (s ? .3 : 0) + i * .25), n.beginPath(), n.arc(e.x, e.y, i > 0 ? 5 : 3.5, 0, Math.PI * 2), n.fillStyle = m(u.cyan, i > 0 ? 1 : .8), n.fill(), (i > 0 || s) && (n.font = pt, n.fillStyle = u.cyan, n.textAlign = "center", n.fillText(String(e.point.count), e.x, e.y - 10)), n.font = pt, n.fillStyle = i > 0 ? u.cyan : f.color, n.textAlign = "center", n.fillText(e.point.week, e.x, G - 54 + 14);
1816
1816
  }), T = requestAnimationFrame(D);
1817
1817
  };
1818
1818
  return D(), () => cancelAnimationFrame(T);
@@ -1831,7 +1831,7 @@ function gt({ trend: e = [], "data-testid": t }) {
1831
1831
  style: {
1832
1832
  position: "relative",
1833
1833
  width: p,
1834
- height: W
1834
+ height: G
1835
1835
  },
1836
1836
  children: [/* @__PURE__ */ s("canvas", {
1837
1837
  ref: r,
@@ -1839,44 +1839,44 @@ function gt({ trend: e = [], "data-testid": t }) {
1839
1839
  "aria-label": "Trend chart — count over time",
1840
1840
  style: {
1841
1841
  width: p,
1842
- height: W,
1842
+ height: G,
1843
1843
  display: "block"
1844
1844
  }
1845
1845
  }), /* @__PURE__ */ s(S, {
1846
1846
  ...g,
1847
1847
  parentW: p,
1848
- parentH: W
1848
+ parentH: G
1849
1849
  })]
1850
1850
  })
1851
1851
  });
1852
1852
  }
1853
1853
  //#endregion
1854
1854
  //#region src/components/severityBands/SeverityBands.tsx
1855
- var G = 680, _t = 240, vt = {
1855
+ var K = 680, gt = 240, _t = {
1856
1856
  Critical: u.red,
1857
1857
  High: u.orange,
1858
1858
  Medium: u.amber,
1859
1859
  Low: u.green
1860
1860
  };
1861
- function yt({ severities: e = [], "data-testid": t }) {
1861
+ function vt({ severities: e = [], "data-testid": t }) {
1862
1862
  let r = a(null), i = a(/* @__PURE__ */ new Map()), o = a(0), { hoveredRef: l, tooltip: d, hitZonesRef: p } = C(r, {
1863
- width: G,
1864
- height: _t
1863
+ width: K,
1864
+ height: gt
1865
1865
  });
1866
1866
  return n(() => {
1867
1867
  let t = r.current;
1868
1868
  if (!t) return;
1869
- let n = _(t, G, _t);
1869
+ let n = _(t, K, gt);
1870
1870
  o.current = 0;
1871
- let a = e.reduce((e, t) => e + t.count, 0), s = G - 28 - 28, c = _t - 50 - 52, d = e.map((e) => e.count / a * s), h, g = () => {
1871
+ let a = e.reduce((e, t) => e + t.count, 0), s = K - 28 - 28, c = gt - 50 - 52, d = e.map((e) => e.count / a * s), h, g = () => {
1872
1872
  o.current++;
1873
1873
  let t = o.current;
1874
- n.clearRect(0, 0, G, _t);
1874
+ n.clearRect(0, 0, K, gt);
1875
1875
  let r = D(Math.min(t / 60, 1));
1876
- M(i.current, l.current), p.current = [], n.strokeStyle = m(u.bd, .2), n.lineWidth = 1, n.beginPath(), n.rect(28, 50, s, c), n.stroke(), n.strokeStyle = m(u.t4, .15), n.lineWidth = 1, n.setLineDash([4, 4]), n.beginPath(), n.moveTo(G / 2, 50), n.lineTo(G / 2, 50 + c), n.stroke(), n.setLineDash([]);
1876
+ M(i.current, l.current), p.current = [], n.strokeStyle = m(u.bd, .2), n.lineWidth = 1, n.beginPath(), n.rect(28, 50, s, c), n.stroke(), n.strokeStyle = m(u.t4, .15), n.lineWidth = 1, n.setLineDash([4, 4]), n.beginPath(), n.moveTo(K / 2, 50), n.lineTo(K / 2, 50 + c), n.stroke(), n.setLineDash([]);
1877
1877
  let _ = 28;
1878
1878
  e.forEach((e, t) => {
1879
- let o = vt[e.severity] ?? u.blue, s = d[t];
1879
+ let o = _t[e.severity] ?? u.blue, s = d[t];
1880
1880
  s * r;
1881
1881
  let l = i.current.get(e.severity) ?? 0, h = _ + s / 2, g = s * .85;
1882
1882
  h - g / 2;
@@ -1900,57 +1900,57 @@ function yt({ severities: e = [], "data-testid": t }) {
1900
1900
  "data-testid": t,
1901
1901
  style: {
1902
1902
  position: "relative",
1903
- width: G,
1904
- height: _t
1903
+ width: K,
1904
+ height: gt
1905
1905
  },
1906
1906
  children: [/* @__PURE__ */ s("canvas", {
1907
1907
  ref: r,
1908
1908
  role: "img",
1909
1909
  "aria-label": "Early Warning severity distribution — prism spectrum bands",
1910
1910
  style: {
1911
- width: G,
1912
- height: _t,
1911
+ width: K,
1912
+ height: gt,
1913
1913
  display: "block"
1914
1914
  }
1915
1915
  }), /* @__PURE__ */ s(S, {
1916
1916
  ...d,
1917
- parentW: G,
1918
- parentH: _t
1917
+ parentW: K,
1918
+ parentH: gt
1919
1919
  })]
1920
1920
  });
1921
1921
  }
1922
1922
  //#endregion
1923
1923
  //#region src/components/statusArc/StatusArc.tsx
1924
- var K = 460, q = 300, bt = {
1924
+ var q = 460, J = 300, yt = {
1925
1925
  Open: u.red,
1926
1926
  Submitted: u.amber,
1927
1927
  Closed: u.green
1928
1928
  };
1929
- function xt({ segments: e = [], title: t, "data-testid": r }) {
1929
+ function bt({ segments: e = [], title: t, "data-testid": r }) {
1930
1930
  let i = a(null), o = a(0), l = a(/* @__PURE__ */ new Map()), { hoveredRef: d, tooltip: p, hitZonesRef: h } = C(i, {
1931
- width: K,
1932
- height: q
1931
+ width: q,
1932
+ height: J
1933
1933
  });
1934
1934
  return n(() => {
1935
1935
  let t = i.current;
1936
1936
  if (!t) return;
1937
- let n = _(t, K, q);
1937
+ let n = _(t, q, J);
1938
1938
  o.current = 0;
1939
- let r = K * .5, a = q * .54, s = K * .22, c = e.reduce((e, t) => e + t.count, 0), p = Math.max(...e.map((e) => e.count), 1), g, x = () => {
1939
+ let r = q * .5, a = J * .54, s = q * .22, c = e.reduce((e, t) => e + t.count, 0), p = Math.max(...e.map((e) => e.count), 1), g, x = () => {
1940
1940
  o.current++;
1941
1941
  let t = o.current;
1942
- n.clearRect(0, 0, K, q), h.current = [], l.current.forEach((e, t) => {
1942
+ n.clearRect(0, 0, q, J), h.current = [], l.current.forEach((e, t) => {
1943
1943
  let n = t === d.current ? 1 : 0, r = e + (n - e) * .12;
1944
1944
  Math.abs(r - n) < .005 ? n === 0 ? l.current.delete(t) : l.current.set(t, 1) : l.current.set(t, r);
1945
- }), d.current && !l.current.has(d.current) && l.current.set(d.current, 0), y(n, K, q, t, 40, m(u.blue, .04)), e.forEach((e, i) => {
1946
- let o = i / 3 * Math.PI * 2 - Math.PI / 2, c = r + Math.cos(o) * s, l = a + Math.sin(o) * s, d = bt[e.status] ?? u.blue, h = 2 + e.count / p * 8;
1945
+ }), d.current && !l.current.has(d.current) && l.current.set(d.current, 0), y(n, q, J, t, 40, m(u.blue, .04)), e.forEach((e, i) => {
1946
+ let o = i / 3 * Math.PI * 2 - Math.PI / 2, c = r + Math.cos(o) * s, l = a + Math.sin(o) * s, d = yt[e.status] ?? u.blue, h = 2 + e.count / p * 8;
1947
1947
  n.beginPath(), n.moveTo(r, a), n.lineTo(c, l), n.strokeStyle = m(d, .08), n.lineWidth = h * 2, n.stroke(), n.beginPath(), n.moveTo(r, a), n.lineTo(c, l), n.strokeStyle = m(d, .25), n.lineWidth = 1, n.stroke();
1948
1948
  let g = (t * .005 + i * .33) % 1, _ = r + (c - r) * g, y = a + (l - a) * g;
1949
1949
  v(n, _, y, 6, d, .4), n.beginPath(), n.arc(_, y, 2, 0, Math.PI * 2), n.fillStyle = m(d, .8), n.fill();
1950
1950
  let b = (r + c) / 2, x = (a + l) / 2;
1951
1951
  n.font = "bold " + f.font, n.textAlign = "center", n.textBaseline = "middle", n.fillStyle = m(d, .85), n.fillText(String(e.count), b, x);
1952
1952
  }), e.forEach((e, t) => {
1953
- let i = t / 3 * Math.PI * 2 - Math.PI / 2, o = r + Math.cos(i) * s, d = a + Math.sin(i) * s, g = bt[e.status] ?? u.blue, _ = 10 + e.count / p * 18, y = l.current.get(e.status) ?? 0;
1953
+ let i = t / 3 * Math.PI * 2 - Math.PI / 2, o = r + Math.cos(i) * s, d = a + Math.sin(i) * s, g = yt[e.status] ?? u.blue, _ = 10 + e.count / p * 18, y = l.current.get(e.status) ?? 0;
1954
1954
  v(n, o, d, _ * 2.5, g, .2 + y * .15);
1955
1955
  let b = n.createRadialGradient(o, d - _ * .2, 0, o, d, _);
1956
1956
  b.addColorStop(0, m(g, .8 + y * .2)), b.addColorStop(1, m(g, .4 + y * .1)), n.beginPath(), n.arc(o, d, _, 0, Math.PI * 2), n.fillStyle = b, n.fill(), n.font = "bold " + f.font, n.textAlign = "center", n.textBaseline = "middle", n.fillStyle = m(u.t1, .9), n.fillText(e.status, o, d), w(h.current, e.status, o, d, _ + 6, {
@@ -1967,37 +1967,37 @@ function xt({ segments: e = [], title: t, "data-testid": r }) {
1967
1967
  label: "Total EW Status",
1968
1968
  value: `${c} Early Warnings`,
1969
1969
  color: u.t3
1970
- }), b(n, K, q, t, .015), g = requestAnimationFrame(x);
1970
+ }), b(n, q, J, t, .015), g = requestAnimationFrame(x);
1971
1971
  };
1972
1972
  return x(), () => cancelAnimationFrame(g);
1973
1973
  }, [e, t]), /* @__PURE__ */ c("div", {
1974
1974
  "data-testid": r,
1975
1975
  style: {
1976
1976
  position: "relative",
1977
- width: K,
1978
- height: q
1977
+ width: q,
1978
+ height: J
1979
1979
  },
1980
1980
  children: [/* @__PURE__ */ s("canvas", {
1981
1981
  ref: i,
1982
1982
  role: "img",
1983
1983
  "aria-label": t ?? "EW status arc visualization",
1984
1984
  style: {
1985
- width: K,
1986
- height: q,
1985
+ width: q,
1986
+ height: J,
1987
1987
  display: "block",
1988
1988
  borderRadius: 8
1989
1989
  }
1990
1990
  }), /* @__PURE__ */ s(S, {
1991
1991
  ...p,
1992
- parentW: K,
1993
- parentH: q
1992
+ parentW: q,
1993
+ parentH: J
1994
1994
  })]
1995
1995
  });
1996
1996
  }
1997
1997
  //#endregion
1998
1998
  //#region src/components/trendChart/TrendChart.tsx
1999
- var J = 280, Y = 96;
2000
- function St({ points: e = [], className: t, colors: r }) {
1999
+ var Y = 280, X = 96;
2000
+ function xt({ points: e = [], className: t, colors: r }) {
2001
2001
  let o = a(null), d = a(/* @__PURE__ */ new Map()), f = a(0), p = i(() => e.map(([e, t]) => {
2002
2002
  let n = String(t).match(/-?\d+(\.\d+)?/);
2003
2003
  return {
@@ -2005,18 +2005,18 @@ function St({ points: e = [], className: t, colors: r }) {
2005
2005
  value: n ? Number(n[0]) : 0
2006
2006
  };
2007
2007
  }), [e]), { mouseRef: h, hoveredRef: g, tooltip: y, hitZonesRef: b } = C(o, {
2008
- width: J,
2009
- height: Y
2008
+ width: Y,
2009
+ height: X
2010
2010
  });
2011
2011
  return n(() => {
2012
2012
  let e = o.current;
2013
2013
  if (!e) return;
2014
- let t = _(e, J, Y);
2014
+ let t = _(e, Y, X);
2015
2015
  f.current = 0;
2016
2016
  let n = r?.line ?? u.blue, i = r?.point ?? u.blue, a = r?.axisLine ?? u.bd, s, c = () => {
2017
2017
  f.current++;
2018
2018
  let e = f.current;
2019
- if (t.clearRect(0, 0, J, Y), p.length < 2) {
2019
+ if (t.clearRect(0, 0, Y, X), p.length < 2) {
2020
2020
  s = requestAnimationFrame(c);
2021
2021
  return;
2022
2022
  }
@@ -2025,9 +2025,9 @@ function St({ points: e = [], className: t, colors: r }) {
2025
2025
  right: 12,
2026
2026
  top: 16,
2027
2027
  bottom: 20
2028
- }, o = J - r.left - r.right, l = Y - r.top - r.bottom, _ = p.map((e) => e.value), y = Math.min(..._), S = Math.max(..._) - y || 1, C = (e) => r.left + e / (p.length - 1) * o, T = (e) => r.top + (1 - (e - y) / S) * l, E = 1 - (1 - Math.min(e / 48, 1)) ** 3, D = Math.max(2, Math.floor(E * p.length));
2029
- if (M(d.current, g.current), b.current = [], t.strokeStyle = m(a, .3), t.lineWidth = .5, t.setLineDash([]), t.beginPath(), t.moveTo(r.left, Y - r.bottom), t.lineTo(J - r.right, Y - r.bottom), t.stroke(), t.font = "9px 'JetBrains Mono', monospace", t.fillStyle = m(u.t4, .9), t.textAlign = "center", p.forEach((e, n) => {
2030
- t.fillText(e.label.replace("Day ", "D"), C(n), Y - 4);
2028
+ }, o = Y - r.left - r.right, l = X - r.top - r.bottom, _ = p.map((e) => e.value), y = Math.min(..._), S = Math.max(..._) - y || 1, C = (e) => r.left + e / (p.length - 1) * o, T = (e) => r.top + (1 - (e - y) / S) * l, E = 1 - (1 - Math.min(e / 48, 1)) ** 3, D = Math.max(2, Math.floor(E * p.length));
2029
+ if (M(d.current, g.current), b.current = [], t.strokeStyle = m(a, .3), t.lineWidth = .5, t.setLineDash([]), t.beginPath(), t.moveTo(r.left, X - r.bottom), t.lineTo(Y - r.right, X - r.bottom), t.stroke(), t.font = "9px 'JetBrains Mono', monospace", t.fillStyle = m(u.t4, .9), t.textAlign = "center", p.forEach((e, n) => {
2030
+ t.fillText(e.label.replace("Day ", "D"), C(n), X - 4);
2031
2031
  }), h.current.over && g.current) {
2032
2032
  let e = parseInt(g.current.split("-")[1]);
2033
2033
  isNaN(e) || x(t, C(e), r.top, r.top + l);
@@ -2063,44 +2063,44 @@ function St({ points: e = [], className: t, colors: r }) {
2063
2063
  children: /* @__PURE__ */ c("div", {
2064
2064
  style: {
2065
2065
  position: "relative",
2066
- width: J,
2067
- height: Y
2066
+ width: Y,
2067
+ height: X
2068
2068
  },
2069
2069
  children: [/* @__PURE__ */ s("canvas", {
2070
2070
  ref: o,
2071
2071
  role: "img",
2072
2072
  "aria-label": "trend chart",
2073
2073
  style: {
2074
- width: J,
2075
- height: Y,
2074
+ width: Y,
2075
+ height: X,
2076
2076
  display: "block",
2077
2077
  borderRadius: 8
2078
2078
  }
2079
2079
  }), /* @__PURE__ */ s(S, {
2080
2080
  ...y,
2081
- parentW: J,
2082
- parentH: Y
2081
+ parentW: Y,
2082
+ parentH: X
2083
2083
  })]
2084
2084
  })
2085
2085
  });
2086
2086
  }
2087
2087
  //#endregion
2088
2088
  //#region src/components/variationSplit/VariationSplit.tsx
2089
- var Ct = 680, wt = 8, Tt = 26, Et = 14, Dt = 16, Ot = 32;
2090
- function kt({ contractors: e = [], "data-testid": t }) {
2091
- let r = a(null), l = a(/* @__PURE__ */ new Map()), f = a(0), [h, g] = o(!1), y = i(() => h ? e : e.slice(0, wt), [e, h]), b = Dt + Ot + y.length * (Tt + Et) - Et, { hoveredRef: x, tooltip: w, hitZonesRef: E } = C(r, {
2092
- width: Ct,
2089
+ var St = 680, Ct = 8, wt = 26, Tt = 14, Et = 16, Dt = 32;
2090
+ function Ot({ contractors: e = [], "data-testid": t }) {
2091
+ let r = a(null), l = a(/* @__PURE__ */ new Map()), f = a(0), [h, g] = o(!1), y = i(() => h ? e : e.slice(0, Ct), [e, h]), b = Et + Dt + y.length * (wt + Tt) - Tt, { hoveredRef: x, tooltip: w, hitZonesRef: E } = C(r, {
2092
+ width: St,
2093
2093
  height: b
2094
2094
  });
2095
2095
  return n(() => {
2096
2096
  let e = r.current;
2097
2097
  if (!e) return;
2098
- let t = _(e, Ct, b);
2098
+ let t = _(e, St, b);
2099
2099
  f.current = 0;
2100
- let n = Dt, i = Ot, a = Tt, o = Et, s = Ct - 60 - 28, c = Math.max(...y.map((e) => (e.implemented ?? 0) + (e.unimplemented ?? 0))), h = y.length * (a + o) - o, g = n + (b - n - i - h) / 2, S, C = () => {
2100
+ let n = Et, i = Dt, a = wt, o = Tt, s = St - 60 - 28, c = Math.max(...y.map((e) => (e.implemented ?? 0) + (e.unimplemented ?? 0))), h = y.length * (a + o) - o, g = n + (b - n - i - h) / 2, S, C = () => {
2101
2101
  f.current++;
2102
2102
  let e = f.current;
2103
- t.clearRect(0, 0, Ct, b);
2103
+ t.clearRect(0, 0, St, b);
2104
2104
  let n = D(Math.min(e / 60, 1));
2105
2105
  M(l.current, x.current), E.current = [], y.forEach((e, r) => {
2106
2106
  d[r % d.length];
@@ -2133,11 +2133,11 @@ function kt({ contractors: e = [], "data-testid": t }) {
2133
2133
  return C(), () => cancelAnimationFrame(S);
2134
2134
  }, [y, b]), /* @__PURE__ */ c("div", {
2135
2135
  "data-testid": t,
2136
- style: { width: Ct },
2136
+ style: { width: St },
2137
2137
  children: [/* @__PURE__ */ c("div", {
2138
2138
  style: {
2139
2139
  position: "relative",
2140
- width: Ct,
2140
+ width: St,
2141
2141
  height: b
2142
2142
  },
2143
2143
  children: [/* @__PURE__ */ s("canvas", {
@@ -2145,16 +2145,16 @@ function kt({ contractors: e = [], "data-testid": t }) {
2145
2145
  role: "img",
2146
2146
  "aria-label": "Implemented vs unimplemented variations per contractor — split bar",
2147
2147
  style: {
2148
- width: Ct,
2148
+ width: St,
2149
2149
  height: b,
2150
2150
  display: "block"
2151
2151
  }
2152
2152
  }), /* @__PURE__ */ s(S, {
2153
2153
  ...w,
2154
- parentW: Ct,
2154
+ parentW: St,
2155
2155
  parentH: b
2156
2156
  })]
2157
- }), e.length > wt && /* @__PURE__ */ s("div", {
2157
+ }), e.length > Ct && /* @__PURE__ */ s("div", {
2158
2158
  style: { marginTop: 8 },
2159
2159
  children: /* @__PURE__ */ s(ae, {
2160
2160
  expanded: h,
@@ -2165,18 +2165,18 @@ function kt({ contractors: e = [], "data-testid": t }) {
2165
2165
  }
2166
2166
  //#endregion
2167
2167
  //#region src/components/weeklyFlow/WeeklyFlow.tsx
2168
- var At = 800, jt = 360;
2169
- function Mt({ contractors: e = [], "data-testid": t }) {
2168
+ var kt = 800, At = 360;
2169
+ function jt({ contractors: e = [], "data-testid": t }) {
2170
2170
  let r = a(null), i = a(/* @__PURE__ */ new Map()), o = a(0), { hoveredRef: l, tooltip: f, hitZonesRef: p } = C(r, {
2171
- width: At,
2172
- height: jt
2171
+ width: kt,
2172
+ height: At
2173
2173
  });
2174
2174
  return n(() => {
2175
2175
  let t = r.current;
2176
2176
  if (!t) return;
2177
- let n = _(t, At, jt);
2177
+ let n = _(t, kt, At);
2178
2178
  o.current = 0;
2179
- 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), f = jt - 20 - 26, h = f - 6 * (e.length - 1), g = 20, y = e.map((e, t) => {
2179
+ 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), f = At - 20 - 26, h = f - 6 * (e.length - 1), g = 20, y = e.map((e, t) => {
2180
2180
  let n = Math.max(24, (e.total ?? 0) / (c || 1) * h), r = {
2181
2181
  x: 100 - 110 / 2,
2182
2182
  y: g,
@@ -2204,16 +2204,16 @@ function Mt({ contractors: e = [], "data-testid": t }) {
2204
2204
  }, k, A = () => {
2205
2205
  o.current++;
2206
2206
  let t = o.current;
2207
- n.clearRect(0, 0, At, jt);
2207
+ n.clearRect(0, 0, kt, At);
2208
2208
  let r = E(Math.min(t / 80, 1));
2209
2209
  if (M(i.current, l.current), p.current = [], e.forEach((t, o) => {
2210
2210
  let c = y[o], l = j(r, o, e.length, E), u = i.current.get(t.id) ?? 0;
2211
2211
  if (l < .01) return;
2212
2212
  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 * x), v = Math.max(2, (t.variation ?? 0) / s * S), b = w.y + e.slice(0, o).reduce((e, t) => e + (t.base ?? 0) / a * x, 0) + _ / 2, C = D.y + e.slice(0, o).reduce((e, t) => e + (t.variation ?? 0) / s * S, 0) + v / 2, T = u * .2 + .18;
2213
- Nt(n, c.x + 110, h, 420 - 110 / 2, b, _ * l, c.color, T), Nt(n, c.x + 110, g, 420 - 110 / 2, C, v * l, c.color, T * .75);
2213
+ Mt(n, c.x + 110, h, 420 - 110 / 2, b, _ * l, c.color, T), Mt(n, c.x + 110, g, 420 - 110 / 2, C, v * l, c.color, T * .75);
2214
2214
  }), r > .3) {
2215
2215
  let e = Math.min(1, (r - .3) / .7), t = O.y + a / c * f / 2, i = O.y + f - s / c * f / 2;
2216
- Nt(n, 475, w.cy, 720 - 110 / 2, t, x * e, u.blue, .25 * e), Nt(n, 475, D.cy, 720 - 110 / 2, i, S * e, u.amber, .22 * e);
2216
+ Mt(n, 475, w.cy, 720 - 110 / 2, t, x * e, u.blue, .25 * e), Mt(n, 475, D.cy, 720 - 110 / 2, i, S * e, u.amber, .22 * e);
2217
2217
  }
2218
2218
  if ([
2219
2219
  "Contractors",
@@ -2225,7 +2225,7 @@ function Mt({ contractors: e = [], "data-testid": t }) {
2225
2225
  420,
2226
2226
  720
2227
2227
  ][t];
2228
- n.font = "400 12px 'Satoshi Variable', 'DM Sans', sans-serif", n.fillStyle = m(u.t3, .5), n.textAlign = "center", n.fillText(e, r, jt - 8);
2228
+ n.font = "400 12px 'Satoshi Variable', 'DM Sans', sans-serif", n.fillStyle = m(u.t3, .5), n.textAlign = "center", n.fillText(e, r, At - 8);
2229
2229
  }), e.forEach((t, a) => {
2230
2230
  let o = y[a], s = j(r, a, e.length, E), c = i.current.get(t.id) ?? 0;
2231
2231
  T(p.current, t.id, o.x, o.y, 110, o.h, {
@@ -2249,33 +2249,33 @@ function Mt({ contractors: e = [], "data-testid": t }) {
2249
2249
  "data-testid": t,
2250
2250
  style: {
2251
2251
  position: "relative",
2252
- width: At,
2253
- height: jt
2252
+ width: kt,
2253
+ height: At
2254
2254
  },
2255
2255
  children: [/* @__PURE__ */ s("canvas", {
2256
2256
  ref: r,
2257
2257
  role: "img",
2258
2258
  "aria-label": "Weekly report flow — base value and variations per contractor flowing to total commitment",
2259
2259
  style: {
2260
- width: At,
2261
- height: jt,
2260
+ width: kt,
2261
+ height: At,
2262
2262
  display: "block"
2263
2263
  }
2264
2264
  }), /* @__PURE__ */ s(S, {
2265
2265
  ...f,
2266
- parentW: At,
2267
- parentH: jt
2266
+ parentW: kt,
2267
+ parentH: At
2268
2268
  })]
2269
2269
  });
2270
2270
  }
2271
- function Nt(e, t, n, r, i, a, o, s) {
2271
+ function Mt(e, t, n, r, i, a, o, s) {
2272
2272
  let c = (t + r) / 2;
2273
2273
  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 = m(o, s), e.fill();
2274
2274
  }
2275
2275
  //#endregion
2276
2276
  //#region src/components/visualizationRenderer/VisualizationRenderer.tsx
2277
- function Pt({ config: e, className: t }) {
2278
- return e.type === "line" ? /* @__PURE__ */ s(Le, {
2277
+ function Nt({ config: e, className: t }) {
2278
+ return e.type === "line" ? /* @__PURE__ */ s(Ie, {
2279
2279
  rows: e.rows,
2280
2280
  className: t
2281
2281
  }) : e.type === "area" ? /* @__PURE__ */ s(ne, {
@@ -2284,77 +2284,77 @@ function Pt({ config: e, className: t }) {
2284
2284
  }) : e.type === "bar" ? /* @__PURE__ */ s(ie, {
2285
2285
  rows: e.rows,
2286
2286
  className: t
2287
- }) : e.type === "pie" ? /* @__PURE__ */ s(qe, {
2287
+ }) : e.type === "pie" ? /* @__PURE__ */ s(Ke, {
2288
2288
  rows: e.rows,
2289
2289
  variant: "pie",
2290
2290
  className: t
2291
- }) : e.type === "donut" ? /* @__PURE__ */ s(qe, {
2291
+ }) : e.type === "donut" ? /* @__PURE__ */ s(Ke, {
2292
2292
  rows: e.rows,
2293
2293
  variant: "donut",
2294
2294
  className: t
2295
- }) : e.type === "sankey" ? /* @__PURE__ */ s(it, {
2295
+ }) : e.type === "sankey" ? /* @__PURE__ */ s(rt, {
2296
2296
  rows: e.rows,
2297
2297
  className: t
2298
- }) : e.type === "flow" ? /* @__PURE__ */ s(rt, {
2298
+ }) : e.type === "flow" ? /* @__PURE__ */ s(nt, {
2299
2299
  selectedEntity: e.selectedEntity,
2300
2300
  className: t
2301
- }) : e.type === "trend" ? /* @__PURE__ */ s(St, {
2301
+ }) : e.type === "trend" ? /* @__PURE__ */ s(xt, {
2302
2302
  points: e.points,
2303
2303
  className: t
2304
- }) : e.type === "mini-bars" ? /* @__PURE__ */ s(Be, {
2304
+ }) : e.type === "mini-bars" ? /* @__PURE__ */ s(ze, {
2305
2305
  rows: e.rows,
2306
2306
  className: t
2307
- }) : e.type === "contract-value-orb" ? /* @__PURE__ */ s(Ae, { data: e.data }) : e.type === "contract-bars" ? /* @__PURE__ */ s(Ce, { contractors: e.contractors }) : e.type === "commitment-race" ? /* @__PURE__ */ s(fe, { contractors: e.contractors }) : e.type === "status-arc" ? /* @__PURE__ */ s(xt, {
2307
+ }) : e.type === "contract-value-orb" ? /* @__PURE__ */ s(Ae, { data: e.data }) : e.type === "contract-bars" ? /* @__PURE__ */ s(Ce, { contractors: e.contractors }) : e.type === "commitment-race" ? /* @__PURE__ */ s(fe, { contractors: e.contractors }) : e.type === "status-arc" ? /* @__PURE__ */ s(bt, {
2308
2308
  segments: e.segments,
2309
2309
  title: e.title
2310
- }) : e.type === "ew-category" ? /* @__PURE__ */ s(Ie, { categories: e.categories }) : e.type === "contractor-rank" ? /* @__PURE__ */ s(Fe, { contractors: e.contractors }) : e.type === "severity-bands" ? /* @__PURE__ */ s(yt, { severities: e.severities }) : e.type === "nce-tree" ? /* @__PURE__ */ s(Ue, {
2310
+ }) : e.type === "ew-category" ? /* @__PURE__ */ s(Fe, { categories: e.categories }) : e.type === "contractor-rank" ? /* @__PURE__ */ s(Pe, { contractors: e.contractors }) : e.type === "severity-bands" ? /* @__PURE__ */ s(vt, { severities: e.severities }) : e.type === "nce-tree" ? /* @__PURE__ */ s(He, {
2311
2311
  total: e.total,
2312
2312
  byContractor: e.byContractor
2313
2313
  }) : e.type === "compensation-gauge" ? /* @__PURE__ */ s(he, {
2314
2314
  pct: e.pct,
2315
2315
  confirmed: e.confirmed,
2316
2316
  total: e.total
2317
- }) : e.type === "variation-split" ? /* @__PURE__ */ s(kt, { contractors: e.contractors }) : e.type === "quotation-balance" ? /* @__PURE__ */ s(st, {
2317
+ }) : e.type === "variation-split" ? /* @__PURE__ */ s(Ot, { contractors: e.contractors }) : e.type === "quotation-balance" ? /* @__PURE__ */ s(ot, {
2318
2318
  accepted: e.accepted,
2319
2319
  submitted: e.submitted
2320
- }) : e.type === "quotation-trend" ? /* @__PURE__ */ s(lt, { trend: e.trend }) : e.type === "trend-view" ? /* @__PURE__ */ s(gt, { trend: e.trend }) : e.type === "weekly-flow" ? /* @__PURE__ */ s(Mt, { contractors: e.contractors }) : /* @__PURE__ */ s("div", {
2320
+ }) : e.type === "quotation-trend" ? /* @__PURE__ */ s(ct, { trend: e.trend }) : e.type === "trend-view" ? /* @__PURE__ */ s(ht, { trend: e.trend }) : e.type === "weekly-flow" ? /* @__PURE__ */ s(jt, { contractors: e.contractors }) : /* @__PURE__ */ s("div", {
2321
2321
  className: "viz-empty",
2322
2322
  children: "Visualization unavailable"
2323
2323
  });
2324
2324
  }
2325
2325
  //#endregion
2326
2326
  //#region src/utils/mounts.tsx
2327
- var Ft = [];
2328
- function It(e) {
2327
+ var Pt = [];
2328
+ function Ft(e) {
2329
2329
  try {
2330
2330
  return JSON.parse(decodeURIComponent(e));
2331
2331
  } catch {
2332
2332
  return null;
2333
2333
  }
2334
2334
  }
2335
- function Lt() {
2336
- for (; Ft.length;) {
2337
- let e = Ft.pop();
2335
+ function It() {
2336
+ for (; Pt.length;) {
2337
+ let e = Pt.pop();
2338
2338
  e && e.unmount();
2339
2339
  }
2340
2340
  }
2341
- function Rt() {
2342
- Lt(), document.querySelectorAll("[data-d3-viz]").forEach((t) => {
2341
+ function Lt() {
2342
+ It(), document.querySelectorAll("[data-d3-viz]").forEach((t) => {
2343
2343
  let n = t.dataset.d3Viz;
2344
2344
  if (!n) return;
2345
- let r = It(n);
2345
+ let r = Ft(n);
2346
2346
  if (!r) return;
2347
2347
  let i = e(t);
2348
- Ft.push(i), i.render(/* @__PURE__ */ s(Pt, { config: r }));
2348
+ Pt.push(i), i.render(/* @__PURE__ */ s(Nt, { config: r }));
2349
2349
  });
2350
2350
  }
2351
- function zt(e) {
2351
+ function Rt(e) {
2352
2352
  return encodeURIComponent(JSON.stringify(e));
2353
2353
  }
2354
2354
  //#endregion
2355
2355
  //#region src/components/donutChart/DonutChart.tsx
2356
- function Bt({ rows: e = [], className: t, colors: n }) {
2357
- return /* @__PURE__ */ s(qe, {
2356
+ function zt({ rows: e = [], className: t, colors: n }) {
2357
+ return /* @__PURE__ */ s(Ke, {
2358
2358
  rows: e,
2359
2359
  variant: "donut",
2360
2360
  className: t,
@@ -2363,7 +2363,7 @@ function Bt({ rows: e = [], className: t, colors: n }) {
2363
2363
  }
2364
2364
  //#endregion
2365
2365
  //#region src/components/keyHighlights/KeyHighlights.tsx
2366
- var X = {
2366
+ var Z = {
2367
2367
  bg: u.sf,
2368
2368
  border: u.bd,
2369
2369
  t1: u.t1,
@@ -2373,7 +2373,7 @@ var X = {
2373
2373
  red: u.red,
2374
2374
  amber: u.amber,
2375
2375
  green: u.green
2376
- }, Z = "'JetBrains Mono', monospace", Q = "'Satoshi Variable', 'DM Sans', sans-serif", Vt = {
2376
+ }, Q = "'Satoshi Variable', 'DM Sans', sans-serif", Bt = {
2377
2377
  color: "#F7F7F7",
2378
2378
  fontFamily: Q,
2379
2379
  fontSize: 24,
@@ -2386,7 +2386,7 @@ var X = {
2386
2386
  fontWeight: 400,
2387
2387
  lineHeight: "20px"
2388
2388
  };
2389
- function Ht({ chips: e = [] }) {
2389
+ function Vt({ chips: e = [] }) {
2390
2390
  return /* @__PURE__ */ s("div", {
2391
2391
  style: {
2392
2392
  display: "flex",
@@ -2401,15 +2401,15 @@ function Ht({ chips: e = [] }) {
2401
2401
  alignItems: "baseline",
2402
2402
  gap: 8,
2403
2403
  padding: "8px 12px",
2404
- background: X.bg,
2405
- border: `1px solid ${X.border}`,
2404
+ background: Z.bg,
2405
+ border: `1px solid ${Z.border}`,
2406
2406
  borderRadius: 5,
2407
2407
  boxSizing: "border-box"
2408
2408
  },
2409
2409
  children: [/* @__PURE__ */ s("span", {
2410
2410
  style: {
2411
- ...Vt,
2412
- color: e.color ?? X.t1
2411
+ ...Bt,
2412
+ color: e.color ?? Z.t1
2413
2413
  },
2414
2414
  children: e.value
2415
2415
  }), /* @__PURE__ */ s("span", {
@@ -2422,7 +2422,7 @@ function Ht({ chips: e = [] }) {
2422
2422
  }, t))
2423
2423
  });
2424
2424
  }
2425
- function Ut({ items: e = [] }) {
2425
+ function Ht({ items: e = [] }) {
2426
2426
  return /* @__PURE__ */ s("div", {
2427
2427
  style: {
2428
2428
  display: "flex",
@@ -2430,31 +2430,33 @@ function Ut({ items: e = [] }) {
2430
2430
  },
2431
2431
  children: e.map((e, t) => /* @__PURE__ */ c("div", {
2432
2432
  style: {
2433
+ display: "flex",
2434
+ flexDirection: "column",
2435
+ justifyContent: "center",
2436
+ alignItems: "flex-start",
2433
2437
  width: 260,
2434
2438
  height: 120,
2435
- padding: "12px 16px",
2436
- border: `1px solid ${X.border}`,
2437
- background: X.bg,
2438
- textAlign: "left",
2439
+ padding: 24,
2440
+ gap: 8,
2441
+ flexShrink: 0,
2442
+ border: `1px solid ${Z.border}`,
2443
+ background: Z.bg,
2439
2444
  boxSizing: "border-box"
2440
2445
  },
2441
2446
  children: [/* @__PURE__ */ s("div", {
2442
2447
  style: {
2443
- ...Vt,
2444
- color: e.color ?? X.t1
2448
+ ...Bt,
2449
+ color: e.color ?? Z.t1
2445
2450
  },
2446
2451
  children: e.value
2447
2452
  }), /* @__PURE__ */ s("div", {
2448
- style: {
2449
- ...$,
2450
- marginTop: 5
2451
- },
2453
+ style: { ...$ },
2452
2454
  children: e.label
2453
2455
  })]
2454
2456
  }, t))
2455
2457
  });
2456
2458
  }
2457
- function Wt({ items: e = [] }) {
2459
+ function Ut({ items: e = [] }) {
2458
2460
  return /* @__PURE__ */ s("div", {
2459
2461
  style: {
2460
2462
  display: "flex",
@@ -2467,18 +2469,16 @@ function Wt({ items: e = [] }) {
2467
2469
  alignItems: "center",
2468
2470
  gap: 12,
2469
2471
  padding: "9px 14px",
2470
- background: X.bg,
2471
- border: `1px solid ${X.border}`,
2472
- borderLeft: `3px solid ${e.color ?? X.t2}`,
2473
- borderRadius: 6
2472
+ background: Z.bg,
2473
+ border: `1px solid ${Z.border}`
2474
2474
  },
2475
2475
  children: [
2476
2476
  /* @__PURE__ */ s("span", {
2477
2477
  style: {
2478
- fontSize: 11,
2478
+ fontSize: 14,
2479
2479
  fontWeight: 600,
2480
- color: e.color ?? X.t2,
2481
- background: (e.color ?? X.t2) + "22",
2480
+ color: e.color ?? Z.t2,
2481
+ background: (e.color ?? Z.t2) + "22",
2482
2482
  padding: "2px 8px",
2483
2483
  borderRadius: 4,
2484
2484
  fontFamily: Q,
@@ -2488,8 +2488,9 @@ function Wt({ items: e = [] }) {
2488
2488
  }),
2489
2489
  /* @__PURE__ */ s("span", {
2490
2490
  style: {
2491
- ...Vt,
2492
- color: e.color ?? X.t1,
2491
+ ...Bt,
2492
+ fontSize: 14,
2493
+ color: e.color ?? Z.t1,
2493
2494
  minWidth: 70,
2494
2495
  flexShrink: 0
2495
2496
  },
@@ -2506,7 +2507,7 @@ function Wt({ items: e = [] }) {
2506
2507
  }, t))
2507
2508
  });
2508
2509
  }
2509
- function Gt({ items: e = [] }) {
2510
+ function Wt({ items: e = [] }) {
2510
2511
  return /* @__PURE__ */ s("div", {
2511
2512
  style: {
2512
2513
  display: "flex",
@@ -2514,35 +2515,38 @@ function Gt({ items: e = [] }) {
2514
2515
  },
2515
2516
  children: e.map((e, t) => /* @__PURE__ */ c("div", {
2516
2517
  style: {
2518
+ display: "flex",
2519
+ flexDirection: "column",
2520
+ justifyContent: "center",
2521
+ alignItems: "flex-start",
2517
2522
  width: 260,
2518
2523
  height: 120,
2519
- padding: "14px 16px",
2520
- background: X.bg,
2521
- border: `1px solid ${e.color ? e.color + "30" : X.border}`,
2524
+ padding: 24,
2525
+ gap: 8,
2526
+ flexShrink: 0,
2527
+ background: Z.bg,
2528
+ border: `1px solid ${e.color ? e.color + "30" : Z.border}`,
2522
2529
  boxSizing: "border-box"
2523
2530
  },
2524
2531
  children: [/* @__PURE__ */ s("div", {
2525
2532
  style: {
2526
- ...Vt,
2527
- color: e.color ?? X.t1
2533
+ ...Bt,
2534
+ color: e.color ?? Z.t1
2528
2535
  },
2529
2536
  children: e.value
2530
2537
  }), /* @__PURE__ */ s("div", {
2531
- style: {
2532
- ...$,
2533
- marginTop: 6
2534
- },
2538
+ style: { ...$ },
2535
2539
  children: e.label
2536
2540
  })]
2537
2541
  }, t))
2538
2542
  });
2539
2543
  }
2540
- var Kt = {
2541
- red: X.red,
2542
- amber: X.amber,
2543
- green: X.green
2544
+ var Gt = {
2545
+ red: Z.red,
2546
+ amber: Z.amber,
2547
+ green: Z.green
2544
2548
  };
2545
- function qt({ items: e = [] }) {
2549
+ function Kt({ items: e = [] }) {
2546
2550
  return /* @__PURE__ */ s("div", {
2547
2551
  style: {
2548
2552
  display: "flex",
@@ -2550,7 +2554,7 @@ function qt({ items: e = [] }) {
2550
2554
  gap: 5
2551
2555
  },
2552
2556
  children: e.map((e, t) => {
2553
- let n = Kt[e.severity];
2557
+ let n = Gt[e.severity];
2554
2558
  return /* @__PURE__ */ c("div", {
2555
2559
  style: {
2556
2560
  display: "flex",
@@ -2558,7 +2562,7 @@ function qt({ items: e = [] }) {
2558
2562
  gap: 10,
2559
2563
  padding: "10px 14px",
2560
2564
  background: u.sf,
2561
- border: `1px solid ${X.border}`
2565
+ border: `1px solid ${Z.border}`
2562
2566
  },
2563
2567
  children: [/* @__PURE__ */ s("span", { style: {
2564
2568
  width: 7,
@@ -2575,7 +2579,7 @@ function qt({ items: e = [] }) {
2575
2579
  })
2576
2580
  });
2577
2581
  }
2578
- function Jt({ min: e, max: t, unit: n, dots: r = [], chips: i = [] }) {
2582
+ function qt({ min: e, max: t, unit: n, dots: r = [], chips: i = [] }) {
2579
2583
  let a = t - e;
2580
2584
  return /* @__PURE__ */ c("div", { children: [/* @__PURE__ */ c("div", {
2581
2585
  style: {
@@ -2598,9 +2602,9 @@ function Jt({ min: e, max: t, unit: n, dots: r = [], chips: i = [] }) {
2598
2602
  position: "absolute",
2599
2603
  top: 43,
2600
2604
  left: 0,
2601
- fontSize: 9,
2602
- color: X.t4,
2603
- fontFamily: Z
2605
+ fontSize: 14,
2606
+ color: Z.t4,
2607
+ fontFamily: Q
2604
2608
  },
2605
2609
  children: [e, n]
2606
2610
  }),
@@ -2609,9 +2613,9 @@ function Jt({ min: e, max: t, unit: n, dots: r = [], chips: i = [] }) {
2609
2613
  position: "absolute",
2610
2614
  top: 43,
2611
2615
  right: 0,
2612
- fontSize: 9,
2613
- color: X.t4,
2614
- fontFamily: Z
2616
+ fontSize: 14,
2617
+ color: Z.t4,
2618
+ fontFamily: Q
2615
2619
  },
2616
2620
  children: [t, n]
2617
2621
  }),
@@ -2632,7 +2636,7 @@ function Jt({ min: e, max: t, unit: n, dots: r = [], chips: i = [] }) {
2632
2636
  },
2633
2637
  children: [/* @__PURE__ */ s("div", {
2634
2638
  style: {
2635
- fontSize: 9,
2639
+ fontSize: 14,
2636
2640
  color: o,
2637
2641
  fontFamily: Q,
2638
2642
  whiteSpace: "nowrap"
@@ -2640,10 +2644,10 @@ function Jt({ min: e, max: t, unit: n, dots: r = [], chips: i = [] }) {
2640
2644
  children: t.name
2641
2645
  }), /* @__PURE__ */ c("div", {
2642
2646
  style: {
2643
- fontSize: 9,
2647
+ fontSize: 14,
2644
2648
  fontWeight: 700,
2645
2649
  color: o,
2646
- fontFamily: Z,
2650
+ fontFamily: Q,
2647
2651
  whiteSpace: "nowrap"
2648
2652
  },
2649
2653
  children: [t.val, n]
@@ -2664,7 +2668,7 @@ function Jt({ min: e, max: t, unit: n, dots: r = [], chips: i = [] }) {
2664
2668
  },
2665
2669
  children: [/* @__PURE__ */ s("div", {
2666
2670
  style: {
2667
- fontSize: 9,
2671
+ fontSize: 14,
2668
2672
  color: o,
2669
2673
  fontFamily: Q,
2670
2674
  whiteSpace: "nowrap"
@@ -2672,10 +2676,10 @@ function Jt({ min: e, max: t, unit: n, dots: r = [], chips: i = [] }) {
2672
2676
  children: t.name
2673
2677
  }), /* @__PURE__ */ c("div", {
2674
2678
  style: {
2675
- fontSize: 9,
2679
+ fontSize: 14,
2676
2680
  fontWeight: 700,
2677
2681
  color: o,
2678
- fontFamily: Z,
2682
+ fontFamily: Q,
2679
2683
  whiteSpace: "nowrap"
2680
2684
  },
2681
2685
  children: [t.val, n]
@@ -2685,9 +2689,9 @@ function Jt({ min: e, max: t, unit: n, dots: r = [], chips: i = [] }) {
2685
2689
  }, r);
2686
2690
  })
2687
2691
  ]
2688
- }), i && i.length > 0 && /* @__PURE__ */ s(Ht, { chips: i })] });
2692
+ }), i && i.length > 0 && /* @__PURE__ */ s(Vt, { chips: i })] });
2689
2693
  }
2690
- function Yt({ leftPct: e, leftLabel: t, leftValue: n, leftColor: r, rightPct: i, rightLabel: a, rightValue: o, rightColor: l, chips: d }) {
2694
+ function Jt({ leftPct: e, leftLabel: t, leftValue: n, leftColor: r, rightPct: i, rightLabel: a, rightValue: o, rightColor: l, chips: d }) {
2691
2695
  let f = r ?? u.blue, p = l ?? u.cyan;
2692
2696
  return /* @__PURE__ */ c("div", { children: [
2693
2697
  /* @__PURE__ */ c("div", {
@@ -2710,10 +2714,10 @@ function Yt({ leftPct: e, leftLabel: t, leftValue: n, leftColor: r, rightPct: i,
2710
2714
  },
2711
2715
  children: /* @__PURE__ */ s("span", {
2712
2716
  style: {
2713
- fontSize: 12,
2717
+ fontSize: 14,
2714
2718
  fontWeight: 700,
2715
2719
  color: f,
2716
- fontFamily: Z
2720
+ fontFamily: Q
2717
2721
  },
2718
2722
  children: n
2719
2723
  })
@@ -2733,10 +2737,10 @@ function Yt({ leftPct: e, leftLabel: t, leftValue: n, leftColor: r, rightPct: i,
2733
2737
  },
2734
2738
  children: /* @__PURE__ */ s("span", {
2735
2739
  style: {
2736
- fontSize: 12,
2740
+ fontSize: 14,
2737
2741
  fontWeight: 700,
2738
2742
  color: p,
2739
- fontFamily: Z
2743
+ fontFamily: Q
2740
2744
  },
2741
2745
  children: o
2742
2746
  })
@@ -2752,7 +2756,7 @@ function Yt({ leftPct: e, leftLabel: t, leftValue: n, leftColor: r, rightPct: i,
2752
2756
  style: { width: `${e}%` },
2753
2757
  children: /* @__PURE__ */ c("span", {
2754
2758
  style: {
2755
- fontSize: 10,
2759
+ fontSize: 14,
2756
2760
  color: f,
2757
2761
  fontFamily: Q
2758
2762
  },
@@ -2769,7 +2773,7 @@ function Yt({ leftPct: e, leftLabel: t, leftValue: n, leftColor: r, rightPct: i,
2769
2773
  },
2770
2774
  children: /* @__PURE__ */ c("span", {
2771
2775
  style: {
2772
- fontSize: 10,
2776
+ fontSize: 14,
2773
2777
  color: p,
2774
2778
  fontFamily: Q
2775
2779
  },
@@ -2781,10 +2785,10 @@ function Yt({ leftPct: e, leftLabel: t, leftValue: n, leftColor: r, rightPct: i,
2781
2785
  })
2782
2786
  })]
2783
2787
  }),
2784
- d && d.length > 0 && /* @__PURE__ */ s(Ht, { chips: d })
2788
+ d && d.length > 0 && /* @__PURE__ */ s(Vt, { chips: d })
2785
2789
  ] });
2786
2790
  }
2787
- function Xt({ pct: e, label: t, color: n, chips: r }) {
2791
+ function Yt({ pct: e, label: t, color: n, chips: r }) {
2788
2792
  let i = n ?? u.blue, a = 2 * Math.PI * 30, o = a * (1 - e / 100);
2789
2793
  return /* @__PURE__ */ c("div", {
2790
2794
  style: {
@@ -2831,10 +2835,10 @@ function Xt({ pct: e, label: t, color: n, chips: r }) {
2831
2835
  },
2832
2836
  children: /* @__PURE__ */ c("div", {
2833
2837
  style: {
2834
- fontSize: 15,
2838
+ fontSize: 14,
2835
2839
  fontWeight: 700,
2836
2840
  color: i,
2837
- fontFamily: Z
2841
+ fontFamily: Q
2838
2842
  },
2839
2843
  children: [e, "%"]
2840
2844
  })
@@ -2859,14 +2863,14 @@ function Xt({ pct: e, label: t, color: n, chips: r }) {
2859
2863
  alignItems: "baseline",
2860
2864
  gap: 8,
2861
2865
  padding: "7px 10px",
2862
- background: X.bg,
2863
- border: `1px solid ${X.border}`,
2866
+ background: Z.bg,
2867
+ border: `1px solid ${Z.border}`,
2864
2868
  borderRadius: 5
2865
2869
  },
2866
2870
  children: [/* @__PURE__ */ s("span", {
2867
2871
  style: {
2868
- ...Vt,
2869
- color: e.color ?? X.t1
2872
+ ...Bt,
2873
+ color: e.color ?? Z.t1
2870
2874
  },
2871
2875
  children: e.value
2872
2876
  }), /* @__PURE__ */ s("span", {
@@ -2878,16 +2882,16 @@ function Xt({ pct: e, label: t, color: n, chips: r }) {
2878
2882
  })]
2879
2883
  });
2880
2884
  }
2881
- var Zt = {
2885
+ var Xt = {
2882
2886
  green: "#34D39918",
2883
2887
  amber: "#FBBF2418",
2884
2888
  red: "#F0606018"
2885
- }, Qt = {
2889
+ }, Zt = {
2886
2890
  green: "#34D399",
2887
2891
  amber: "#FBBF24",
2888
2892
  red: "#F06060"
2889
2893
  };
2890
- function $t({ items: e = [] }) {
2894
+ function Qt({ items: e = [] }) {
2891
2895
  return /* @__PURE__ */ s("div", {
2892
2896
  style: {
2893
2897
  display: "flex",
@@ -2900,16 +2904,16 @@ function $t({ items: e = [] }) {
2900
2904
  alignItems: "center",
2901
2905
  gap: 10,
2902
2906
  padding: "8px 12px",
2903
- background: X.bg,
2904
- border: `1px solid ${X.border}`
2907
+ background: Z.bg,
2908
+ border: `1px solid ${Z.border}`
2905
2909
  },
2906
2910
  children: [
2907
2911
  /* @__PURE__ */ s("span", {
2908
2912
  style: {
2909
- fontSize: 11,
2913
+ fontSize: 14,
2910
2914
  fontWeight: 600,
2911
- color: e.color ?? X.t2,
2912
- background: (e.color ?? X.t2) + "1A",
2915
+ color: e.color ?? Z.t2,
2916
+ background: (e.color ?? Z.t2) + "1A",
2913
2917
  padding: "2px 7px",
2914
2918
  borderRadius: 4,
2915
2919
  fontFamily: Q,
@@ -2930,17 +2934,17 @@ function $t({ items: e = [] }) {
2930
2934
  children: /* @__PURE__ */ s("div", { style: {
2931
2935
  height: "100%",
2932
2936
  width: `${e.pct}%`,
2933
- background: e.color ?? X.t2,
2937
+ background: e.color ?? Z.t2,
2934
2938
  borderRadius: 2,
2935
2939
  opacity: .75
2936
2940
  } })
2937
2941
  }),
2938
2942
  /* @__PURE__ */ s("span", {
2939
2943
  style: {
2940
- fontSize: 13,
2944
+ fontSize: 14,
2941
2945
  fontWeight: 700,
2942
- color: e.color ?? X.t1,
2943
- fontFamily: Z,
2946
+ color: e.color ?? Z.t1,
2947
+ fontFamily: Q,
2944
2948
  flexShrink: 0,
2945
2949
  minWidth: 52,
2946
2950
  textAlign: "right"
@@ -2949,10 +2953,10 @@ function $t({ items: e = [] }) {
2949
2953
  }),
2950
2954
  e.badge && e.badgeSeverity && /* @__PURE__ */ s("span", {
2951
2955
  style: {
2952
- fontSize: 10,
2956
+ fontSize: 14,
2953
2957
  fontWeight: 600,
2954
- color: Qt[e.badgeSeverity],
2955
- background: Zt[e.badgeSeverity],
2958
+ color: Zt[e.badgeSeverity],
2959
+ background: Xt[e.badgeSeverity],
2956
2960
  padding: "2px 7px",
2957
2961
  borderRadius: 4,
2958
2962
  fontFamily: Q,
@@ -2975,12 +2979,12 @@ function $t({ items: e = [] }) {
2975
2979
  }, t))
2976
2980
  });
2977
2981
  }
2978
- var en = {
2979
- red: X.red,
2980
- amber: X.amber,
2981
- green: X.green
2982
+ var $t = {
2983
+ red: Z.red,
2984
+ amber: Z.amber,
2985
+ green: Z.green
2982
2986
  };
2983
- function tn({ items: e = [] }) {
2987
+ function en({ items: e = [] }) {
2984
2988
  return /* @__PURE__ */ s("div", {
2985
2989
  style: {
2986
2990
  display: "flex",
@@ -2988,7 +2992,7 @@ function tn({ items: e = [] }) {
2988
2992
  gap: 5
2989
2993
  },
2990
2994
  children: e.map((e, t) => {
2991
- let n = en[e.severity];
2995
+ let n = $t[e.severity];
2992
2996
  return /* @__PURE__ */ c("div", {
2993
2997
  style: {
2994
2998
  display: "flex",
@@ -3018,7 +3022,7 @@ function tn({ items: e = [] }) {
3018
3022
  }),
3019
3023
  /* @__PURE__ */ s("span", {
3020
3024
  style: {
3021
- fontSize: 10,
3025
+ fontSize: 14,
3022
3026
  fontWeight: 600,
3023
3027
  color: n,
3024
3028
  background: n + "20",
@@ -3042,7 +3046,7 @@ function tn({ items: e = [] }) {
3042
3046
  })
3043
3047
  });
3044
3048
  }
3045
- function nn({ columns: e = [], rows: t = [] }) {
3049
+ function tn({ columns: e = [], rows: t = [] }) {
3046
3050
  return /* @__PURE__ */ c("div", {
3047
3051
  style: {
3048
3052
  display: "flex",
@@ -3055,14 +3059,14 @@ function nn({ columns: e = [], rows: t = [] }) {
3055
3059
  alignItems: "center",
3056
3060
  gap: 10,
3057
3061
  padding: "0 12px 6px",
3058
- borderBottom: `1px solid ${X.border}`
3062
+ borderBottom: `1px solid ${Z.border}`
3059
3063
  },
3060
3064
  children: [/* @__PURE__ */ s("div", { style: { minWidth: 64 } }), e.map((e, t) => /* @__PURE__ */ s("div", {
3061
3065
  style: {
3062
3066
  flex: 1,
3063
- fontSize: 9,
3067
+ fontSize: 14,
3064
3068
  fontWeight: 600,
3065
- color: X.t2,
3069
+ color: Z.t2,
3066
3070
  fontFamily: Q,
3067
3071
  textTransform: "uppercase",
3068
3072
  letterSpacing: .6
@@ -3075,15 +3079,15 @@ function nn({ columns: e = [], rows: t = [] }) {
3075
3079
  alignItems: "center",
3076
3080
  gap: 10,
3077
3081
  padding: "8px 12px",
3078
- background: X.bg,
3079
- border: `1px solid ${X.border}`
3082
+ background: Z.bg,
3083
+ border: `1px solid ${Z.border}`
3080
3084
  },
3081
3085
  children: [/* @__PURE__ */ s("span", {
3082
3086
  style: {
3083
- fontSize: 11,
3087
+ fontSize: 14,
3084
3088
  fontWeight: 600,
3085
- color: X.t2,
3086
- background: (e.color ?? X.t4) + "1A",
3089
+ color: Z.t2,
3090
+ background: (e.color ?? Z.t4) + "1A",
3087
3091
  padding: "2px 8px",
3088
3092
  borderRadius: 4,
3089
3093
  fontFamily: Q,
@@ -3095,17 +3099,17 @@ function nn({ columns: e = [], rows: t = [] }) {
3095
3099
  }), e.cells.map((t, n) => /* @__PURE__ */ s("span", {
3096
3100
  style: {
3097
3101
  flex: 1,
3098
- fontSize: 13,
3102
+ fontSize: 14,
3099
3103
  fontWeight: 700,
3100
- color: e.color ?? X.t1,
3101
- fontFamily: Z
3104
+ color: e.color ?? Z.t1,
3105
+ fontFamily: Q
3102
3106
  },
3103
3107
  children: t
3104
3108
  }, n))]
3105
3109
  }, t))]
3106
3110
  });
3107
3111
  }
3108
- function rn({ text: e }) {
3112
+ function nn({ text: e }) {
3109
3113
  return /* @__PURE__ */ c("div", {
3110
3114
  style: {
3111
3115
  padding: "8px 12px",
@@ -3130,22 +3134,22 @@ function rn({ text: e }) {
3130
3134
  })]
3131
3135
  });
3132
3136
  }
3133
- function an({ block: e }) {
3137
+ function rn({ block: e }) {
3134
3138
  if (!e) return null;
3135
3139
  let t = (() => {
3136
3140
  switch (e.type) {
3137
- case "stats": return /* @__PURE__ */ s(Ut, { items: e.items });
3138
- case "ranked": return /* @__PURE__ */ s(Wt, { items: e.items });
3139
- case "chips": return /* @__PURE__ */ s(Gt, { items: e.items });
3140
- case "badges": return /* @__PURE__ */ s(qt, { items: e.items });
3141
- case "dot-strip": return /* @__PURE__ */ s(Jt, {
3141
+ case "stats": return /* @__PURE__ */ s(Ht, { items: e.items });
3142
+ case "ranked": return /* @__PURE__ */ s(Ut, { items: e.items });
3143
+ case "chips": return /* @__PURE__ */ s(Wt, { items: e.items });
3144
+ case "badges": return /* @__PURE__ */ s(Kt, { items: e.items });
3145
+ case "dot-strip": return /* @__PURE__ */ s(qt, {
3142
3146
  min: e.min,
3143
3147
  max: e.max,
3144
3148
  unit: e.unit,
3145
3149
  dots: e.dots,
3146
3150
  chips: e.chips
3147
3151
  });
3148
- case "proportion": return /* @__PURE__ */ s(Yt, {
3152
+ case "proportion": return /* @__PURE__ */ s(Jt, {
3149
3153
  leftPct: e.leftPct,
3150
3154
  leftLabel: e.leftLabel,
3151
3155
  leftValue: e.leftValue,
@@ -3156,15 +3160,15 @@ function an({ block: e }) {
3156
3160
  rightColor: e.rightColor,
3157
3161
  chips: e.chips
3158
3162
  });
3159
- case "ring": return /* @__PURE__ */ s(Xt, {
3163
+ case "ring": return /* @__PURE__ */ s(Yt, {
3160
3164
  pct: e.pct,
3161
3165
  label: e.label,
3162
3166
  color: e.color,
3163
3167
  chips: e.chips
3164
3168
  });
3165
- case "scorecard-rows": return /* @__PURE__ */ s($t, { items: e.items });
3166
- case "flags-list": return /* @__PURE__ */ s(tn, { items: e.items });
3167
- case "comparison-rows": return /* @__PURE__ */ s(nn, {
3169
+ case "scorecard-rows": return /* @__PURE__ */ s(Qt, { items: e.items });
3170
+ case "flags-list": return /* @__PURE__ */ s(en, { items: e.items });
3171
+ case "comparison-rows": return /* @__PURE__ */ s(tn, {
3168
3172
  columns: e.columns,
3169
3173
  rows: e.rows
3170
3174
  });
@@ -3177,8 +3181,8 @@ function an({ block: e }) {
3177
3181
  flexDirection: "column",
3178
3182
  gap: 24
3179
3183
  },
3180
- children: [t, /* @__PURE__ */ s(rn, { text: e.takeaway })]
3184
+ children: [t, /* @__PURE__ */ s(nn, { text: e.takeaway })]
3181
3185
  }) : t;
3182
3186
  }
3183
3187
  //#endregion
3184
- export { ne as AreaChart, ie as BarChart, l as ChartFrame, Bt as DonutChart, an as KeyHighlights, Le as LineChart, Be as MiniBars, qe as PieChart, rt as ProcessSankey, it as RankingSankey, Ye as SankeySvg, te as SeriesChart, gt as Trend, St as TrendChart, Pt as VisualizationRenderer, Lt as cleanupVisualizationMounts, Rt as hydrateVisualizationMounts, zt as serializeVisualizationConfig };
3188
+ export { ne as AreaChart, ie as BarChart, l as ChartFrame, zt as DonutChart, rn as KeyHighlights, Ie as LineChart, ze as MiniBars, Ke as PieChart, nt as ProcessSankey, rt as RankingSankey, Je as SankeySvg, te as SeriesChart, ht as Trend, xt as TrendChart, Nt as VisualizationRenderer, It as cleanupVisualizationMounts, Lt as hydrateVisualizationMounts, Rt as serializeVisualizationConfig };