@tracked/emails 0.1.5 → 0.2.1
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/components/content.d.ts +58 -0
- package/dist/components/content.d.ts.map +1 -0
- package/dist/components/content.js +166 -0
- package/dist/components/content.js.map +1 -0
- package/dist/components/index.d.ts +6 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +11 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/interactive.d.ts +23 -0
- package/dist/components/interactive.d.ts.map +1 -0
- package/dist/components/interactive.js +66 -0
- package/dist/components/interactive.js.map +1 -0
- package/dist/components/layout.d.ts +27 -0
- package/dist/components/layout.d.ts.map +1 -0
- package/dist/components/layout.js +83 -0
- package/dist/components/layout.js.map +1 -0
- package/dist/components/tokens.d.ts +58 -0
- package/dist/components/tokens.d.ts.map +1 -0
- package/dist/components/tokens.js +64 -0
- package/dist/components/tokens.js.map +1 -0
- package/dist/components/typography.d.ts +31 -0
- package/dist/components/typography.d.ts.map +1 -0
- package/dist/components/typography.js +72 -0
- package/dist/components/typography.js.map +1 -0
- package/dist/emails/anniversary.d.ts +12 -0
- package/dist/emails/anniversary.d.ts.map +1 -0
- package/dist/emails/anniversary.js +41 -0
- package/dist/emails/anniversary.js.map +1 -0
- package/dist/emails/app-review-request.d.ts +11 -0
- package/dist/emails/app-review-request.d.ts.map +1 -0
- package/dist/emails/app-review-request.js +24 -0
- package/dist/emails/app-review-request.js.map +1 -0
- package/dist/emails/bodyweight-goal-reached.d.ts +1 -1
- package/dist/emails/bodyweight-goal-reached.d.ts.map +1 -1
- package/dist/emails/bodyweight-goal-reached.js +86 -159
- package/dist/emails/bodyweight-goal-reached.js.map +1 -1
- package/dist/emails/client-inactive-alert.d.ts +14 -0
- package/dist/emails/client-inactive-alert.d.ts.map +1 -0
- package/dist/emails/client-inactive-alert.js +34 -0
- package/dist/emails/client-inactive-alert.js.map +1 -0
- package/dist/emails/client-onboarded.d.ts +35 -0
- package/dist/emails/client-onboarded.d.ts.map +1 -0
- package/dist/emails/client-onboarded.js +66 -0
- package/dist/emails/client-onboarded.js.map +1 -0
- package/dist/emails/coach-invite.d.ts +1 -1
- package/dist/emails/coach-invite.d.ts.map +1 -1
- package/dist/emails/coach-invite.js +13 -121
- package/dist/emails/coach-invite.js.map +1 -1
- package/dist/emails/coach-removed-client.d.ts +1 -1
- package/dist/emails/coach-removed-client.d.ts.map +1 -1
- package/dist/emails/coach-removed-client.js +3 -76
- package/dist/emails/coach-removed-client.js.map +1 -1
- package/dist/emails/direct-message.d.ts +1 -1
- package/dist/emails/direct-message.d.ts.map +1 -1
- package/dist/emails/direct-message.js +22 -96
- package/dist/emails/direct-message.js.map +1 -1
- package/dist/emails/feature-discovery.d.ts +2 -1
- package/dist/emails/feature-discovery.d.ts.map +1 -1
- package/dist/emails/feature-discovery.js +20 -117
- package/dist/emails/feature-discovery.js.map +1 -1
- package/dist/emails/first-workout-assigned.d.ts +1 -1
- package/dist/emails/first-workout-assigned.d.ts.map +1 -1
- package/dist/emails/first-workout-assigned.js +3 -94
- package/dist/emails/first-workout-assigned.js.map +1 -1
- package/dist/emails/first-workout-completed.d.ts +1 -1
- package/dist/emails/first-workout-completed.d.ts.map +1 -1
- package/dist/emails/first-workout-completed.js +14 -125
- package/dist/emails/first-workout-completed.js.map +1 -1
- package/dist/emails/inactive-reengagement.d.ts +10 -0
- package/dist/emails/inactive-reengagement.d.ts.map +1 -0
- package/dist/emails/inactive-reengagement.js +31 -0
- package/dist/emails/inactive-reengagement.js.map +1 -0
- package/dist/emails/index.d.ts +1 -0
- package/dist/emails/index.d.ts.map +1 -1
- package/dist/emails/index.js +1 -0
- package/dist/emails/index.js.map +1 -1
- package/dist/emails/monthly-report.d.ts +2 -1
- package/dist/emails/monthly-report.d.ts.map +1 -1
- package/dist/emails/monthly-report.js +14 -166
- package/dist/emails/monthly-report.js.map +1 -1
- package/dist/emails/new-follower.d.ts +1 -1
- package/dist/emails/new-follower.d.ts.map +1 -1
- package/dist/emails/new-follower.js +7 -91
- package/dist/emails/new-follower.js.map +1 -1
- package/dist/emails/nps-survey.d.ts +9 -0
- package/dist/emails/nps-survey.d.ts.map +1 -0
- package/dist/emails/nps-survey.js +51 -0
- package/dist/emails/nps-survey.js.map +1 -0
- package/dist/emails/subscription-canceled.d.ts +1 -1
- package/dist/emails/subscription-canceled.d.ts.map +1 -1
- package/dist/emails/subscription-canceled.js +20 -127
- package/dist/emails/subscription-canceled.js.map +1 -1
- package/dist/emails/support-email.d.ts +1 -1
- package/dist/emails/support-email.d.ts.map +1 -1
- package/dist/emails/support-email.js +3 -38
- package/dist/emails/support-email.js.map +1 -1
- package/dist/emails/team-invite.d.ts.map +1 -1
- package/dist/emails/team-invite.js +7 -96
- package/dist/emails/team-invite.js.map +1 -1
- package/dist/emails/team-member-removed-email.d.ts +1 -1
- package/dist/emails/team-member-removed-email.d.ts.map +1 -1
- package/dist/emails/team-member-removed-email.js +3 -93
- package/dist/emails/team-member-removed-email.js.map +1 -1
- package/dist/emails/tracked-magic-link-activate.d.ts +2 -2
- package/dist/emails/tracked-magic-link-activate.d.ts.map +1 -1
- package/dist/emails/tracked-magic-link-activate.js +3 -91
- package/dist/emails/tracked-magic-link-activate.js.map +1 -1
- package/dist/emails/tracked-magic-link.d.ts +3 -3
- package/dist/emails/tracked-magic-link.d.ts.map +1 -1
- package/dist/emails/tracked-magic-link.js +3 -99
- package/dist/emails/tracked-magic-link.js.map +1 -1
- package/dist/emails/week-one-checkin.d.ts +3 -2
- package/dist/emails/week-one-checkin.d.ts.map +1 -1
- package/dist/emails/week-one-checkin.js +22 -136
- package/dist/emails/week-one-checkin.js.map +1 -1
- package/dist/emails/weekly-progress-digest.d.ts +21 -0
- package/dist/emails/weekly-progress-digest.d.ts.map +1 -0
- package/dist/emails/weekly-progress-digest.js +78 -0
- package/dist/emails/weekly-progress-digest.js.map +1 -0
- package/dist/emails/welcome.d.ts +3 -2
- package/dist/emails/welcome.d.ts.map +1 -1
- package/dist/emails/welcome.js +16 -142
- package/dist/emails/welcome.js.map +1 -1
- package/dist/index.d.ts +9 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -2
- package/dist/index.js.map +1 -1
- package/package.json +20 -20
- package/src/components/content.tsx +351 -0
- package/src/components/index.ts +44 -0
- package/src/components/interactive.tsx +260 -0
- package/src/components/layout.tsx +217 -0
- package/src/components/tokens.ts +74 -0
- package/src/components/typography.tsx +148 -0
- package/src/emails/anniversary.tsx +133 -0
- package/src/emails/app-review-request.tsx +100 -0
- package/src/emails/bodyweight-goal-reached.tsx +202 -350
- package/src/emails/client-inactive-alert.tsx +130 -0
- package/src/emails/client-onboarded.tsx +272 -0
- package/src/emails/coach-invite.tsx +67 -250
- package/src/emails/coach-removed-client.tsx +36 -197
- package/src/emails/direct-message.tsx +69 -227
- package/src/emails/feature-discovery.tsx +82 -266
- package/src/emails/first-workout-assigned.tsx +52 -238
- package/src/emails/first-workout-completed.tsx +88 -294
- package/src/emails/inactive-reengagement.tsx +81 -0
- package/src/emails/index.tsx +1 -0
- package/src/emails/monthly-report.tsx +198 -520
- package/src/emails/new-follower.tsx +60 -238
- package/src/emails/nps-survey.tsx +149 -0
- package/src/emails/subscription-canceled.tsx +88 -294
- package/src/emails/support-email.tsx +33 -67
- package/src/emails/team-invite.tsx +47 -240
- package/src/emails/team-member-removed-email.tsx +23 -218
- package/src/emails/tracked-magic-link-activate.tsx +29 -237
- package/src/emails/tracked-magic-link.tsx +31 -251
- package/src/emails/week-one-checkin.tsx +108 -329
- package/src/emails/weekly-progress-digest.tsx +248 -0
- package/src/emails/welcome.tsx +58 -326
- package/src/index.ts +19 -2
- package/dist/emails/client-accepted-invitation.d.ts +0 -10
- package/dist/emails/client-accepted-invitation.d.ts.map +0 -1
- package/dist/emails/client-accepted-invitation.js +0 -99
- package/dist/emails/client-accepted-invitation.js.map +0 -1
- package/src/emails/client-accepted-invitation.tsx +0 -258
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Section, Img, Text } from "@react-email/components";
|
|
3
|
+
import { EmailLayout, EmailHeader, EmailFooter, Heading, Paragraph, PrimaryButton, SecondaryButton, colors, spacing, borderRadius, } from "../components";
|
|
4
|
+
export const ClientInactiveAlertEmail = ({ coachName = "Sarah Johnson", clientName = "Alex Thompson", clientEmail = "alex@example.com", clientAvatarUrl = "https://cdn.trckd.ca/avatars/default.png", daysInactive = 10, lastWorkoutDate = "December 9, 2024", clientProfileUrl = "tracked://app", messageUrl = "tracked://app", websiteUrl = "https://tracked.gg", }) => {
|
|
5
|
+
const displayName = clientName || clientEmail;
|
|
6
|
+
const urgencyLevel = daysInactive >= 14 ? "high" : daysInactive >= 7 ? "medium" : "low";
|
|
7
|
+
const urgencyColor = urgencyLevel === "high" ? colors.error : urgencyLevel === "medium" ? colors.warning : colors.textSecondary;
|
|
8
|
+
return (_jsxs(EmailLayout, { preview: `${displayName} hasn't logged a workout in ${daysInactive} days`, children: [_jsx(EmailHeader, {}), _jsx(Heading, { children: "Client Activity Alert" }), _jsxs(Paragraph, { children: ["Hi ", coachName, ", one of your clients needs a check-in."] }), _jsx(Section, { style: {
|
|
9
|
+
backgroundColor: colors.surface,
|
|
10
|
+
padding: spacing.lg,
|
|
11
|
+
borderRadius: borderRadius.md,
|
|
12
|
+
margin: `${spacing.lg} 0`,
|
|
13
|
+
border: `1px solid ${colors.border}`,
|
|
14
|
+
}, children: _jsx("table", { cellPadding: "0", cellSpacing: "0", style: { width: "100%" }, children: _jsxs("tr", { children: [clientAvatarUrl && (_jsx("td", { style: { width: "48px", verticalAlign: "top" }, children: _jsx(Img, { src: clientAvatarUrl, width: "48", height: "48", alt: displayName, style: {
|
|
15
|
+
borderRadius: "50%",
|
|
16
|
+
border: `2px solid ${colors.border}`,
|
|
17
|
+
} }) })), _jsxs("td", { style: { paddingLeft: clientAvatarUrl ? "16px" : "0", verticalAlign: "top" }, children: [_jsx(Text, { style: {
|
|
18
|
+
color: colors.textPrimary,
|
|
19
|
+
fontSize: "16px",
|
|
20
|
+
fontWeight: "bold",
|
|
21
|
+
margin: "0 0 4px 0",
|
|
22
|
+
}, children: displayName }), _jsxs(Text, { style: {
|
|
23
|
+
color: urgencyColor,
|
|
24
|
+
fontSize: "14px",
|
|
25
|
+
fontWeight: "600",
|
|
26
|
+
margin: "0 0 4px 0",
|
|
27
|
+
}, children: [daysInactive, " days inactive"] }), lastWorkoutDate && (_jsxs(Text, { style: {
|
|
28
|
+
color: colors.textMuted,
|
|
29
|
+
fontSize: "13px",
|
|
30
|
+
margin: "0",
|
|
31
|
+
}, children: ["Last workout: ", lastWorkoutDate] }))] })] }) }) }), _jsx(Paragraph, { children: "A quick message can make a big difference. Consider reaching out to see how they're doing and if there's anything blocking their progress." }), _jsx(PrimaryButton, { href: messageUrl, children: "Send a Message" }), _jsx(SecondaryButton, { href: clientProfileUrl, children: "View Profile" }), _jsx(EmailFooter, { websiteUrl: websiteUrl })] }));
|
|
32
|
+
};
|
|
33
|
+
export default ClientInactiveAlertEmail;
|
|
34
|
+
//# sourceMappingURL=client-inactive-alert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-inactive-alert.js","sourceRoot":"","sources":["../../src/emails/client-inactive-alert.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
interface ClientOnboardedEmailProps {
|
|
2
|
+
coachName: string;
|
|
3
|
+
clientName: string;
|
|
4
|
+
clientEmail: string;
|
|
5
|
+
clientProfileUrl: string;
|
|
6
|
+
websiteUrl?: string;
|
|
7
|
+
dateOfBirth?: string;
|
|
8
|
+
height?: string;
|
|
9
|
+
weight?: string;
|
|
10
|
+
timezone?: string;
|
|
11
|
+
unitPreference?: "metric" | "imperial";
|
|
12
|
+
currentGoal?: string;
|
|
13
|
+
currentWorkouts?: string[];
|
|
14
|
+
currentTrainingSplit?: string;
|
|
15
|
+
exerciseSelection?: string[];
|
|
16
|
+
equipmentListGym?: string[];
|
|
17
|
+
injuries?: string[];
|
|
18
|
+
avgCardioPerWeek?: string;
|
|
19
|
+
avgStepsPerDay?: string;
|
|
20
|
+
foodPreferences?: string[];
|
|
21
|
+
allergies?: string[];
|
|
22
|
+
dailyCalories?: string;
|
|
23
|
+
dailyMacros?: {
|
|
24
|
+
protein: string;
|
|
25
|
+
carbs: string;
|
|
26
|
+
fat: string;
|
|
27
|
+
};
|
|
28
|
+
avgNumberMealsPerDay?: string;
|
|
29
|
+
mealsYouUsuallyEat?: string[];
|
|
30
|
+
numMealsBeforeGym?: string;
|
|
31
|
+
hasProgressPhotos?: boolean;
|
|
32
|
+
}
|
|
33
|
+
export declare const ClientOnboardedEmail: ({ coachName, clientName, clientEmail, clientProfileUrl, websiteUrl, dateOfBirth, height, weight, timezone, unitPreference, currentGoal, currentWorkouts, currentTrainingSplit, exerciseSelection, equipmentListGym, injuries, avgCardioPerWeek, avgStepsPerDay, foodPreferences, allergies, dailyCalories, dailyMacros, avgNumberMealsPerDay, mealsYouUsuallyEat, numMealsBeforeGym, hasProgressPhotos, }: ClientOnboardedEmailProps) => import("react/jsx-runtime").JSX.Element;
|
|
34
|
+
export default ClientOnboardedEmail;
|
|
35
|
+
//# sourceMappingURL=client-onboarded.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-onboarded.d.ts","sourceRoot":"","sources":["../../src/emails/client-onboarded.tsx"],"names":[],"mappings":"AAaA,UAAU,yBAAyB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AA+CD,eAAO,MAAM,oBAAoB,GAAI,2YA2BlC,yBAAyB,4CAuJ3B,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { Section, Text, Row, Column } from "@react-email/components";
|
|
3
|
+
import { EmailLayout, EmailHeader, EmailFooter, Heading, Paragraph, TipBox, PrimaryButton, colors, } from "../components";
|
|
4
|
+
const formatArray = (arr) => {
|
|
5
|
+
if (!arr || arr.length === 0)
|
|
6
|
+
return "";
|
|
7
|
+
return arr.join(", ");
|
|
8
|
+
};
|
|
9
|
+
const DataRow = ({ label, value, }) => {
|
|
10
|
+
if (!value)
|
|
11
|
+
return null;
|
|
12
|
+
return (_jsxs(Row, { style: { marginBottom: "8px" }, children: [_jsx(Column, { style: { width: "140px", verticalAlign: "top" }, children: _jsx(Text, { style: {
|
|
13
|
+
color: colors.textMuted,
|
|
14
|
+
fontSize: "13px",
|
|
15
|
+
lineHeight: "20px",
|
|
16
|
+
margin: "0",
|
|
17
|
+
fontWeight: "500",
|
|
18
|
+
}, children: label }) }), _jsx(Column, { style: { verticalAlign: "top" }, children: _jsx(Text, { style: {
|
|
19
|
+
color: colors.textSecondary,
|
|
20
|
+
fontSize: "14px",
|
|
21
|
+
lineHeight: "20px",
|
|
22
|
+
margin: "0",
|
|
23
|
+
}, children: value }) })] }));
|
|
24
|
+
};
|
|
25
|
+
export const ClientOnboardedEmail = ({ coachName = "Sarah Johnson", clientName = "Alex Thompson", clientEmail = "alex@example.com", clientProfileUrl = "tracked://app", websiteUrl = "https://tracked.gg", dateOfBirth = "March 15, 1992", height = "5'10\" (178 cm)", weight = "175 lbs (79 kg)", timezone = "America/New_York", unitPreference = "imperial", currentGoal = "Build muscle and improve strength", currentWorkouts = ["Push/Pull/Legs", "Compound movements"], currentTrainingSplit = "6 days per week", exerciseSelection = ["Barbell lifts", "Dumbbell work", "Cable exercises"], equipmentListGym = ["Full gym access", "Barbells", "Dumbbells", "Cable machines"], injuries = ["Previous lower back strain (recovered)"], avgCardioPerWeek = "2-3 sessions, 20-30 minutes each", avgStepsPerDay = "8,000-10,000", foodPreferences = ["High protein", "Whole foods"], allergies = ["None"], dailyCalories = "2,800", dailyMacros = { protein: "180", carbs: "300", fat: "85" }, avgNumberMealsPerDay = "4-5", mealsYouUsuallyEat = ["Eggs and oatmeal", "Chicken and rice", "Protein shakes"], numMealsBeforeGym = "2", hasProgressPhotos = true, }) => {
|
|
26
|
+
const displayName = clientName || clientEmail;
|
|
27
|
+
const hasPersonalData = dateOfBirth || height || weight || timezone;
|
|
28
|
+
const hasTrainingData = currentGoal ||
|
|
29
|
+
(currentWorkouts && currentWorkouts.length > 0) ||
|
|
30
|
+
currentTrainingSplit ||
|
|
31
|
+
(exerciseSelection && exerciseSelection.length > 0) ||
|
|
32
|
+
(equipmentListGym && equipmentListGym.length > 0) ||
|
|
33
|
+
(injuries && injuries.length > 0) ||
|
|
34
|
+
avgCardioPerWeek ||
|
|
35
|
+
avgStepsPerDay;
|
|
36
|
+
const hasNutritionData = (foodPreferences && foodPreferences.length > 0) ||
|
|
37
|
+
(allergies && allergies.length > 0) ||
|
|
38
|
+
dailyCalories ||
|
|
39
|
+
dailyMacros ||
|
|
40
|
+
avgNumberMealsPerDay ||
|
|
41
|
+
(mealsYouUsuallyEat && mealsYouUsuallyEat.length > 0) ||
|
|
42
|
+
numMealsBeforeGym;
|
|
43
|
+
const infoBoxStyle = {
|
|
44
|
+
backgroundColor: colors.surface,
|
|
45
|
+
padding: "20px 24px",
|
|
46
|
+
borderRadius: "8px",
|
|
47
|
+
margin: "24px 0",
|
|
48
|
+
border: `1px solid ${colors.border}`,
|
|
49
|
+
};
|
|
50
|
+
const sectionHeadingStyle = {
|
|
51
|
+
color: colors.accent,
|
|
52
|
+
fontSize: "14px",
|
|
53
|
+
fontWeight: "bold",
|
|
54
|
+
textTransform: "uppercase",
|
|
55
|
+
letterSpacing: "0.5px",
|
|
56
|
+
marginBottom: "16px",
|
|
57
|
+
marginTop: "0",
|
|
58
|
+
};
|
|
59
|
+
return (_jsxs(EmailLayout, { preview: `${displayName} has completed onboarding and is ready to start training`, children: [_jsx(EmailHeader, {}), _jsx(Heading, { children: "New Client Onboarded!" }), _jsxs(Paragraph, { children: ["Hi ", coachName, ", ", displayName, " has completed their onboarding questionnaire and is ready to start their training journey with you."] }), _jsxs(Section, { style: infoBoxStyle, children: [_jsx(Text, { style: sectionHeadingStyle, children: "Client Details" }), _jsx(DataRow, { label: "Name", value: displayName }), _jsx(DataRow, { label: "Email", value: clientEmail }), hasPersonalData && (_jsxs(_Fragment, { children: [_jsx(DataRow, { label: "Date of Birth", value: dateOfBirth }), _jsx(DataRow, { label: "Height", value: height }), _jsx(DataRow, { label: "Weight", value: weight }), _jsx(DataRow, { label: "Timezone", value: timezone }), _jsx(DataRow, { label: "Units", value: unitPreference === "metric"
|
|
60
|
+
? "Metric (kg/cm)"
|
|
61
|
+
: unitPreference === "imperial"
|
|
62
|
+
? "Imperial (lbs/ft)"
|
|
63
|
+
: undefined })] }))] }), hasTrainingData && (_jsxs(Section, { style: infoBoxStyle, children: [_jsx(Text, { style: sectionHeadingStyle, children: "Training Information" }), _jsx(DataRow, { label: "Current Goal", value: currentGoal }), _jsx(DataRow, { label: "Current Workouts", value: formatArray(currentWorkouts) }), _jsx(DataRow, { label: "Training Split", value: currentTrainingSplit }), _jsx(DataRow, { label: "Exercise Preferences", value: formatArray(exerciseSelection) }), _jsx(DataRow, { label: "Available Equipment", value: formatArray(equipmentListGym) }), _jsx(DataRow, { label: "Injuries/Limitations", value: formatArray(injuries) }), _jsx(DataRow, { label: "Cardio per Week", value: avgCardioPerWeek }), _jsx(DataRow, { label: "Daily Steps", value: avgStepsPerDay })] })), hasNutritionData && (_jsxs(Section, { style: infoBoxStyle, children: [_jsx(Text, { style: sectionHeadingStyle, children: "Nutrition Information" }), _jsx(DataRow, { label: "Food Preferences", value: formatArray(foodPreferences) }), _jsx(DataRow, { label: "Allergies", value: formatArray(allergies) }), _jsx(DataRow, { label: "Daily Calories", value: dailyCalories }), dailyMacros && (_jsx(DataRow, { label: "Daily Macros", value: `P: ${dailyMacros.protein}g | C: ${dailyMacros.carbs}g | F: ${dailyMacros.fat}g` })), _jsx(DataRow, { label: "Meals per Day", value: avgNumberMealsPerDay }), _jsx(DataRow, { label: "Usual Meals", value: formatArray(mealsYouUsuallyEat) }), _jsx(DataRow, { label: "Pre-workout Meals", value: numMealsBeforeGym })] })), hasProgressPhotos && (_jsx(TipBox, { title: "Progress Photos", children: "This client has uploaded progress photos. View them in their profile." })), _jsx(Paragraph, { children: "Review their profile and start building their personalized training program." }), _jsx(PrimaryButton, { href: clientProfileUrl, children: "View Client Profile" }), _jsx(Paragraph, { children: "Assign their first workout or check in to welcome them to your coaching roster." }), _jsx(EmailFooter, { websiteUrl: websiteUrl })] }));
|
|
64
|
+
};
|
|
65
|
+
export default ClientOnboardedEmail;
|
|
66
|
+
//# sourceMappingURL=client-onboarded.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-onboarded.js","sourceRoot":"","sources":["../../src/emails/client-onboarded.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coach-invite.d.ts","sourceRoot":"","sources":["../../src/emails/coach-invite.tsx"],"names":[],"mappings":"AAeA,UAAU,qBAAqB;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"coach-invite.d.ts","sourceRoot":"","sources":["../../src/emails/coach-invite.tsx"],"names":[],"mappings":"AAeA,UAAU,qBAAqB;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,gBAAgB,GAAI,wEAM9B,qBAAqB,4CAuDvB,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
|
@@ -1,126 +1,18 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
export const CoachInviteEmail = ({ coachName, coachEmail, websiteUrl = "https://tracked.gg", invitationLink, coachAvatarUrl, }) => {
|
|
2
|
+
import { Section, Img } from "@react-email/components";
|
|
3
|
+
import { EmailLayout, EmailHeader, EmailFooter, Heading, Paragraph, FeatureBox, FeatureList, PrimaryButton, TextLink, colors, } from "../components";
|
|
4
|
+
export const CoachInviteEmail = ({ coachName = "Sarah Johnson", coachEmail = "sarah@example.com", websiteUrl = "https://tracked.gg", invitationLink = "https://tracked.gg/invite/abc123", coachAvatarUrl = "https://cdn.trckd.ca/avatars/default.png", }) => {
|
|
5
5
|
const displayName = coachName || coachEmail;
|
|
6
|
-
return (_jsxs(
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
display: "inline-block",
|
|
17
|
-
}, children: _jsx("span", { style: { color: "#ffffff", textDecoration: "none" }, children: "Join our Discord Community" }) }) }), _jsx(Hr, { style: hr }), _jsxs(Text, { style: footer, children: ["\u00A9 Tracked Training Platform Inc. ", _jsx("br", {}), "9101 Horne Street, Vancouver, BC"] }), _jsxs(Section, { style: footerLinksContainer, children: [_jsx(Link, { href: `${websiteUrl}/terms`, style: footerLink, children: "Terms" }), _jsx("span", { style: footerDivider, children: "|" }), _jsx(Link, { href: `${websiteUrl}/privacy`, style: footerLink, children: "Privacy" }), _jsx("span", { style: footerDivider, children: "|" }), _jsx(Link, { href: `${websiteUrl}/support`, style: footerLink, children: "Support" })] })] }) }) })] }));
|
|
18
|
-
};
|
|
19
|
-
const main = {
|
|
20
|
-
backgroundColor: "#1e293b",
|
|
21
|
-
fontFamily: '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Ubuntu,sans-serif',
|
|
22
|
-
};
|
|
23
|
-
const container = {
|
|
24
|
-
backgroundColor: "#0f172a",
|
|
25
|
-
margin: "0 auto",
|
|
26
|
-
padding: "20px 0 48px",
|
|
27
|
-
marginBottom: "64px",
|
|
28
|
-
maxWidth: "600px",
|
|
29
|
-
};
|
|
30
|
-
const box = {
|
|
31
|
-
padding: "0 48px",
|
|
32
|
-
};
|
|
33
|
-
const coachSection = {
|
|
34
|
-
textAlign: "center",
|
|
35
|
-
marginBottom: "24px",
|
|
36
|
-
};
|
|
37
|
-
const avatarStyle = {
|
|
38
|
-
borderRadius: "50%",
|
|
39
|
-
margin: "0 auto 16px",
|
|
40
|
-
};
|
|
41
|
-
const hr = {
|
|
42
|
-
borderColor: "#475569",
|
|
43
|
-
margin: "20px 0",
|
|
44
|
-
};
|
|
45
|
-
const paragraph = {
|
|
46
|
-
color: "#e2e8f0",
|
|
47
|
-
fontSize: "16px",
|
|
48
|
-
lineHeight: "24px",
|
|
49
|
-
textAlign: "left",
|
|
50
|
-
};
|
|
51
|
-
const heading = {
|
|
52
|
-
color: "#e2e8f0",
|
|
53
|
-
fontSize: "24px",
|
|
54
|
-
lineHeight: "32px",
|
|
55
|
-
fontWeight: "bold",
|
|
56
|
-
textAlign: "center",
|
|
57
|
-
margin: "24px 0",
|
|
58
|
-
};
|
|
59
|
-
const featureSection = {
|
|
60
|
-
backgroundColor: "#1e293b",
|
|
61
|
-
padding: "16px 24px",
|
|
62
|
-
borderRadius: "8px",
|
|
63
|
-
margin: "24px 0",
|
|
64
|
-
};
|
|
65
|
-
const featureHeading = {
|
|
66
|
-
color: "#e2e8f0",
|
|
67
|
-
fontSize: "16px",
|
|
68
|
-
fontWeight: "bold",
|
|
69
|
-
marginBottom: "12px",
|
|
70
|
-
};
|
|
71
|
-
const featureList = {
|
|
72
|
-
listStyle: "none",
|
|
73
|
-
padding: 0,
|
|
74
|
-
margin: 0,
|
|
75
|
-
};
|
|
76
|
-
const featureItem = {
|
|
77
|
-
color: "#e2e8f0",
|
|
78
|
-
fontSize: "14px",
|
|
79
|
-
lineHeight: "24px",
|
|
80
|
-
marginBottom: "8px",
|
|
81
|
-
};
|
|
82
|
-
const link = {
|
|
83
|
-
color: "#4ade80",
|
|
84
|
-
textDecoration: "underline",
|
|
85
|
-
};
|
|
86
|
-
const button = {
|
|
87
|
-
backgroundColor: "#4ade80",
|
|
88
|
-
borderRadius: "5px",
|
|
89
|
-
color: "#0f172a",
|
|
90
|
-
fontSize: "16px",
|
|
91
|
-
fontWeight: "bold",
|
|
92
|
-
textDecoration: "none",
|
|
93
|
-
textAlign: "center",
|
|
94
|
-
display: "block",
|
|
95
|
-
width: "100%",
|
|
96
|
-
padding: "16px 0",
|
|
97
|
-
margin: "24px 0",
|
|
98
|
-
};
|
|
99
|
-
const disclaimer = {
|
|
100
|
-
color: "#94a3b8",
|
|
101
|
-
fontSize: "14px",
|
|
102
|
-
textAlign: "center",
|
|
103
|
-
margin: "16px 0",
|
|
104
|
-
};
|
|
105
|
-
const footer = {
|
|
106
|
-
color: "#8898aa",
|
|
107
|
-
fontSize: "12px",
|
|
108
|
-
lineHeight: "16px",
|
|
109
|
-
textAlign: "center",
|
|
110
|
-
};
|
|
111
|
-
const footerLinksContainer = {
|
|
112
|
-
textAlign: "center",
|
|
113
|
-
margin: "12px 0",
|
|
114
|
-
};
|
|
115
|
-
const footerLink = {
|
|
116
|
-
color: "#8898aa",
|
|
117
|
-
fontSize: "12px",
|
|
118
|
-
textDecoration: "none",
|
|
119
|
-
padding: "0 8px",
|
|
120
|
-
};
|
|
121
|
-
const footerDivider = {
|
|
122
|
-
color: "#8898aa",
|
|
123
|
-
fontSize: "12px",
|
|
6
|
+
return (_jsxs(EmailLayout, { preview: `Join ${displayName}'s coaching program on Tracked`, children: [_jsx(EmailHeader, {}), _jsxs(Section, { style: { textAlign: "center", marginBottom: "24px" }, children: [coachAvatarUrl && (_jsx(Img, { src: coachAvatarUrl, width: "64", height: "64", alt: displayName, style: {
|
|
7
|
+
borderRadius: "50%",
|
|
8
|
+
margin: "0 auto 16px",
|
|
9
|
+
border: `2px solid ${colors.accent}`,
|
|
10
|
+
} })), _jsxs(Heading, { style: { textAlign: "center" }, children: ["Join ", displayName, "'s Coaching Program"] })] }), _jsxs(Paragraph, { children: ["Hi there! ", displayName, " wants to coach you on Tracked - a platform for personalized fitness coaching and progress tracking."] }), _jsx(FeatureBox, { title: "What you'll get:", children: _jsx(FeatureList, { items: [
|
|
11
|
+
{ title: "Personalized workout programs" },
|
|
12
|
+
{ title: "Direct communication with your coach" },
|
|
13
|
+
{ title: "Progress tracking & analytics" },
|
|
14
|
+
{ title: "Nutrition guidance" },
|
|
15
|
+
] }) }), _jsx(PrimaryButton, { href: invitationLink, fullWidth: true, children: "Accept Coaching Invitation" }), _jsxs(Paragraph, { muted: true, style: { textAlign: "center" }, children: ["If this email was not expected, please ignore it. Learn more about Tracked at ", _jsx(TextLink, { href: websiteUrl, children: "tracked.gg" })] }), _jsx(EmailFooter, { websiteUrl: websiteUrl })] }));
|
|
124
16
|
};
|
|
125
17
|
export default CoachInviteEmail;
|
|
126
18
|
//# sourceMappingURL=coach-invite.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coach-invite.js","sourceRoot":"","sources":["../../src/emails/coach-invite.tsx"],"names":[],"mappings":";AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"coach-invite.js","sourceRoot":"","sources":["../../src/emails/coach-invite.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,OAAO,EACP,SAAS,EACT,UAAU,EACV,WAAW,EACX,aAAa,EACb,QAAQ,EACR,MAAM,GACP,MAAM,eAAe,CAAC;AAUvB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAC/B,SAAS,GAAG,eAAe,EAC3B,UAAU,GAAG,mBAAmB,EAChC,UAAU,GAAG,oBAAoB,EACjC,cAAc,GAAG,kCAAkC,EACnD,cAAc,GAAG,0CAA0C,GACrC,EAAE,EAAE;IAC1B,MAAM,WAAW,GAAG,SAAS,IAAI,UAAU,CAAC;IAE5C,OAAO,CACL,MAAC,WAAW,IAAC,OAAO,EAAE,QAAQ,WAAW,gCAAgC,aACvE,KAAC,WAAW,KAAG,EAGf,MAAC,OAAO,IAAC,KAAK,EAAE,EAAE,SAAS,EAAE,QAAiB,EAAE,YAAY,EAAE,MAAM,EAAE,aACnE,cAAc,IAAI,CACjB,KAAC,GAAG,IACF,GAAG,EAAE,cAAc,EACnB,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE;4BACL,YAAY,EAAE,KAAK;4BACnB,MAAM,EAAE,aAAa;4BACrB,MAAM,EAAE,aAAa,MAAM,CAAC,MAAM,EAAE;yBACrC,GACD,CACH,EACD,MAAC,OAAO,IAAC,KAAK,EAAE,EAAE,SAAS,EAAE,QAAiB,EAAE,sBACxC,WAAW,2BACT,IACF,EAEV,MAAC,SAAS,6BACG,WAAW,4GAEZ,EAEZ,KAAC,UAAU,IAAC,KAAK,EAAC,kBAAkB,YAClC,KAAC,WAAW,IACV,KAAK,EAAE;wBACL,EAAE,KAAK,EAAE,+BAA+B,EAAE;wBAC1C,EAAE,KAAK,EAAE,sCAAsC,EAAE;wBACjD,EAAE,KAAK,EAAE,+BAA+B,EAAE;wBAC1C,EAAE,KAAK,EAAE,oBAAoB,EAAE;qBAChC,GACD,GACS,EAEb,KAAC,aAAa,IAAC,IAAI,EAAE,cAAc,EAAE,SAAS,iDAE9B,EAEhB,MAAC,SAAS,IAAC,KAAK,QAAC,KAAK,EAAE,EAAE,SAAS,EAAE,QAAiB,EAAE,+FAE3C,KAAC,QAAQ,IAAC,IAAI,EAAE,UAAU,2BAAuB,IAClD,EAEZ,KAAC,WAAW,IAAC,UAAU,EAAE,UAAU,GAAI,IAC3B,CACf,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
interface CoachRemovedClientEmailProps {
|
|
2
2
|
clientName: string;
|
|
3
3
|
coachName: string;
|
|
4
|
-
websiteUrl
|
|
4
|
+
websiteUrl?: string;
|
|
5
5
|
}
|
|
6
6
|
export declare const CoachRemovedClientEmail: ({ clientName, coachName, websiteUrl, }: CoachRemovedClientEmailProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
7
|
export default CoachRemovedClientEmail;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coach-removed-client.d.ts","sourceRoot":"","sources":["../../src/emails/coach-removed-client.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"coach-removed-client.d.ts","sourceRoot":"","sources":["../../src/emails/coach-removed-client.tsx"],"names":[],"mappings":"AAWA,UAAU,4BAA4B;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,uBAAuB,GAAI,wCAIrC,4BAA4B,4CA2B9B,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
|
|
@@ -1,80 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
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: ["Update to your coaching relationship with ", coachName] }), _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
|
-
width: "auto",
|
|
7
|
-
verticalAlign: "middle",
|
|
8
|
-
paddingLeft: "4px",
|
|
9
|
-
}, children: _jsx(Text, { style: {
|
|
10
|
-
fontSize: "28px",
|
|
11
|
-
fontWeight: "900",
|
|
12
|
-
fontFamily: "Raleway, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
|
|
13
|
-
color: "#020617",
|
|
14
|
-
margin: "0",
|
|
15
|
-
lineHeight: "32px",
|
|
16
|
-
letterSpacing: "0.5px",
|
|
17
|
-
}, children: "TRACKED" }) })] }), _jsx(Hr, { style: hr }), _jsx(Text, { style: heading, children: "Coaching Relationship Update" }), _jsxs(Text, { style: paragraph, children: ["Hi ", clientName, ", ", coachName, " has ended your coaching relationship on Tracked."] }), _jsx(Section, { style: infoBox, children: _jsx(Text, { style: infoText, children: "Your workout history and progress data remain available in your account. You can continue using Tracked independently or connect with a new coach." }) }), _jsx(Text, { style: paragraph, children: "Thank you for using Tracked. If you have any questions or concerns, please don't hesitate to reach out to our support team." }), _jsx("div", { style: {
|
|
18
|
-
textAlign: "left",
|
|
19
|
-
margin: "24px 0",
|
|
20
|
-
}, children: _jsx("a", { href: "https://www.discord.gg/trackedgg", style: {
|
|
21
|
-
backgroundColor: "#5865F2",
|
|
22
|
-
borderRadius: "8px",
|
|
23
|
-
fontSize: "16px",
|
|
24
|
-
fontWeight: "bold",
|
|
25
|
-
textDecoration: "none",
|
|
26
|
-
padding: "12px 32px",
|
|
27
|
-
display: "inline-block",
|
|
28
|
-
}, children: _jsx("span", { style: { color: "#ffffff", textDecoration: "none" }, children: "Join our Discord Community" }) }) }), _jsx(Hr, { style: hr }), _jsxs(Text, { style: footer, children: ["Copyright \u00A9 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." })] }) }) })] }));
|
|
29
|
-
};
|
|
30
|
-
const main = {
|
|
31
|
-
backgroundColor: "#020617", // slate-950
|
|
32
|
-
fontFamily: '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Ubuntu,sans-serif',
|
|
33
|
-
};
|
|
34
|
-
const container = {
|
|
35
|
-
backgroundColor: "#020617", // slate-950
|
|
36
|
-
margin: "0 auto",
|
|
37
|
-
padding: "20px 0 48px",
|
|
38
|
-
marginBottom: "64px",
|
|
39
|
-
borderRadius: "8px",
|
|
40
|
-
};
|
|
41
|
-
const box = {
|
|
42
|
-
padding: "0 24px",
|
|
43
|
-
};
|
|
44
|
-
const hr = {
|
|
45
|
-
borderColor: "#4ade80", // green-400
|
|
46
|
-
margin: "24px 0",
|
|
47
|
-
borderWidth: "1px",
|
|
48
|
-
};
|
|
49
|
-
const paragraph = {
|
|
50
|
-
color: "#ffffff", // white
|
|
51
|
-
fontSize: "16px",
|
|
52
|
-
lineHeight: "24px",
|
|
53
|
-
textAlign: "left",
|
|
54
|
-
};
|
|
55
|
-
const heading = {
|
|
56
|
-
color: "#ffffff", // white
|
|
57
|
-
fontSize: "24px",
|
|
58
|
-
lineHeight: "32px",
|
|
59
|
-
fontWeight: "bold",
|
|
60
|
-
marginBottom: "16px",
|
|
61
|
-
};
|
|
62
|
-
const infoBox = {
|
|
63
|
-
backgroundColor: "#1e293b",
|
|
64
|
-
padding: "16px 24px",
|
|
65
|
-
borderRadius: "8px",
|
|
66
|
-
margin: "24px 0",
|
|
67
|
-
};
|
|
68
|
-
const infoText = {
|
|
69
|
-
color: "#e2e8f0",
|
|
70
|
-
fontSize: "14px",
|
|
71
|
-
lineHeight: "24px",
|
|
72
|
-
marginBottom: "4px",
|
|
73
|
-
};
|
|
74
|
-
const footer = {
|
|
75
|
-
color: "#94a3b8", // slate-400 for subtle footer text
|
|
76
|
-
fontSize: "12px",
|
|
77
|
-
lineHeight: "16px",
|
|
2
|
+
import { EmailLayout, EmailHeader, EmailFooter, Heading, Paragraph, FeatureBox, SmallText, } from "../components";
|
|
3
|
+
export const CoachRemovedClientEmail = ({ clientName = "Alex", coachName = "Sarah Johnson", websiteUrl = "https://tracked.gg", }) => {
|
|
4
|
+
return (_jsxs(EmailLayout, { preview: `Update to your coaching relationship with ${coachName}`, children: [_jsx(EmailHeader, {}), _jsx(Heading, { children: "Coaching Relationship Update" }), _jsxs(Paragraph, { children: ["Hi ", clientName, ", ", coachName, " has ended your coaching relationship on Tracked."] }), _jsx(FeatureBox, { children: _jsx(SmallText, { children: "Your workout history and progress data remain available in your account. You can continue using Tracked independently or connect with a new coach." }) }), _jsx(Paragraph, { children: "Thank you for using Tracked. If you have any questions or concerns, please don't hesitate to reach out to our support team." }), _jsx(EmailFooter, { websiteUrl: websiteUrl })] }));
|
|
78
5
|
};
|
|
79
6
|
export default CoachRemovedClientEmail;
|
|
80
7
|
//# sourceMappingURL=coach-removed-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coach-removed-client.js","sourceRoot":"","sources":["../../src/emails/coach-removed-client.tsx"],"names":[],"mappings":";AACA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"coach-removed-client.js","sourceRoot":"","sources":["../../src/emails/coach-removed-client.tsx"],"names":[],"mappings":";AACA,OAAO,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,OAAO,EACP,SAAS,EACT,UAAU,EACV,SAAS,GACV,MAAM,eAAe,CAAC;AAQvB,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EACtC,UAAU,GAAG,MAAM,EACnB,SAAS,GAAG,eAAe,EAC3B,UAAU,GAAG,oBAAoB,GACJ,EAAE,EAAE;IACjC,OAAO,CACL,MAAC,WAAW,IAAC,OAAO,EAAE,6CAA6C,SAAS,EAAE,aAC5E,KAAC,WAAW,KAAG,EAEf,KAAC,OAAO,+CAAuC,EAC/C,MAAC,SAAS,sBACJ,UAAU,QAAI,SAAS,yDAEjB,EAEZ,KAAC,UAAU,cACT,KAAC,SAAS,qKAIE,GACD,EAEb,KAAC,SAAS,8IAGE,EAEZ,KAAC,WAAW,IAAC,UAAU,EAAE,UAAU,GAAI,IAC3B,CACf,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
|
|
@@ -4,7 +4,7 @@ interface DirectMessageEmailProps {
|
|
|
4
4
|
senderUsername?: string;
|
|
5
5
|
messagePreview: string;
|
|
6
6
|
messageUrl: string;
|
|
7
|
-
websiteUrl
|
|
7
|
+
websiteUrl?: string;
|
|
8
8
|
}
|
|
9
9
|
export declare const DirectMessageEmail: ({ recipientName, senderName, senderUsername, messagePreview, messageUrl, websiteUrl, }: DirectMessageEmailProps) => import("react/jsx-runtime").JSX.Element;
|
|
10
10
|
export default DirectMessageEmail;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"direct-message.d.ts","sourceRoot":"","sources":["../../src/emails/direct-message.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"direct-message.d.ts","sourceRoot":"","sources":["../../src/emails/direct-message.tsx"],"names":[],"mappings":"AAcA,UAAU,uBAAuB;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,kBAAkB,GAAI,wFAOhC,uBAAuB,4CA0DzB,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|