react-email 4.0.7 → 4.0.9

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 (156) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/cli/index.mjs +214 -186
  3. package/dist/preview/.next/BUILD_ID +1 -1
  4. package/dist/preview/.next/app-build-manifest.json +14 -14
  5. package/dist/preview/.next/app-path-routes-manifest.json +1 -1
  6. package/dist/preview/.next/build-manifest.json +2 -2
  7. package/dist/preview/.next/next-minimal-server.js.nft.json +1 -1
  8. package/dist/preview/.next/next-server.js.nft.json +1 -1
  9. package/dist/preview/.next/prerender-manifest.json +3 -3
  10. package/dist/preview/.next/server/app/_not-found/page.js +1 -1
  11. package/dist/preview/.next/server/app/_not-found/page.js.nft.json +1 -1
  12. package/dist/preview/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  13. package/dist/preview/.next/server/app/page.js +1 -1
  14. package/dist/preview/.next/server/app/page.js.nft.json +1 -1
  15. package/dist/preview/.next/server/app/page_client-reference-manifest.js +1 -1
  16. package/dist/preview/.next/server/app/preview/[...slug]/page.js +137 -75
  17. package/dist/preview/.next/server/app/preview/[...slug]/page.js.nft.json +1 -1
  18. package/dist/preview/.next/server/app/preview/[...slug]/page_client-reference-manifest.js +1 -1
  19. package/dist/preview/.next/server/app-paths-manifest.json +1 -1
  20. package/dist/preview/.next/server/chunks/267.js +14 -0
  21. package/dist/preview/.next/server/chunks/346.js +1 -0
  22. package/dist/preview/.next/server/chunks/{886.js → 775.js} +3 -3
  23. package/dist/preview/.next/server/pages/500.html +1 -1
  24. package/dist/preview/.next/server/server-reference-manifest.js +1 -1
  25. package/dist/preview/.next/server/server-reference-manifest.json +1 -1
  26. package/dist/preview/.next/static/chunks/33-ff3f70a80570ecda.js +1 -0
  27. package/dist/preview/.next/static/chunks/416-9c899340cfaa07d4.js +1 -0
  28. package/dist/preview/.next/static/chunks/516-2716d86d2f8b9000.js +1 -0
  29. package/dist/preview/.next/static/chunks/{587-352f8079202a48d0.js → 587-0644242ce9489212.js} +1 -1
  30. package/dist/preview/.next/static/chunks/app/layout-2726a60e293495d3.js +1 -0
  31. package/dist/preview/.next/static/chunks/app/{page-0ee3a37f3a3f6f17.js → page-1d98e2313c60dd77.js} +1 -1
  32. package/dist/preview/.next/static/chunks/app/preview/[...slug]/page-c77ff9f2bb1709b3.js +1 -0
  33. package/dist/preview/.next/static/chunks/f33a14d2-a04f3be0523bd1fa.js +6 -0
  34. package/dist/preview/.next/static/css/6f42d128f111d7fa.css +3 -0
  35. package/dist/preview/.next/trace +27 -27
  36. package/package.json +44 -46
  37. package/src/actions/email-validation/check-compatibility.ts +1 -1
  38. package/src/actions/email-validation/check-images.spec.tsx +1 -1
  39. package/src/actions/email-validation/check-links.spec.tsx +1 -1
  40. package/src/actions/email-validation/quick-fetch.ts +1 -1
  41. package/src/actions/render-email-by-path.tsx +6 -6
  42. package/src/app/preview/[...slug]/preview.tsx +1 -1
  43. package/src/commands/testing/out/magic-links/aws-verify-email.html +164 -0
  44. package/src/commands/testing/out/magic-links/linear-login-code.html +89 -0
  45. package/src/commands/testing/out/magic-links/notion-magic-link.html +75 -0
  46. package/src/commands/testing/out/magic-links/plaid-verify-identity.html +78 -0
  47. package/src/commands/testing/out/magic-links/raycast-magic-link.html +90 -0
  48. package/src/commands/testing/out/magic-links/slack-confirm.html +239 -0
  49. package/src/commands/testing/out/newsletters/codepen-challengers.html +547 -0
  50. package/src/commands/testing/out/newsletters/google-play-policy-update.html +338 -0
  51. package/src/commands/testing/out/newsletters/stack-overflow-tips.html +230 -0
  52. package/src/commands/testing/out/notifications/github-access-token.html +103 -0
  53. package/src/commands/testing/out/notifications/papermark-year-in-review.html +316 -0
  54. package/src/commands/testing/out/notifications/vercel-invite-user.html +170 -0
  55. package/src/commands/testing/out/notifications/yelp-recent-login.html +194 -0
  56. package/src/commands/testing/out/receipts/apple-receipt.html +676 -0
  57. package/src/commands/testing/out/receipts/nike-receipt.html +723 -0
  58. package/src/commands/testing/out/reset-password/dropbox-reset-password.html +97 -0
  59. package/src/commands/testing/out/reset-password/twitch-reset-password.html +219 -0
  60. package/src/commands/testing/out/reviews/airbnb-review.html +205 -0
  61. package/src/commands/testing/out/reviews/amazon-review.html +355 -0
  62. package/src/commands/testing/out/static/airbnb-logo.png +0 -0
  63. package/src/commands/testing/out/static/airbnb-review-user.jpg +0 -0
  64. package/src/commands/testing/out/static/amazon-book.jpg +0 -0
  65. package/src/commands/testing/out/static/amazon-facebook.jpg +0 -0
  66. package/src/commands/testing/out/static/amazon-instagram.jpg +0 -0
  67. package/src/commands/testing/out/static/amazon-logo.png +0 -0
  68. package/src/commands/testing/out/static/amazon-prime-logo.png +0 -0
  69. package/src/commands/testing/out/static/amazon-rating.gif +0 -0
  70. package/src/commands/testing/out/static/amazon-twitter.jpg +0 -0
  71. package/src/commands/testing/out/static/apple-card-icon.png +0 -0
  72. package/src/commands/testing/out/static/apple-hbo-max-icon.jpeg +0 -0
  73. package/src/commands/testing/out/static/apple-logo.png +0 -0
  74. package/src/commands/testing/out/static/apple-wallet.png +0 -0
  75. package/src/commands/testing/out/static/aws-logo.png +0 -0
  76. package/src/commands/testing/out/static/codepen-challengers.png +0 -0
  77. package/src/commands/testing/out/static/codepen-cube.png +0 -0
  78. package/src/commands/testing/out/static/codepen-pro.png +0 -0
  79. package/src/commands/testing/out/static/dropbox-logo.png +0 -0
  80. package/src/commands/testing/out/static/github.png +0 -0
  81. package/src/commands/testing/out/static/google-play-academy.png +0 -0
  82. package/src/commands/testing/out/static/google-play-chat.png +0 -0
  83. package/src/commands/testing/out/static/google-play-footer.png +0 -0
  84. package/src/commands/testing/out/static/google-play-header.png +0 -0
  85. package/src/commands/testing/out/static/google-play-icon.png +0 -0
  86. package/src/commands/testing/out/static/google-play-logo.png +0 -0
  87. package/src/commands/testing/out/static/google-play-pl.png +0 -0
  88. package/src/commands/testing/out/static/google-play.png +0 -0
  89. package/src/commands/testing/out/static/koala-logo.png +0 -0
  90. package/src/commands/testing/out/static/linear-logo.png +0 -0
  91. package/src/commands/testing/out/static/netlify-logo.png +0 -0
  92. package/src/commands/testing/out/static/nike-logo.png +0 -0
  93. package/src/commands/testing/out/static/nike-phone.png +0 -0
  94. package/src/commands/testing/out/static/nike-product.png +0 -0
  95. package/src/commands/testing/out/static/nike-recomendation-1.png +0 -0
  96. package/src/commands/testing/out/static/nike-recomendation-2.png +0 -0
  97. package/src/commands/testing/out/static/nike-recomendation-3.png +0 -0
  98. package/src/commands/testing/out/static/nike-recomendation-4.png +0 -0
  99. package/src/commands/testing/out/static/notion-logo.png +0 -0
  100. package/src/commands/testing/out/static/plaid-logo.png +0 -0
  101. package/src/commands/testing/out/static/raycast-bg.png +0 -0
  102. package/src/commands/testing/out/static/raycast-logo.png +0 -0
  103. package/src/commands/testing/out/static/slack-facebook.png +0 -0
  104. package/src/commands/testing/out/static/slack-linkedin.png +0 -0
  105. package/src/commands/testing/out/static/slack-logo.png +0 -0
  106. package/src/commands/testing/out/static/slack-twitter.png +0 -0
  107. package/src/commands/testing/out/static/stack-overflow-header.png +0 -0
  108. package/src/commands/testing/out/static/stack-overflow-logo-sm.png +0 -0
  109. package/src/commands/testing/out/static/stack-overflow-logo.png +0 -0
  110. package/src/commands/testing/out/static/stripe-logo.png +0 -0
  111. package/src/commands/testing/out/static/twitch-icon-facebook.png +0 -0
  112. package/src/commands/testing/out/static/twitch-icon-twitter.png +0 -0
  113. package/src/commands/testing/out/static/twitch-logo.png +0 -0
  114. package/src/commands/testing/out/static/vercel-arrow.png +0 -0
  115. package/src/commands/testing/out/static/vercel-logo.png +0 -0
  116. package/src/commands/testing/out/static/vercel-team.png +0 -0
  117. package/src/commands/testing/out/static/vercel-user.png +0 -0
  118. package/src/commands/testing/out/static/yelp-footer.png +0 -0
  119. package/src/commands/testing/out/static/yelp-header.png +0 -0
  120. package/src/commands/testing/out/static/yelp-logo.png +0 -0
  121. package/src/commands/testing/out/welcome/koala-welcome.html +89 -0
  122. package/src/commands/testing/out/welcome/netlify-welcome.html +198 -0
  123. package/src/commands/testing/out/welcome/stripe-welcome.html +152 -0
  124. package/src/components/toolbar.tsx +1 -0
  125. package/src/contexts/emails.tsx +1 -3
  126. package/src/contexts/fragment-identifier.tsx +3 -1
  127. package/src/contexts/preview.tsx +1 -3
  128. package/src/hooks/use-email-rendering-result.ts +18 -5
  129. package/src/hooks/use-hot-reload.ts +1 -1
  130. package/src/utils/__snapshots__/get-email-component.spec.ts.snap +1 -1
  131. package/src/utils/caniemail/ast/get-object-variables.ts +1 -1
  132. package/src/utils/caniemail/tailwind/generate-tailwind-rules.ts +1 -1
  133. package/src/utils/caniemail/tailwind/get-tailwind-config.ts +1 -1
  134. package/src/utils/caniemail/tailwind/get-tailwind-metadata.ts +1 -1
  135. package/src/utils/contains-email-template.spec.ts +107 -0
  136. package/src/utils/contains-email-template.ts +33 -0
  137. package/src/utils/get-email-component.ts +16 -1
  138. package/src/utils/get-emails-directory-metadata.ts +24 -13
  139. package/src/utils/index.ts +2 -2
  140. package/src/utils/run-bundled-code.ts +1 -1
  141. package/tailwind.config.ts +2 -1
  142. package/tsconfig.json +1 -1
  143. package/dist/cli/index.d.mts +0 -1
  144. package/dist/cli/index.d.ts +0 -1
  145. package/dist/cli/index.js +0 -1317
  146. package/dist/preview/.next/server/chunks/380.js +0 -1
  147. package/dist/preview/.next/server/chunks/840.js +0 -14
  148. package/dist/preview/.next/static/chunks/246-e7336e2929971f63.js +0 -1
  149. package/dist/preview/.next/static/chunks/539-6e9405ecdc007bb7.js +0 -1
  150. package/dist/preview/.next/static/chunks/853-a01d49f63a859f3d.js +0 -1
  151. package/dist/preview/.next/static/chunks/afa401a5-55858bf5265319eb.js +0 -6
  152. package/dist/preview/.next/static/chunks/app/layout-fa93a7ef0cc5ebdb.js +0 -1
  153. package/dist/preview/.next/static/chunks/app/preview/[...slug]/page-95449af2d870e732.js +0 -1
  154. package/dist/preview/.next/static/css/67e57230289273a9.css +0 -3
  155. /package/dist/preview/.next/static/{Oy7kpIZ6Nbnd7hpoEKBWw → 3apYH6rky7aNn7g4RIJp5}/_buildManifest.js +0 -0
  156. /package/dist/preview/.next/static/{Oy7kpIZ6Nbnd7hpoEKBWw → 3apYH6rky7aNn7g4RIJp5}/_ssgManifest.js +0 -0
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "react-email",
3
- "version": "4.0.7",
3
+ "version": "4.0.9",
4
4
  "description": "A live preview of your emails right in your browser.",
5
5
  "bin": {
6
- "email": "./dist/cli/index.js"
6
+ "email": "./dist/cli/index.mjs"
7
7
  },
8
8
  "license": "MIT",
9
9
  "repository": {
@@ -19,70 +19,68 @@
19
19
  "node": ">=18.0.0"
20
20
  },
21
21
  "dependencies": {
22
- "@babel/parser": "7.24.5",
23
- "@babel/traverse": "7.25.6",
24
- "chalk": "4.1.2",
25
- "chokidar": "4.0.3",
26
- "commander": "11.1.0",
27
- "debounce": "2.0.0",
28
- "esbuild": "0.25.0",
29
- "glob": "10.3.4",
30
- "log-symbols": "4.1.0",
31
- "mime-types": "2.1.35",
32
- "next": "15.2.4",
33
- "normalize-path": "3.0.0",
34
- "ora": "5.4.1",
35
- "socket.io": "4.8.1"
22
+ "@babel/parser": "^7.27.0",
23
+ "@babel/traverse": "^7.27.0",
24
+ "chalk": "^5.0.0",
25
+ "chokidar": "^4.0.3",
26
+ "commander": "^13.0.0",
27
+ "debounce": "^2.0.0",
28
+ "esbuild": "^0.25.0",
29
+ "glob": "^11.0.0",
30
+ "log-symbols": "^7.0.0",
31
+ "mime-types": "^3.0.0",
32
+ "next": "^15.2.4",
33
+ "normalize-path": "^3.0.0",
34
+ "ora": "^8.0.0",
35
+ "socket.io": "^4.8.1"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@babel/core": "7.26.10",
39
- "@lottiefiles/dotlottie-react": "0.12.3",
40
- "@radix-ui/colors": "1.0.1",
41
- "@radix-ui/react-collapsible": "1.1.0",
42
- "@radix-ui/react-dropdown-menu": "2.1.4",
43
- "@radix-ui/react-popover": "1.1.1",
44
- "@radix-ui/react-slot": "1.1.0",
45
- "@radix-ui/react-tabs": "1.1.1",
46
- "@radix-ui/react-toggle-group": "1.1.0",
47
- "@radix-ui/react-tooltip": "1.1.2",
48
- "@swc/core": "1.4.15",
39
+ "@lottiefiles/dotlottie-react": "0.13.3",
40
+ "@radix-ui/colors": "3.0.0",
41
+ "@radix-ui/react-collapsible": "1.1.7",
42
+ "@radix-ui/react-dropdown-menu": "2.1.10",
43
+ "@radix-ui/react-popover": "1.1.10",
44
+ "@radix-ui/react-slot": "1.2.0",
45
+ "@radix-ui/react-tabs": "1.1.7",
46
+ "@radix-ui/react-toggle-group": "1.1.6",
47
+ "@radix-ui/react-tooltip": "1.2.3",
48
+ "@swc/core": "1.11.21",
49
49
  "@types/babel__core": "7.20.5",
50
- "@types/babel__traverse": "*",
50
+ "@types/babel__traverse": "7.20.7",
51
51
  "@types/fs-extra": "11.0.1",
52
52
  "@types/mime-types": "2.1.4",
53
- "@types/node": "22.10.2",
53
+ "@types/node": "22.14.1",
54
54
  "@types/normalize-path": "3.0.2",
55
55
  "@types/react": "19.0.10",
56
56
  "@types/react-dom": "19.0.4",
57
57
  "@types/webpack": "5.28.5",
58
- "@vercel/style-guide": "5.1.0",
59
- "autoprefixer": "10.4.20",
58
+ "autoprefixer": "10.4.21",
60
59
  "clsx": "2.1.1",
61
- "framer-motion": "12.0.0-alpha.2",
60
+ "framer-motion": "12.7.5",
62
61
  "jiti": "2.4.2",
63
62
  "json5": "2.2.3",
64
63
  "module-punycode": "npm:punycode@2.3.1",
65
- "node-html-parser": "6.1.13",
66
- "postcss": "8.4.40",
67
- "prettier-plugin-tailwindcss": "0.6.6",
64
+ "node-html-parser": "7.0.1",
65
+ "postcss": "8.5.3",
68
66
  "pretty-bytes": "6.1.1",
69
- "prism-react-renderer": "2.1.0",
67
+ "prism-react-renderer": "2.4.1",
70
68
  "react": "19.0.0",
71
69
  "react-dom": "19.0.0",
72
- "sharp": "0.33.3",
73
- "socket.io-client": "4.8.0",
74
- "sonner": "1.7.1",
75
- "source-map-js": "1.0.2",
70
+ "sharp": "0.34.1",
71
+ "socket.io-client": "4.8.1",
72
+ "sonner": "2.0.3",
73
+ "source-map-js": "1.2.1",
76
74
  "spamc": "0.0.5",
77
- "stacktrace-parser": "0.1.10",
78
- "tailwind-merge": "2.2.0",
75
+ "stacktrace-parser": "0.1.11",
76
+ "tailwind-merge": "3.2.0",
79
77
  "tailwindcss": "3.4.0",
80
- "tsup": "7.2.0",
81
- "tsx": "4.9.0",
82
- "typescript": "5.8.2",
78
+ "tsup": "8.4.0",
79
+ "tsx": "4.19.3",
80
+ "typescript": "5.8.3",
83
81
  "use-debounce": "10.0.4",
84
- "zod": "3.24.2",
85
- "@react-email/components": "0.0.36"
82
+ "zod": "3.24.3",
83
+ "@react-email/components": "0.0.37"
86
84
  },
87
85
  "scripts": {
88
86
  "build": "tsup-node && node ./scripts/build-preview-server.mjs && pnpm install --frozen-lockfile",
@@ -2,9 +2,9 @@
2
2
  import { parse } from '@babel/parser';
3
3
  import traverse from '@babel/traverse';
4
4
  import {
5
- type SourceLocation,
6
5
  convertLocationIntoObject,
7
6
  getObjectVariables,
7
+ type SourceLocation,
8
8
  } from '../../utils/caniemail/ast/get-object-variables';
9
9
  import type { StylePropertyUsage } from '../../utils/caniemail/ast/get-used-style-properties';
10
10
  import {
@@ -1,4 +1,4 @@
1
- import { type ImageCheckingResult, checkImages } from './check-images';
1
+ import { checkImages, type ImageCheckingResult } from './check-images';
2
2
 
3
3
  test('checkImages()', async () => {
4
4
  const results: ImageCheckingResult[] = [];
@@ -1,4 +1,4 @@
1
- import { type LinkCheckingResult, checkLinks } from './check-links';
1
+ import { checkLinks, type LinkCheckingResult } from './check-links';
2
2
 
3
3
  test('checkLinks()', async () => {
4
4
  const results: LinkCheckingResult[] = [];
@@ -1,5 +1,5 @@
1
- import type { IncomingMessage } from 'node:http';
2
1
  import http from 'node:http';
2
+ import type { IncomingMessage } from 'node:http';
3
3
  import https from 'node:https';
4
4
 
5
5
  export const quickFetch = (url: URL) => {
@@ -3,7 +3,7 @@ import fs from 'node:fs';
3
3
  import path from 'node:path';
4
4
  import chalk from 'chalk';
5
5
  import logSymbols from 'log-symbols';
6
- import ora from 'ora';
6
+ import ora, { type Ora } from 'ora';
7
7
  import { isBuilding, isPreviewDevelopment } from '../app/env';
8
8
  import { getEmailComponent } from '../utils/get-email-component';
9
9
  import { improveErrorWithSourceMap } from '../utils/improve-error-with-sourcemap';
@@ -35,7 +35,7 @@ export const renderEmailByPath = async (
35
35
  const timeBeforeEmailRendered = performance.now();
36
36
 
37
37
  const emailFilename = path.basename(emailPath);
38
- let spinner: ora.Ora | undefined;
38
+ let spinner: Ora | undefined;
39
39
  if (!isBuilding && !isPreviewDevelopment) {
40
40
  spinner = ora({
41
41
  text: `Rendering email template ${emailFilename}\n`,
@@ -76,11 +76,11 @@ export const renderEmailByPath = async (
76
76
 
77
77
  const reactMarkup = await fs.promises.readFile(emailPath, 'utf-8');
78
78
 
79
- const milisecondsToRendered = performance.now() - timeBeforeEmailRendered;
80
- let timeForConsole = `${milisecondsToRendered.toFixed(0)}ms`;
81
- if (milisecondsToRendered <= 450) {
79
+ const millisecondsToRendered = performance.now() - timeBeforeEmailRendered;
80
+ let timeForConsole = `${millisecondsToRendered.toFixed(0)}ms`;
81
+ if (millisecondsToRendered <= 450) {
82
82
  timeForConsole = chalk.green(timeForConsole);
83
- } else if (milisecondsToRendered <= 1000) {
83
+ } else if (millisecondsToRendered <= 1000) {
84
84
  timeForConsole = chalk.yellow(timeForConsole);
85
85
  } else {
86
86
  timeForConsole = chalk.red(timeForConsole);
@@ -8,8 +8,8 @@ import { useDebouncedCallback } from 'use-debounce';
8
8
  import { Topbar } from '../../../components';
9
9
  import { CodeContainer } from '../../../components/code-container';
10
10
  import {
11
- ResizableWrapper,
12
11
  makeIframeDocumentBubbleEvents,
12
+ ResizableWrapper,
13
13
  } from '../../../components/resizable-wrapper';
14
14
  import { Send } from '../../../components/send';
15
15
  import { useToolbarState } from '../../../components/toolbar';
@@ -0,0 +1,164 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html dir="ltr" lang="en">
3
+ <head>
4
+ <link rel="preload" as="image" href="/static/aws-logo.png" />
5
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
6
+ <meta name="x-apple-disable-message-reformatting" />
7
+ <!--$-->
8
+ </head>
9
+ <body style="background-color:#fff;color:#212121">
10
+ <div
11
+ style="display:none;overflow:hidden;line-height:1px;opacity:0;max-height:0;max-width:0">
12
+ AWS Email Verification
13
+ <div>
14
+  ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏
15
+ </div>
16
+ </div>
17
+ <table
18
+ align="center"
19
+ width="100%"
20
+ border="0"
21
+ cellpadding="0"
22
+ cellspacing="0"
23
+ role="presentation"
24
+ style="max-width:37.5em;padding:20px;margin:0 auto;background-color:#eee">
25
+ <tbody>
26
+ <tr style="width:100%">
27
+ <td>
28
+ <table
29
+ align="center"
30
+ width="100%"
31
+ border="0"
32
+ cellpadding="0"
33
+ cellspacing="0"
34
+ role="presentation"
35
+ style="background-color:#fff">
36
+ <tbody>
37
+ <tr>
38
+ <td>
39
+ <table
40
+ align="center"
41
+ width="100%"
42
+ border="0"
43
+ cellpadding="0"
44
+ cellspacing="0"
45
+ role="presentation"
46
+ style="background-color:#252f3d;display:flex;padding:20px 0;align-items:center;justify-content:center">
47
+ <tbody>
48
+ <tr>
49
+ <td>
50
+ <img
51
+ alt="AWS&#x27;s Logo"
52
+ height="45"
53
+ src="/static/aws-logo.png"
54
+ style="display:block;outline:none;border:none;text-decoration:none"
55
+ width="75" />
56
+ </td>
57
+ </tr>
58
+ </tbody>
59
+ </table>
60
+ <table
61
+ align="center"
62
+ width="100%"
63
+ border="0"
64
+ cellpadding="0"
65
+ cellspacing="0"
66
+ role="presentation"
67
+ style="padding:25px 35px">
68
+ <tbody>
69
+ <tr>
70
+ <td>
71
+ <h1
72
+ style="color:#333;font-family:-apple-system, BlinkMacSystemFont, &#x27;Segoe UI&#x27;, &#x27;Roboto&#x27;, &#x27;Oxygen&#x27;, &#x27;Ubuntu&#x27;, &#x27;Cantarell&#x27;, &#x27;Fira Sans&#x27;, &#x27;Droid Sans&#x27;, &#x27;Helvetica Neue&#x27;, sans-serif;font-size:20px;font-weight:bold;margin-bottom:15px">
73
+ Verify your email address
74
+ </h1>
75
+ <p
76
+ style="font-size:14px;line-height:24px;color:#333;font-family:-apple-system, BlinkMacSystemFont, &#x27;Segoe UI&#x27;, &#x27;Roboto&#x27;, &#x27;Oxygen&#x27;, &#x27;Ubuntu&#x27;, &#x27;Cantarell&#x27;, &#x27;Fira Sans&#x27;, &#x27;Droid Sans&#x27;, &#x27;Helvetica Neue&#x27;, sans-serif;margin:24px 0;margin-bottom:14px;margin-top:16px;margin-right:0;margin-left:0">
77
+ Thanks for starting the new AWS account creation
78
+ process. We want to make sure it&#x27;s really
79
+ you. Please enter the following verification code
80
+ when prompted. If you don&#x27;t want to create an
81
+ account, you can ignore this message.
82
+ </p>
83
+ <table
84
+ align="center"
85
+ width="100%"
86
+ border="0"
87
+ cellpadding="0"
88
+ cellspacing="0"
89
+ role="presentation"
90
+ style="display:flex;align-items:center;justify-content:center">
91
+ <tbody>
92
+ <tr>
93
+ <td>
94
+ <p
95
+ style="font-size:14px;line-height:24px;color:#333;font-family:-apple-system, BlinkMacSystemFont, &#x27;Segoe UI&#x27;, &#x27;Roboto&#x27;, &#x27;Oxygen&#x27;, &#x27;Ubuntu&#x27;, &#x27;Cantarell&#x27;, &#x27;Fira Sans&#x27;, &#x27;Droid Sans&#x27;, &#x27;Helvetica Neue&#x27;, sans-serif;margin:0;font-weight:bold;text-align:center;margin-top:16px;margin-bottom:16px;margin-left:0;margin-right:0">
96
+ Verification code
97
+ </p>
98
+ <p
99
+ style="font-size:36px;line-height:24px;color:#333;font-family:-apple-system, BlinkMacSystemFont, &#x27;Segoe UI&#x27;, &#x27;Roboto&#x27;, &#x27;Oxygen&#x27;, &#x27;Ubuntu&#x27;, &#x27;Cantarell&#x27;, &#x27;Fira Sans&#x27;, &#x27;Droid Sans&#x27;, &#x27;Helvetica Neue&#x27;, sans-serif;margin:10px 0;font-weight:bold;text-align:center;margin-top:16px;margin-right:0;margin-bottom:16px;margin-left:0"></p>
100
+ <p
101
+ style="font-size:14px;line-height:24px;color:#333;font-family:-apple-system, BlinkMacSystemFont, &#x27;Segoe UI&#x27;, &#x27;Roboto&#x27;, &#x27;Oxygen&#x27;, &#x27;Ubuntu&#x27;, &#x27;Cantarell&#x27;, &#x27;Fira Sans&#x27;, &#x27;Droid Sans&#x27;, &#x27;Helvetica Neue&#x27;, sans-serif;margin:0px;text-align:center;margin-top:16px;margin-bottom:16px;margin-left:0px;margin-right:0px">
102
+ (This code is valid for 10 minutes)
103
+ </p>
104
+ </td>
105
+ </tr>
106
+ </tbody>
107
+ </table>
108
+ </td>
109
+ </tr>
110
+ </tbody>
111
+ </table>
112
+ <hr
113
+ style="width:100%;border:none;border-top:1px solid #eaeaea" />
114
+ <table
115
+ align="center"
116
+ width="100%"
117
+ border="0"
118
+ cellpadding="0"
119
+ cellspacing="0"
120
+ role="presentation"
121
+ style="padding:25px 35px">
122
+ <tbody>
123
+ <tr>
124
+ <td>
125
+ <p
126
+ style="font-size:14px;line-height:24px;color:#333;font-family:-apple-system, BlinkMacSystemFont, &#x27;Segoe UI&#x27;, &#x27;Roboto&#x27;, &#x27;Oxygen&#x27;, &#x27;Ubuntu&#x27;, &#x27;Cantarell&#x27;, &#x27;Fira Sans&#x27;, &#x27;Droid Sans&#x27;, &#x27;Helvetica Neue&#x27;, sans-serif;margin:0px;margin-top:16px;margin-bottom:16px;margin-left:0px;margin-right:0px">
127
+ Amazon Web Services will never email you and ask
128
+ you to disclose or verify your password, credit
129
+ card, or banking account number.
130
+ </p>
131
+ </td>
132
+ </tr>
133
+ </tbody>
134
+ </table>
135
+ </td>
136
+ </tr>
137
+ </tbody>
138
+ </table>
139
+ <p
140
+ style="font-size:12px;line-height:24px;color:#333;font-family:-apple-system, BlinkMacSystemFont, &#x27;Segoe UI&#x27;, &#x27;Roboto&#x27;, &#x27;Oxygen&#x27;, &#x27;Ubuntu&#x27;, &#x27;Cantarell&#x27;, &#x27;Fira Sans&#x27;, &#x27;Droid Sans&#x27;, &#x27;Helvetica Neue&#x27;, sans-serif;margin:24px 0;padding:0 20px;margin-top:16px;margin-right:0;margin-bottom:16px;margin-left:0">
141
+ This message was produced and distributed by Amazon Web Services,
142
+ Inc., 410 Terry Ave. North, Seattle, WA 98109. © 2022, Amazon Web
143
+ Services, Inc.. All rights reserved. AWS is a registered trademark
144
+ of<!-- -->
145
+ <a
146
+ href="https://amazon.com"
147
+ style="color:#2754C5;text-decoration-line:none;font-family:-apple-system, BlinkMacSystemFont, &#x27;Segoe UI&#x27;, &#x27;Roboto&#x27;, &#x27;Oxygen&#x27;, &#x27;Ubuntu&#x27;, &#x27;Cantarell&#x27;, &#x27;Fira Sans&#x27;, &#x27;Droid Sans&#x27;, &#x27;Helvetica Neue&#x27;, sans-serif;font-size:14px;text-decoration:underline"
148
+ target="_blank"
149
+ >Amazon.com</a
150
+ >, Inc. View our<!-- -->
151
+ <a
152
+ href="https://amazon.com"
153
+ style="color:#2754C5;text-decoration-line:none;font-family:-apple-system, BlinkMacSystemFont, &#x27;Segoe UI&#x27;, &#x27;Roboto&#x27;, &#x27;Oxygen&#x27;, &#x27;Ubuntu&#x27;, &#x27;Cantarell&#x27;, &#x27;Fira Sans&#x27;, &#x27;Droid Sans&#x27;, &#x27;Helvetica Neue&#x27;, sans-serif;font-size:14px;text-decoration:underline"
154
+ target="_blank"
155
+ >privacy policy</a
156
+ >.
157
+ </p>
158
+ </td>
159
+ </tr>
160
+ </tbody>
161
+ </table>
162
+ <!--/$-->
163
+ </body>
164
+ </html>
@@ -0,0 +1,89 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html dir="ltr" lang="en">
3
+ <head>
4
+ <link rel="preload" as="image" href="/static/linear-logo.png" />
5
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
6
+ <meta name="x-apple-disable-message-reformatting" />
7
+ <!--$-->
8
+ </head>
9
+ <body
10
+ style='background-color:#ffffff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif'>
11
+ <div
12
+ style="display:none;overflow:hidden;line-height:1px;opacity:0;max-height:0;max-width:0">
13
+ Your login code for Linear
14
+ <div>
15
+  ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏
16
+ </div>
17
+ </div>
18
+ <table
19
+ align="center"
20
+ width="100%"
21
+ border="0"
22
+ cellpadding="0"
23
+ cellspacing="0"
24
+ role="presentation"
25
+ style="max-width:560px;margin:0 auto;padding:20px 0 48px">
26
+ <tbody>
27
+ <tr style="width:100%">
28
+ <td>
29
+ <img
30
+ alt="Linear"
31
+ height="42"
32
+ src="/static/linear-logo.png"
33
+ style="display:block;outline:none;border:none;text-decoration:none;border-radius:21px;width:42px;height:42px"
34
+ width="42" />
35
+ <h1
36
+ style="font-size:24px;letter-spacing:-0.5px;line-height:1.3;font-weight:400;color:#484848;padding:17px 0 0">
37
+ Your login code for Linear
38
+ </h1>
39
+ <table
40
+ align="center"
41
+ width="100%"
42
+ border="0"
43
+ cellpadding="0"
44
+ cellspacing="0"
45
+ role="presentation"
46
+ style="padding:27px 0 27px">
47
+ <tbody>
48
+ <tr>
49
+ <td>
50
+ <a
51
+ href="https://linear.app"
52
+ style="line-height:100%;text-decoration:none;display:block;max-width:100%;mso-padding-alt:0px;background-color:#5e6ad2;border-radius:3px;font-weight:600;color:#fff;font-size:15px;text-align:center;padding:11px 23px 11px 23px"
53
+ target="_blank"
54
+ ><span
55
+ ><!--[if mso]><i style="mso-font-width:383.33333333333337%;mso-text-raise:16.5" hidden>&#8202;&#8202;&#8202;</i><![endif]--></span
56
+ ><span
57
+ style="max-width:100%;display:inline-block;line-height:120%;mso-padding-alt:0px;mso-text-raise:8.25px"
58
+ >Login to Linear</span
59
+ ><span
60
+ ><!--[if mso]><i style="mso-font-width:383.33333333333337%" hidden>&#8202;&#8202;&#8202;&#8203;</i><![endif]--></span
61
+ ></a
62
+ >
63
+ </td>
64
+ </tr>
65
+ </tbody>
66
+ </table>
67
+ <p
68
+ style="font-size:15px;line-height:1.4;margin:0 0 15px;color:#3c4149;margin-top:16px;margin-right:0;margin-bottom:16px;margin-left:0">
69
+ This link and code will only be valid for the next 5 minutes. If
70
+ the link does not work, you can use the login verification code
71
+ directly:
72
+ </p>
73
+ <code
74
+ style="font-family:monospace;font-weight:700;padding:1px 4px;background-color:#dfe1e4;letter-spacing:-0.3px;font-size:21px;border-radius:4px;color:#3c4149"></code>
75
+ <hr
76
+ style="width:100%;border:none;border-top:1px solid #eaeaea;border-color:#dfe1e4;margin:42px 0 26px" />
77
+ <a
78
+ href="https://linear.app"
79
+ style="color:#b4becc;text-decoration-line:none;font-size:14px"
80
+ target="_blank"
81
+ >Linear</a
82
+ >
83
+ </td>
84
+ </tr>
85
+ </tbody>
86
+ </table>
87
+ <!--/$-->
88
+ </body>
89
+ </html>
@@ -0,0 +1,75 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html dir="ltr" lang="en">
3
+ <head>
4
+ <link rel="preload" as="image" href="/static/notion-logo.png" />
5
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
6
+ <meta name="x-apple-disable-message-reformatting" />
7
+ <!--$-->
8
+ </head>
9
+ <body style="background-color:#ffffff">
10
+ <div
11
+ style="display:none;overflow:hidden;line-height:1px;opacity:0;max-height:0;max-width:0">
12
+ Log in with this magic link
13
+ <div>
14
+  ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏
15
+ </div>
16
+ </div>
17
+ <table
18
+ align="center"
19
+ width="100%"
20
+ border="0"
21
+ cellpadding="0"
22
+ cellspacing="0"
23
+ role="presentation"
24
+ style="max-width:37.5em;padding-left:12px;padding-right:12px;margin:0 auto">
25
+ <tbody>
26
+ <tr style="width:100%">
27
+ <td>
28
+ <h1
29
+ style="color:#333;font-family:-apple-system, BlinkMacSystemFont, &#x27;Segoe UI&#x27;, &#x27;Roboto&#x27;, &#x27;Oxygen&#x27;, &#x27;Ubuntu&#x27;, &#x27;Cantarell&#x27;, &#x27;Fira Sans&#x27;, &#x27;Droid Sans&#x27;, &#x27;Helvetica Neue&#x27;, sans-serif;font-size:24px;font-weight:bold;margin:40px 0;padding:0">
30
+ Login
31
+ </h1>
32
+ <a
33
+ href="https://notion.so"
34
+ style="color:#2754C5;text-decoration-line:none;font-family:-apple-system, BlinkMacSystemFont, &#x27;Segoe UI&#x27;, &#x27;Roboto&#x27;, &#x27;Oxygen&#x27;, &#x27;Ubuntu&#x27;, &#x27;Cantarell&#x27;, &#x27;Fira Sans&#x27;, &#x27;Droid Sans&#x27;, &#x27;Helvetica Neue&#x27;, sans-serif;font-size:14px;text-decoration:underline;display:block;margin-bottom:16px"
35
+ target="_blank"
36
+ >Click here to log in with this magic link</a
37
+ >
38
+ <p
39
+ style="font-size:14px;line-height:24px;color:#333;font-family:-apple-system, BlinkMacSystemFont, &#x27;Segoe UI&#x27;, &#x27;Roboto&#x27;, &#x27;Oxygen&#x27;, &#x27;Ubuntu&#x27;, &#x27;Cantarell&#x27;, &#x27;Fira Sans&#x27;, &#x27;Droid Sans&#x27;, &#x27;Helvetica Neue&#x27;, sans-serif;margin:24px 0;margin-bottom:14px;margin-top:16px;margin-right:0;margin-left:0">
40
+ Or, copy and paste this temporary login code:
41
+ </p>
42
+ <code
43
+ style="display:inline-block;padding:16px 4.5%;width:90.5%;background-color:#f4f4f4;border-radius:5px;border:1px solid #eee;color:#333"></code>
44
+ <p
45
+ style="font-size:14px;line-height:24px;color:#ababab;font-family:-apple-system, BlinkMacSystemFont, &#x27;Segoe UI&#x27;, &#x27;Roboto&#x27;, &#x27;Oxygen&#x27;, &#x27;Ubuntu&#x27;, &#x27;Cantarell&#x27;, &#x27;Fira Sans&#x27;, &#x27;Droid Sans&#x27;, &#x27;Helvetica Neue&#x27;, sans-serif;margin:24px 0;margin-top:14px;margin-bottom:16px;margin-right:0;margin-left:0">
46
+ If you didn&#x27;t try to login, you can safely ignore this email.
47
+ </p>
48
+ <p
49
+ style="font-size:14px;line-height:24px;color:#ababab;font-family:-apple-system, BlinkMacSystemFont, &#x27;Segoe UI&#x27;, &#x27;Roboto&#x27;, &#x27;Oxygen&#x27;, &#x27;Ubuntu&#x27;, &#x27;Cantarell&#x27;, &#x27;Fira Sans&#x27;, &#x27;Droid Sans&#x27;, &#x27;Helvetica Neue&#x27;, sans-serif;margin:24px 0;margin-top:12px;margin-bottom:38px;margin-right:0;margin-left:0">
50
+ Hint: You can set a permanent password in Settings &amp; members →
51
+ My account.
52
+ </p>
53
+ <img
54
+ alt="Notion&#x27;s Logo"
55
+ height="32"
56
+ src="/static/notion-logo.png"
57
+ style="display:block;outline:none;border:none;text-decoration:none"
58
+ width="32" />
59
+ <p
60
+ style="font-size:12px;line-height:22px;color:#898989;font-family:-apple-system, BlinkMacSystemFont, &#x27;Segoe UI&#x27;, &#x27;Roboto&#x27;, &#x27;Oxygen&#x27;, &#x27;Ubuntu&#x27;, &#x27;Cantarell&#x27;, &#x27;Fira Sans&#x27;, &#x27;Droid Sans&#x27;, &#x27;Helvetica Neue&#x27;, sans-serif;margin-top:12px;margin-bottom:24px">
61
+ <a
62
+ href="https://notion.so"
63
+ style="color:#898989;text-decoration-line:none;font-family:-apple-system, BlinkMacSystemFont, &#x27;Segoe UI&#x27;, &#x27;Roboto&#x27;, &#x27;Oxygen&#x27;, &#x27;Ubuntu&#x27;, &#x27;Cantarell&#x27;, &#x27;Fira Sans&#x27;, &#x27;Droid Sans&#x27;, &#x27;Helvetica Neue&#x27;, sans-serif;font-size:14px;text-decoration:underline"
64
+ target="_blank"
65
+ >Notion.so</a
66
+ >, the all-in-one-workspace<br />for your notes, tasks, wikis, and
67
+ databases.
68
+ </p>
69
+ </td>
70
+ </tr>
71
+ </tbody>
72
+ </table>
73
+ <!--/$-->
74
+ </body>
75
+ </html>
@@ -0,0 +1,78 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html dir="ltr" lang="en">
3
+ <head>
4
+ <link rel="preload" as="image" href="/static/plaid-logo.png" />
5
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
6
+ <meta name="x-apple-disable-message-reformatting" />
7
+ <!--$-->
8
+ </head>
9
+ <body
10
+ style="background-color:#ffffff;font-family:HelveticaNeue,Helvetica,Arial,sans-serif">
11
+ <table
12
+ align="center"
13
+ width="100%"
14
+ border="0"
15
+ cellpadding="0"
16
+ cellspacing="0"
17
+ role="presentation"
18
+ style="max-width:360px;background-color:#ffffff;border:1px solid #eee;border-radius:5px;box-shadow:0 5px 10px rgba(20,50,70,.2);margin-top:20px;margin:0 auto;padding:68px 0 130px">
19
+ <tbody>
20
+ <tr style="width:100%">
21
+ <td>
22
+ <img
23
+ alt="Plaid"
24
+ height="88"
25
+ src="/static/plaid-logo.png"
26
+ style="display:block;outline:none;border:none;text-decoration:none;margin:0 auto"
27
+ width="212" />
28
+ <p
29
+ style="font-size:11px;line-height:16px;color:#0a85ea;font-weight:700;font-family:HelveticaNeue,Helvetica,Arial,sans-serif;height:16px;letter-spacing:0;margin:16px 8px 8px 8px;text-transform:uppercase;text-align:center;margin-top:16px;margin-right:8px;margin-bottom:16px;margin-left:8px">
30
+ Verify Your Identity
31
+ </p>
32
+ <h1
33
+ style="color:#000;display:inline-block;font-family:HelveticaNeue-Medium,Helvetica,Arial,sans-serif;font-size:20px;font-weight:500;line-height:24px;margin-bottom:0;margin-top:0;text-align:center">
34
+ Enter the following code to finish linking Venmo.
35
+ </h1>
36
+ <table
37
+ align="center"
38
+ width="100%"
39
+ border="0"
40
+ cellpadding="0"
41
+ cellspacing="0"
42
+ role="presentation"
43
+ style="background:rgba(0,0,0,.05);border-radius:4px;margin:16px auto 14px;vertical-align:middle;width:280px">
44
+ <tbody>
45
+ <tr>
46
+ <td>
47
+ <p
48
+ style="font-size:32px;line-height:40px;color:#000;font-family:HelveticaNeue-Bold;font-weight:700;letter-spacing:6px;padding-bottom:8px;padding-top:8px;margin:0 auto;display:block;text-align:center;margin-top:16px;margin-right:auto;margin-bottom:16px;margin-left:auto"></p>
49
+ </td>
50
+ </tr>
51
+ </tbody>
52
+ </table>
53
+ <p
54
+ style="font-size:15px;line-height:23px;color:#444;font-family:HelveticaNeue,Helvetica,Arial,sans-serif;letter-spacing:0;padding:0 40px;margin:0;text-align:center;margin-top:16px;margin-bottom:16px;margin-left:0;margin-right:0">
55
+ Not expecting this email?
56
+ </p>
57
+ <p
58
+ style="font-size:15px;line-height:23px;color:#444;font-family:HelveticaNeue,Helvetica,Arial,sans-serif;letter-spacing:0;padding:0 40px;margin:0;text-align:center;margin-top:16px;margin-bottom:16px;margin-left:0;margin-right:0">
59
+ Contact<!-- -->
60
+ <a
61
+ href="mailto:login@plaid.com"
62
+ style="color:#444;text-decoration-line:none;text-decoration:underline"
63
+ target="_blank"
64
+ >login@plaid.com</a
65
+ >
66
+ <!-- -->if you did not request this code.
67
+ </p>
68
+ </td>
69
+ </tr>
70
+ </tbody>
71
+ </table>
72
+ <p
73
+ style="font-size:12px;line-height:23px;color:#000;font-weight:800;letter-spacing:0;margin:0;margin-top:20px;font-family:HelveticaNeue,Helvetica,Arial,sans-serif;text-align:center;text-transform:uppercase;margin-bottom:16px;margin-left:0;margin-right:0">
74
+ Securely powered by Plaid.
75
+ </p>
76
+ <!--/$-->
77
+ </body>
78
+ </html>