@tracked/emails 0.1.3 → 0.1.5

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.
@@ -1,10 +1,10 @@
1
1
  interface FeatureDiscoveryEmailProps {
2
- userName: string;
3
- featureName: string;
4
- featureDescription: string;
5
- featureBenefits: string[];
6
- featureUrl: string;
7
- websiteUrl: string;
2
+ userName?: string;
3
+ featureName?: string;
4
+ featureDescription?: string;
5
+ featureBenefits?: string[];
6
+ featureUrl?: string;
7
+ websiteUrl?: string;
8
8
  }
9
9
  export declare const FeatureDiscoveryEmail: ({ userName, featureName, featureDescription, featureBenefits, featureUrl, websiteUrl, }: FeatureDiscoveryEmailProps) => import("react/jsx-runtime").JSX.Element;
10
10
  export default FeatureDiscoveryEmail;
@@ -1 +1 @@
1
- {"version":3,"file":"feature-discovery.d.ts","sourceRoot":"","sources":["../../src/emails/feature-discovery.tsx"],"names":[],"mappings":"AAgBA,UAAU,0BAA0B;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAID,eAAO,MAAM,qBAAqB,GAAI,yFAOnC,0BAA0B,4CA+J5B,CAAC;AA+FF,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"feature-discovery.d.ts","sourceRoot":"","sources":["../../src/emails/feature-discovery.tsx"],"names":[],"mappings":"AAgBA,UAAU,0BAA0B;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAID,eAAO,MAAM,qBAAqB,GAAI,yFAYnC,0BAA0B,4CA+J5B,CAAC;AA+FF,eAAe,qBAAqB,CAAC"}
@@ -1,7 +1,12 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Body, Column, Container, Head, Hr, Html, Img, Link, Preview, Row, Section, Text, } from "@react-email/components";
3
3
  const baseUrl = "https://tracked.gg/android-chrome-192x192.png";
4
- export const FeatureDiscoveryEmail = ({ userName, featureName, featureDescription, featureBenefits, featureUrl, websiteUrl = "https://tracked.gg", }) => {
4
+ export const FeatureDiscoveryEmail = ({ userName = "Alex", featureName = "Progress Photos", featureDescription = "Track your transformation visually with our new Progress Photos feature. Take photos, compare side-by-side, and see your hard work paying off over time.", featureBenefits = [
5
+ "Compare photos side-by-side to see your progress",
6
+ "Automatic privacy controls - your photos are only visible to you",
7
+ "Set reminders to take consistent progress photos",
8
+ "Track multiple angles and body positions",
9
+ ], featureUrl = "https://tracked.gg/progress-photos", websiteUrl = "https://tracked.gg", }) => {
5
10
  return (_jsxs(Html, { children: [_jsxs(Head, { children: [_jsx("meta", { name: "color-scheme", content: "light only" }), _jsx("meta", { name: "supported-color-schemes", content: "light only" })] }), _jsxs(Preview, { children: ["Discover ", featureName, " on Tracked"] }), _jsx(Body, { style: main, children: _jsx(Container, { style: container, children: _jsxs(Section, { style: box, children: [_jsxs(Row, { style: { marginBottom: "8px" }, children: [_jsx(Column, { style: { width: "auto", verticalAlign: "middle" }, children: _jsx(Img, { src: `${baseUrl}`, width: "28", height: "28", alt: "Tracked" }) }), _jsx(Column, { style: {
6
11
  width: "auto",
7
12
  verticalAlign: "middle",
@@ -1 +1 @@
1
- {"version":3,"file":"feature-discovery.js","sourceRoot":"","sources":["../../src/emails/feature-discovery.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feature-discovery.js","sourceRoot":"","sources":["../../src/emails/feature-discovery.tsx"],"names":[],"mappings":"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"}
@@ -33,7 +33,7 @@ interface PreviousMetrics {
33
33
  totalSessionsTracked: number | null;
34
34
  }
35
35
  interface MonthlyReportEmailProps {
36
- metrics: MonthlyMetrics;
36
+ metrics?: MonthlyMetrics;
37
37
  previousMetrics?: PreviousMetrics | null;
38
38
  websiteUrl?: string;
39
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"monthly-report.d.ts","sourceRoot":"","sources":["../../src/emails/monthly-report.tsx"],"names":[],"mappings":"AAgBA,UAAU,WAAW;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,cAAc;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IAGpB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,eAAe,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IAG3C,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,UAAU,eAAe;IACvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,UAAU,uBAAuB;IAC/B,OAAO,EAAE,cAAc,CAAC;IACxB,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAmBD,eAAO,MAAM,kBAAkB,GAAI,2CAIhC,uBAAuB,4CAmVzB,CAAC;AAuLF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"monthly-report.d.ts","sourceRoot":"","sources":["../../src/emails/monthly-report.tsx"],"names":[],"mappings":"AAgBA,UAAU,WAAW;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,cAAc;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IAGpB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,eAAe,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IAG3C,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,UAAU,eAAe;IACvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,UAAU,uBAAuB;IAC/B,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAwDD,eAAO,MAAM,kBAAkB,GAAI,2CAIhC,uBAAuB,4CA0VzB,CAAC;AAyKF,eAAe,kBAAkB,CAAC"}
@@ -15,7 +15,42 @@ function getMonthName(reportMonth) {
15
15
  const date = new Date(reportMonth);
16
16
  return date.toLocaleDateString("en-US", { month: "long", year: "numeric" });
17
17
  }
18
- export const MonthlyReportEmail = ({ metrics, previousMetrics = null, websiteUrl = "https://tracked.gg", }) => {
18
+ const defaultMetrics = {
19
+ accountId: 1,
20
+ email: "user@example.com",
21
+ reportMonth: "2025-11-01",
22
+ avgStepCount: 8547,
23
+ avgBodyweight: 175.3,
24
+ bodyweightChange: -2.1,
25
+ avgSessionsPerWeek: 4.2,
26
+ totalSetsTracked: 432,
27
+ totalSessionsTracked: 18,
28
+ topMuscleGroups: [
29
+ { muscleGroupId: "1", name: "Chest", sets: 89 },
30
+ { muscleGroupId: "2", name: "Back", sets: 76 },
31
+ { muscleGroupId: "3", name: "Legs", sets: 65 },
32
+ { muscleGroupId: "4", name: "Shoulders", sets: 54 },
33
+ { muscleGroupId: "5", name: "Arms", sets: 43 },
34
+ ],
35
+ avgReadinessEnergy: 7.8,
36
+ avgReadinessMood: 8.2,
37
+ avgReadinessStress: 4.3,
38
+ avgReadinessSoreness: 5.6,
39
+ avgReadinessSleep: 7.1,
40
+ avgSessionSatisfaction: 8.4,
41
+ avgSessionProgress: 7.9,
42
+ avgSessionMotivation: 8.1,
43
+ avgSessionEnjoyment: 8.7,
44
+ };
45
+ const defaultPreviousMetrics = {
46
+ avgStepCount: 7892,
47
+ avgBodyweight: 177.4,
48
+ bodyweightChange: 0.5,
49
+ avgSessionsPerWeek: 3.8,
50
+ totalSetsTracked: 389,
51
+ totalSessionsTracked: 16,
52
+ };
53
+ export const MonthlyReportEmail = ({ metrics = defaultMetrics, previousMetrics = defaultPreviousMetrics, websiteUrl = "https://tracked.gg", }) => {
19
54
  const monthName = getMonthName(metrics.reportMonth);
20
55
  const getChangeIndicator = (current, previous) => {
21
56
  if (current === null || previous === null || !previousMetrics)
@@ -34,168 +69,153 @@ export const MonthlyReportEmail = ({ metrics, previousMetrics = null, websiteUrl
34
69
  metrics.avgReadinessMood ||
35
70
  metrics.avgSessionSatisfaction ||
36
71
  metrics.avgSessionProgress;
37
- return (_jsxs(Html, { children: [_jsxs(Head, { children: [_jsx("meta", { name: "color-scheme", content: "light only" }), _jsx("meta", { name: "supported-color-schemes", content: "light only" })] }), _jsxs(Preview, { children: ["Your ", monthName, " Training Report - Your monthly fitness journey at a glance"] }), _jsx(Body, { style: main, children: _jsx(Container, { style: container, children: _jsxs(Section, { style: box, children: [_jsxs(Row, { style: { marginBottom: "8px" }, children: [_jsx(Column, { style: { width: "auto", verticalAlign: "middle" }, children: _jsx(Img, { src: `${baseUrl}`, width: "28", height: "28", alt: "Tracked" }) }), _jsx(Column, { style: {
38
- width: "auto",
39
- verticalAlign: "middle",
40
- paddingLeft: "4px",
41
- }, children: _jsx(Text, { style: logo, children: "TRACKED" }) })] }), _jsxs(Section, { style: headerSection, children: [_jsxs(Text, { style: headerTitle, children: ["Your ", monthName, " Training Report"] }), _jsx(Text, { style: headerSubtitle, children: "Your monthly fitness journey at a glance" })] }), _jsx(Hr, { style: hr }), _jsxs(Section, { style: sectionContainer, children: [_jsx(Text, { style: sectionHeading, children: "\uD83D\uDCCA Activity Overview" }), _jsxs(Section, { style: metricBox, children: [_jsx(Text, { style: metricLabel, children: "Average Daily Steps" }), _jsxs(Row, { children: [_jsx(Column, { children: _jsx(Text, { style: metricValue, children: formatNumber(metrics.avgStepCount) }) }), getChangeIndicator(metrics.avgStepCount, previousMetrics?.avgStepCount || null)] })] })] }), hasBodyweightData && (_jsxs(_Fragment, { children: [_jsx(Hr, { style: hr }), _jsxs(Section, { style: sectionContainer, children: [_jsx(Text, { style: sectionHeading, children: "\u2696\uFE0F Bodyweight Trends" }), _jsxs(Row, { children: [_jsx(Column, { style: { width: "48%" }, children: _jsxs(Section, { style: metricBox, children: [_jsx(Text, { style: metricLabel, children: "Average Bodyweight" }), _jsxs(Row, { children: [_jsx(Column, { children: _jsxs(Text, { style: metricValueSmall, children: [formatDecimal(metrics.avgBodyweight, 1), " lbs"] }) }), getChangeIndicator(metrics.avgBodyweight, previousMetrics?.avgBodyweight || null)] })] }) }), _jsx(Column, { style: { width: "4%" } }), _jsx(Column, { style: { width: "48%" }, children: _jsxs(Section, { style: metricBox, children: [_jsx(Text, { style: metricLabel, children: "Monthly Change" }), _jsx(Text, { style: metricValueSmall, children: metrics.bodyweightChange !== null
72
+ return (_jsxs(Html, { children: [_jsxs(Head, { children: [_jsx("meta", { name: "color-scheme", content: "light only" }), _jsx("meta", { name: "supported-color-schemes", content: "light only" })] }), _jsxs(Preview, { children: ["Your ", monthName, " Training Report - Your monthly fitness journey at a glance"] }), _jsx(Body, { style: main, children: _jsx(Container, { style: container, children: _jsxs(Section, { style: box, children: [_jsx("table", { style: { marginBottom: "8px" }, children: _jsxs("tr", { children: [_jsx("td", { style: { verticalAlign: "middle", paddingRight: "8px" }, children: _jsx(Img, { src: `${baseUrl}`, width: "28", height: "28", alt: "Tracked" }) }), _jsx("td", { style: { verticalAlign: "middle" }, children: _jsx(Text, { style: logo, children: "TRACKED" }) })] }) }), _jsx(Section, { style: headerSection, children: _jsxs(Text, { style: headerTitle, children: ["Your ", monthName, " Training Report"] }) }), _jsx(Hr, { style: hr }), _jsxs(Section, { style: sectionContainer, children: [_jsx(Text, { style: sectionHeading, children: "Activity Overview" }), _jsxs(Section, { style: metricBox, children: [_jsx(Text, { style: metricLabel, children: "Average Daily Steps" }), _jsx("table", { children: _jsxs("tr", { children: [_jsx("td", { style: { verticalAlign: "middle" }, children: _jsx(Text, { style: metricValue, children: formatNumber(metrics.avgStepCount) }) }), _jsx("td", { style: { verticalAlign: "middle", paddingLeft: "8px" }, children: getChangeIndicator(metrics.avgStepCount, previousMetrics?.avgStepCount || null) })] }) })] })] }), hasBodyweightData && (_jsxs(_Fragment, { children: [_jsx(Hr, { style: hr }), _jsxs(Section, { style: sectionContainer, children: [_jsx(Text, { style: sectionHeading, children: "Bodyweight Trends" }), _jsxs(Row, { children: [_jsx(Column, { style: { width: "48%" }, children: _jsxs(Section, { style: metricBox, children: [_jsx(Text, { style: metricLabel, children: "Average Bodyweight" }), _jsx("table", { children: _jsxs("tr", { children: [_jsx("td", { style: { verticalAlign: "middle" }, children: _jsxs(Text, { style: metricValueSmall, children: [formatDecimal(metrics.avgBodyweight, 1), " lbs"] }) }), _jsx("td", { style: { verticalAlign: "middle", paddingLeft: "8px" }, children: getChangeIndicator(metrics.avgBodyweight, previousMetrics?.avgBodyweight || null) })] }) })] }) }), _jsx(Column, { style: { width: "4%" } }), _jsx(Column, { style: { width: "48%" }, children: _jsxs(Section, { style: metricBox, children: [_jsx(Text, { style: metricLabel, children: "Monthly Change" }), _jsx(Text, { style: metricValueSmall, children: metrics.bodyweightChange !== null
42
73
  ? (metrics.bodyweightChange >= 0 ? "+" : "") +
43
74
  formatDecimal(metrics.bodyweightChange, 1) +
44
75
  " lbs"
45
- : "N/A" })] }) })] })] })] })), _jsx(Hr, { style: hr }), _jsxs(Section, { style: sectionContainer, children: [_jsx(Text, { style: sectionHeading, children: "\uD83D\uDCAA Training Summary" }), _jsxs(Row, { children: [_jsx(Column, { style: { width: "48%" }, children: _jsxs(Section, { style: metricBox, children: [_jsx(Text, { style: metricLabel, children: "Sessions Per Week" }), _jsxs(Row, { children: [_jsx(Column, { children: _jsx(Text, { style: metricValueSmall, children: formatDecimal(metrics.avgSessionsPerWeek, 1) }) }), getChangeIndicator(metrics.avgSessionsPerWeek, previousMetrics?.avgSessionsPerWeek || null)] })] }) }), _jsx(Column, { style: { width: "4%" } }), _jsx(Column, { style: { width: "48%" }, children: _jsxs(Section, { style: metricBox, children: [_jsx(Text, { style: metricLabel, children: "Total Sessions" }), _jsxs(Row, { children: [_jsx(Column, { children: _jsx(Text, { style: metricValueSmall, children: formatNumber(metrics.totalSessionsTracked) }) }), getChangeIndicator(metrics.totalSessionsTracked, previousMetrics?.totalSessionsTracked || null)] })] }) })] }), _jsxs(Section, { style: { ...metricBox, marginTop: "10px" }, children: [_jsx(Text, { style: metricLabel, children: "Total Sets Tracked" }), _jsxs(Row, { children: [_jsx(Column, { children: _jsx(Text, { style: metricValue, children: formatNumber(metrics.totalSetsTracked) }) }), getChangeIndicator(metrics.totalSetsTracked, previousMetrics?.totalSetsTracked || null)] })] })] }), metrics.topMuscleGroups && metrics.topMuscleGroups.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Hr, { style: hr }), _jsxs(Section, { style: sectionContainer, children: [_jsx(Text, { style: sectionHeading, children: "\uD83C\uDFAF Top 5 Prioritized Muscle Groups" }), _jsx(Section, { style: listBox, children: metrics.topMuscleGroups.map((mg, idx) => (_jsxs(Row, { style: {
76
+ : "N/A" })] }) })] })] })] })), _jsx(Hr, { style: hr }), _jsxs(Section, { style: sectionContainer, children: [_jsx(Text, { style: sectionHeading, children: "Training Summary" }), _jsxs(Row, { children: [_jsx(Column, { style: { width: "48%" }, children: _jsxs(Section, { style: metricBox, children: [_jsx(Text, { style: metricLabel, children: "Sessions Per Week" }), _jsx("table", { children: _jsxs("tr", { children: [_jsx("td", { style: { verticalAlign: "middle" }, children: _jsx(Text, { style: metricValueSmall, children: formatDecimal(metrics.avgSessionsPerWeek, 1) }) }), _jsx("td", { style: { verticalAlign: "middle", paddingLeft: "8px" }, children: getChangeIndicator(metrics.avgSessionsPerWeek, previousMetrics?.avgSessionsPerWeek || null) })] }) })] }) }), _jsx(Column, { style: { width: "4%" } }), _jsx(Column, { style: { width: "48%" }, children: _jsxs(Section, { style: metricBox, children: [_jsx(Text, { style: metricLabel, children: "Total Sessions" }), _jsx("table", { children: _jsxs("tr", { children: [_jsx("td", { style: { verticalAlign: "middle" }, children: _jsx(Text, { style: metricValueSmall, children: formatNumber(metrics.totalSessionsTracked) }) }), _jsx("td", { style: { verticalAlign: "middle", paddingLeft: "8px" }, children: getChangeIndicator(metrics.totalSessionsTracked, previousMetrics?.totalSessionsTracked || null) })] }) })] }) })] }), _jsxs(Section, { style: { ...metricBox, marginTop: "10px" }, children: [_jsx(Text, { style: metricLabel, children: "Total Sets Tracked" }), _jsx("table", { children: _jsxs("tr", { children: [_jsx("td", { style: { verticalAlign: "middle" }, children: _jsx(Text, { style: metricValue, children: formatNumber(metrics.totalSetsTracked) }) }), _jsx("td", { style: { verticalAlign: "middle", paddingLeft: "8px" }, children: getChangeIndicator(metrics.totalSetsTracked, previousMetrics?.totalSetsTracked || null) })] }) })] })] }), metrics.topMuscleGroups && metrics.topMuscleGroups.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Hr, { style: hr }), _jsxs(Section, { style: sectionContainer, children: [_jsx(Text, { style: sectionHeading, children: "Top 5 Prioritized Muscle Groups" }), _jsx(Section, { style: listBox, children: metrics.topMuscleGroups.map((mg, idx) => (_jsxs(Row, { style: {
46
77
  ...listItem,
47
78
  borderBottom: idx < metrics.topMuscleGroups.length - 1
48
- ? "1px solid #e5e7eb"
79
+ ? "1px solid #0f172a"
49
80
  : "none",
50
- }, children: [_jsx(Column, { children: _jsxs(Text, { style: listItemName, children: [idx + 1, ". ", mg.name] }) }), _jsx(Column, { style: { textAlign: "right" }, children: _jsxs(Text, { style: listItemValue, children: [formatNumber(mg.sets), " sets"] }) })] }, mg.muscleGroupId))) })] })] })), hasSessionInsights && (_jsxs(_Fragment, { children: [_jsx(Hr, { style: hr }), _jsxs(Section, { style: sectionContainer, children: [_jsx(Text, { style: sectionHeading, children: "\uD83D\uDCC8 Session Insights" }), _jsxs(Section, { style: listBox, children: [metrics.avgReadinessEnergy && (_jsxs(Row, { style: insightRow, children: [_jsx(Column, { children: _jsx(Text, { style: insightLabel, children: "Avg Readiness Energy" }) }), _jsx(Column, { style: { textAlign: "right" }, children: _jsxs(Text, { style: insightValue, children: [formatDecimal(metrics.avgReadinessEnergy), "/10"] }) })] })), metrics.avgReadinessMood && (_jsxs(Row, { style: insightRow, children: [_jsx(Column, { children: _jsx(Text, { style: insightLabel, children: "Avg Readiness Mood" }) }), _jsx(Column, { style: { textAlign: "right" }, children: _jsxs(Text, { style: insightValue, children: [formatDecimal(metrics.avgReadinessMood), "/10"] }) })] })), metrics.avgSessionSatisfaction && (_jsxs(Row, { style: insightRow, children: [_jsx(Column, { children: _jsx(Text, { style: insightLabel, children: "Avg Session Satisfaction" }) }), _jsx(Column, { style: { textAlign: "right" }, children: _jsxs(Text, { style: insightValue, children: [formatDecimal(metrics.avgSessionSatisfaction), "/10"] }) })] })), metrics.avgSessionProgress && (_jsxs(Row, { style: insightRow, children: [_jsx(Column, { children: _jsx(Text, { style: insightLabel, children: "Avg Session Progress" }) }), _jsx(Column, { style: { textAlign: "right" }, children: _jsxs(Text, { style: insightValue, children: [formatDecimal(metrics.avgSessionProgress), "/10"] }) })] }))] })] })] })), _jsx(Hr, { style: hr }), _jsxs(Section, { style: footerMessageBox, children: [_jsx(Text, { style: footerMessage, children: "Keep up the great work! Every rep, every session, every step counts towards your goals." }), _jsx(Text, { style: footerMessageSmall, children: "You can manage your email preferences in the Tracked app settings." })] }), _jsx(Hr, { style: hr }), _jsxs(Text, { style: footer, children: ["Copyright \u00A9 ", new Date().getFullYear(), " Tracked Training Platform Inc. ", _jsx("br", {}), " 9101 Horne Street, Vancouver, BC"] }), _jsxs(Container, { children: [_jsx(Link, { href: `${websiteUrl}/terms`, style: { ...footer, paddingRight: 10 }, children: "Terms" }), _jsx(Link, { style: { ...footer, paddingRight: 10 }, children: " | " }), _jsx(Link, { href: `${websiteUrl}/privacy`, style: { ...footer, paddingRight: 10 }, children: "Privacy" }), _jsx(Link, { style: { ...footer, paddingRight: 10 }, children: " | " }), _jsx(Link, { href: `${websiteUrl}/support`, style: { ...footer, paddingRight: 10 }, children: "Support" })] }), _jsx(Text, { style: footer, children: "This is a service notification by the Tracked Training Platform." })] }) }) })] }));
81
+ }, children: [_jsx(Column, { children: _jsxs(Text, { style: listItemName, children: [idx + 1, ". ", mg.name] }) }), _jsx(Column, { style: { textAlign: "right" }, children: _jsxs(Text, { style: listItemValue, children: [formatNumber(mg.sets), " sets"] }) })] }, mg.muscleGroupId))) })] })] })), hasSessionInsights && (_jsxs(_Fragment, { children: [_jsx(Hr, { style: hr }), _jsxs(Section, { style: sectionContainer, children: [_jsx(Text, { style: sectionHeading, children: "Session Insights" }), _jsxs(Section, { style: listBox, children: [metrics.avgReadinessEnergy && (_jsxs(Row, { style: insightRow, children: [_jsx(Column, { children: _jsx(Text, { style: insightLabel, children: "Avg Readiness Energy" }) }), _jsx(Column, { style: { textAlign: "right" }, children: _jsxs(Text, { style: insightValue, children: [formatDecimal(metrics.avgReadinessEnergy), "/10"] }) })] })), metrics.avgReadinessMood && (_jsxs(Row, { style: insightRow, children: [_jsx(Column, { children: _jsx(Text, { style: insightLabel, children: "Avg Readiness Mood" }) }), _jsx(Column, { style: { textAlign: "right" }, children: _jsxs(Text, { style: insightValue, children: [formatDecimal(metrics.avgReadinessMood), "/10"] }) })] })), metrics.avgSessionSatisfaction && (_jsxs(Row, { style: insightRow, children: [_jsx(Column, { children: _jsx(Text, { style: insightLabel, children: "Avg Session Satisfaction" }) }), _jsx(Column, { style: { textAlign: "right" }, children: _jsxs(Text, { style: insightValue, children: [formatDecimal(metrics.avgSessionSatisfaction), "/10"] }) })] })), metrics.avgSessionProgress && (_jsxs(Row, { style: insightRow, children: [_jsx(Column, { children: _jsx(Text, { style: insightLabel, children: "Avg Session Progress" }) }), _jsx(Column, { style: { textAlign: "right" }, children: _jsxs(Text, { style: insightValue, children: [formatDecimal(metrics.avgSessionProgress), "/10"] }) })] }))] })] })] })), _jsx(Hr, { style: hr }), _jsx(Text, { style: footerMessageSmall, children: "You can manage your email preferences in the Tracked app settings." }), _jsx(Hr, { style: hr }), _jsxs(Text, { style: footer, children: ["Copyright \u00A9 ", new Date().getFullYear(), " Tracked Training Platform Inc. ", _jsx("br", {}), " 9101 Horne Street, Vancouver, BC"] }), _jsxs(Section, { style: { textAlign: "center" }, children: [_jsx(Link, { href: `${websiteUrl}/terms`, style: { ...footer, paddingRight: 10 }, children: "Terms" }), _jsx(Link, { style: { ...footer, paddingRight: 10 }, children: " | " }), _jsx(Link, { href: `${websiteUrl}/privacy`, style: { ...footer, paddingRight: 10 }, children: "Privacy" }), _jsx(Link, { style: { ...footer, paddingRight: 10 }, children: " | " }), _jsx(Link, { href: `${websiteUrl}/support`, style: footer, children: "Support" })] }), _jsx(Text, { style: footer, children: "This is a service notification by the Tracked Training Platform." })] }) }) })] }));
51
82
  };
52
83
  // Styles
53
84
  const main = {
54
- backgroundColor: "#f3f4f6",
85
+ backgroundColor: "#020617", // slate-950
55
86
  fontFamily: "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif",
56
87
  };
57
88
  const container = {
89
+ backgroundColor: "#020617", // slate-950
58
90
  margin: "0 auto",
59
91
  padding: "20px 0 48px",
60
- maxWidth: "600px",
92
+ marginBottom: "64px",
93
+ borderRadius: "8px",
61
94
  };
62
95
  const box = {
63
- backgroundColor: "#ffffff",
64
- borderRadius: "8px",
65
- padding: "0 24px 24px 24px",
96
+ padding: "0 12px 24px 12px",
66
97
  };
67
98
  const logo = {
68
99
  fontSize: "28px",
69
100
  fontWeight: "900",
70
101
  fontFamily: "Raleway, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
71
- color: "#020617",
102
+ color: "#ffffff",
72
103
  margin: "0",
73
104
  lineHeight: "32px",
74
105
  letterSpacing: "0.5px",
75
106
  };
76
107
  const headerSection = {
77
- background: "linear-gradient(135deg, #667eea 0%, #764ba2 100%)",
78
- padding: "40px 20px",
108
+ backgroundColor: "#4ade80", // green-400
109
+ padding: "10px 20px",
79
110
  textAlign: "center",
80
111
  borderRadius: "8px",
81
112
  margin: "20px 0",
82
113
  };
83
114
  const headerTitle = {
84
- color: "#ffffff",
115
+ color: "#020617", // slate-950
85
116
  margin: "0",
86
- fontSize: "28px",
117
+ fontSize: "20px",
87
118
  fontWeight: "700",
88
119
  };
89
- const headerSubtitle = {
90
- color: "#e9d5ff",
91
- margin: "10px 0 0 0",
92
- fontSize: "16px",
93
- };
94
120
  const hr = {
95
- borderColor: "#e5e7eb",
96
- margin: "20px 0",
121
+ borderColor: "#0f172a", // slate-900
122
+ margin: "24px 0",
123
+ borderWidth: "1px",
97
124
  };
98
125
  const sectionContainer = {
99
126
  marginBottom: "20px",
100
127
  };
101
128
  const sectionHeading = {
102
- color: "#1f2937",
129
+ color: "#ffffff", // white
103
130
  fontSize: "20px",
104
- margin: "0 0 20px 0",
131
+ margin: "0 0 10px 0",
105
132
  fontWeight: "600",
133
+ textTransform: "uppercase",
134
+ letterSpacing: "1px",
106
135
  };
107
136
  const metricBox = {
108
- backgroundColor: "#f9fafb",
109
- padding: "15px",
137
+ backgroundColor: "rgba(15, 23, 42, 0.5)", // slate-900/50
138
+ padding: "5px 15px 15px 15px",
110
139
  borderRadius: "8px",
140
+ border: "1px solid #1e293b", // slate-800
111
141
  };
112
142
  const metricLabel = {
113
- color: "#6b7280",
143
+ color: "#94a3b8", // slate-400
114
144
  fontSize: "14px",
115
- marginBottom: "5px",
145
+ marginBottom: "2px",
116
146
  };
117
147
  const metricValue = {
118
- color: "#1f2937",
148
+ color: "#ffffff",
119
149
  fontSize: "24px",
120
150
  fontWeight: "700",
121
151
  margin: "0",
122
152
  };
123
153
  const metricValueSmall = {
124
- color: "#1f2937",
154
+ color: "#ffffff",
125
155
  fontSize: "20px",
126
156
  fontWeight: "700",
127
157
  margin: "0",
128
158
  };
129
159
  const changeIndicatorPositive = {
130
- color: "#10b981",
160
+ color: "#4ade80", // green-400
131
161
  fontSize: "14px",
132
- marginLeft: "8px",
133
- display: "inline",
162
+ margin: "0",
163
+ verticalAlign: "middle",
134
164
  };
135
165
  const changeIndicatorNegative = {
136
- color: "#ef4444",
166
+ color: "#f87171", // red-400
137
167
  fontSize: "14px",
138
- marginLeft: "8px",
139
- display: "inline",
168
+ margin: "0",
169
+ verticalAlign: "middle",
140
170
  };
141
171
  const changeIndicatorNeutral = {
142
172
  color: "#6b7280",
143
173
  fontSize: "14px",
144
- marginLeft: "8px",
145
- display: "inline",
174
+ margin: "0",
175
+ verticalAlign: "middle",
146
176
  };
147
177
  const listBox = {
148
- backgroundColor: "#f9fafb",
178
+ backgroundColor: "rgba(15, 23, 42, 0.5)", // slate-900/50
149
179
  borderRadius: "8px",
150
180
  overflow: "hidden",
181
+ border: "1px solid #1e293b", // slate-800
151
182
  };
152
183
  const listItem = {
153
184
  padding: "12px",
154
185
  };
155
186
  const listItemName = {
156
- color: "#1f2937",
187
+ color: "#ffffff",
157
188
  fontSize: "16px",
158
189
  fontWeight: "600",
159
190
  margin: "0",
160
191
  };
161
192
  const listItemValue = {
162
- color: "#6b7280",
193
+ color: "#4ade80", // green-400
163
194
  fontSize: "16px",
195
+ fontWeight: "600",
164
196
  margin: "0",
165
197
  };
166
198
  const insightRow = {
167
199
  padding: "10px",
168
200
  };
169
201
  const insightLabel = {
170
- color: "#6b7280",
202
+ color: "#94a3b8", // slate-400
171
203
  fontSize: "14px",
172
204
  margin: "0",
173
205
  };
174
206
  const insightValue = {
175
- color: "#1f2937",
207
+ color: "#4ade80", // green-400
176
208
  fontSize: "16px",
177
209
  fontWeight: "600",
178
210
  margin: "0",
179
211
  };
180
- const footerMessageBox = {
181
- marginTop: "20px",
182
- padding: "20px",
183
- backgroundColor: "#f9fafb",
184
- borderRadius: "8px",
185
- textAlign: "center",
186
- };
187
- const footerMessage = {
188
- color: "#6b7280",
189
- fontSize: "14px",
190
- margin: "0",
191
- };
192
212
  const footerMessageSmall = {
193
- color: "#6b7280",
213
+ color: "#94a3b8", // slate-400
194
214
  fontSize: "12px",
195
215
  margin: "15px 0 0 0",
196
216
  };
197
217
  const footer = {
198
- color: "#9ca3af",
218
+ color: "#94a3b8", // slate-400
199
219
  fontSize: "12px",
200
220
  lineHeight: "16px",
201
221
  textAlign: "center",
@@ -1 +1 @@
1
- {"version":3,"file":"monthly-report.js","sourceRoot":"","sources":["../../src/emails/monthly-report.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"monthly-report.js","sourceRoot":"","sources":["../../src/emails/monthly-report.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tracked/emails",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "description": "Email templates for Tracked Training Platform",
5
5
  "author": "Tracked Training Platform Inc.",
6
6
  "license": "MIT",
@@ -15,22 +15,27 @@ import {
15
15
  } from "@react-email/components";
16
16
 
17
17
  interface FeatureDiscoveryEmailProps {
18
- userName: string;
19
- featureName: string;
20
- featureDescription: string;
21
- featureBenefits: string[];
22
- featureUrl: string;
23
- websiteUrl: string;
18
+ userName?: string;
19
+ featureName?: string;
20
+ featureDescription?: string;
21
+ featureBenefits?: string[];
22
+ featureUrl?: string;
23
+ websiteUrl?: string;
24
24
  }
25
25
 
26
26
  const baseUrl = "https://tracked.gg/android-chrome-192x192.png";
27
27
 
28
28
  export const FeatureDiscoveryEmail = ({
29
- userName,
30
- featureName,
31
- featureDescription,
32
- featureBenefits,
33
- featureUrl,
29
+ userName = "Alex",
30
+ featureName = "Progress Photos",
31
+ featureDescription = "Track your transformation visually with our new Progress Photos feature. Take photos, compare side-by-side, and see your hard work paying off over time.",
32
+ featureBenefits = [
33
+ "Compare photos side-by-side to see your progress",
34
+ "Automatic privacy controls - your photos are only visible to you",
35
+ "Set reminders to take consistent progress photos",
36
+ "Track multiple angles and body positions",
37
+ ],
38
+ featureUrl = "https://tracked.gg/progress-photos",
34
39
  websiteUrl = "https://tracked.gg",
35
40
  }: FeatureDiscoveryEmailProps) => {
36
41
  return (
@@ -56,7 +56,7 @@ interface PreviousMetrics {
56
56
  }
57
57
 
58
58
  interface MonthlyReportEmailProps {
59
- metrics: MonthlyMetrics;
59
+ metrics?: MonthlyMetrics;
60
60
  previousMetrics?: PreviousMetrics | null;
61
61
  websiteUrl?: string;
62
62
  }
@@ -78,9 +78,46 @@ function getMonthName(reportMonth: string): string {
78
78
  return date.toLocaleDateString("en-US", { month: "long", year: "numeric" });
79
79
  }
80
80
 
81
+ const defaultMetrics: MonthlyMetrics = {
82
+ accountId: 1,
83
+ email: "user@example.com",
84
+ reportMonth: "2025-11-01",
85
+ avgStepCount: 8547,
86
+ avgBodyweight: 175.3,
87
+ bodyweightChange: -2.1,
88
+ avgSessionsPerWeek: 4.2,
89
+ totalSetsTracked: 432,
90
+ totalSessionsTracked: 18,
91
+ topMuscleGroups: [
92
+ { muscleGroupId: "1", name: "Chest", sets: 89 },
93
+ { muscleGroupId: "2", name: "Back", sets: 76 },
94
+ { muscleGroupId: "3", name: "Legs", sets: 65 },
95
+ { muscleGroupId: "4", name: "Shoulders", sets: 54 },
96
+ { muscleGroupId: "5", name: "Arms", sets: 43 },
97
+ ],
98
+ avgReadinessEnergy: 7.8,
99
+ avgReadinessMood: 8.2,
100
+ avgReadinessStress: 4.3,
101
+ avgReadinessSoreness: 5.6,
102
+ avgReadinessSleep: 7.1,
103
+ avgSessionSatisfaction: 8.4,
104
+ avgSessionProgress: 7.9,
105
+ avgSessionMotivation: 8.1,
106
+ avgSessionEnjoyment: 8.7,
107
+ };
108
+
109
+ const defaultPreviousMetrics: PreviousMetrics = {
110
+ avgStepCount: 7892,
111
+ avgBodyweight: 177.4,
112
+ bodyweightChange: 0.5,
113
+ avgSessionsPerWeek: 3.8,
114
+ totalSetsTracked: 389,
115
+ totalSessionsTracked: 16,
116
+ };
117
+
81
118
  export const MonthlyReportEmail = ({
82
- metrics,
83
- previousMetrics = null,
119
+ metrics = defaultMetrics,
120
+ previousMetrics = defaultPreviousMetrics,
84
121
  websiteUrl = "https://tracked.gg",
85
122
  }: MonthlyReportEmailProps) => {
86
123
  const monthName = getMonthName(metrics.reportMonth);
@@ -126,47 +163,44 @@ export const MonthlyReportEmail = ({
126
163
  <Container style={container}>
127
164
  <Section style={box}>
128
165
  {/* Header */}
129
- <Row style={{ marginBottom: "8px" }}>
130
- <Column style={{ width: "auto", verticalAlign: "middle" }}>
131
- <Img src={`${baseUrl}`} width="28" height="28" alt="Tracked" />
132
- </Column>
133
- <Column
134
- style={{
135
- width: "auto",
136
- verticalAlign: "middle",
137
- paddingLeft: "4px",
138
- }}
139
- >
140
- <Text style={logo}>TRACKED</Text>
141
- </Column>
142
- </Row>
143
-
144
- {/* Purple Gradient Section */}
166
+ <table style={{ marginBottom: "8px" }}>
167
+ <tr>
168
+ <td style={{ verticalAlign: "middle", paddingRight: "8px" }}>
169
+ <Img src={`${baseUrl}`} width="28" height="28" alt="Tracked" />
170
+ </td>
171
+ <td style={{ verticalAlign: "middle" }}>
172
+ <Text style={logo}>TRACKED</Text>
173
+ </td>
174
+ </tr>
175
+ </table>
176
+
177
+ {/* Green Section */}
145
178
  <Section style={headerSection}>
146
179
  <Text style={headerTitle}>Your {monthName} Training Report</Text>
147
- <Text style={headerSubtitle}>
148
- Your monthly fitness journey at a glance
149
- </Text>
150
180
  </Section>
151
181
 
152
182
  <Hr style={hr} />
153
183
 
154
184
  {/* Activity Overview */}
155
185
  <Section style={sectionContainer}>
156
- <Text style={sectionHeading}>📊 Activity Overview</Text>
186
+ <Text style={sectionHeading}>Activity Overview</Text>
157
187
  <Section style={metricBox}>
158
188
  <Text style={metricLabel}>Average Daily Steps</Text>
159
- <Row>
160
- <Column>
161
- <Text style={metricValue}>
162
- {formatNumber(metrics.avgStepCount)}
163
- </Text>
164
- </Column>
165
- {getChangeIndicator(
166
- metrics.avgStepCount,
167
- previousMetrics?.avgStepCount || null,
168
- )}
169
- </Row>
189
+ <table>
190
+ <tr>
191
+ <td style={{ verticalAlign: "middle" }}>
192
+ <Text style={metricValue}>
193
+ {formatNumber(metrics.avgStepCount)}
194
+ </Text>
195
+ </td>
196
+ <td style={{ verticalAlign: "middle", paddingLeft: "8px" }}>
197
+ {getChangeIndicator(
198
+ metrics.avgStepCount,
199
+ previousMetrics?.avgStepCount || null,
200
+ )}
201
+ </td>
202
+ </tr>
203
+ </table>
170
204
  </Section>
171
205
  </Section>
172
206
 
@@ -175,22 +209,26 @@ export const MonthlyReportEmail = ({
175
209
  <>
176
210
  <Hr style={hr} />
177
211
  <Section style={sectionContainer}>
178
- <Text style={sectionHeading}>⚖️ Bodyweight Trends</Text>
212
+ <Text style={sectionHeading}>Bodyweight Trends</Text>
179
213
  <Row>
180
214
  <Column style={{ width: "48%" }}>
181
215
  <Section style={metricBox}>
182
216
  <Text style={metricLabel}>Average Bodyweight</Text>
183
- <Row>
184
- <Column>
185
- <Text style={metricValueSmall}>
186
- {formatDecimal(metrics.avgBodyweight, 1)} lbs
187
- </Text>
188
- </Column>
189
- {getChangeIndicator(
190
- metrics.avgBodyweight,
191
- previousMetrics?.avgBodyweight || null,
192
- )}
193
- </Row>
217
+ <table>
218
+ <tr>
219
+ <td style={{ verticalAlign: "middle" }}>
220
+ <Text style={metricValueSmall}>
221
+ {formatDecimal(metrics.avgBodyweight, 1)} lbs
222
+ </Text>
223
+ </td>
224
+ <td style={{ verticalAlign: "middle", paddingLeft: "8px" }}>
225
+ {getChangeIndicator(
226
+ metrics.avgBodyweight,
227
+ previousMetrics?.avgBodyweight || null,
228
+ )}
229
+ </td>
230
+ </tr>
231
+ </table>
194
232
  </Section>
195
233
  </Column>
196
234
  <Column style={{ width: "4%" }} />
@@ -214,55 +252,67 @@ export const MonthlyReportEmail = ({
214
252
  {/* Training Summary */}
215
253
  <Hr style={hr} />
216
254
  <Section style={sectionContainer}>
217
- <Text style={sectionHeading}>💪 Training Summary</Text>
255
+ <Text style={sectionHeading}>Training Summary</Text>
218
256
  <Row>
219
257
  <Column style={{ width: "48%" }}>
220
258
  <Section style={metricBox}>
221
259
  <Text style={metricLabel}>Sessions Per Week</Text>
222
- <Row>
223
- <Column>
224
- <Text style={metricValueSmall}>
225
- {formatDecimal(metrics.avgSessionsPerWeek, 1)}
226
- </Text>
227
- </Column>
228
- {getChangeIndicator(
229
- metrics.avgSessionsPerWeek,
230
- previousMetrics?.avgSessionsPerWeek || null,
231
- )}
232
- </Row>
260
+ <table>
261
+ <tr>
262
+ <td style={{ verticalAlign: "middle" }}>
263
+ <Text style={metricValueSmall}>
264
+ {formatDecimal(metrics.avgSessionsPerWeek, 1)}
265
+ </Text>
266
+ </td>
267
+ <td style={{ verticalAlign: "middle", paddingLeft: "8px" }}>
268
+ {getChangeIndicator(
269
+ metrics.avgSessionsPerWeek,
270
+ previousMetrics?.avgSessionsPerWeek || null,
271
+ )}
272
+ </td>
273
+ </tr>
274
+ </table>
233
275
  </Section>
234
276
  </Column>
235
277
  <Column style={{ width: "4%" }} />
236
278
  <Column style={{ width: "48%" }}>
237
279
  <Section style={metricBox}>
238
280
  <Text style={metricLabel}>Total Sessions</Text>
239
- <Row>
240
- <Column>
241
- <Text style={metricValueSmall}>
242
- {formatNumber(metrics.totalSessionsTracked)}
243
- </Text>
244
- </Column>
245
- {getChangeIndicator(
246
- metrics.totalSessionsTracked,
247
- previousMetrics?.totalSessionsTracked || null,
248
- )}
249
- </Row>
281
+ <table>
282
+ <tr>
283
+ <td style={{ verticalAlign: "middle" }}>
284
+ <Text style={metricValueSmall}>
285
+ {formatNumber(metrics.totalSessionsTracked)}
286
+ </Text>
287
+ </td>
288
+ <td style={{ verticalAlign: "middle", paddingLeft: "8px" }}>
289
+ {getChangeIndicator(
290
+ metrics.totalSessionsTracked,
291
+ previousMetrics?.totalSessionsTracked || null,
292
+ )}
293
+ </td>
294
+ </tr>
295
+ </table>
250
296
  </Section>
251
297
  </Column>
252
298
  </Row>
253
299
  <Section style={{ ...metricBox, marginTop: "10px" }}>
254
300
  <Text style={metricLabel}>Total Sets Tracked</Text>
255
- <Row>
256
- <Column>
257
- <Text style={metricValue}>
258
- {formatNumber(metrics.totalSetsTracked)}
259
- </Text>
260
- </Column>
261
- {getChangeIndicator(
262
- metrics.totalSetsTracked,
263
- previousMetrics?.totalSetsTracked || null,
264
- )}
265
- </Row>
301
+ <table>
302
+ <tr>
303
+ <td style={{ verticalAlign: "middle" }}>
304
+ <Text style={metricValue}>
305
+ {formatNumber(metrics.totalSetsTracked)}
306
+ </Text>
307
+ </td>
308
+ <td style={{ verticalAlign: "middle", paddingLeft: "8px" }}>
309
+ {getChangeIndicator(
310
+ metrics.totalSetsTracked,
311
+ previousMetrics?.totalSetsTracked || null,
312
+ )}
313
+ </td>
314
+ </tr>
315
+ </table>
266
316
  </Section>
267
317
  </Section>
268
318
 
@@ -272,7 +322,7 @@ export const MonthlyReportEmail = ({
272
322
  <Hr style={hr} />
273
323
  <Section style={sectionContainer}>
274
324
  <Text style={sectionHeading}>
275
- 🎯 Top 5 Prioritized Muscle Groups
325
+ Top 5 Prioritized Muscle Groups
276
326
  </Text>
277
327
  <Section style={listBox}>
278
328
  {metrics.topMuscleGroups.map((mg, idx) => (
@@ -282,7 +332,7 @@ export const MonthlyReportEmail = ({
282
332
  ...listItem,
283
333
  borderBottom:
284
334
  idx < metrics.topMuscleGroups!.length - 1
285
- ? "1px solid #e5e7eb"
335
+ ? "1px solid #0f172a"
286
336
  : "none",
287
337
  }}
288
338
  >
@@ -308,7 +358,7 @@ export const MonthlyReportEmail = ({
308
358
  <>
309
359
  <Hr style={hr} />
310
360
  <Section style={sectionContainer}>
311
- <Text style={sectionHeading}>📈 Session Insights</Text>
361
+ <Text style={sectionHeading}>Session Insights</Text>
312
362
  <Section style={listBox}>
313
363
  {metrics.avgReadinessEnergy && (
314
364
  <Row style={insightRow}>
@@ -371,16 +421,10 @@ export const MonthlyReportEmail = ({
371
421
 
372
422
  {/* Footer Message */}
373
423
  <Hr style={hr} />
374
- <Section style={footerMessageBox}>
375
- <Text style={footerMessage}>
376
- Keep up the great work! Every rep, every session, every step
377
- counts towards your goals.
378
- </Text>
379
- <Text style={footerMessageSmall}>
380
- You can manage your email preferences in the Tracked app
381
- settings.
382
- </Text>
383
- </Section>
424
+ <Text style={footerMessageSmall}>
425
+ You can manage your email preferences in the Tracked app
426
+ settings.
427
+ </Text>
384
428
 
385
429
  <Hr style={hr} />
386
430
 
@@ -390,7 +434,7 @@ export const MonthlyReportEmail = ({
390
434
  Street, Vancouver, BC
391
435
  </Text>
392
436
 
393
- <Container>
437
+ <Section style={{ textAlign: "center" }}>
394
438
  <Link
395
439
  href={`${websiteUrl}/terms`}
396
440
  style={{ ...footer, paddingRight: 10 }}
@@ -407,11 +451,11 @@ export const MonthlyReportEmail = ({
407
451
  <Link style={{ ...footer, paddingRight: 10 }}> | </Link>
408
452
  <Link
409
453
  href={`${websiteUrl}/support`}
410
- style={{ ...footer, paddingRight: 10 }}
454
+ style={footer}
411
455
  >
412
456
  Support
413
457
  </Link>
414
- </Container>
458
+ </Section>
415
459
 
416
460
  <Text style={footer}>
417
461
  This is a service notification by the Tracked Training Platform.
@@ -425,21 +469,21 @@ export const MonthlyReportEmail = ({
425
469
 
426
470
  // Styles
427
471
  const main = {
428
- backgroundColor: "#f3f4f6",
472
+ backgroundColor: "#020617", // slate-950
429
473
  fontFamily:
430
474
  "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif",
431
475
  };
432
476
 
433
477
  const container = {
478
+ backgroundColor: "#020617", // slate-950
434
479
  margin: "0 auto",
435
480
  padding: "20px 0 48px",
436
- maxWidth: "600px",
481
+ marginBottom: "64px",
482
+ borderRadius: "8px",
437
483
  };
438
484
 
439
485
  const box = {
440
- backgroundColor: "#ffffff",
441
- borderRadius: "8px",
442
- padding: "0 24px 24px 24px",
486
+ padding: "0 12px 24px 12px",
443
487
  };
444
488
 
445
489
  const logo = {
@@ -447,36 +491,31 @@ const logo = {
447
491
  fontWeight: "900",
448
492
  fontFamily:
449
493
  "Raleway, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
450
- color: "#020617",
494
+ color: "#ffffff",
451
495
  margin: "0",
452
496
  lineHeight: "32px",
453
497
  letterSpacing: "0.5px",
454
498
  };
455
499
 
456
500
  const headerSection = {
457
- background: "linear-gradient(135deg, #667eea 0%, #764ba2 100%)",
458
- padding: "40px 20px",
501
+ backgroundColor: "#4ade80", // green-400
502
+ padding: "10px 20px",
459
503
  textAlign: "center" as const,
460
504
  borderRadius: "8px",
461
505
  margin: "20px 0",
462
506
  };
463
507
 
464
508
  const headerTitle = {
465
- color: "#ffffff",
509
+ color: "#020617", // slate-950
466
510
  margin: "0",
467
- fontSize: "28px",
511
+ fontSize: "20px",
468
512
  fontWeight: "700",
469
513
  };
470
514
 
471
- const headerSubtitle = {
472
- color: "#e9d5ff",
473
- margin: "10px 0 0 0",
474
- fontSize: "16px",
475
- };
476
-
477
515
  const hr = {
478
- borderColor: "#e5e7eb",
479
- margin: "20px 0",
516
+ borderColor: "#0f172a", // slate-900
517
+ margin: "24px 0",
518
+ borderWidth: "1px",
480
519
  };
481
520
 
482
521
  const sectionContainer = {
@@ -484,63 +523,67 @@ const sectionContainer = {
484
523
  };
485
524
 
486
525
  const sectionHeading = {
487
- color: "#1f2937",
526
+ color: "#ffffff", // white
488
527
  fontSize: "20px",
489
- margin: "0 0 20px 0",
528
+ margin: "0 0 10px 0",
490
529
  fontWeight: "600",
530
+ textTransform: "uppercase" as const,
531
+ letterSpacing: "1px",
491
532
  };
492
533
 
493
534
  const metricBox = {
494
- backgroundColor: "#f9fafb",
495
- padding: "15px",
535
+ backgroundColor: "rgba(15, 23, 42, 0.5)", // slate-900/50
536
+ padding: "5px 15px 15px 15px",
496
537
  borderRadius: "8px",
538
+ border: "1px solid #1e293b", // slate-800
497
539
  };
498
540
 
499
541
  const metricLabel = {
500
- color: "#6b7280",
542
+ color: "#94a3b8", // slate-400
501
543
  fontSize: "14px",
502
- marginBottom: "5px",
544
+ marginBottom: "2px",
503
545
  };
504
546
 
505
547
  const metricValue = {
506
- color: "#1f2937",
548
+ color: "#ffffff",
507
549
  fontSize: "24px",
508
550
  fontWeight: "700",
509
551
  margin: "0",
510
552
  };
511
553
 
512
554
  const metricValueSmall = {
513
- color: "#1f2937",
555
+ color: "#ffffff",
514
556
  fontSize: "20px",
515
557
  fontWeight: "700",
516
558
  margin: "0",
517
559
  };
518
560
 
519
561
  const changeIndicatorPositive = {
520
- color: "#10b981",
562
+ color: "#4ade80", // green-400
521
563
  fontSize: "14px",
522
- marginLeft: "8px",
523
- display: "inline",
564
+ margin: "0",
565
+ verticalAlign: "middle" as const,
524
566
  };
525
567
 
526
568
  const changeIndicatorNegative = {
527
- color: "#ef4444",
569
+ color: "#f87171", // red-400
528
570
  fontSize: "14px",
529
- marginLeft: "8px",
530
- display: "inline",
571
+ margin: "0",
572
+ verticalAlign: "middle" as const,
531
573
  };
532
574
 
533
575
  const changeIndicatorNeutral = {
534
576
  color: "#6b7280",
535
577
  fontSize: "14px",
536
- marginLeft: "8px",
537
- display: "inline",
578
+ margin: "0",
579
+ verticalAlign: "middle" as const,
538
580
  };
539
581
 
540
582
  const listBox = {
541
- backgroundColor: "#f9fafb",
583
+ backgroundColor: "rgba(15, 23, 42, 0.5)", // slate-900/50
542
584
  borderRadius: "8px",
543
585
  overflow: "hidden",
586
+ border: "1px solid #1e293b", // slate-800
544
587
  };
545
588
 
546
589
  const listItem = {
@@ -548,15 +591,16 @@ const listItem = {
548
591
  };
549
592
 
550
593
  const listItemName = {
551
- color: "#1f2937",
594
+ color: "#ffffff",
552
595
  fontSize: "16px",
553
596
  fontWeight: "600",
554
597
  margin: "0",
555
598
  };
556
599
 
557
600
  const listItemValue = {
558
- color: "#6b7280",
601
+ color: "#4ade80", // green-400
559
602
  fontSize: "16px",
603
+ fontWeight: "600",
560
604
  margin: "0",
561
605
  };
562
606
 
@@ -565,40 +609,26 @@ const insightRow = {
565
609
  };
566
610
 
567
611
  const insightLabel = {
568
- color: "#6b7280",
612
+ color: "#94a3b8", // slate-400
569
613
  fontSize: "14px",
570
614
  margin: "0",
571
615
  };
572
616
 
573
617
  const insightValue = {
574
- color: "#1f2937",
618
+ color: "#4ade80", // green-400
575
619
  fontSize: "16px",
576
620
  fontWeight: "600",
577
621
  margin: "0",
578
622
  };
579
623
 
580
- const footerMessageBox = {
581
- marginTop: "20px",
582
- padding: "20px",
583
- backgroundColor: "#f9fafb",
584
- borderRadius: "8px",
585
- textAlign: "center" as const,
586
- };
587
-
588
- const footerMessage = {
589
- color: "#6b7280",
590
- fontSize: "14px",
591
- margin: "0",
592
- };
593
-
594
624
  const footerMessageSmall = {
595
- color: "#6b7280",
625
+ color: "#94a3b8", // slate-400
596
626
  fontSize: "12px",
597
627
  margin: "15px 0 0 0",
598
628
  };
599
629
 
600
630
  const footer = {
601
- color: "#9ca3af",
631
+ color: "#94a3b8", // slate-400
602
632
  fontSize: "12px",
603
633
  lineHeight: "16px",
604
634
  textAlign: "center" as const,