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.
- package/.eslintrc.js +4 -0
- package/.prettierrc.js +3 -0
- package/base/.next/build-manifest.json +35 -0
- package/{preview/.next/cache/webpack/client-development/11.pack → base/.next/cache/webpack/client-development/0.pack} +0 -0
- package/base/.next/cache/webpack/client-development/1.pack +0 -0
- package/base/.next/cache/webpack/client-development/10.pack +0 -0
- package/base/.next/cache/webpack/client-development/11.pack +0 -0
- package/base/.next/cache/webpack/client-development/2.pack +0 -0
- package/base/.next/cache/webpack/client-development/3.pack +0 -0
- package/base/.next/cache/webpack/client-development/4.pack +0 -0
- package/base/.next/cache/webpack/client-development/5.pack +0 -0
- package/base/.next/cache/webpack/client-development/6.pack +0 -0
- package/base/.next/cache/webpack/client-development/7.pack +0 -0
- package/base/.next/cache/webpack/client-development/8.pack +0 -0
- package/base/.next/cache/webpack/client-development/9.pack +0 -0
- package/base/.next/cache/webpack/client-development/index.pack +0 -0
- package/base/.next/cache/webpack/client-development/index.pack.old +0 -0
- package/base/.next/cache/webpack/client-development-fallback/0.pack +0 -0
- package/base/.next/cache/webpack/client-development-fallback/1.pack +0 -0
- package/base/.next/cache/webpack/client-development-fallback/index.pack +0 -0
- package/base/.next/cache/webpack/client-development-fallback/index.pack.old +0 -0
- package/base/.next/cache/webpack/server-development/0.pack +0 -0
- package/base/.next/cache/webpack/server-development/1.pack +0 -0
- package/base/.next/cache/webpack/server-development/10.pack +0 -0
- package/base/.next/cache/webpack/server-development/11.pack +0 -0
- package/base/.next/cache/webpack/server-development/12.pack +0 -0
- package/base/.next/cache/webpack/server-development/13.pack +0 -0
- package/base/.next/cache/webpack/server-development/2.pack +0 -0
- package/base/.next/cache/webpack/server-development/3.pack +0 -0
- package/base/.next/cache/webpack/server-development/4.pack +0 -0
- package/base/.next/cache/webpack/server-development/5.pack +0 -0
- package/base/.next/cache/webpack/server-development/6.pack +0 -0
- package/base/.next/cache/webpack/server-development/7.pack +0 -0
- package/base/.next/cache/webpack/server-development/8.pack +0 -0
- package/base/.next/cache/webpack/server-development/9.pack +0 -0
- package/base/.next/cache/webpack/server-development/index.pack +0 -0
- package/base/.next/cache/webpack/server-development/index.pack.old +0 -0
- package/base/.next/package.json +1 -0
- package/base/.next/react-loadable-manifest.json +1 -0
- package/base/.next/server/emails_notion-magic-link_tsx.js +25 -0
- package/base/.next/server/emails_plaid-verify-identity_tsx.js +25 -0
- package/base/.next/server/emails_stripe-welcome_tsx.js +25 -0
- package/base/.next/server/emails_vercel-invite-user_tsx.js +25 -0
- package/base/.next/server/middleware-build-manifest.js +1 -0
- package/{preview → base}/.next/server/middleware-manifest.json +2 -2
- package/base/.next/server/middleware-react-loadable-manifest.js +1 -0
- package/base/.next/server/pages/[...path].js +386 -0
- package/base/.next/server/pages/_app.js +145 -0
- package/base/.next/server/pages/_document.js +211 -0
- package/base/.next/server/pages/_error.js +56 -0
- package/base/.next/server/pages/api/[...path].js +283 -0
- package/base/.next/server/pages-manifest.json +5 -0
- package/base/.next/server/webpack-api-runtime.js +168 -0
- package/base/.next/server/webpack-runtime.js +168 -0
- package/base/.next/static/chunks/amp.js +872 -0
- package/base/.next/static/chunks/main.js +1166 -0
- package/base/.next/static/chunks/pages/[...path].js +904 -0
- package/base/.next/static/chunks/pages/_app.js +467 -0
- package/base/.next/static/chunks/pages/_error.js +28 -0
- package/base/.next/static/chunks/polyfills.js +1 -0
- package/base/.next/static/chunks/react-refresh.js +62 -0
- package/base/.next/static/chunks/webpack.js +1242 -0
- package/base/.next/static/development/_buildManifest.js +1 -0
- package/base/.next/static/development/_ssgManifest.js +1 -0
- package/base/.next/static/webpack/94b31eaefc86ea7b.webpack.hot-update.json +1 -0
- package/base/.next/static/webpack/webpack.94b31eaefc86ea7b.hot-update.js +36 -0
- package/base/.next/trace +49 -0
- package/base/emails/notion-magic-link.tsx +133 -0
- package/base/emails/plaid-verify-identity.tsx +133 -0
- package/base/emails/stripe-welcome.tsx +152 -0
- package/base/emails/vercel-invite-user.tsx +193 -0
- package/base/yarn.lock +2861 -0
- package/dist/_preview/components.d.ts +4 -0
- package/dist/_preview/components.js +41 -0
- package/dist/_preview/pages.d.ts +9 -0
- package/dist/_preview/pages.js +22 -0
- package/dist/_preview/root.d.ts +4 -0
- package/dist/_preview/root.js +25 -0
- package/dist/_preview/styles.d.ts +4 -0
- package/dist/_preview/styles.js +9 -0
- package/dist/_preview/utils.d.ts +4 -0
- package/dist/_preview/utils.js +17 -0
- package/dist/commands/dev.d.ts +1 -0
- package/dist/commands/dev.js +135 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -29
- package/dist/utils/check-directory-exist.d.ts +1 -0
- package/dist/utils/check-directory-exist.js +9 -0
- package/dist/utils/check-empty-directory.d.ts +1 -0
- package/dist/utils/check-empty-directory.js +12 -0
- package/dist/utils/contants.d.ts +11 -0
- package/dist/utils/contants.js +24 -0
- package/dist/utils/create-directory.d.ts +1 -0
- package/dist/utils/create-directory.js +9 -0
- package/dist/utils/watcher.d.ts +2 -0
- package/dist/utils/watcher.js +22 -0
- package/package.json +6 -6
- package/preview/package.json +3 -18
- package/preview/src/components/layout.tsx +9 -44
- package/preview/src/components/sidebar.tsx +70 -66
- package/preview/src/components/topbar.tsx +44 -2
- package/preview/src/pages/_app.tsx +0 -6
- package/preview/src/pages/index.tsx +21 -4
- package/preview/src/pages/preview/[slug].tsx +13 -2
- package/scripts/prepare-preview.ts +177 -0
- package/source/_preview/components.ts +47 -0
- package/source/_preview/pages.ts +23 -0
- package/source/_preview/root.ts +27 -0
- package/source/_preview/styles.ts +6 -0
- package/source/_preview/utils.ts +16 -0
- package/source/commands/dev.ts +165 -0
- package/source/index.ts +16 -0
- package/source/utils/check-directory-exist.ts +4 -0
- package/source/utils/check-empty-directory.ts +6 -0
- package/source/utils/contants.ts +38 -0
- package/source/utils/create-directory.ts +4 -0
- package/source/utils/watcher.ts +22 -0
- package/tsconfig.json +36 -0
- package/preview/.next/BUILD_ID +0 -1
- package/preview/.next/build-manifest.json +0 -42
- package/preview/.next/cache/.tsbuildinfo +0 -1
- package/preview/.next/cache/next-server.js.nft.json +0 -290
- package/preview/.next/cache/webpack/client-development/0.pack +0 -0
- package/preview/.next/cache/webpack/client-development/1.pack +0 -0
- package/preview/.next/cache/webpack/client-development/10.pack +0 -0
- package/preview/.next/cache/webpack/client-development/12.pack +0 -0
- package/preview/.next/cache/webpack/client-development/13.pack +0 -0
- package/preview/.next/cache/webpack/client-development/14.pack +0 -0
- package/preview/.next/cache/webpack/client-development/15.pack +0 -0
- package/preview/.next/cache/webpack/client-development/16.pack +0 -0
- package/preview/.next/cache/webpack/client-development/2.pack +0 -0
- package/preview/.next/cache/webpack/client-development/3.pack +0 -0
- package/preview/.next/cache/webpack/client-development/4.pack +0 -0
- package/preview/.next/cache/webpack/client-development/5.pack +0 -0
- package/preview/.next/cache/webpack/client-development/6.pack +0 -0
- package/preview/.next/cache/webpack/client-development/7.pack +0 -0
- package/preview/.next/cache/webpack/client-development/8.pack +0 -0
- package/preview/.next/cache/webpack/client-development/9.pack +0 -0
- package/preview/.next/cache/webpack/client-development/index.pack +0 -0
- package/preview/.next/cache/webpack/client-development/index.pack.old +0 -0
- package/preview/.next/cache/webpack/client-production/0.pack +0 -0
- package/preview/.next/cache/webpack/client-production/index.pack +0 -0
- package/preview/.next/cache/webpack/server-development/0.pack +0 -0
- package/preview/.next/cache/webpack/server-development/1.pack +0 -0
- package/preview/.next/cache/webpack/server-development/10.pack +0 -0
- package/preview/.next/cache/webpack/server-development/11.pack +0 -0
- package/preview/.next/cache/webpack/server-development/12.pack +0 -0
- package/preview/.next/cache/webpack/server-development/13.pack +0 -0
- package/preview/.next/cache/webpack/server-development/14.pack +0 -0
- package/preview/.next/cache/webpack/server-development/15.pack +0 -0
- package/preview/.next/cache/webpack/server-development/16.pack +0 -0
- package/preview/.next/cache/webpack/server-development/2.pack +0 -0
- package/preview/.next/cache/webpack/server-development/3.pack +0 -0
- package/preview/.next/cache/webpack/server-development/4.pack +0 -0
- package/preview/.next/cache/webpack/server-development/5.pack +0 -0
- package/preview/.next/cache/webpack/server-development/6.pack +0 -0
- package/preview/.next/cache/webpack/server-development/7.pack +0 -0
- package/preview/.next/cache/webpack/server-development/8.pack +0 -0
- package/preview/.next/cache/webpack/server-development/9.pack +0 -0
- package/preview/.next/cache/webpack/server-development/index.pack +0 -0
- package/preview/.next/cache/webpack/server-development/index.pack.old +0 -0
- package/preview/.next/cache/webpack/server-production/0.pack +0 -0
- package/preview/.next/cache/webpack/server-production/index.pack +0 -0
- package/preview/.next/export-marker.json +0 -6
- package/preview/.next/images-manifest.json +0 -22
- package/preview/.next/next-server.js.nft.json +0 -290
- package/preview/.next/package.json +0 -3
- package/preview/.next/prerender-manifest.json +0 -24
- package/preview/.next/react-loadable-manifest.json +0 -1
- package/preview/.next/required-server-files.json +0 -113
- package/preview/.next/routes-manifest.json +0 -48
- package/preview/.next/server/chunks/664.js +0 -3836
- package/preview/.next/server/chunks/676.js +0 -35
- package/preview/.next/server/chunks/759.js +0 -1548
- package/preview/.next/server/chunks/font-manifest.json +0 -6
- package/preview/.next/server/font-loader-manifest.js +0 -4
- package/preview/.next/server/font-loader-manifest.json +0 -6
- package/preview/.next/server/font-manifest.json +0 -6
- package/preview/.next/server/middleware-build-manifest.js +0 -42
- package/preview/.next/server/middleware-react-loadable-manifest.js +0 -1
- package/preview/.next/server/pages/404.html +0 -12
- package/preview/.next/server/pages/500.html +0 -12
- package/preview/.next/server/pages/_app.js +0 -115
- package/preview/.next/server/pages/_app.js.nft.json +0 -29
- package/preview/.next/server/pages/_document.js +0 -1335
- package/preview/.next/server/pages/_document.js.nft.json +0 -33
- package/preview/.next/server/pages/_error.js +0 -195
- package/preview/.next/server/pages/_error.js.nft.json +0 -23
- package/preview/.next/server/pages/index.html +0 -1
- package/preview/.next/server/pages/index.js +0 -310
- package/preview/.next/server/pages/index.js.nft.json +0 -132
- package/preview/.next/server/pages/index.json +0 -1
- package/preview/.next/server/pages/preview/[slug].html +0 -1
- package/preview/.next/server/pages/preview/[slug].js +0 -388
- package/preview/.next/server/pages/preview/[slug].js.nft.json +0 -179
- package/preview/.next/server/pages-manifest.json +0 -8
- package/preview/.next/server/webpack-runtime.js +0 -213
- package/preview/.next/static/cY9PAzmXyKOoOW2gY4i5N/_buildManifest.js +0 -17
- package/preview/.next/static/cY9PAzmXyKOoOW2gY4i5N/_ssgManifest.js +0 -2
- package/preview/.next/static/chunks/727-0b09744222e89df8.js +0 -4402
- package/preview/.next/static/chunks/759-cdb5c7b41d03d871.js +0 -1135
- package/preview/.next/static/chunks/framework-3b5a00d5d7e8d93b.js +0 -9188
- package/preview/.next/static/chunks/main-50de763069eba4b2.js +0 -5078
- package/preview/.next/static/chunks/pages/_app-76f7305c0a91d681.js +0 -116
- package/preview/.next/static/chunks/pages/_error-8353112a01355ec2.js +0 -19
- package/preview/.next/static/chunks/pages/index-cd725955236a17bd.js +0 -44
- package/preview/.next/static/chunks/pages/preview/[slug]-e24c537be91754b2.js +0 -57
- package/preview/.next/static/chunks/polyfills-c67a75d1b6f99dc8.js +0 -6342
- package/preview/.next/static/chunks/webpack-0b5d8249fb15f5f3.js +0 -141
- package/preview/.next/static/css/8543b02f1dad7784.css +0 -3
- package/preview/.next/static/media/2aaf0723e720e8b9.p.woff2 +0 -0
- package/preview/.next/static/media/9c4f34569c9b36ca.woff2 +0 -0
- package/preview/.next/static/media/ae9ae6716d4f8bf8.woff2 +0 -0
- package/preview/.next/static/media/b1db3e28af9ef94a.woff2 +0 -0
- package/preview/.next/static/media/b967158bc7d7a9fb.woff2 +0 -0
- package/preview/.next/static/media/c0f5ec5bbf5913b7.woff2 +0 -0
- package/preview/.next/static/media/d1d9458b69004127.woff2 +0 -0
- package/preview/.next/trace +0 -7
- 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'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&s=240&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&s=240&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
|
+
};
|