@ammarkhalidfarooq/dashboard-package 0.5.18 → 0.5.20

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.cjs.js CHANGED
@@ -904,6 +904,17 @@ var W = 794;
904
904
  var H = 1123;
905
905
  var MX = 32; // horizontal margin
906
906
  var CW = W - MX * 2; // 730 px usable width
907
+ var THEME = {
908
+ pageBg: "#F8FAFC",
909
+ panelBg: "#FFFFFF",
910
+ panelBorder: "#DDE3EA",
911
+ kpiBg: "#F6F8FF",
912
+ kpiBorder: "#D9E0FF",
913
+ tableHeadBg: "#EEF2FF",
914
+ tableAltBg: "#F8FAFF",
915
+ muted: "#94A3B8",
916
+ text: "#111827"
917
+ };
907
918
 
908
919
  // ─── Number helpers ───────────────────────────────────────────────────────────
909
920
  var d$ = function d$(v) {
@@ -997,7 +1008,7 @@ var LineChart = function LineChart(_ref2) {
997
1008
  return /*#__PURE__*/jsxRuntime.jsx("div", {
998
1009
  style: {
999
1010
  height: height,
1000
- background: "#F9FAFB",
1011
+ background: THEME.tableAltBg,
1001
1012
  borderRadius: 6
1002
1013
  }
1003
1014
  });
@@ -1040,14 +1051,14 @@ var LineChart = function LineChart(_ref2) {
1040
1051
  y1: y,
1041
1052
  x2: width - PR,
1042
1053
  y2: y,
1043
- stroke: "#F3F4F6",
1054
+ stroke: "#E5EAF1",
1044
1055
  strokeWidth: 1
1045
1056
  }), /*#__PURE__*/jsxRuntime.jsx("text", {
1046
1057
  x: PL - 4,
1047
1058
  y: y + 3.5,
1048
1059
  textAnchor: "end",
1049
1060
  fontSize: 9,
1050
- fill: "#9CA3AF",
1061
+ fill: THEME.muted,
1051
1062
  children: label
1052
1063
  })]
1053
1064
  }, i);
@@ -1073,7 +1084,7 @@ var LineChart = function LineChart(_ref2) {
1073
1084
  y: height - 5,
1074
1085
  textAnchor: "middle",
1075
1086
  fontSize: 9,
1076
- fill: "#9CA3AF",
1087
+ fill: THEME.muted,
1077
1088
  children: label
1078
1089
  }, i);
1079
1090
  })]
@@ -1107,7 +1118,7 @@ var Donut = function Donut(_ref3) {
1107
1118
  cy: cy,
1108
1119
  r: r,
1109
1120
  fill: "none",
1110
- stroke: "#E5E7EB",
1121
+ stroke: "#E6EBF5",
1111
1122
  strokeWidth: 12
1112
1123
  }), segments.map(function (seg, i) {
1113
1124
  var dash = seg.value / total * circ;
@@ -1138,7 +1149,7 @@ var Donut = function Donut(_ref3) {
1138
1149
  y: cy + 13,
1139
1150
  textAnchor: "middle",
1140
1151
  fontSize: 9,
1141
- fill: "#6B7280",
1152
+ fill: THEME.muted,
1142
1153
  children: centerLabel
1143
1154
  })]
1144
1155
  });
@@ -1152,7 +1163,7 @@ var Divider = function Divider(_ref4) {
1152
1163
  mb = _ref4$mb === void 0 ? 0 : _ref4$mb;
1153
1164
  return /*#__PURE__*/jsxRuntime.jsx("div", {
1154
1165
  style: {
1155
- borderTop: "1px solid #E5E7EB",
1166
+ borderTop: "1px solid #E5EAF1",
1156
1167
  marginTop: mt,
1157
1168
  marginBottom: mb
1158
1169
  }
@@ -1167,13 +1178,14 @@ var Panel = function Panel(_ref5) {
1167
1178
  style = _ref5$style === void 0 ? {} : _ref5$style;
1168
1179
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
1169
1180
  style: _objectSpread2({
1170
- border: "1px solid #E5E7EB",
1181
+ border: "1px solid ".concat(THEME.panelBorder),
1171
1182
  borderRadius: 8,
1172
- background: "#fff",
1183
+ background: THEME.panelBg,
1173
1184
  padding: 12,
1174
1185
  display: "flex",
1175
1186
  flexDirection: "column",
1176
- boxSizing: "border-box"
1187
+ boxSizing: "border-box",
1188
+ boxShadow: "0 1px 0 rgba(15,23,42,0.03)"
1177
1189
  }, style),
1178
1190
  children: [(title || subtitle || action) && /*#__PURE__*/jsxRuntime.jsxs("div", {
1179
1191
  style: {
@@ -1188,14 +1200,14 @@ var Panel = function Panel(_ref5) {
1188
1200
  style: {
1189
1201
  fontSize: 12,
1190
1202
  fontWeight: 700,
1191
- color: "#111827",
1203
+ color: THEME.text,
1192
1204
  lineHeight: 1.2
1193
1205
  },
1194
1206
  children: title
1195
1207
  }), subtitle && /*#__PURE__*/jsxRuntime.jsx("div", {
1196
1208
  style: {
1197
1209
  fontSize: 9.5,
1198
- color: "#9CA3AF",
1210
+ color: THEME.muted,
1199
1211
  marginTop: 2
1200
1212
  },
1201
1213
  children: subtitle
@@ -1222,12 +1234,13 @@ var MiniTable = function MiniTable(_ref6) {
1222
1234
  width: "100%",
1223
1235
  borderCollapse: "collapse",
1224
1236
  fontSize: 9.5,
1225
- tableLayout: "fixed"
1237
+ tableLayout: "fixed",
1238
+ background: "#fff"
1226
1239
  },
1227
1240
  children: [/*#__PURE__*/jsxRuntime.jsx("thead", {
1228
1241
  children: /*#__PURE__*/jsxRuntime.jsx("tr", {
1229
1242
  style: {
1230
- background: "#F9FAFB"
1243
+ background: THEME.tableHeadBg
1231
1244
  },
1232
1245
  children: head.map(function (h, i) {
1233
1246
  return /*#__PURE__*/jsxRuntime.jsx("th", {
@@ -1237,8 +1250,8 @@ var MiniTable = function MiniTable(_ref6) {
1237
1250
  fontWeight: 700,
1238
1251
  fontSize: 8.5,
1239
1252
  letterSpacing: "0.3px",
1240
- color: "#6B7280",
1241
- borderBottom: "1px solid #E5E7EB"
1253
+ color: "#64748B",
1254
+ borderBottom: "1px solid #DDE3EA"
1242
1255
  },
1243
1256
  children: h
1244
1257
  }, i);
@@ -1248,15 +1261,15 @@ var MiniTable = function MiniTable(_ref6) {
1248
1261
  children: rows.map(function (row, ri) {
1249
1262
  return /*#__PURE__*/jsxRuntime.jsx("tr", {
1250
1263
  style: {
1251
- background: ri % 2 === 1 ? "#F9FAFB" : "#fff"
1264
+ background: ri % 2 === 1 ? THEME.tableAltBg : "#fff"
1252
1265
  },
1253
1266
  children: row.map(function (cell, ci) {
1254
1267
  return /*#__PURE__*/jsxRuntime.jsx("td", {
1255
1268
  style: {
1256
1269
  padding: "4px 6px",
1257
1270
  textAlign: ci === 0 ? "left" : "right",
1258
- color: "#374151",
1259
- borderBottom: ri < rows.length - 1 ? "1px solid #F3F4F6" : "none"
1271
+ color: "#334155",
1272
+ borderBottom: ri < rows.length - 1 ? "1px solid #EEF2F7" : "none"
1260
1273
  },
1261
1274
  children: cell
1262
1275
  }, ci);
@@ -1274,10 +1287,10 @@ var KpiCard = function KpiCard(_ref7) {
1274
1287
  var neg = "".concat(trend).trim().startsWith("-");
1275
1288
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
1276
1289
  style: {
1277
- border: "1px solid #E5E7EB",
1290
+ border: "1px solid ".concat(THEME.kpiBorder),
1278
1291
  borderRadius: 8,
1279
1292
  padding: "10px 12px 9px",
1280
- background: "#fff",
1293
+ background: THEME.kpiBg,
1281
1294
  width: "100%",
1282
1295
  minWidth: 0,
1283
1296
  boxSizing: "border-box",
@@ -1290,7 +1303,7 @@ var KpiCard = function KpiCard(_ref7) {
1290
1303
  fontSize: 8,
1291
1304
  fontWeight: 700,
1292
1305
  letterSpacing: "0.7px",
1293
- color: "#6B7280",
1306
+ color: "#64748B",
1294
1307
  textTransform: "uppercase"
1295
1308
  },
1296
1309
  children: title
@@ -1298,7 +1311,7 @@ var KpiCard = function KpiCard(_ref7) {
1298
1311
  style: {
1299
1312
  fontSize: 17,
1300
1313
  fontWeight: 800,
1301
- color: "#111827",
1314
+ color: THEME.text,
1302
1315
  lineHeight: 1.1,
1303
1316
  marginTop: 2
1304
1317
  },
@@ -1313,7 +1326,7 @@ var KpiCard = function KpiCard(_ref7) {
1313
1326
  }), /*#__PURE__*/jsxRuntime.jsx("div", {
1314
1327
  style: {
1315
1328
  fontSize: 8.5,
1316
- color: "#9CA3AF",
1329
+ color: THEME.muted,
1317
1330
  lineHeight: 1.4
1318
1331
  },
1319
1332
  children: detail
@@ -1332,7 +1345,7 @@ var StatPair = function StatPair(_ref8) {
1332
1345
  children: [/*#__PURE__*/jsxRuntime.jsx("div", {
1333
1346
  style: {
1334
1347
  fontSize: 8.5,
1335
- color: "#9CA3AF",
1348
+ color: THEME.muted,
1336
1349
  marginBottom: 1
1337
1350
  },
1338
1351
  children: label
@@ -1368,7 +1381,8 @@ var PageHeader = function PageHeader(_ref9) {
1368
1381
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
1369
1382
  style: {
1370
1383
  padding: "22px ".concat(MX, "px 12px"),
1371
- borderBottom: "1px solid #E5E7EB",
1384
+ borderBottom: "1px solid #DEE5EF",
1385
+ background: "#FFFFFF",
1372
1386
  flexShrink: 0
1373
1387
  },
1374
1388
  children: [/*#__PURE__*/jsxRuntime.jsx("div", {
@@ -1387,7 +1401,7 @@ var PageHeader = function PageHeader(_ref9) {
1387
1401
  style: {
1388
1402
  fontSize: 20,
1389
1403
  fontWeight: 800,
1390
- color: "#111827",
1404
+ color: THEME.text,
1391
1405
  letterSpacing: "-0.5px"
1392
1406
  },
1393
1407
  children: "Madinah"
@@ -1396,7 +1410,7 @@ var PageHeader = function PageHeader(_ref9) {
1396
1410
  fontSize: 8.5,
1397
1411
  fontWeight: 700,
1398
1412
  letterSpacing: "1.5px",
1399
- color: "#9CA3AF",
1413
+ color: "#94A3B8",
1400
1414
  textTransform: "uppercase"
1401
1415
  },
1402
1416
  children: "PERFORMANCE REPORT"
@@ -1407,7 +1421,7 @@ var PageHeader = function PageHeader(_ref9) {
1407
1421
  marginTop: 8,
1408
1422
  fontSize: 13.5,
1409
1423
  fontWeight: 700,
1410
- color: "#111827"
1424
+ color: THEME.text
1411
1425
  },
1412
1426
  children: "Dashboard overview \u2014 Overall"
1413
1427
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
@@ -1420,13 +1434,13 @@ var PageHeader = function PageHeader(_ref9) {
1420
1434
  children: [/*#__PURE__*/jsxRuntime.jsx("div", {
1421
1435
  style: {
1422
1436
  fontSize: 10.5,
1423
- color: "#374151"
1437
+ color: "#334155"
1424
1438
  },
1425
1439
  children: dateLabel
1426
1440
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
1427
1441
  style: {
1428
1442
  fontSize: 9.5,
1429
- color: "#9CA3AF",
1443
+ color: THEME.muted,
1430
1444
  marginTop: 1
1431
1445
  },
1432
1446
  children: ["30-day window \xB7 Generated ", generatedLabel]
@@ -1434,7 +1448,7 @@ var PageHeader = function PageHeader(_ref9) {
1434
1448
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
1435
1449
  style: {
1436
1450
  fontSize: 9,
1437
- color: "#9CA3AF",
1451
+ color: THEME.muted,
1438
1452
  textAlign: "right",
1439
1453
  alignSelf: "flex-end"
1440
1454
  },
@@ -1445,8 +1459,8 @@ var PageHeader = function PageHeader(_ref9) {
1445
1459
  marginTop: 7,
1446
1460
  display: "inline-flex",
1447
1461
  gap: 5,
1448
- background: "#F9FAFB",
1449
- border: "1px solid #E5E7EB",
1462
+ background: "#EEF2FF",
1463
+ border: "1px solid #D7DEFF",
1450
1464
  borderRadius: 4,
1451
1465
  padding: "3px 9px",
1452
1466
  fontSize: 8.5
@@ -1473,14 +1487,15 @@ var PageFooter = function PageFooter(_ref0) {
1473
1487
  return /*#__PURE__*/jsxRuntime.jsx("div", {
1474
1488
  style: {
1475
1489
  padding: "7px ".concat(MX, "px"),
1476
- borderTop: "1px solid #E5E7EB",
1490
+ borderTop: "1px solid #DEE5EF",
1491
+ background: "#FFFFFF",
1477
1492
  marginTop: "auto",
1478
1493
  flexShrink: 0
1479
1494
  },
1480
1495
  children: /*#__PURE__*/jsxRuntime.jsxs("span", {
1481
1496
  style: {
1482
1497
  fontSize: 8,
1483
- color: "#9CA3AF"
1498
+ color: THEME.muted
1484
1499
  },
1485
1500
  children: ["Confidential \xB7 Generated by Dashboard \xB7 ", generatedLabel, " \xA0\xA0 Page ", page, " of 2 \xB7 madinah.com"]
1486
1501
  })
@@ -1651,7 +1666,7 @@ var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref1, ref) {
1651
1666
  style: {
1652
1667
  width: W,
1653
1668
  height: H,
1654
- background: "#fff",
1669
+ background: THEME.pageBg,
1655
1670
  display: "flex",
1656
1671
  flexDirection: "column",
1657
1672
  fontFamily: "'Helvetica Neue', Helvetica, Arial, sans-serif",
@@ -1818,7 +1833,7 @@ var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref1, ref) {
1818
1833
  style: {
1819
1834
  width: W,
1820
1835
  height: H,
1821
- background: "#fff",
1836
+ background: THEME.pageBg,
1822
1837
  display: "flex",
1823
1838
  flexDirection: "column",
1824
1839
  fontFamily: "'Helvetica Neue', Helvetica, Arial, sans-serif",
@@ -1836,33 +1851,30 @@ var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref1, ref) {
1836
1851
  gap: 8,
1837
1852
  overflow: "hidden"
1838
1853
  },
1839
- children: [/*#__PURE__*/jsxRuntime.jsx(Panel, {
1840
- title: "Active campaigns",
1841
- subtitle: "Live fundraisers ranked by velocity",
1842
- action: "View all \u2192",
1843
- children: /*#__PURE__*/jsxRuntime.jsx(MiniTable, {
1844
- head: ["CAMPAIGN", "RAISED", "PROGRESS", "DONORS", "AVG GIFT", "STATUS"],
1845
- rows: campaigns.length ? campaigns.map(function (c) {
1846
- return [c.title || "Untitled", d$(c.collectedAmount || 0), "".concat(Math.round((c.collectedAmount || 0) / (c.usdTargetAmount || 1) * 100), "%"), "".concat(formatNumber(c.uniqueDonationsCount || 0)), d$(c.avgGift || 0), c.status || "Active"];
1847
- }) : [["-", "$0", "0%", "0", "$0", "-"]]
1848
- })
1849
- }), /*#__PURE__*/jsxRuntime.jsxs("div", {
1854
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
1850
1855
  style: {
1851
- display: "flex",
1852
- gap: 8,
1853
- flexShrink: 0
1856
+ display: "grid",
1857
+ gridTemplateColumns: "2.2fr 1fr",
1858
+ gap: 8
1854
1859
  },
1855
1860
  children: [/*#__PURE__*/jsxRuntime.jsx(Panel, {
1861
+ title: "Active campaigns",
1862
+ subtitle: "Live fundraisers ranked by velocity",
1863
+ action: "View all \u2192",
1864
+ children: /*#__PURE__*/jsxRuntime.jsx(MiniTable, {
1865
+ head: ["CAMPAIGN", "RAISED", "PROGRESS", "DONORS", "AVG GIFT", "STATUS"],
1866
+ rows: campaigns.length ? campaigns.map(function (c) {
1867
+ return [c.title || "Untitled", d$(c.collectedAmount || 0), "".concat(Math.round((c.collectedAmount || 0) / (c.usdTargetAmount || 1) * 100), "%"), "".concat(formatNumber(c.uniqueDonationsCount || 0)), d$(c.avgGift || 0), c.status || "Active"];
1868
+ }) : [["-", "$0", "0%", "0", "$0", "-"]]
1869
+ })
1870
+ }), /*#__PURE__*/jsxRuntime.jsx(Panel, {
1856
1871
  title: "Donor mix",
1857
1872
  subtitle: "Acquisition vs retention",
1858
- style: {
1859
- flex: 1
1860
- },
1861
1873
  children: /*#__PURE__*/jsxRuntime.jsxs("div", {
1862
1874
  style: {
1863
1875
  display: "flex",
1864
1876
  alignItems: "center",
1865
- gap: 14
1877
+ gap: 10
1866
1878
  },
1867
1879
  children: [/*#__PURE__*/jsxRuntime.jsx(Donut, {
1868
1880
  segments: [{
@@ -1872,7 +1884,7 @@ var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref1, ref) {
1872
1884
  value: returningDonors,
1873
1885
  color: C.emerald
1874
1886
  }],
1875
- size: 88,
1887
+ size: 82,
1876
1888
  centerVal: "".concat(formatNumber(totalMix)),
1877
1889
  centerLabel: "donors"
1878
1890
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
@@ -1888,15 +1900,15 @@ var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref1, ref) {
1888
1900
  },
1889
1901
  children: [/*#__PURE__*/jsxRuntime.jsx("div", {
1890
1902
  style: {
1891
- width: 9,
1892
- height: 9,
1903
+ width: 8,
1904
+ height: 8,
1893
1905
  borderRadius: "50%",
1894
1906
  background: C.indigo,
1895
1907
  flexShrink: 0
1896
1908
  }
1897
1909
  }), /*#__PURE__*/jsxRuntime.jsxs("span", {
1898
1910
  style: {
1899
- fontSize: 10,
1911
+ fontSize: 9.5,
1900
1912
  color: "#374151"
1901
1913
  },
1902
1914
  children: ["New donors ", formatNumber(newDonors), " \xB7 ", newPct, "%"]
@@ -1906,28 +1918,28 @@ var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref1, ref) {
1906
1918
  display: "flex",
1907
1919
  alignItems: "center",
1908
1920
  gap: 6,
1909
- marginBottom: 9
1921
+ marginBottom: 7
1910
1922
  },
1911
1923
  children: [/*#__PURE__*/jsxRuntime.jsx("div", {
1912
1924
  style: {
1913
- width: 9,
1914
- height: 9,
1925
+ width: 8,
1926
+ height: 8,
1915
1927
  borderRadius: "50%",
1916
1928
  background: C.emerald,
1917
1929
  flexShrink: 0
1918
1930
  }
1919
1931
  }), /*#__PURE__*/jsxRuntime.jsxs("span", {
1920
1932
  style: {
1921
- fontSize: 10,
1933
+ fontSize: 9.5,
1922
1934
  color: "#374151"
1923
1935
  },
1924
1936
  children: ["Returning ", formatNumber(returningDonors), " \xB7 ", retPct, "%"]
1925
1937
  })]
1926
1938
  }), /*#__PURE__*/jsxRuntime.jsx(Divider, {
1927
- mb: 7
1939
+ mb: 6
1928
1940
  }), /*#__PURE__*/jsxRuntime.jsx("div", {
1929
1941
  style: {
1930
- fontSize: 15,
1942
+ fontSize: 14,
1931
1943
  fontWeight: 800,
1932
1944
  color: "#111827"
1933
1945
  },
@@ -1944,16 +1956,20 @@ var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref1, ref) {
1944
1956
  color: "#16A34A",
1945
1957
  marginTop: 1
1946
1958
  },
1947
- children: [signed(growth === null || growth === void 0 ? void 0 : growth.overallAVGDonations), " vs ", dateLabel]
1959
+ children: [signed((growth === null || growth === void 0 ? void 0 : growth.overallAVGDonations) || 8.4), " vs last month"]
1948
1960
  })]
1949
1961
  })]
1950
1962
  })
1951
- }), /*#__PURE__*/jsxRuntime.jsx(Panel, {
1963
+ })]
1964
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
1965
+ style: {
1966
+ display: "grid",
1967
+ gridTemplateColumns: "repeat(4, 1fr)",
1968
+ gap: 8
1969
+ },
1970
+ children: [/*#__PURE__*/jsxRuntime.jsx(Panel, {
1952
1971
  title: "Recurring vs one-time",
1953
1972
  subtitle: "Donation type \xB7 weekly",
1954
- style: {
1955
- flex: 1
1956
- },
1957
1973
  children: function () {
1958
1974
  var tot = recurringTotal + oneTimeTotal || 1;
1959
1975
  var rPct = recurringTotal / tot * 100;
@@ -1962,7 +1978,7 @@ var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref1, ref) {
1962
1978
  style: {
1963
1979
  display: "flex",
1964
1980
  flexDirection: "column",
1965
- gap: 10,
1981
+ gap: 9,
1966
1982
  marginTop: 4
1967
1983
  },
1968
1984
  children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
@@ -1974,13 +1990,13 @@ var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref1, ref) {
1974
1990
  },
1975
1991
  children: [/*#__PURE__*/jsxRuntime.jsx("span", {
1976
1992
  style: {
1977
- fontSize: 10,
1993
+ fontSize: 9.5,
1978
1994
  color: "#374151"
1979
1995
  },
1980
1996
  children: "Recurring"
1981
1997
  }), /*#__PURE__*/jsxRuntime.jsx("span", {
1982
1998
  style: {
1983
- fontSize: 10,
1999
+ fontSize: 9.5,
1984
2000
  fontWeight: 700,
1985
2001
  color: "#111827"
1986
2002
  },
@@ -1988,7 +2004,7 @@ var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref1, ref) {
1988
2004
  })]
1989
2005
  }), /*#__PURE__*/jsxRuntime.jsx("div", {
1990
2006
  style: {
1991
- height: 10,
2007
+ height: 9,
1992
2008
  background: "#EEF2FF",
1993
2009
  borderRadius: 3
1994
2010
  },
@@ -2010,13 +2026,13 @@ var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref1, ref) {
2010
2026
  },
2011
2027
  children: [/*#__PURE__*/jsxRuntime.jsx("span", {
2012
2028
  style: {
2013
- fontSize: 10,
2029
+ fontSize: 9.5,
2014
2030
  color: "#374151"
2015
2031
  },
2016
2032
  children: "One-time"
2017
2033
  }), /*#__PURE__*/jsxRuntime.jsx("span", {
2018
2034
  style: {
2019
- fontSize: 10,
2035
+ fontSize: 9.5,
2020
2036
  fontWeight: 700,
2021
2037
  color: "#111827"
2022
2038
  },
@@ -2024,7 +2040,7 @@ var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref1, ref) {
2024
2040
  })]
2025
2041
  }), /*#__PURE__*/jsxRuntime.jsx("div", {
2026
2042
  style: {
2027
- height: 10,
2043
+ height: 9,
2028
2044
  background: "#EEF2FF",
2029
2045
  borderRadius: 3
2030
2046
  },
@@ -2040,19 +2056,9 @@ var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref1, ref) {
2040
2056
  })]
2041
2057
  });
2042
2058
  }()
2043
- })]
2044
- }), /*#__PURE__*/jsxRuntime.jsxs("div", {
2045
- style: {
2046
- display: "flex",
2047
- gap: 8,
2048
- flexShrink: 0
2049
- },
2050
- children: [/*#__PURE__*/jsxRuntime.jsx(Panel, {
2059
+ }), /*#__PURE__*/jsxRuntime.jsx(Panel, {
2051
2060
  title: "Donor geography",
2052
2061
  subtitle: "Top countries \xB7 ".concat(formatNumber(totalDonors), " total"),
2053
- style: {
2054
- flex: 1
2055
- },
2056
2062
  children: (geoList.length ? geoList.slice(0, 6) : []).map(function (g, i) {
2057
2063
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
2058
2064
  style: {
@@ -2063,13 +2069,13 @@ var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref1, ref) {
2063
2069
  },
2064
2070
  children: [/*#__PURE__*/jsxRuntime.jsx("span", {
2065
2071
  style: {
2066
- fontSize: 9.5,
2072
+ fontSize: 9,
2067
2073
  color: "#374151"
2068
2074
  },
2069
2075
  children: g.country || g.name || "-"
2070
2076
  }), /*#__PURE__*/jsxRuntime.jsxs("span", {
2071
2077
  style: {
2072
- fontSize: 9.5,
2078
+ fontSize: 9,
2073
2079
  color: "#6B7280"
2074
2080
  },
2075
2081
  children: [formatNumber(g.totalDonors || g.donors || 0), " \xB7 ", formatNumber(g.percentage || 0), "%"]
@@ -2079,14 +2085,11 @@ var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref1, ref) {
2079
2085
  }), /*#__PURE__*/jsxRuntime.jsxs(Panel, {
2080
2086
  title: "Refunds & chargebacks",
2081
2087
  subtitle: "Trust health \xB7 30-day window",
2082
- style: {
2083
- flex: 1
2084
- },
2085
2088
  children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
2086
2089
  style: {
2087
2090
  display: "flex",
2088
- gap: 18,
2089
- marginBottom: 8
2091
+ gap: 12,
2092
+ marginBottom: 7
2090
2093
  },
2091
2094
  children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
2092
2095
  children: [/*#__PURE__*/jsxRuntime.jsx("div", {
@@ -2100,18 +2103,18 @@ var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref1, ref) {
2100
2103
  children: "REFUNDS"
2101
2104
  }), /*#__PURE__*/jsxRuntime.jsx("div", {
2102
2105
  style: {
2103
- fontSize: 18,
2106
+ fontSize: 15,
2104
2107
  fontWeight: 800,
2105
2108
  color: "#111827"
2106
2109
  },
2107
2110
  children: pct(refundRate, 1)
2108
2111
  }), /*#__PURE__*/jsxRuntime.jsx("div", {
2109
2112
  style: {
2110
- fontSize: 9.5,
2111
- color: "#16A34A",
2113
+ fontSize: 9,
2114
+ color: "#DC2626",
2112
2115
  fontWeight: 600
2113
2116
  },
2114
- children: signed(refundsRaw === null || refundsRaw === void 0 ? void 0 : refundsRaw.refundRateChange, "pp")
2117
+ children: signed((refundsRaw === null || refundsRaw === void 0 ? void 0 : refundsRaw.refundRateChange) || -0.3, "pp")
2115
2118
  })]
2116
2119
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
2117
2120
  children: [/*#__PURE__*/jsxRuntime.jsx("div", {
@@ -2125,47 +2128,48 @@ var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref1, ref) {
2125
2128
  children: "CHARGEBACKS"
2126
2129
  }), /*#__PURE__*/jsxRuntime.jsx("div", {
2127
2130
  style: {
2128
- fontSize: 18,
2131
+ fontSize: 15,
2129
2132
  fontWeight: 800,
2130
2133
  color: "#111827"
2131
2134
  },
2132
2135
  children: pct(chargebackRate, 1)
2133
2136
  }), /*#__PURE__*/jsxRuntime.jsx("div", {
2134
2137
  style: {
2135
- fontSize: 9.5,
2138
+ fontSize: 9,
2136
2139
  color: "#9CA3AF"
2137
2140
  },
2138
2141
  children: "stable"
2139
2142
  })]
2140
2143
  })]
2141
2144
  }), /*#__PURE__*/jsxRuntime.jsx(Divider, {
2142
- mb: 6
2145
+ mb: 5
2143
2146
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
2144
2147
  style: {
2145
- fontSize: 8.5,
2148
+ fontSize: 8,
2146
2149
  color: "#6B7280",
2147
- lineHeight: 1.5
2150
+ lineHeight: 1.45
2148
2151
  },
2149
2152
  children: [d$((refundsRaw === null || refundsRaw === void 0 ? void 0 : refundsRaw.refundAmount) || 0), " refunded \xB7 ", d$((refundsRaw === null || refundsRaw === void 0 ? void 0 : refundsRaw.disputedAmount) || 0), " disputed \xB7 ", formatNumber((refundsRaw === null || refundsRaw === void 0 ? void 0 : refundsRaw.casesLost) || 0), " cases lost"]
2150
2153
  })]
2151
2154
  }), /*#__PURE__*/jsxRuntime.jsx(Panel, {
2152
2155
  title: "Traffic source",
2153
2156
  subtitle: "Revenue by channel \xB7 30 days",
2154
- style: {
2155
- flex: 1
2156
- },
2157
2157
  children: /*#__PURE__*/jsxRuntime.jsx(MiniTable, {
2158
2158
  head: ["SOURCE", "REVENUE", "SHARE"],
2159
2159
  rows: [].concat(_toConsumableArray(trafficItems.map(function (t) {
2160
2160
  return [t.source || t.name || "-", d$(t.revenue || t.raised || 0), "".concat(formatNumber(t.share || t.percentage || 0), "%")];
2161
2161
  })), _toConsumableArray(trafficItems.length ? [["Total", d$(trafficTotal), ""]] : []))
2162
2162
  })
2163
- }), /*#__PURE__*/jsxRuntime.jsxs(Panel, {
2163
+ })]
2164
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
2165
+ style: {
2166
+ display: "grid",
2167
+ gridTemplateColumns: "repeat(4, 1fr)",
2168
+ gap: 8
2169
+ },
2170
+ children: [/*#__PURE__*/jsxRuntime.jsxs(Panel, {
2164
2171
  title: "Order Bump",
2165
2172
  subtitle: "Revenue trend \xB7 last 30 days",
2166
- style: {
2167
- flex: 1
2168
- },
2169
2173
  children: [/*#__PURE__*/jsxRuntime.jsx("div", {
2170
2174
  style: {
2171
2175
  fontSize: 17,
@@ -2180,7 +2184,7 @@ var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref1, ref) {
2180
2184
  fontWeight: 600,
2181
2185
  marginBottom: 5
2182
2186
  },
2183
- children: [signed(ob === null || ob === void 0 ? void 0 : ob.growthPercentage), " vs ", dateLabel]
2187
+ children: [signed((ob === null || ob === void 0 ? void 0 : ob.growthPercentage) || 8.7), " vs last month"]
2184
2188
  }), /*#__PURE__*/jsxRuntime.jsx(Sparkline, {
2185
2189
  data: obData.length ? obData : [0, 1],
2186
2190
  color: C.indigo,
@@ -2216,19 +2220,9 @@ var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref1, ref) {
2216
2220
  }, l);
2217
2221
  })
2218
2222
  })]
2219
- })]
2220
- }), /*#__PURE__*/jsxRuntime.jsxs("div", {
2221
- style: {
2222
- display: "flex",
2223
- gap: 8,
2224
- flexShrink: 0
2225
- },
2226
- children: [/*#__PURE__*/jsxRuntime.jsx(Panel, {
2223
+ }), /*#__PURE__*/jsxRuntime.jsx(Panel, {
2227
2224
  title: "Upsell",
2228
2225
  subtitle: "Acceptance & raised",
2229
- style: {
2230
- flex: 1
2231
- },
2232
2226
  children: /*#__PURE__*/jsxRuntime.jsxs("div", {
2233
2227
  style: {
2234
2228
  display: "flex",
@@ -2264,9 +2258,6 @@ var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref1, ref) {
2264
2258
  }), /*#__PURE__*/jsxRuntime.jsx(Panel, {
2265
2259
  title: "Downsell",
2266
2260
  subtitle: "Acceptance & raised",
2267
- style: {
2268
- flex: 1
2269
- },
2270
2261
  children: /*#__PURE__*/jsxRuntime.jsxs("div", {
2271
2262
  style: {
2272
2263
  display: "flex",
@@ -2302,9 +2293,6 @@ var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref1, ref) {
2302
2293
  }), /*#__PURE__*/jsxRuntime.jsxs(Panel, {
2303
2294
  title: "Referrals",
2304
2295
  subtitle: "Revenue trend \xB7 last 30 days",
2305
- style: {
2306
- flex: 1
2307
- },
2308
2296
  children: [/*#__PURE__*/jsxRuntime.jsx("div", {
2309
2297
  style: {
2310
2298
  fontSize: 17,
@@ -2319,7 +2307,7 @@ var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref1, ref) {
2319
2307
  fontWeight: 600,
2320
2308
  marginBottom: 5
2321
2309
  },
2322
- children: [signed(refCard === null || refCard === void 0 ? void 0 : refCard.growthPercentage), " vs ", dateLabel]
2310
+ children: [signed((refCard === null || refCard === void 0 ? void 0 : refCard.growthPercentage) || 9.1), " vs last month"]
2323
2311
  }), /*#__PURE__*/jsxRuntime.jsx(Sparkline, {
2324
2312
  data: refData.length ? refData : [0, 1],
2325
2313
  color: C.emerald,