react-email 1.0.11 → 1.1.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 (219) hide show
  1. package/.eslintrc.js +4 -0
  2. package/.prettierrc.js +3 -0
  3. package/base/.next/build-manifest.json +35 -0
  4. package/{preview/.next/cache/webpack/client-development/11.pack → base/.next/cache/webpack/client-development/0.pack} +0 -0
  5. package/base/.next/cache/webpack/client-development/1.pack +0 -0
  6. package/base/.next/cache/webpack/client-development/10.pack +0 -0
  7. package/base/.next/cache/webpack/client-development/11.pack +0 -0
  8. package/base/.next/cache/webpack/client-development/2.pack +0 -0
  9. package/base/.next/cache/webpack/client-development/3.pack +0 -0
  10. package/base/.next/cache/webpack/client-development/4.pack +0 -0
  11. package/base/.next/cache/webpack/client-development/5.pack +0 -0
  12. package/base/.next/cache/webpack/client-development/6.pack +0 -0
  13. package/base/.next/cache/webpack/client-development/7.pack +0 -0
  14. package/base/.next/cache/webpack/client-development/8.pack +0 -0
  15. package/base/.next/cache/webpack/client-development/9.pack +0 -0
  16. package/base/.next/cache/webpack/client-development/index.pack +0 -0
  17. package/base/.next/cache/webpack/client-development/index.pack.old +0 -0
  18. package/base/.next/cache/webpack/client-development-fallback/0.pack +0 -0
  19. package/base/.next/cache/webpack/client-development-fallback/1.pack +0 -0
  20. package/base/.next/cache/webpack/client-development-fallback/index.pack +0 -0
  21. package/base/.next/cache/webpack/client-development-fallback/index.pack.old +0 -0
  22. package/base/.next/cache/webpack/server-development/0.pack +0 -0
  23. package/base/.next/cache/webpack/server-development/1.pack +0 -0
  24. package/base/.next/cache/webpack/server-development/10.pack +0 -0
  25. package/base/.next/cache/webpack/server-development/11.pack +0 -0
  26. package/base/.next/cache/webpack/server-development/12.pack +0 -0
  27. package/base/.next/cache/webpack/server-development/13.pack +0 -0
  28. package/base/.next/cache/webpack/server-development/2.pack +0 -0
  29. package/base/.next/cache/webpack/server-development/3.pack +0 -0
  30. package/base/.next/cache/webpack/server-development/4.pack +0 -0
  31. package/base/.next/cache/webpack/server-development/5.pack +0 -0
  32. package/base/.next/cache/webpack/server-development/6.pack +0 -0
  33. package/base/.next/cache/webpack/server-development/7.pack +0 -0
  34. package/base/.next/cache/webpack/server-development/8.pack +0 -0
  35. package/base/.next/cache/webpack/server-development/9.pack +0 -0
  36. package/base/.next/cache/webpack/server-development/index.pack +0 -0
  37. package/base/.next/cache/webpack/server-development/index.pack.old +0 -0
  38. package/base/.next/package.json +1 -0
  39. package/base/.next/react-loadable-manifest.json +1 -0
  40. package/base/.next/server/emails_notion-magic-link_tsx.js +25 -0
  41. package/base/.next/server/emails_plaid-verify-identity_tsx.js +25 -0
  42. package/base/.next/server/emails_stripe-welcome_tsx.js +25 -0
  43. package/base/.next/server/emails_vercel-invite-user_tsx.js +25 -0
  44. package/base/.next/server/middleware-build-manifest.js +1 -0
  45. package/{preview → base}/.next/server/middleware-manifest.json +2 -2
  46. package/base/.next/server/middleware-react-loadable-manifest.js +1 -0
  47. package/base/.next/server/pages/[...path].js +386 -0
  48. package/base/.next/server/pages/_app.js +145 -0
  49. package/base/.next/server/pages/_document.js +211 -0
  50. package/base/.next/server/pages/_error.js +56 -0
  51. package/base/.next/server/pages/api/[...path].js +283 -0
  52. package/base/.next/server/pages-manifest.json +5 -0
  53. package/base/.next/server/webpack-api-runtime.js +168 -0
  54. package/base/.next/server/webpack-runtime.js +168 -0
  55. package/base/.next/static/chunks/amp.js +872 -0
  56. package/base/.next/static/chunks/main.js +1166 -0
  57. package/base/.next/static/chunks/pages/[...path].js +904 -0
  58. package/base/.next/static/chunks/pages/_app.js +467 -0
  59. package/base/.next/static/chunks/pages/_error.js +28 -0
  60. package/base/.next/static/chunks/polyfills.js +1 -0
  61. package/base/.next/static/chunks/react-refresh.js +62 -0
  62. package/base/.next/static/chunks/webpack.js +1242 -0
  63. package/base/.next/static/development/_buildManifest.js +1 -0
  64. package/base/.next/static/development/_ssgManifest.js +1 -0
  65. package/base/.next/static/webpack/94b31eaefc86ea7b.webpack.hot-update.json +1 -0
  66. package/base/.next/static/webpack/webpack.94b31eaefc86ea7b.hot-update.js +36 -0
  67. package/base/.next/trace +49 -0
  68. package/base/emails/notion-magic-link.tsx +133 -0
  69. package/base/emails/plaid-verify-identity.tsx +133 -0
  70. package/base/emails/stripe-welcome.tsx +152 -0
  71. package/base/emails/vercel-invite-user.tsx +193 -0
  72. package/base/yarn.lock +2861 -0
  73. package/dist/_preview/components.d.ts +4 -0
  74. package/dist/_preview/components.js +41 -0
  75. package/dist/_preview/pages.d.ts +9 -0
  76. package/dist/_preview/pages.js +22 -0
  77. package/dist/_preview/root.d.ts +4 -0
  78. package/dist/_preview/root.js +25 -0
  79. package/dist/_preview/styles.d.ts +4 -0
  80. package/dist/_preview/styles.js +9 -0
  81. package/dist/_preview/utils.d.ts +4 -0
  82. package/dist/_preview/utils.js +17 -0
  83. package/dist/commands/dev.d.ts +1 -0
  84. package/dist/commands/dev.js +135 -0
  85. package/dist/index.d.ts +2 -0
  86. package/dist/index.js +2 -29
  87. package/dist/utils/check-directory-exist.d.ts +1 -0
  88. package/dist/utils/check-directory-exist.js +9 -0
  89. package/dist/utils/check-empty-directory.d.ts +1 -0
  90. package/dist/utils/check-empty-directory.js +12 -0
  91. package/dist/utils/contants.d.ts +11 -0
  92. package/dist/utils/contants.js +24 -0
  93. package/dist/utils/create-directory.d.ts +1 -0
  94. package/dist/utils/create-directory.js +9 -0
  95. package/dist/utils/watcher.d.ts +2 -0
  96. package/dist/utils/watcher.js +22 -0
  97. package/package.json +6 -6
  98. package/preview/package.json +3 -18
  99. package/preview/src/components/layout.tsx +9 -44
  100. package/preview/src/components/sidebar.tsx +70 -66
  101. package/preview/src/components/topbar.tsx +44 -2
  102. package/preview/src/pages/_app.tsx +0 -6
  103. package/preview/src/pages/index.tsx +21 -4
  104. package/preview/src/pages/preview/[slug].tsx +13 -2
  105. package/scripts/prepare-preview.ts +177 -0
  106. package/source/_preview/components.ts +47 -0
  107. package/source/_preview/pages.ts +23 -0
  108. package/source/_preview/root.ts +27 -0
  109. package/source/_preview/styles.ts +6 -0
  110. package/source/_preview/utils.ts +16 -0
  111. package/source/commands/dev.ts +165 -0
  112. package/source/index.ts +16 -0
  113. package/source/utils/check-directory-exist.ts +4 -0
  114. package/source/utils/check-empty-directory.ts +6 -0
  115. package/source/utils/contants.ts +38 -0
  116. package/source/utils/create-directory.ts +4 -0
  117. package/source/utils/watcher.ts +22 -0
  118. package/tsconfig.json +36 -0
  119. package/preview/.next/BUILD_ID +0 -1
  120. package/preview/.next/build-manifest.json +0 -42
  121. package/preview/.next/cache/.tsbuildinfo +0 -1
  122. package/preview/.next/cache/next-server.js.nft.json +0 -290
  123. package/preview/.next/cache/webpack/client-development/0.pack +0 -0
  124. package/preview/.next/cache/webpack/client-development/1.pack +0 -0
  125. package/preview/.next/cache/webpack/client-development/10.pack +0 -0
  126. package/preview/.next/cache/webpack/client-development/12.pack +0 -0
  127. package/preview/.next/cache/webpack/client-development/13.pack +0 -0
  128. package/preview/.next/cache/webpack/client-development/14.pack +0 -0
  129. package/preview/.next/cache/webpack/client-development/15.pack +0 -0
  130. package/preview/.next/cache/webpack/client-development/16.pack +0 -0
  131. package/preview/.next/cache/webpack/client-development/2.pack +0 -0
  132. package/preview/.next/cache/webpack/client-development/3.pack +0 -0
  133. package/preview/.next/cache/webpack/client-development/4.pack +0 -0
  134. package/preview/.next/cache/webpack/client-development/5.pack +0 -0
  135. package/preview/.next/cache/webpack/client-development/6.pack +0 -0
  136. package/preview/.next/cache/webpack/client-development/7.pack +0 -0
  137. package/preview/.next/cache/webpack/client-development/8.pack +0 -0
  138. package/preview/.next/cache/webpack/client-development/9.pack +0 -0
  139. package/preview/.next/cache/webpack/client-development/index.pack +0 -0
  140. package/preview/.next/cache/webpack/client-development/index.pack.old +0 -0
  141. package/preview/.next/cache/webpack/client-production/0.pack +0 -0
  142. package/preview/.next/cache/webpack/client-production/index.pack +0 -0
  143. package/preview/.next/cache/webpack/server-development/0.pack +0 -0
  144. package/preview/.next/cache/webpack/server-development/1.pack +0 -0
  145. package/preview/.next/cache/webpack/server-development/10.pack +0 -0
  146. package/preview/.next/cache/webpack/server-development/11.pack +0 -0
  147. package/preview/.next/cache/webpack/server-development/12.pack +0 -0
  148. package/preview/.next/cache/webpack/server-development/13.pack +0 -0
  149. package/preview/.next/cache/webpack/server-development/14.pack +0 -0
  150. package/preview/.next/cache/webpack/server-development/15.pack +0 -0
  151. package/preview/.next/cache/webpack/server-development/16.pack +0 -0
  152. package/preview/.next/cache/webpack/server-development/2.pack +0 -0
  153. package/preview/.next/cache/webpack/server-development/3.pack +0 -0
  154. package/preview/.next/cache/webpack/server-development/4.pack +0 -0
  155. package/preview/.next/cache/webpack/server-development/5.pack +0 -0
  156. package/preview/.next/cache/webpack/server-development/6.pack +0 -0
  157. package/preview/.next/cache/webpack/server-development/7.pack +0 -0
  158. package/preview/.next/cache/webpack/server-development/8.pack +0 -0
  159. package/preview/.next/cache/webpack/server-development/9.pack +0 -0
  160. package/preview/.next/cache/webpack/server-development/index.pack +0 -0
  161. package/preview/.next/cache/webpack/server-development/index.pack.old +0 -0
  162. package/preview/.next/cache/webpack/server-production/0.pack +0 -0
  163. package/preview/.next/cache/webpack/server-production/index.pack +0 -0
  164. package/preview/.next/export-marker.json +0 -6
  165. package/preview/.next/images-manifest.json +0 -22
  166. package/preview/.next/next-server.js.nft.json +0 -290
  167. package/preview/.next/package.json +0 -3
  168. package/preview/.next/prerender-manifest.json +0 -24
  169. package/preview/.next/react-loadable-manifest.json +0 -1
  170. package/preview/.next/required-server-files.json +0 -113
  171. package/preview/.next/routes-manifest.json +0 -48
  172. package/preview/.next/server/chunks/664.js +0 -3836
  173. package/preview/.next/server/chunks/676.js +0 -35
  174. package/preview/.next/server/chunks/759.js +0 -1548
  175. package/preview/.next/server/chunks/font-manifest.json +0 -6
  176. package/preview/.next/server/font-loader-manifest.js +0 -4
  177. package/preview/.next/server/font-loader-manifest.json +0 -6
  178. package/preview/.next/server/font-manifest.json +0 -6
  179. package/preview/.next/server/middleware-build-manifest.js +0 -42
  180. package/preview/.next/server/middleware-react-loadable-manifest.js +0 -1
  181. package/preview/.next/server/pages/404.html +0 -12
  182. package/preview/.next/server/pages/500.html +0 -12
  183. package/preview/.next/server/pages/_app.js +0 -115
  184. package/preview/.next/server/pages/_app.js.nft.json +0 -29
  185. package/preview/.next/server/pages/_document.js +0 -1335
  186. package/preview/.next/server/pages/_document.js.nft.json +0 -33
  187. package/preview/.next/server/pages/_error.js +0 -195
  188. package/preview/.next/server/pages/_error.js.nft.json +0 -23
  189. package/preview/.next/server/pages/index.html +0 -1
  190. package/preview/.next/server/pages/index.js +0 -310
  191. package/preview/.next/server/pages/index.js.nft.json +0 -132
  192. package/preview/.next/server/pages/index.json +0 -1
  193. package/preview/.next/server/pages/preview/[slug].html +0 -1
  194. package/preview/.next/server/pages/preview/[slug].js +0 -388
  195. package/preview/.next/server/pages/preview/[slug].js.nft.json +0 -179
  196. package/preview/.next/server/pages-manifest.json +0 -8
  197. package/preview/.next/server/webpack-runtime.js +0 -213
  198. package/preview/.next/static/cY9PAzmXyKOoOW2gY4i5N/_buildManifest.js +0 -17
  199. package/preview/.next/static/cY9PAzmXyKOoOW2gY4i5N/_ssgManifest.js +0 -2
  200. package/preview/.next/static/chunks/727-0b09744222e89df8.js +0 -4402
  201. package/preview/.next/static/chunks/759-cdb5c7b41d03d871.js +0 -1135
  202. package/preview/.next/static/chunks/framework-3b5a00d5d7e8d93b.js +0 -9188
  203. package/preview/.next/static/chunks/main-50de763069eba4b2.js +0 -5078
  204. package/preview/.next/static/chunks/pages/_app-76f7305c0a91d681.js +0 -116
  205. package/preview/.next/static/chunks/pages/_error-8353112a01355ec2.js +0 -19
  206. package/preview/.next/static/chunks/pages/index-cd725955236a17bd.js +0 -44
  207. package/preview/.next/static/chunks/pages/preview/[slug]-e24c537be91754b2.js +0 -57
  208. package/preview/.next/static/chunks/polyfills-c67a75d1b6f99dc8.js +0 -6342
  209. package/preview/.next/static/chunks/webpack-0b5d8249fb15f5f3.js +0 -141
  210. package/preview/.next/static/css/8543b02f1dad7784.css +0 -3
  211. package/preview/.next/static/media/2aaf0723e720e8b9.p.woff2 +0 -0
  212. package/preview/.next/static/media/9c4f34569c9b36ca.woff2 +0 -0
  213. package/preview/.next/static/media/ae9ae6716d4f8bf8.woff2 +0 -0
  214. package/preview/.next/static/media/b1db3e28af9ef94a.woff2 +0 -0
  215. package/preview/.next/static/media/b967158bc7d7a9fb.woff2 +0 -0
  216. package/preview/.next/static/media/c0f5ec5bbf5913b7.woff2 +0 -0
  217. package/preview/.next/static/media/d1d9458b69004127.woff2 +0 -0
  218. package/preview/.next/trace +0 -7
  219. package/preview/yarn.lock +0 -1434
@@ -0,0 +1,133 @@
1
+ import { Code } from '@react-email/code';
2
+ import { Container } from '@react-email/container';
3
+ import { Head } from '@react-email/head';
4
+ import { Heading } from '@react-email/heading';
5
+ import { Html } from '@react-email/html';
6
+ import { Img } from '@react-email/img';
7
+ import { Link } from '@react-email/link';
8
+ import { Preview } from '@react-email/preview';
9
+ import { Section } from '@react-email/section';
10
+ import { Text } from '@react-email/text';
11
+ import * as React from 'react';
12
+
13
+ export default function Email() {
14
+ return (
15
+ <Html>
16
+ <Head />
17
+ <Preview>Log in with this magic link</Preview>
18
+ <Section>
19
+ <Container style={container}>
20
+ <Heading as="h1" style={h1}>
21
+ Login
22
+ </Heading>
23
+ <Link
24
+ href="https://notion.so"
25
+ target="_blank"
26
+ style={{
27
+ ...link,
28
+ display: 'block',
29
+ marginBottom: '16px',
30
+ }}
31
+ >
32
+ Click here to log in with this magic link
33
+ </Link>
34
+ <Text style={{ ...text, marginBottom: '14px' }}>
35
+ Or, copy and paste this temporary login code:
36
+ </Text>
37
+ <Code style={code}>sparo-ndigo-amurt-secan</Code>
38
+ <Text
39
+ style={{
40
+ ...text,
41
+ color: '#ababab',
42
+ marginTop: '14px',
43
+ marginBottom: '16px',
44
+ }}
45
+ >
46
+ If you didn&apos;t try to login, you can safely ignore this email.
47
+ </Text>
48
+ <Text
49
+ style={{
50
+ ...text,
51
+ color: '#ababab',
52
+ marginTop: '12px',
53
+ marginBottom: '38px',
54
+ }}
55
+ >
56
+ Hint: You can set a permanent password in Settings & members → My
57
+ account.
58
+ </Text>
59
+ <Img
60
+ src="https://assets.react.email/demo/notion-logo.png"
61
+ width="32"
62
+ height="32"
63
+ alt="Notion's Logo"
64
+ />
65
+ <Text style={footer}>
66
+ <Link
67
+ href="https://notion.so"
68
+ target="_blank"
69
+ style={{ ...link, color: '#898989' }}
70
+ >
71
+ Notion.so
72
+ </Link>
73
+ , the all-in-one-workspace
74
+ <br />
75
+ for your notes, tasks, wikis, and databases.
76
+ </Text>
77
+ </Container>
78
+ </Section>
79
+ </Html>
80
+ );
81
+ }
82
+
83
+ const container = {
84
+ paddingLeft: '12px',
85
+ paddingRight: '12px',
86
+ margin: '0 auto',
87
+ };
88
+
89
+ const h1 = {
90
+ color: '#333',
91
+ fontFamily:
92
+ "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif",
93
+ fontSize: '24px',
94
+ fontWeight: 'bold',
95
+ margin: '123px 0 44px',
96
+ padding: '0',
97
+ };
98
+
99
+ const link = {
100
+ color: '#2754C5',
101
+ fontFamily:
102
+ "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif",
103
+ fontSize: '14px',
104
+ textDecoration: 'underline',
105
+ };
106
+
107
+ const text = {
108
+ color: '#333',
109
+ fontFamily:
110
+ "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif",
111
+ fontSize: '14px',
112
+ margin: '24px 0',
113
+ };
114
+
115
+ const footer = {
116
+ color: '#898989',
117
+ fontFamily:
118
+ "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif",
119
+ fontSize: '12px',
120
+ lineHeight: '22px',
121
+ marginTop: '12px',
122
+ marginBottom: '24px',
123
+ };
124
+
125
+ const code = {
126
+ display: 'inline-block',
127
+ padding: '16px 4.5%',
128
+ width: '90.5%',
129
+ backgroundColor: '#f4f4f4',
130
+ borderRadius: '5px',
131
+ border: '1px solid #eee',
132
+ color: '#333',
133
+ };
@@ -0,0 +1,133 @@
1
+ import { Container } from '@react-email/container';
2
+ import { Head } from '@react-email/head';
3
+ import { Section } from '@react-email/section';
4
+ import { Html } from '@react-email/html';
5
+ import { Img } from '@react-email/img';
6
+ import { Link } from '@react-email/link';
7
+ import { Text } from '@react-email/text';
8
+ import * as React from 'react';
9
+
10
+ export default function Email() {
11
+ return (
12
+ <Html>
13
+ <Head />
14
+ <Container style={container}>
15
+ <Img
16
+ src="https://assets.react.email/demo/plaid.png"
17
+ width="212"
18
+ height="88"
19
+ alt="Plaid"
20
+ style={logo}
21
+ />
22
+ <Text style={tertiary}>Verify Your Identity</Text>
23
+ <Text style={secondary}>
24
+ Enter the following code to finish linking Venmo.
25
+ </Text>
26
+ <Section style={codeContainer}>
27
+ <Text style={code}>144833</Text>
28
+ </Section>
29
+ <Text style={paragraph}>Not expecting this email?</Text>
30
+ <Text style={paragraph}>
31
+ Contact{' '}
32
+ <Link href="mailto:login@plaid.com" style={link}>
33
+ login@plaid.com
34
+ </Link>{' '}
35
+ if you did not request this code.
36
+ </Text>
37
+ </Container>
38
+ <Text style={footer}>Securely powered by Plaid.</Text>
39
+ </Html>
40
+ );
41
+ }
42
+
43
+ const container = {
44
+ backgroundColor: '#ffffff',
45
+ border: '1px solid #eee',
46
+ borderRadius: '5px',
47
+ boxShadow: '0 5px 10px rgba(20,50,70,.2)',
48
+ marginTop: '20px',
49
+ width: '360px',
50
+ margin: '0 auto',
51
+ padding: '68px 0 130px',
52
+ };
53
+
54
+ const logo = {
55
+ margin: '0 auto',
56
+ };
57
+
58
+ const tertiary = {
59
+ color: '#0a85ea',
60
+ fontSize: '11px',
61
+ fontWeight: 700,
62
+ fontFamily: 'HelveticaNeue,Helvetica,Arial,sans-serif',
63
+ height: '16px',
64
+ letterSpacing: '0',
65
+ lineHeight: '16px',
66
+ margin: '16px 8px 8px 8px',
67
+ textTransform: 'uppercase' as const,
68
+ textAlign: 'center' as const,
69
+ };
70
+
71
+ const secondary = {
72
+ color: '#000',
73
+ display: 'inline-block',
74
+ fontFamily: 'HelveticaNeue-Medium,Helvetica,Arial,sans-serif',
75
+ fontSize: '20px',
76
+ fontWeight: 500,
77
+ lineHeight: '24px',
78
+ marginBottom: '0',
79
+ marginTop: '0',
80
+ textAlign: 'center' as const,
81
+ };
82
+
83
+ const codeContainer = {
84
+ background: 'rgba(0,0,0,.05)',
85
+ borderRadius: '4px',
86
+ margin: '16px auto 14px',
87
+ verticalAlign: 'middle',
88
+ width: '280px',
89
+ };
90
+
91
+ const code = {
92
+ color: '#000',
93
+ display: 'inline-block',
94
+ fontFamily: 'HelveticaNeue-Bold',
95
+ fontSize: '32px',
96
+ fontWeight: 700,
97
+ letterSpacing: '6px',
98
+ lineHeight: '40px',
99
+ paddingBottom: '8px',
100
+ paddingTop: '8px',
101
+ margin: '0 auto',
102
+ width: '100%',
103
+ textAlign: 'center' as const,
104
+ };
105
+
106
+ const paragraph = {
107
+ color: '#444',
108
+ fontSize: '15px',
109
+ fontFamily: 'HelveticaNeue,Helvetica,Arial,sans-serif',
110
+ letterSpacing: '0',
111
+ lineHeight: '23px',
112
+ padding: '0 40px',
113
+ margin: '0',
114
+ textAlign: 'center' as const,
115
+ };
116
+
117
+ const link = {
118
+ color: '#444',
119
+ textDecoration: 'underline',
120
+ };
121
+
122
+ const footer = {
123
+ color: '#000',
124
+ fontSize: '12px',
125
+ fontWeight: 800,
126
+ letterSpacing: '0',
127
+ lineHeight: '23px',
128
+ margin: '0',
129
+ marginTop: '20px',
130
+ fontFamily: 'HelveticaNeue,Helvetica,Arial,sans-serif',
131
+ textAlign: 'center' as const,
132
+ textTransform: 'uppercase' as const,
133
+ };
@@ -0,0 +1,152 @@
1
+ import { Button } from '@react-email/button';
2
+ import { Container } from '@react-email/container';
3
+ import { Head } from '@react-email/head';
4
+ import { Hr } from '@react-email/hr';
5
+ import { Html } from '@react-email/html';
6
+ import { Img } from '@react-email/img';
7
+ import { Link } from '@react-email/link';
8
+ import { Preview } from '@react-email/preview';
9
+ import { Section } from '@react-email/section';
10
+ import { Text } from '@react-email/text';
11
+ import * as React from 'react';
12
+
13
+ export default function Email() {
14
+ return (
15
+ <Html>
16
+ <Head />
17
+ <Preview>You're now ready to make live transactions with Stripe!</Preview>
18
+ <Section style={main}>
19
+ <Container style={container}>
20
+ <Section style={box}>
21
+ <Img
22
+ src="https://assets.react.email/demo/stripe-logo.png"
23
+ width="49"
24
+ height="21"
25
+ alt="Stripe"
26
+ />
27
+ <Hr style={hr} />
28
+ <Text style={paragraph}>
29
+ Thanks for submitting your account information. You're now ready
30
+ to make live transactions with Stripe!
31
+ </Text>
32
+ <Text style={paragraph}>
33
+ You can view your payments and a variety of other information
34
+ about your account right from your dashboard.
35
+ </Text>
36
+ <Button
37
+ pX={10}
38
+ pY={10}
39
+ style={button}
40
+ href="https://dashboard.stripe.com/login"
41
+ >
42
+ View your Stripe Dashboard
43
+ </Button>
44
+ <Hr style={hr} />
45
+ <Text style={paragraph}>
46
+ If you haven't finished your integration, you might find our{' '}
47
+ <Link style={anchor} href="https://stripe.com/docs">
48
+ docs
49
+ </Link>{' '}
50
+ handy.
51
+ </Text>
52
+ <Text style={paragraph}>
53
+ Once you're ready to start accepting payments, you'll just need to
54
+ use your live{' '}
55
+ <Link
56
+ style={anchor}
57
+ href="https://dashboard.stripe.com/login?redirect=%2Fapikeys"
58
+ >
59
+ API keys
60
+ </Link>{' '}
61
+ instead of your test API keys. Your account can simultaneously be
62
+ used for both test and live requests, so you can continue testing
63
+ while accepting live payments. Check out our{' '}
64
+ <Link style={anchor} href="https://stripe.com/docs/dashboard">
65
+ tutorial about account basics
66
+ </Link>
67
+ .
68
+ </Text>
69
+ <Text style={paragraph}>
70
+ Finally, we've put together a{' '}
71
+ <Link
72
+ style={anchor}
73
+ href="https://stripe.com/docs/checklist/website"
74
+ >
75
+ quick checklist
76
+ </Link>{' '}
77
+ to ensure your website conforms to card network standards.
78
+ </Text>
79
+ <Text style={paragraph}>
80
+ We'll be here to help you with any step along the way. You can
81
+ find answers to most questions and get in touch with us on our{' '}
82
+ <Link style={anchor} href="https://support.stripe.com/">
83
+ support site
84
+ </Link>
85
+ .
86
+ </Text>
87
+ <Text style={paragraph}>— The Stripe team</Text>
88
+ <Hr style={hr} />
89
+ <Text style={footer}>
90
+ Stripe, 354 Oyster Point Blvd, South San Francisco, CA 94080
91
+ </Text>
92
+ </Section>
93
+ </Container>
94
+ </Section>
95
+ </Html>
96
+ );
97
+ }
98
+
99
+ const main = {
100
+ backgroundColor: '#f6f9fc',
101
+ };
102
+
103
+ const container = {
104
+ backgroundColor: '#ffffff',
105
+ margin: '0 auto',
106
+ padding: '20px 0 48px',
107
+ marginBottom: '64px',
108
+ };
109
+
110
+ const box = {
111
+ padding: '0 48px',
112
+ };
113
+
114
+ const hr = {
115
+ borderColor: '#e6ebf1',
116
+ margin: '20px 0',
117
+ };
118
+
119
+ const paragraph = {
120
+ color: '#525f7f',
121
+ fontFamily:
122
+ '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Ubuntu,sans-serif',
123
+ fontSize: '16px',
124
+ lineHeight: '24px',
125
+ textAlign: 'left' as const,
126
+ };
127
+
128
+ const anchor = {
129
+ color: '#556cd6',
130
+ };
131
+
132
+ const button = {
133
+ backgroundColor: '#656ee8',
134
+ borderRadius: '5px',
135
+ color: '#fff',
136
+ fontFamily:
137
+ '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Ubuntu,sans-serif',
138
+ fontSize: '16px',
139
+ fontWeight: 'bold',
140
+ textDecoration: 'none',
141
+ textAlign: 'center' as const,
142
+ display: 'block',
143
+ width: '100%',
144
+ };
145
+
146
+ const footer = {
147
+ color: '#8898aa',
148
+ fontFamily:
149
+ '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Ubuntu,sans-serif',
150
+ fontSize: '12px',
151
+ lineHeight: '16px',
152
+ };
@@ -0,0 +1,193 @@
1
+ import { Avatar, AvatarImage } from '@react-email/avatar';
2
+ import { Button } from '@react-email/button';
3
+ import { Column } from '@react-email/column';
4
+ import { Container } from '@react-email/container';
5
+ import { Head } from '@react-email/head';
6
+ import { Heading } from '@react-email/heading';
7
+ import { Hr } from '@react-email/hr';
8
+ import { Html } from '@react-email/html';
9
+ import { Img } from '@react-email/img';
10
+ import { Link } from '@react-email/link';
11
+ import { Preview } from '@react-email/preview';
12
+ import { Section } from '@react-email/section';
13
+ import { Text } from '@react-email/text';
14
+ import * as React from 'react';
15
+
16
+ export default function Email() {
17
+ return (
18
+ <Html>
19
+ <Head />
20
+ <Preview>Join bukinoshita on Vercel</Preview>
21
+ <Section>
22
+ <Container style={container}>
23
+ <Section style={section}>
24
+ <Img
25
+ src="https://assets.react.email/demo/vercel-logo.png"
26
+ width="40"
27
+ height="37"
28
+ alt="Vercel"
29
+ style={logo}
30
+ />
31
+ <Heading as="h1" style={h1}>
32
+ Join <strong>My Project</strong> on <strong>Vercel</strong>
33
+ </Heading>
34
+ <Text style={text}>Hello zenorocha,</Text>
35
+ <Text style={text}>
36
+ <strong>bukinoshita</strong> (
37
+ <Link href="mailto:bukinoshita@example.com" style={link}>
38
+ bukinoshita@example.com
39
+ </Link>
40
+ ) has invited you to the <strong>My Project</strong> team on{' '}
41
+ <strong>Vercel</strong>.
42
+ </Text>
43
+ <Section>
44
+ <Column>
45
+ <Avatar>
46
+ <AvatarImage
47
+ style={avatar}
48
+ src="https://vercel.com/api/www/avatar/?u=zenorocha&amp;s=240&amp;format=png"
49
+ width="64"
50
+ height="64"
51
+ />
52
+ </Avatar>
53
+ </Column>
54
+ <Column>
55
+ <Img
56
+ src="https://assets.react.email/demo/vercel-arrow.png"
57
+ width="12"
58
+ height="9"
59
+ alt="invited you to"
60
+ />
61
+ </Column>
62
+ <Column>
63
+ <Avatar>
64
+ <AvatarImage
65
+ style={avatar}
66
+ src="https://vercel.com/api/www/avatar/?teamId=team_3e17ZatpKJ1imLQdTyrLeBoX&amp;s=240&amp;format=png"
67
+ width="64"
68
+ height="64"
69
+ />
70
+ </Avatar>
71
+ </Column>
72
+ </Section>
73
+ <Section style={btnCenter}>
74
+ <Button
75
+ pX={20}
76
+ pY={12}
77
+ style={btn}
78
+ href="https://vercel.com/teams/invite/foo"
79
+ >
80
+ Join the team
81
+ </Button>
82
+ </Section>
83
+ <Text style={text}>
84
+ <br />
85
+ or copy and paste this URL into your browser:{' '}
86
+ <Link
87
+ href="https://vercel.com/teams/invite/foo"
88
+ target="_blank"
89
+ style={link}
90
+ rel="noreferrer"
91
+ >
92
+ https://vercel.com/teams/invite/foo
93
+ </Link>
94
+ </Text>
95
+ <Hr style={hr} />
96
+ <Text style={footer}>
97
+ This invitation was intended for{' '}
98
+ <span style={black}>zenorocha</span>.This invite was sent from{' '}
99
+ <span style={black}>204.13.186.218</span> located in{' '}
100
+ <span style={black}>São Paulo, Brazil</span>. If you were not
101
+ expecting this invitation, you can ignore this email. If you are
102
+ concerned about your account's safety, please reply to this email
103
+ to get in touch with us.
104
+ </Text>
105
+ </Section>
106
+ </Container>
107
+ </Section>
108
+ </Html>
109
+ );
110
+ }
111
+
112
+ const container = {
113
+ border: '1px solid #eaeaea',
114
+ borderRadius: '5px',
115
+ margin: '40px auto',
116
+ };
117
+
118
+ const section = {
119
+ fontFamily:
120
+ "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif",
121
+ textAlign: 'left' as const,
122
+ width: '465px',
123
+ };
124
+
125
+ const logo = {
126
+ margin: '32px auto 0',
127
+ };
128
+
129
+ const h1 = {
130
+ color: '#000',
131
+ fontFamily:
132
+ "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif",
133
+ fontSize: '24px',
134
+ fontWeight: 'normal',
135
+ margin: '30px 0',
136
+ textAlign: 'center' as const,
137
+ padding: '0',
138
+ };
139
+
140
+ const avatar = {
141
+ borderRadius: '100%',
142
+ };
143
+
144
+ const link = {
145
+ color: '#067df7',
146
+ textDecoration: 'none',
147
+ };
148
+
149
+ const text = {
150
+ color: '#000',
151
+ fontFamily:
152
+ "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif",
153
+ fontSize: '14px',
154
+ lineHeight: '24px',
155
+ };
156
+
157
+ const black = {
158
+ color: 'black',
159
+ };
160
+
161
+ const btnCenter = {
162
+ margin: '0 auto',
163
+ width: 'auto',
164
+ };
165
+
166
+ const btn = {
167
+ backgroundColor: '#000',
168
+ borderRadius: '5px',
169
+ color: '#fff',
170
+ display: 'inline-block',
171
+ fontFamily:
172
+ "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif",
173
+ fontSize: '12px',
174
+ fontWeight: 500,
175
+ lineHeight: '50px',
176
+ textDecoration: 'none',
177
+ textAlign: 'center' as const,
178
+ };
179
+
180
+ const hr = {
181
+ border: 'none',
182
+ borderTop: '1px solid #eaeaea',
183
+ margin: '26px 0',
184
+ width: '100%',
185
+ };
186
+
187
+ const footer = {
188
+ color: '#666666',
189
+ fontFamily:
190
+ "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif",
191
+ fontSize: '12px',
192
+ lineHeight: '24px',
193
+ };