@tracked/emails 0.1.5 → 0.2.0
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/client-onboarded.d.ts +35 -0
- package/dist/emails/client-onboarded.d.ts.map +1 -0
- package/dist/emails/client-onboarded.js +152 -0
- package/dist/emails/client-onboarded.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/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -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
|
@@ -1,255 +1,69 @@
|
|
|
1
|
-
import React from "react";
|
|
1
|
+
import * as React from "react";
|
|
2
2
|
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
Section,
|
|
14
|
-
Text,
|
|
15
|
-
} from "@react-email/components";
|
|
3
|
+
EmailLayout,
|
|
4
|
+
EmailHeader,
|
|
5
|
+
EmailFooter,
|
|
6
|
+
Heading,
|
|
7
|
+
Paragraph,
|
|
8
|
+
FeatureBox,
|
|
9
|
+
SmallText,
|
|
10
|
+
PrimaryButton,
|
|
11
|
+
DiscordButton,
|
|
12
|
+
} from "../components";
|
|
16
13
|
|
|
17
14
|
interface FirstWorkoutAssignedEmailProps {
|
|
18
15
|
clientName: string;
|
|
19
16
|
coachName: string;
|
|
20
17
|
programName: string;
|
|
21
18
|
workoutUrl: string;
|
|
22
|
-
websiteUrl
|
|
19
|
+
websiteUrl?: string;
|
|
23
20
|
}
|
|
24
21
|
|
|
25
|
-
const baseUrl = "https://tracked.gg/android-chrome-192x192.png";
|
|
26
|
-
|
|
27
22
|
export const FirstWorkoutAssignedEmail = ({
|
|
28
|
-
clientName,
|
|
29
|
-
coachName,
|
|
30
|
-
programName,
|
|
31
|
-
workoutUrl,
|
|
23
|
+
clientName = "Alex",
|
|
24
|
+
coachName = "Sarah Johnson",
|
|
25
|
+
programName = "8-Week Strength Builder",
|
|
26
|
+
workoutUrl = "tracked://app",
|
|
32
27
|
websiteUrl = "https://tracked.gg",
|
|
33
28
|
}: FirstWorkoutAssignedEmailProps) => {
|
|
34
29
|
return (
|
|
35
|
-
<
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
<
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
</Column>
|
|
72
|
-
</Row>
|
|
73
|
-
<Hr style={hr} />
|
|
74
|
-
|
|
75
|
-
<Text style={heading}>Your Training Journey Begins!</Text>
|
|
76
|
-
<Text style={paragraph}>
|
|
77
|
-
Hi {clientName}, {coachName} has created your personalized workout
|
|
78
|
-
program and it's ready for you to start.
|
|
79
|
-
</Text>
|
|
80
|
-
|
|
81
|
-
<Section style={infoBox}>
|
|
82
|
-
<Text style={infoHeading}>Program Details:</Text>
|
|
83
|
-
<Text style={infoText}>
|
|
84
|
-
<strong>Program:</strong> {programName}
|
|
85
|
-
</Text>
|
|
86
|
-
<Text style={infoText}>
|
|
87
|
-
<strong>Coach:</strong> {coachName}
|
|
88
|
-
</Text>
|
|
89
|
-
</Section>
|
|
90
|
-
|
|
91
|
-
<Text style={paragraph}>
|
|
92
|
-
Your coach has designed this program specifically for your goals.
|
|
93
|
-
Open the app to view your workouts and get started!
|
|
94
|
-
</Text>
|
|
95
|
-
|
|
96
|
-
<div
|
|
97
|
-
style={{
|
|
98
|
-
marginTop: "24px",
|
|
99
|
-
marginBottom: "24px",
|
|
100
|
-
textAlign: "left" as const,
|
|
101
|
-
}}
|
|
102
|
-
>
|
|
103
|
-
<a
|
|
104
|
-
href={workoutUrl}
|
|
105
|
-
style={{
|
|
106
|
-
backgroundColor: "#0f172a",
|
|
107
|
-
borderRadius: "8px",
|
|
108
|
-
fontSize: "16px",
|
|
109
|
-
fontWeight: "bold",
|
|
110
|
-
textDecoration: "none",
|
|
111
|
-
padding: "12px 32px",
|
|
112
|
-
display: "inline-block",
|
|
113
|
-
}}
|
|
114
|
-
>
|
|
115
|
-
<span style={{ color: "#ffffff", textDecoration: "none" }}>
|
|
116
|
-
View Your Program
|
|
117
|
-
</span>
|
|
118
|
-
</a>
|
|
119
|
-
</div>
|
|
120
|
-
|
|
121
|
-
<Text style={{ ...paragraph }}>
|
|
122
|
-
Remember to track each workout and communicate with your coach if
|
|
123
|
-
you have any questions or concerns.
|
|
124
|
-
</Text>
|
|
125
|
-
|
|
126
|
-
<div
|
|
127
|
-
style={{
|
|
128
|
-
textAlign: "left" as const,
|
|
129
|
-
margin: "24px 0",
|
|
130
|
-
}}
|
|
131
|
-
>
|
|
132
|
-
<a
|
|
133
|
-
href="https://www.discord.gg/trackedgg"
|
|
134
|
-
style={{
|
|
135
|
-
backgroundColor: "#5865F2",
|
|
136
|
-
borderRadius: "8px",
|
|
137
|
-
fontSize: "16px",
|
|
138
|
-
fontWeight: "bold",
|
|
139
|
-
textDecoration: "none",
|
|
140
|
-
padding: "12px 32px",
|
|
141
|
-
display: "inline-block",
|
|
142
|
-
}}
|
|
143
|
-
>
|
|
144
|
-
<span style={{ color: "#ffffff", textDecoration: "none" }}>
|
|
145
|
-
Join our Discord Community
|
|
146
|
-
</span>
|
|
147
|
-
</a>
|
|
148
|
-
</div>
|
|
149
|
-
|
|
150
|
-
<Hr style={hr} />
|
|
151
|
-
<Text style={footer}>
|
|
152
|
-
Copyright © Tracked Training Platform Inc. <br /> 9101 Horne
|
|
153
|
-
Street, Vancouver, BC
|
|
154
|
-
</Text>
|
|
155
|
-
|
|
156
|
-
<Container>
|
|
157
|
-
<Link
|
|
158
|
-
href={`${websiteUrl}/terms`}
|
|
159
|
-
style={{ ...footer, paddingRight: 10 }}
|
|
160
|
-
>
|
|
161
|
-
Terms
|
|
162
|
-
</Link>
|
|
163
|
-
<Link style={{ ...footer, paddingRight: 10 }}> | </Link>
|
|
164
|
-
<Link
|
|
165
|
-
href={`${websiteUrl}/privacy`}
|
|
166
|
-
style={{ ...footer, paddingRight: 10 }}
|
|
167
|
-
>
|
|
168
|
-
Privacy
|
|
169
|
-
</Link>
|
|
170
|
-
<Link style={{ ...footer, paddingRight: 10 }}> | </Link>
|
|
171
|
-
<Link
|
|
172
|
-
href={`${websiteUrl}/support`}
|
|
173
|
-
style={{ ...footer, paddingRight: 10 }}
|
|
174
|
-
>
|
|
175
|
-
Support
|
|
176
|
-
</Link>
|
|
177
|
-
</Container>
|
|
178
|
-
|
|
179
|
-
<Text style={footer}>
|
|
180
|
-
This is a service notification by the Tracked Training Platform.
|
|
181
|
-
</Text>
|
|
182
|
-
</Section>
|
|
183
|
-
</Container>
|
|
184
|
-
</Body>
|
|
185
|
-
</Html>
|
|
30
|
+
<EmailLayout
|
|
31
|
+
preview={`${coachName} has assigned your first workout program on Tracked`}
|
|
32
|
+
>
|
|
33
|
+
<EmailHeader />
|
|
34
|
+
|
|
35
|
+
<Heading>Your Training Journey Begins!</Heading>
|
|
36
|
+
<Paragraph>
|
|
37
|
+
Hi {clientName}, {coachName} has created your personalized workout
|
|
38
|
+
program and it's ready for you to start.
|
|
39
|
+
</Paragraph>
|
|
40
|
+
|
|
41
|
+
<FeatureBox title="Program Details:">
|
|
42
|
+
<SmallText>
|
|
43
|
+
<strong>Program:</strong> {programName}
|
|
44
|
+
</SmallText>
|
|
45
|
+
<SmallText style={{ marginTop: "4px" }}>
|
|
46
|
+
<strong>Coach:</strong> {coachName}
|
|
47
|
+
</SmallText>
|
|
48
|
+
</FeatureBox>
|
|
49
|
+
|
|
50
|
+
<Paragraph>
|
|
51
|
+
Your coach has designed this program specifically for your goals. Open
|
|
52
|
+
the app to view your workouts and get started!
|
|
53
|
+
</Paragraph>
|
|
54
|
+
|
|
55
|
+
<PrimaryButton href={workoutUrl}>View Your Program</PrimaryButton>
|
|
56
|
+
|
|
57
|
+
<Paragraph>
|
|
58
|
+
Remember to track each workout and communicate with your coach if you
|
|
59
|
+
have any questions or concerns.
|
|
60
|
+
</Paragraph>
|
|
61
|
+
|
|
62
|
+
<DiscordButton />
|
|
63
|
+
|
|
64
|
+
<EmailFooter websiteUrl={websiteUrl} />
|
|
65
|
+
</EmailLayout>
|
|
186
66
|
);
|
|
187
67
|
};
|
|
188
68
|
|
|
189
|
-
const main = {
|
|
190
|
-
backgroundColor: "#020617", // slate-950
|
|
191
|
-
fontFamily:
|
|
192
|
-
'-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Ubuntu,sans-serif',
|
|
193
|
-
};
|
|
194
|
-
|
|
195
|
-
const container = {
|
|
196
|
-
backgroundColor: "#020617", // slate-950
|
|
197
|
-
margin: "0 auto",
|
|
198
|
-
padding: "20px 0 48px",
|
|
199
|
-
marginBottom: "64px",
|
|
200
|
-
borderRadius: "8px",
|
|
201
|
-
};
|
|
202
|
-
|
|
203
|
-
const box = {
|
|
204
|
-
padding: "0 24px",
|
|
205
|
-
};
|
|
206
|
-
|
|
207
|
-
const hr = {
|
|
208
|
-
borderColor: "#4ade80", // green-400
|
|
209
|
-
margin: "24px 0",
|
|
210
|
-
borderWidth: "1px",
|
|
211
|
-
};
|
|
212
|
-
|
|
213
|
-
const paragraph = {
|
|
214
|
-
color: "#ffffff", // white
|
|
215
|
-
fontSize: "16px",
|
|
216
|
-
lineHeight: "24px",
|
|
217
|
-
textAlign: "left" as const,
|
|
218
|
-
};
|
|
219
|
-
|
|
220
|
-
const heading = {
|
|
221
|
-
color: "#ffffff", // white
|
|
222
|
-
fontSize: "24px",
|
|
223
|
-
lineHeight: "32px",
|
|
224
|
-
fontWeight: "bold",
|
|
225
|
-
marginBottom: "16px",
|
|
226
|
-
};
|
|
227
|
-
|
|
228
|
-
const infoBox = {
|
|
229
|
-
backgroundColor: "#1e293b",
|
|
230
|
-
padding: "16px 24px",
|
|
231
|
-
borderRadius: "8px",
|
|
232
|
-
margin: "24px 0",
|
|
233
|
-
};
|
|
234
|
-
|
|
235
|
-
const infoHeading = {
|
|
236
|
-
color: "#ffffff",
|
|
237
|
-
fontSize: "16px",
|
|
238
|
-
fontWeight: "bold",
|
|
239
|
-
marginBottom: "12px",
|
|
240
|
-
};
|
|
241
|
-
|
|
242
|
-
const infoText = {
|
|
243
|
-
color: "#e2e8f0",
|
|
244
|
-
fontSize: "14px",
|
|
245
|
-
lineHeight: "24px",
|
|
246
|
-
marginBottom: "4px",
|
|
247
|
-
};
|
|
248
|
-
|
|
249
|
-
const footer = {
|
|
250
|
-
color: "#94a3b8", // slate-400 for subtle footer text
|
|
251
|
-
fontSize: "12px",
|
|
252
|
-
lineHeight: "16px",
|
|
253
|
-
};
|
|
254
|
-
|
|
255
69
|
export default FirstWorkoutAssignedEmail;
|