@tracked/emails 0.1.4 → 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.
Files changed (53) hide show
  1. package/dist/emails/client-onboarded.d.ts +35 -0
  2. package/dist/emails/client-onboarded.d.ts.map +1 -0
  3. package/dist/emails/client-onboarded.js +152 -0
  4. package/dist/emails/client-onboarded.js.map +1 -0
  5. package/dist/emails/index.d.ts +1 -0
  6. package/dist/emails/index.d.ts.map +1 -1
  7. package/dist/emails/index.js +1 -0
  8. package/dist/emails/index.js.map +1 -1
  9. package/dist/emails/monthly-report.d.ts.map +1 -1
  10. package/dist/emails/monthly-report.js +31 -47
  11. package/dist/emails/monthly-report.js.map +1 -1
  12. package/dist/index.d.ts +2 -2
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +2 -2
  15. package/dist/index.js.map +1 -1
  16. package/package.json +20 -20
  17. package/src/components/content.tsx +351 -0
  18. package/src/components/index.ts +44 -0
  19. package/src/components/interactive.tsx +260 -0
  20. package/src/components/layout.tsx +217 -0
  21. package/src/components/tokens.ts +74 -0
  22. package/src/components/typography.tsx +148 -0
  23. package/src/emails/anniversary.tsx +133 -0
  24. package/src/emails/app-review-request.tsx +100 -0
  25. package/src/emails/bodyweight-goal-reached.tsx +202 -350
  26. package/src/emails/client-inactive-alert.tsx +130 -0
  27. package/src/emails/client-onboarded.tsx +272 -0
  28. package/src/emails/coach-invite.tsx +67 -250
  29. package/src/emails/coach-removed-client.tsx +36 -197
  30. package/src/emails/direct-message.tsx +69 -227
  31. package/src/emails/feature-discovery.tsx +82 -266
  32. package/src/emails/first-workout-assigned.tsx +52 -238
  33. package/src/emails/first-workout-completed.tsx +88 -294
  34. package/src/emails/inactive-reengagement.tsx +81 -0
  35. package/src/emails/index.tsx +1 -0
  36. package/src/emails/monthly-report.tsx +195 -525
  37. package/src/emails/new-follower.tsx +60 -238
  38. package/src/emails/nps-survey.tsx +149 -0
  39. package/src/emails/subscription-canceled.tsx +88 -294
  40. package/src/emails/support-email.tsx +33 -67
  41. package/src/emails/team-invite.tsx +47 -240
  42. package/src/emails/team-member-removed-email.tsx +23 -218
  43. package/src/emails/tracked-magic-link-activate.tsx +29 -237
  44. package/src/emails/tracked-magic-link.tsx +31 -251
  45. package/src/emails/week-one-checkin.tsx +108 -329
  46. package/src/emails/weekly-progress-digest.tsx +248 -0
  47. package/src/emails/welcome.tsx +58 -326
  48. package/src/index.ts +19 -2
  49. package/dist/emails/client-accepted-invitation.d.ts +0 -10
  50. package/dist/emails/client-accepted-invitation.d.ts.map +0 -1
  51. package/dist/emails/client-accepted-invitation.js +0 -99
  52. package/dist/emails/client-accepted-invitation.js.map +0 -1
  53. package/src/emails/client-accepted-invitation.tsx +0 -258
@@ -1,252 +1,44 @@
1
- import React from "react";
1
+ import * as React from "react";
2
2
  import {
3
- Body,
4
- Button,
5
- Column,
6
- Container,
7
- Head,
8
- Hr,
9
- Html,
10
- Img,
11
- Link,
12
- Preview,
13
- Row,
14
- Section,
15
- Text,
16
- } from "@react-email/components";
3
+ EmailLayout,
4
+ EmailHeader,
5
+ EmailFooter,
6
+ Paragraph,
7
+ PrimaryButton,
8
+ DiscordButton,
9
+ TextLink,
10
+ } from "../components";
17
11
 
18
12
  interface Props {
19
13
  activateButtonLink: string;
20
- websiteUrl: string;
14
+ websiteUrl?: string;
21
15
  }
22
16
 
23
- const baseUrl = "https://tracked.gg/android-chrome-192x192.png";
24
-
25
17
  export const TrackedMagicLinkActivate = ({
26
- activateButtonLink,
27
- websiteUrl,
18
+ activateButtonLink = "https://tracked.gg/auth/activate?token=abc123",
19
+ websiteUrl = "https://tracked.gg",
28
20
  }: Props) => (
29
- <Html>
30
- <Head>
31
- <meta name="color-scheme" content="light only" />
32
- <meta name="supported-color-schemes" content="light only" />
33
- </Head>
34
- <Preview>
35
- New activation requested for Tracked - The gym tracking platform
36
- </Preview>
37
- <Body style={main}>
38
- <Container style={container}>
39
- <Section style={box}>
40
- <Row style={{ marginBottom: "8px" }}>
41
- <Column style={{ width: "auto", verticalAlign: "middle" }}>
42
- <Img src={`${baseUrl}`} width="28" height="28" alt="Tracked" />
43
- </Column>
44
- <Column style={{ width: "auto", verticalAlign: "middle", paddingLeft: "4px" }}>
45
- <Text style={{
46
- fontSize: "28px",
47
- fontWeight: "900",
48
- fontFamily: "Raleway, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
49
- color: "#020617",
50
- margin: "0",
51
- lineHeight: "32px",
52
- letterSpacing: "0.5px",
53
- }}>
54
- TRACKED
55
- </Text>
56
- </Column>
57
- </Row>
58
- <Hr style={hr} />
59
- <Text style={paragraph}>Welcome to Tracked!</Text>
60
- <Text style={paragraph}>
61
- Press the button below to confirm your Tracked account email. You
62
- will be redirected to the app.
63
- </Text>
64
- <div style={{ marginTop: "24px", marginBottom: "24px", textAlign: "left" as const }}>
65
- <a
66
- href={activateButtonLink}
67
- style={{
68
- backgroundColor: "#0f172a",
69
- borderRadius: "8px",
70
- fontSize: "16px",
71
- fontWeight: "bold",
72
- textDecoration: "none",
73
- padding: "12px 32px",
74
- display: "inline-block",
75
- }}
76
- >
77
- <span style={{ color: "#ffffff", textDecoration: "none" }}>
78
- Confirm Email
79
- </span>
80
- </a>
81
- </div>
82
-
83
- <Text style={{ ...paragraph }}>
84
- If this email was not expected, please ignore it. You can learn more
85
- about the Tracked Training Platform by visiting our{" "}
86
- <Link style={anchor} href={websiteUrl}>
87
- website
88
- </Link>
89
- .
90
- </Text>
21
+ <EmailLayout preview="New activation requested for Tracked - The gym tracking platform">
22
+ <EmailHeader />
91
23
 
92
- <Row style={row}>
93
- <Column style={column}>
94
- <Button
95
- style={appButton}
96
- href="https://apps.apple.com/app/tracked-training/id6450913418"
97
- >
98
- <Img
99
- src="https://cdn.trckd.ca/assets/app-store-black.png"
100
- alt="Download on the App Store"
101
- style={img}
102
- />
103
- </Button>
104
- </Column>
105
- <Column style={column}>
106
- <Button
107
- style={appButton}
108
- href="https://play.google.com/store/apps/details?id=com.tracked.mobile"
109
- >
110
- <Img
111
- src="https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png"
112
- alt="Google Play"
113
- style={img}
114
- />
115
- </Button>
116
- </Column>
117
- </Row>
24
+ <Paragraph>Welcome to Tracked!</Paragraph>
25
+ <Paragraph>
26
+ Press the button below to confirm your Tracked account email. You will be
27
+ redirected to the app.
28
+ </Paragraph>
118
29
 
119
- <div
120
- style={{
121
- textAlign: "left" as const,
122
- margin: "24px 0",
123
- }}
124
- >
125
- <a
126
- href="https://www.discord.gg/trackedgg"
127
- style={{
128
- backgroundColor: "#5865F2",
129
- borderRadius: "8px",
130
- fontSize: "16px",
131
- fontWeight: "bold",
132
- textDecoration: "none",
133
- padding: "12px 32px",
134
- display: "inline-block",
135
- }}
136
- >
137
- <span style={{ color: "#ffffff", textDecoration: "none" }}>
138
- Join our Discord Community
139
- </span>
140
- </a>
141
- </div>
30
+ <PrimaryButton href={activateButtonLink}>Confirm Email</PrimaryButton>
142
31
 
143
- <Hr style={hr} />
144
- <Text style={footer}>
145
- Copyright © Tracked Training Platform Inc. <br /> 9101 Horne
146
- Street, Vancouver, BC
147
- </Text>
32
+ <Paragraph>
33
+ If this email was not expected, please ignore it. You can learn more about
34
+ the Tracked Training Platform by visiting our{" "}
35
+ <TextLink href={websiteUrl}>website</TextLink>.
36
+ </Paragraph>
148
37
 
149
- <Container>
150
- <Link
151
- href="https://tracked.gg/terms"
152
- style={{ ...footer, paddingRight: 10 }}
153
- >
154
- Terms
155
- </Link>
156
- <Link style={{ ...footer, paddingRight: 10 }}> | </Link>
157
- <Link
158
- href="https://tracked.gg/privacy"
159
- style={{ ...footer, paddingRight: 10 }}
160
- >
161
- Privacy
162
- </Link>
163
- <Link style={{ ...footer, paddingRight: 10 }}> | </Link>
164
- <Link
165
- href="https://tracked.gg/support"
166
- style={{ ...footer, paddingRight: 10 }}
167
- >
168
- Support
169
- </Link>
170
- </Container>
38
+ <DiscordButton />
171
39
 
172
- <Text style={footer}>
173
- This is a service notification by the Tracked Training Platform.
174
- </Text>
175
- </Section>
176
- </Container>
177
- </Body>
178
- </Html>
40
+ <EmailFooter websiteUrl={websiteUrl} />
41
+ </EmailLayout>
179
42
  );
180
43
 
181
- const main = {
182
- backgroundColor: "#020617", // slate-950
183
- fontFamily:
184
- '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Ubuntu,sans-serif',
185
- };
186
-
187
- const container = {
188
- backgroundColor: "#020617", // slate-950
189
- margin: "0 auto",
190
- padding: "20px 0 48px",
191
- marginBottom: "64px",
192
- borderRadius: "8px",
193
- };
194
-
195
- const box = {
196
- padding: "0 24px",
197
- };
198
-
199
- const hr = {
200
- borderColor: "#4ade80", // green-400
201
- margin: "24px 0",
202
- borderWidth: "1px",
203
- };
204
-
205
- const anchor = {
206
- color: "#4ade80", // green-400
207
- textDecoration: "underline",
208
- };
209
-
210
- const paragraph = {
211
- color: "#ffffff", // white
212
- fontSize: "16px",
213
- lineHeight: "24px",
214
- textAlign: "left" as const,
215
- };
216
-
217
- const row = {
218
- display: "flex",
219
- flexDirection: "row" as const,
220
- };
221
-
222
- const column = {
223
- flex: "0 0 48%",
224
- "@media (maxWidth: 600px)": {
225
- flex: "0 0 100%",
226
- marginBottom: "10px",
227
- },
228
- };
229
-
230
- const img = {
231
- maxWidth: "100%",
232
- height: "auto",
233
- };
234
-
235
- const appButton = {
236
- backgroundColor: "transparent",
237
- borderRadius: "8px",
238
- color: "#ffffff", // white
239
- fontSize: "16px",
240
- fontWeight: "bold",
241
- textDecoration: "none",
242
- textAlign: "center" as const,
243
- display: "block",
244
- width: "100%",
245
- maxWidth: "150px",
246
- };
247
-
248
- const footer = {
249
- color: "#94a3b8", // slate-400 for subtle footer text
250
- fontSize: "12px",
251
- lineHeight: "16px",
252
- };
44
+ export default TrackedMagicLinkActivate;
@@ -1,264 +1,44 @@
1
- import React from "react";
1
+ import * as React from "react";
2
2
  import {
3
- Body,
4
- Button,
5
- Column,
6
- Container,
7
- Head,
8
- Hr,
9
- Html,
10
- Img,
11
- Link,
12
- Preview,
13
- Row,
14
- Section,
15
- Text,
16
- } from "@react-email/components";
3
+ EmailLayout,
4
+ EmailHeader,
5
+ EmailFooter,
6
+ Paragraph,
7
+ PrimaryButton,
8
+ DiscordButton,
9
+ TextLink,
10
+ } from "../components";
17
11
 
18
12
  interface Props {
19
13
  loginButtonLink: string;
20
- websiteUrl: string;
14
+ websiteUrl?: string;
21
15
  }
22
16
 
23
- const baseUrl = "https://tracked.gg/android-chrome-192x192.png";
17
+ export const TrackedMagicLink = ({
18
+ loginButtonLink = "https://tracked.gg/auth/login?token=abc123",
19
+ websiteUrl = "https://tracked.gg",
20
+ }: Props) => (
21
+ <EmailLayout preview="New login requested for Tracked - The gym tracking platform">
22
+ <EmailHeader />
24
23
 
25
- export const TrackedMagicLink = ({ loginButtonLink, websiteUrl }: Props) => (
26
- <Html>
27
- <Head>
28
- <meta name="color-scheme" content="light only" />
29
- <meta name="supported-color-schemes" content="light only" />
30
- </Head>
31
- <Preview>
32
- New login requested for Tracked - The gym tracking platform
33
- </Preview>
34
- <Body style={main}>
35
- <Container style={container}>
36
- <Section style={box}>
37
- <Row style={{ marginBottom: "8px" }}>
38
- <Column style={{ width: "auto", verticalAlign: "middle" }}>
39
- <Img src={`${baseUrl}`} width="28" height="28" alt="Tracked" />
40
- </Column>
41
- <Column
42
- style={{
43
- width: "auto",
44
- verticalAlign: "middle",
45
- paddingLeft: "4px",
46
- }}
47
- >
48
- <Text
49
- style={{
50
- fontSize: "28px",
51
- fontWeight: "900",
52
- fontFamily:
53
- "Raleway, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
54
- color: "#020617",
55
- margin: "0",
56
- lineHeight: "32px",
57
- letterSpacing: "0.5px",
58
- }}
59
- >
60
- TRACKED
61
- </Text>
62
- </Column>
63
- </Row>
64
- <Hr style={hr} />
65
- <Text style={paragraph}>Welcome to Tracked!</Text>
66
- <Text style={paragraph}>
67
- To get started, press the button below to log in to your Tracked
68
- account. You will be redirected to the app.
69
- </Text>
70
- <div
71
- style={{
72
- marginTop: "24px",
73
- marginBottom: "24px",
74
- textAlign: "left" as const,
75
- }}
76
- >
77
- <a
78
- href={loginButtonLink}
79
- style={{
80
- backgroundColor: "#0f172a",
81
- borderRadius: "8px",
82
- fontSize: "16px",
83
- fontWeight: "bold",
84
- textDecoration: "none",
85
- padding: "12px 32px",
86
- display: "inline-block",
87
- }}
88
- >
89
- <span style={{ color: "#ffffff", textDecoration: "none" }}>
90
- Login to Tracked
91
- </span>
92
- </a>
93
- </div>
24
+ <Paragraph>Welcome to Tracked!</Paragraph>
25
+ <Paragraph>
26
+ To get started, press the button below to log in to your Tracked account.
27
+ You will be redirected to the app.
28
+ </Paragraph>
94
29
 
95
- <Text style={{ ...paragraph }}>
96
- If this email was not expected, please ignore it. You can learn more
97
- about the Tracked Training Platform by visiting our{" "}
98
- <Link style={anchor} href={websiteUrl}>
99
- website
100
- </Link>
101
- .
102
- </Text>
30
+ <PrimaryButton href={loginButtonLink}>Login to Tracked</PrimaryButton>
103
31
 
104
- <Row style={row}>
105
- <Column style={column}>
106
- <Button
107
- style={appButton}
108
- href="https://apps.apple.com/app/tracked-training/id6450913418"
109
- >
110
- <Img
111
- src="https://cdn.trckd.ca/assets/app-store-black.png"
112
- alt="Download on the App Store"
113
- style={img}
114
- />
115
- </Button>
116
- </Column>
117
- <Column style={column}>
118
- <Button
119
- style={appButton}
120
- href="https://play.google.com/store/apps/details?id=com.tracked.mobile"
121
- >
122
- <Img
123
- src="https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png"
124
- alt="Google Play"
125
- style={img}
126
- />
127
- </Button>
128
- </Column>
129
- </Row>
32
+ <Paragraph>
33
+ If this email was not expected, please ignore it. You can learn more about
34
+ the Tracked Training Platform by visiting our{" "}
35
+ <TextLink href={websiteUrl}>website</TextLink>.
36
+ </Paragraph>
130
37
 
131
- <div
132
- style={{
133
- textAlign: "left" as const,
134
- margin: "24px 0",
135
- }}
136
- >
137
- <a
138
- href="https://www.discord.gg/trackedgg"
139
- style={{
140
- backgroundColor: "#5865F2",
141
- borderRadius: "8px",
142
- fontSize: "16px",
143
- fontWeight: "bold",
144
- textDecoration: "none",
145
- padding: "12px 32px",
146
- display: "inline-block",
147
- }}
148
- >
149
- <span style={{ color: "#ffffff", textDecoration: "none" }}>
150
- Join our Discord Community
151
- </span>
152
- </a>
153
- </div>
38
+ <DiscordButton />
154
39
 
155
- <Hr style={hr} />
156
- <Text style={footer}>
157
- Copyright © Tracked Training Platform Inc. <br /> 9101 Horne
158
- Street, Vancouver, BC
159
- </Text>
160
-
161
- <Container>
162
- <Link
163
- href="https://tracked.gg/terms"
164
- style={{ ...footer, paddingRight: 10 }}
165
- >
166
- Terms
167
- </Link>
168
- <Link style={{ ...footer, paddingRight: 10 }}> | </Link>
169
- <Link
170
- href="https://tracked.gg/privacy"
171
- style={{ ...footer, paddingRight: 10 }}
172
- >
173
- Privacy
174
- </Link>
175
- <Link style={{ ...footer, paddingRight: 10 }}> | </Link>
176
- <Link
177
- href="https://tracked.gg/support"
178
- style={{ ...footer, paddingRight: 10 }}
179
- >
180
- Support
181
- </Link>
182
- </Container>
183
-
184
- <Text style={footer}>
185
- This is a service notification by the Tracked Training Platform.
186
- </Text>
187
- </Section>
188
- </Container>
189
- </Body>
190
- </Html>
40
+ <EmailFooter websiteUrl={websiteUrl} />
41
+ </EmailLayout>
191
42
  );
192
43
 
193
- const main = {
194
- backgroundColor: "#020617", // slate-950
195
- fontFamily:
196
- '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Ubuntu,sans-serif',
197
- };
198
-
199
- const container = {
200
- backgroundColor: "#020617", // slate-950
201
- margin: "0 auto",
202
- padding: "20px 0 48px",
203
- marginBottom: "64px",
204
- borderRadius: "8px",
205
- };
206
-
207
- const box = {
208
- padding: "0 24px",
209
- };
210
-
211
- const row = {
212
- display: "flex",
213
- flexDirection: "row" as const,
214
- };
215
-
216
- const column = {
217
- flex: "0 0 48%",
218
- "@media (maxWidth: 600px)": {
219
- flex: "0 0 100%",
220
- marginBottom: "10px",
221
- },
222
- };
223
-
224
- const img = {
225
- maxWidth: "100%",
226
- height: "auto",
227
- };
228
-
229
- const appButton = {
230
- backgroundColor: "transparent",
231
- borderRadius: "8px",
232
- color: "#ffffff", // white
233
- fontSize: "16px",
234
- fontWeight: "bold",
235
- textDecoration: "none",
236
- textAlign: "center" as const,
237
- display: "block",
238
- width: "100%",
239
- maxWidth: "150px",
240
- };
241
-
242
- const hr = {
243
- borderColor: "#4ade80", // green-400
244
- margin: "24px 0",
245
- borderWidth: "1px",
246
- };
247
-
248
- const paragraph = {
249
- color: "#ffffff", // white
250
- fontSize: "16px",
251
- lineHeight: "24px",
252
- textAlign: "left" as const,
253
- };
254
-
255
- const anchor = {
256
- color: "#4ade80", // green-400
257
- textDecoration: "underline",
258
- };
259
-
260
- const footer = {
261
- color: "#94a3b8", // slate-400 for subtle footer text
262
- fontSize: "12px",
263
- lineHeight: "16px",
264
- };
44
+ export default TrackedMagicLink;