diff --git a/emails/emails/plaid-verify-identity.tsx b/emails/emails/plaid-verify-identity.tsx index 877162d14..2fce846a8 100644 --- a/emails/emails/plaid-verify-identity.tsx +++ b/emails/emails/plaid-verify-identity.tsx @@ -1,158 +1,158 @@ import { - Body, - Container, - Head, - Heading, - Html, - Img, - Link, - Section, - Text, + Body, + Container, + Head, + Heading, + Html, + Img, + Link, + Section, + Text, } from "@react-email/components"; import * as React from "react"; interface PlaidVerifyIdentityEmailProps { - validationCode?: string; + validationCode?: string; } const baseUrl = process.env.VERCEL_URL - ? `https://${process.env.VERCEL_URL}` - : ""; + ? `https://${process.env.VERCEL_URL}` + : ""; export const PlaidVerifyIdentityEmail = ({ - validationCode, + validationCode, }: PlaidVerifyIdentityEmailProps) => ( - - - - - Plaid - Verify Your Identity - - Enter the following code to finish linking Venmo. - -
- {validationCode} -
- Not expecting this email? - - Contact{" "} - - login@plaid.com - {" "} - if you did not request this code. - -
- Securely powered by Plaid. - - + + + + + Plaid + Verify Your Identity + + Enter the following code to finish linking Venmo. + +
+ {validationCode} +
+ Not expecting this email? + + Contact{" "} + + login@plaid.com + {" "} + if you did not request this code. + +
+ Securely powered by Plaid. + + ); PlaidVerifyIdentityEmail.PreviewProps = { - validationCode: "144833", + validationCode: "144833", } as PlaidVerifyIdentityEmailProps; export default PlaidVerifyIdentityEmail; const main = { - backgroundColor: "#ffffff", - fontFamily: "HelveticaNeue,Helvetica,Arial,sans-serif", + backgroundColor: "#ffffff", + fontFamily: "HelveticaNeue,Helvetica,Arial,sans-serif", }; const container = { - backgroundColor: "#ffffff", - border: "1px solid #eee", - borderRadius: "5px", - boxShadow: "0 5px 10px rgba(20,50,70,.2)", - marginTop: "20px", - maxWidth: "360px", - margin: "0 auto", - padding: "68px 0 130px", + backgroundColor: "#ffffff", + border: "1px solid #eee", + borderRadius: "5px", + boxShadow: "0 5px 10px rgba(20,50,70,.2)", + marginTop: "20px", + maxWidth: "360px", + margin: "0 auto", + padding: "68px 0 130px", }; const logo = { - margin: "0 auto", + margin: "0 auto", }; const tertiary = { - color: "#0a85ea", - fontSize: "11px", - fontWeight: 700, - fontFamily: "HelveticaNeue,Helvetica,Arial,sans-serif", - height: "16px", - letterSpacing: "0", - lineHeight: "16px", - margin: "16px 8px 8px 8px", - textTransform: "uppercase" as const, - textAlign: "center" as const, + color: "#0a85ea", + fontSize: "11px", + fontWeight: 700, + fontFamily: "HelveticaNeue,Helvetica,Arial,sans-serif", + height: "16px", + letterSpacing: "0", + lineHeight: "16px", + margin: "16px 8px 8px 8px", + textTransform: "uppercase" as const, + textAlign: "center" as const, }; const secondary = { - color: "#000", - display: "inline-block", - fontFamily: "HelveticaNeue-Medium,Helvetica,Arial,sans-serif", - fontSize: "20px", - fontWeight: 500, - lineHeight: "24px", - marginBottom: "0", - marginTop: "0", - textAlign: "center" as const, + color: "#000", + display: "inline-block", + fontFamily: "HelveticaNeue-Medium,Helvetica,Arial,sans-serif", + fontSize: "20px", + fontWeight: 500, + lineHeight: "24px", + marginBottom: "0", + marginTop: "0", + textAlign: "center" as const, }; const codeContainer = { - background: "rgba(0,0,0,.05)", - borderRadius: "4px", - margin: "16px auto 14px", - verticalAlign: "middle", - width: "280px", + background: "rgba(0,0,0,.05)", + borderRadius: "4px", + margin: "16px auto 14px", + verticalAlign: "middle", + width: "280px", }; const code = { - color: "#000", - display: "inline-block", - fontFamily: "HelveticaNeue-Bold", - fontSize: "32px", - fontWeight: 700, - letterSpacing: "6px", - lineHeight: "40px", - paddingBottom: "8px", - paddingTop: "8px", - margin: "0 auto", - width: "100%", - textAlign: "center" as const, + color: "#000", + display: "inline-block", + fontFamily: "HelveticaNeue-Bold", + fontSize: "32px", + fontWeight: 700, + letterSpacing: "6px", + lineHeight: "40px", + paddingBottom: "8px", + paddingTop: "8px", + margin: "0 auto", + width: "100%", + textAlign: "center" as const, }; const paragraph = { - color: "#444", - fontSize: "15px", - fontFamily: "HelveticaNeue,Helvetica,Arial,sans-serif", - letterSpacing: "0", - lineHeight: "23px", - padding: "0 40px", - margin: "0", - textAlign: "center" as const, + color: "#444", + fontSize: "15px", + fontFamily: "HelveticaNeue,Helvetica,Arial,sans-serif", + letterSpacing: "0", + lineHeight: "23px", + padding: "0 40px", + margin: "0", + textAlign: "center" as const, }; const link = { - color: "#444", - textDecoration: "underline", + color: "#444", + textDecoration: "underline", }; const footer = { - color: "#000", - fontSize: "12px", - fontWeight: 800, - letterSpacing: "0", - lineHeight: "23px", - margin: "0", - marginTop: "20px", - fontFamily: "HelveticaNeue,Helvetica,Arial,sans-serif", - textAlign: "center" as const, - textTransform: "uppercase" as const, + color: "#000", + fontSize: "12px", + fontWeight: 800, + letterSpacing: "0", + lineHeight: "23px", + margin: "0", + marginTop: "20px", + fontFamily: "HelveticaNeue,Helvetica,Arial,sans-serif", + textAlign: "center" as const, + textTransform: "uppercase" as const, }; diff --git a/emails/emails/stripe-welcome.tsx b/emails/emails/stripe-welcome.tsx index 17a41b823..232f4a2ce 100644 --- a/emails/emails/stripe-welcome.tsx +++ b/emails/emails/stripe-welcome.tsx @@ -1,152 +1,152 @@ import { - Body, - Button, - Container, - Head, - Hr, - Html, - Img, - Link, - Preview, - Section, - Text, + Body, + Button, + Container, + Head, + Hr, + Html, + Img, + Link, + Preview, + Section, + Text, } from "@react-email/components"; import * as React from "react"; const baseUrl = process.env.VERCEL_URL - ? `https://${process.env.VERCEL_URL}` - : ""; + ? `https://${process.env.VERCEL_URL}` + : ""; export const StripeWelcomeEmail = () => ( - - - You're now ready to make live transactions with Stripe! - - -
- Stripe -
- - Thanks for submitting your account information. You're now ready to - make live transactions with Stripe! - - - You can view your payments and a variety of other information about - your account right from your dashboard. - - -
- - If you haven't finished your integration, you might find our{" "} - - docs - {" "} - handy. - - - Once you're ready to start accepting payments, you'll just need to - use your live{" "} - - API keys - {" "} - instead of your test API keys. Your account can simultaneously be - used for both test and live requests, so you can continue testing - while accepting live payments. Check out our{" "} - - tutorial about account basics - - . - - - Finally, we've put together a{" "} - - quick checklist - {" "} - to ensure your website conforms to card network standards. - - - We'll be here to help you with any step along the way. You can find - answers to most questions and get in touch with us on our{" "} - - support site - - . - - — The Stripe team -
- - Stripe, 354 Oyster Point Blvd, South San Francisco, CA 94080 - -
-
- - + + + You're now ready to make live transactions with Stripe! + + +
+ Stripe +
+ + Thanks for submitting your account information. You're now ready to + make live transactions with Stripe! + + + You can view your payments and a variety of other information about + your account right from your dashboard. + + +
+ + If you haven't finished your integration, you might find our{" "} + + docs + {" "} + handy. + + + Once you're ready to start accepting payments, you'll just need to + use your live{" "} + + API keys + {" "} + instead of your test API keys. Your account can simultaneously be + used for both test and live requests, so you can continue testing + while accepting live payments. Check out our{" "} + + tutorial about account basics + + . + + + Finally, we've put together a{" "} + + quick checklist + {" "} + to ensure your website conforms to card network standards. + + + We'll be here to help you with any step along the way. You can find + answers to most questions and get in touch with us on our{" "} + + support site + + . + + — The Stripe team +
+ + Stripe, 354 Oyster Point Blvd, South San Francisco, CA 94080 + +
+
+ + ); export default StripeWelcomeEmail; const main = { - backgroundColor: "#f6f9fc", - fontFamily: - '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Ubuntu,sans-serif', + backgroundColor: "#f6f9fc", + fontFamily: + '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Ubuntu,sans-serif', }; const container = { - backgroundColor: "#ffffff", - margin: "0 auto", - padding: "20px 0 48px", - marginBottom: "64px", + backgroundColor: "#ffffff", + margin: "0 auto", + padding: "20px 0 48px", + marginBottom: "64px", }; const box = { - padding: "0 48px", + padding: "0 48px", }; const hr = { - borderColor: "#e6ebf1", - margin: "20px 0", + borderColor: "#e6ebf1", + margin: "20px 0", }; const paragraph = { - color: "#525f7f", + color: "#525f7f", - fontSize: "16px", - lineHeight: "24px", - textAlign: "left" as const, + fontSize: "16px", + lineHeight: "24px", + textAlign: "left" as const, }; const anchor = { - color: "#556cd6", + color: "#556cd6", }; const button = { - backgroundColor: "#656ee8", - borderRadius: "5px", - color: "#fff", - fontSize: "16px", - fontWeight: "bold", - textDecoration: "none", - textAlign: "center" as const, - display: "block", - width: "100%", - padding: "10px", + backgroundColor: "#656ee8", + borderRadius: "5px", + color: "#fff", + fontSize: "16px", + fontWeight: "bold", + textDecoration: "none", + textAlign: "center" as const, + display: "block", + width: "100%", + padding: "10px", }; const footer = { - color: "#8898aa", - fontSize: "12px", - lineHeight: "16px", + color: "#8898aa", + fontSize: "12px", + lineHeight: "16px", }; diff --git a/emails/emails/vercel-invite-user.tsx b/emails/emails/vercel-invite-user.tsx index a7a82a997..bd7404ab9 100644 --- a/emails/emails/vercel-invite-user.tsx +++ b/emails/emails/vercel-invite-user.tsx @@ -1,154 +1,154 @@ import { - Body, - Button, - Container, - Column, - Head, - Heading, - Hr, - Html, - Img, - Link, - Preview, - Row, - Section, - Text, - Tailwind, + Body, + Button, + Column, + Container, + Head, + Heading, + Hr, + Html, + Img, + Link, + Preview, + Row, + Section, + Tailwind, + Text, } from "@react-email/components"; import * as React from "react"; interface VercelInviteUserEmailProps { - username?: string; - userImage?: string; - invitedByUsername?: string; - invitedByEmail?: string; - teamName?: string; - teamImage?: string; - inviteLink?: string; - inviteFromIp?: string; - inviteFromLocation?: string; + username?: string; + userImage?: string; + invitedByUsername?: string; + invitedByEmail?: string; + teamName?: string; + teamImage?: string; + inviteLink?: string; + inviteFromIp?: string; + inviteFromLocation?: string; } const baseUrl = process.env.VERCEL_URL - ? `https://${process.env.VERCEL_URL}` - : ""; + ? `https://${process.env.VERCEL_URL}` + : ""; export const VercelInviteUserEmail = ({ - username, - userImage, - invitedByUsername, - invitedByEmail, - teamName, - teamImage, - inviteLink, - inviteFromIp, - inviteFromLocation, + username, + userImage, + invitedByUsername, + invitedByEmail, + teamName, + teamImage, + inviteLink, + inviteFromIp, + inviteFromLocation, }: VercelInviteUserEmailProps) => { - const previewText = `Join ${invitedByUsername} on Vercel`; + const previewText = `Join ${invitedByUsername} on Vercel`; - return ( - - - {previewText} - - - -
- Vercel -
- - Join {teamName} on Vercel - - - Hello {username}, - - - {invitedByUsername} ( - - {invitedByEmail} - - ) has invited you to the {teamName} team on{" "} - Vercel. - -
- - - - - - invited you to - - - - - -
-
- -
- - or copy and paste this URL into your browser:{" "} - - {inviteLink} - - -
- - This invitation was intended for{" "} - {username}. This invite was - sent from {inviteFromIp}{" "} - located in{" "} - {inviteFromLocation}. If you - were not expecting this invitation, you can ignore this email. If - you are concerned about your account's safety, please reply to - this email to get in touch with us. - -
- -
- - ); + return ( + + + {previewText} + + + +
+ Vercel +
+ + Join {teamName} on Vercel + + + Hello {username}, + + + {invitedByUsername} ( + + {invitedByEmail} + + ) has invited you to the {teamName} team on{" "} + Vercel. + +
+ + + + + + invited you to + + + + + +
+
+ +
+ + or copy and paste this URL into your browser:{" "} + + {inviteLink} + + +
+ + This invitation was intended for{" "} + {username}. This invite was + sent from {inviteFromIp}{" "} + located in{" "} + {inviteFromLocation}. If you + were not expecting this invitation, you can ignore this email. If + you are concerned about your account's safety, please reply to + this email to get in touch with us. + +
+ +
+ + ); }; VercelInviteUserEmail.PreviewProps = { - username: "alanturing", - userImage: `${baseUrl}/static/vercel-user.png`, - invitedByUsername: "Alan", - invitedByEmail: "alan.turing@example.com", - teamName: "Enigma", - teamImage: `${baseUrl}/static/vercel-team.png`, - inviteLink: "https://vercel.com/teams/invite/foo", - inviteFromIp: "204.13.186.218", - inviteFromLocation: "São Paulo, Brazil", + username: "alanturing", + userImage: `${baseUrl}/static/vercel-user.png`, + invitedByUsername: "Alan", + invitedByEmail: "alan.turing@example.com", + teamName: "Enigma", + teamImage: `${baseUrl}/static/vercel-team.png`, + inviteLink: "https://vercel.com/teams/invite/foo", + inviteFromIp: "204.13.186.218", + inviteFromLocation: "São Paulo, Brazil", } as VercelInviteUserEmailProps; export default VercelInviteUserEmail; diff --git a/package.json b/package.json index 7e08e4e65..e913020b2 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "db:truncate": "tsx -r dotenv/config ./server/db/reset.ts", "db:studio": "drizzle-kit studio --config ./server/db/drizzle.config.ts", "check": "biome check", - "format": "biome format", + "format": "biome format --write", "lint": "biome lint", "typecheck": "tsc", "db:seed": "tsx -r dotenv/config ./server/db/seed.ts",