@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.
- package/dist/emails/feature-discovery.d.ts +6 -6
- package/dist/emails/feature-discovery.d.ts.map +1 -1
- package/dist/emails/feature-discovery.js +6 -1
- package/dist/emails/feature-discovery.js.map +1 -1
- package/dist/emails/monthly-report.d.ts +1 -1
- package/dist/emails/monthly-report.d.ts.map +1 -1
- package/dist/emails/monthly-report.js +81 -61
- package/dist/emails/monthly-report.js.map +1 -1
- package/package.json +1 -1
- package/src/emails/feature-discovery.tsx +16 -11
- package/src/emails/monthly-report.tsx +181 -151
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
interface FeatureDiscoveryEmailProps {
|
|
2
|
-
userName
|
|
3
|
-
featureName
|
|
4
|
-
featureDescription
|
|
5
|
-
featureBenefits
|
|
6
|
-
featureUrl
|
|
7
|
-
websiteUrl
|
|
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;
|
|
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
|
|
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":";AACA,OAAO,EACL,IAAI,EACJ,MAAM,EACN,SAAS,EACT,IAAI,EACJ,EAAE,EACF,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,OAAO,EACP,GAAG,EACH,OAAO,EACP,IAAI,GACL,MAAM,yBAAyB,CAAC;AAWjC,MAAM,OAAO,GAAG,+CAA+C,CAAC;AAEhE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EACpC,QAAQ,
|
|
1
|
+
{"version":3,"file":"feature-discovery.js","sourceRoot":"","sources":["../../src/emails/feature-discovery.tsx"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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
|
-
|
|
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: [
|
|
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: "
|
|
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 #
|
|
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: "
|
|
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: "#
|
|
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
|
-
|
|
92
|
+
marginBottom: "64px",
|
|
93
|
+
borderRadius: "8px",
|
|
61
94
|
};
|
|
62
95
|
const box = {
|
|
63
|
-
|
|
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: "#
|
|
102
|
+
color: "#ffffff",
|
|
72
103
|
margin: "0",
|
|
73
104
|
lineHeight: "32px",
|
|
74
105
|
letterSpacing: "0.5px",
|
|
75
106
|
};
|
|
76
107
|
const headerSection = {
|
|
77
|
-
|
|
78
|
-
padding: "
|
|
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: "#
|
|
115
|
+
color: "#020617", // slate-950
|
|
85
116
|
margin: "0",
|
|
86
|
-
fontSize: "
|
|
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: "#
|
|
96
|
-
margin: "
|
|
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: "#
|
|
129
|
+
color: "#ffffff", // white
|
|
103
130
|
fontSize: "20px",
|
|
104
|
-
margin: "0 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: "
|
|
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: "#
|
|
143
|
+
color: "#94a3b8", // slate-400
|
|
114
144
|
fontSize: "14px",
|
|
115
|
-
marginBottom: "
|
|
145
|
+
marginBottom: "2px",
|
|
116
146
|
};
|
|
117
147
|
const metricValue = {
|
|
118
|
-
color: "#
|
|
148
|
+
color: "#ffffff",
|
|
119
149
|
fontSize: "24px",
|
|
120
150
|
fontWeight: "700",
|
|
121
151
|
margin: "0",
|
|
122
152
|
};
|
|
123
153
|
const metricValueSmall = {
|
|
124
|
-
color: "#
|
|
154
|
+
color: "#ffffff",
|
|
125
155
|
fontSize: "20px",
|
|
126
156
|
fontWeight: "700",
|
|
127
157
|
margin: "0",
|
|
128
158
|
};
|
|
129
159
|
const changeIndicatorPositive = {
|
|
130
|
-
color: "#
|
|
160
|
+
color: "#4ade80", // green-400
|
|
131
161
|
fontSize: "14px",
|
|
132
|
-
|
|
133
|
-
|
|
162
|
+
margin: "0",
|
|
163
|
+
verticalAlign: "middle",
|
|
134
164
|
};
|
|
135
165
|
const changeIndicatorNegative = {
|
|
136
|
-
color: "#
|
|
166
|
+
color: "#f87171", // red-400
|
|
137
167
|
fontSize: "14px",
|
|
138
|
-
|
|
139
|
-
|
|
168
|
+
margin: "0",
|
|
169
|
+
verticalAlign: "middle",
|
|
140
170
|
};
|
|
141
171
|
const changeIndicatorNeutral = {
|
|
142
172
|
color: "#6b7280",
|
|
143
173
|
fontSize: "14px",
|
|
144
|
-
|
|
145
|
-
|
|
174
|
+
margin: "0",
|
|
175
|
+
verticalAlign: "middle",
|
|
146
176
|
};
|
|
147
177
|
const listBox = {
|
|
148
|
-
backgroundColor: "
|
|
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: "#
|
|
187
|
+
color: "#ffffff",
|
|
157
188
|
fontSize: "16px",
|
|
158
189
|
fontWeight: "600",
|
|
159
190
|
margin: "0",
|
|
160
191
|
};
|
|
161
192
|
const listItemValue = {
|
|
162
|
-
color: "#
|
|
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: "#
|
|
202
|
+
color: "#94a3b8", // slate-400
|
|
171
203
|
fontSize: "14px",
|
|
172
204
|
margin: "0",
|
|
173
205
|
};
|
|
174
206
|
const insightValue = {
|
|
175
|
-
color: "#
|
|
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: "#
|
|
213
|
+
color: "#94a3b8", // slate-400
|
|
194
214
|
fontSize: "12px",
|
|
195
215
|
margin: "15px 0 0 0",
|
|
196
216
|
};
|
|
197
217
|
const footer = {
|
|
198
|
-
color: "#
|
|
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
|
@@ -15,22 +15,27 @@ import {
|
|
|
15
15
|
} from "@react-email/components";
|
|
16
16
|
|
|
17
17
|
interface FeatureDiscoveryEmailProps {
|
|
18
|
-
userName
|
|
19
|
-
featureName
|
|
20
|
-
featureDescription
|
|
21
|
-
featureBenefits
|
|
22
|
-
featureUrl
|
|
23
|
-
websiteUrl
|
|
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
|
-
|
|
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
|
|
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 =
|
|
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
|
-
<
|
|
130
|
-
<
|
|
131
|
-
<
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
style={{
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
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}
|
|
186
|
+
<Text style={sectionHeading}>Activity Overview</Text>
|
|
157
187
|
<Section style={metricBox}>
|
|
158
188
|
<Text style={metricLabel}>Average Daily Steps</Text>
|
|
159
|
-
<
|
|
160
|
-
<
|
|
161
|
-
<
|
|
162
|
-
{
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
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}
|
|
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
|
-
<
|
|
184
|
-
<
|
|
185
|
-
<
|
|
186
|
-
{
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
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}
|
|
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
|
-
<
|
|
223
|
-
<
|
|
224
|
-
<
|
|
225
|
-
{
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
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
|
-
<
|
|
240
|
-
<
|
|
241
|
-
<
|
|
242
|
-
{
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
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
|
-
<
|
|
256
|
-
<
|
|
257
|
-
<
|
|
258
|
-
{
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
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
|
-
|
|
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 #
|
|
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}
|
|
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
|
-
<
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
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
|
-
<
|
|
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={
|
|
454
|
+
style={footer}
|
|
411
455
|
>
|
|
412
456
|
Support
|
|
413
457
|
</Link>
|
|
414
|
-
</
|
|
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: "#
|
|
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
|
-
|
|
481
|
+
marginBottom: "64px",
|
|
482
|
+
borderRadius: "8px",
|
|
437
483
|
};
|
|
438
484
|
|
|
439
485
|
const box = {
|
|
440
|
-
|
|
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: "#
|
|
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
|
-
|
|
458
|
-
padding: "
|
|
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: "#
|
|
509
|
+
color: "#020617", // slate-950
|
|
466
510
|
margin: "0",
|
|
467
|
-
fontSize: "
|
|
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: "#
|
|
479
|
-
margin: "
|
|
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: "#
|
|
526
|
+
color: "#ffffff", // white
|
|
488
527
|
fontSize: "20px",
|
|
489
|
-
margin: "0 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: "
|
|
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: "#
|
|
542
|
+
color: "#94a3b8", // slate-400
|
|
501
543
|
fontSize: "14px",
|
|
502
|
-
marginBottom: "
|
|
544
|
+
marginBottom: "2px",
|
|
503
545
|
};
|
|
504
546
|
|
|
505
547
|
const metricValue = {
|
|
506
|
-
color: "#
|
|
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: "#
|
|
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: "#
|
|
562
|
+
color: "#4ade80", // green-400
|
|
521
563
|
fontSize: "14px",
|
|
522
|
-
|
|
523
|
-
|
|
564
|
+
margin: "0",
|
|
565
|
+
verticalAlign: "middle" as const,
|
|
524
566
|
};
|
|
525
567
|
|
|
526
568
|
const changeIndicatorNegative = {
|
|
527
|
-
color: "#
|
|
569
|
+
color: "#f87171", // red-400
|
|
528
570
|
fontSize: "14px",
|
|
529
|
-
|
|
530
|
-
|
|
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
|
-
|
|
537
|
-
|
|
578
|
+
margin: "0",
|
|
579
|
+
verticalAlign: "middle" as const,
|
|
538
580
|
};
|
|
539
581
|
|
|
540
582
|
const listBox = {
|
|
541
|
-
backgroundColor: "
|
|
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: "#
|
|
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: "#
|
|
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: "#
|
|
612
|
+
color: "#94a3b8", // slate-400
|
|
569
613
|
fontSize: "14px",
|
|
570
614
|
margin: "0",
|
|
571
615
|
};
|
|
572
616
|
|
|
573
617
|
const insightValue = {
|
|
574
|
-
color: "#
|
|
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: "#
|
|
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: "#
|
|
631
|
+
color: "#94a3b8", // slate-400
|
|
602
632
|
fontSize: "12px",
|
|
603
633
|
lineHeight: "16px",
|
|
604
634
|
textAlign: "center" as const,
|