commit e1ca7467101998d992f28a1cb4a7e5b9277de829
Author: zojgame
Date: Wed Mar 6 12:52:30 2024 +0500
first
diff --git a/graff.tsx b/graff.tsx
new file mode 100644
index 0000000..4d23c0d
--- /dev/null
+++ b/graff.tsx
@@ -0,0 +1,428 @@
+import {
+ Body,
+ Button,
+ Container,
+ Column,
+ Head,
+ Hr,
+ Html,
+ Img,
+ Link,
+ Preview,
+ Row,
+ Section,
+ Text,
+} from "@react-email/components";
+import { Tailwind } from "@react-email/tailwind";
+import * as React from "react";
+
+const baseUrl = "https://files.graff.tech/mail2";
+
+function GraffEmail() {
+ return (
+
+
+ Интерактивный инструмент продаж для застройщиков
+
+
+
+
+
+
+ Интерактивный инструмент продаж для застройщиков
+
+
+ Помогаем бизнесу эффективно демонстрировать свой объект.
+
+ Продавать больше и быстрее.
+
+
+
+
+
+
+
+
+
+
+ Функциональные
возможности
+
+
+ Интерактивная презентация увлекает покупателей и предоставляет
+ актуальную информацию о жилом комплексе.
+
+ Отвечает на интересующие вопросы, показывает особенности
+ и преимущества объекта.
+
+
+
+
+ Вся инфраструктура на одном экране
+
+
+
+
+ Виртуальный тур по жилому комплексу
+
+
+
+
+ Конфигуратор интерьера
+
+
+
+
+ Параметрический поиск квартир
+
+
+
+
+ Интеграция с CRM-системой
+
+
+
+
+ Любой рендер за несколько секунд
+
+
+
+
+ Формирование вишлиста
+
+
+
+
+ Отправка коммерческого предложения
+
+
+
+
+ Экскурсия в виртуальной реальности
+
+
+
+
+
+ Эффективность инструмента продаж в цифрах
+
+
+ За 10 лет работы с застройщиками, реализовали 21 проект
+
и собрали подробную статистику
+
+
+ 18%
+
+ увеличения конверсии
+
+ из консультации в бронирование
+
+
+
+ 12%
+
+ увеличения конверсии
+
+ из бронирования в продажу
+
+
+
+ x2
+
+ сокращает время
+
+ реализации проекта
+
+
+
+
+ Graff.estate stream – демонстрация жилого комплекса в браузере
+
+
+ Высокий уровень графики и полное погружение покупателя в процесс
+ выбора квартиры. Местоположение и устройство значения не имеют.
+
+ Нужен только интернет.
+
+
+
+
+
+
+
+
+
+ Победители BuildUP 2023 в номинации IT
+
+
+
+ в 2023 году наш продукт для застройщиков graff.estate был
+ признан лучшим в категории IT на Акселераторе технологических
+ стартапов от лидеров в строительстве и девелопменте Build UP от
+ Фонда «Сколково»
+
+
+
+
+
+ Реализованные проекты
+
+
+
+ ЖК «Айвазовский City»
+
+
+ Россия, Тюмень
+
+
+
+ МФК «Re:volution towers»
+
+
+ Россия, Екатеринбург
+
+
+
+
+
+ Отзывы наших клиентов
+
+
+
+ ЖК «Авторский квартал Машаров»
+
+
+ Россия, Тюмень
+
+
+
+
+ ЖК «Айвазовский City»
+
+
+ Россия, Тюмень
+
+
+
+
+
+ География проектов
+
+
+ Россия
+
+ ОАЭ, Абу-Даби
+
+
+
+
+
+ Наши клиенты в девелопменте
+
+
+
+ {Array.from({ length: 30 }).map((_, index) => (
+
+ ))}
+
+
+
+
+
+
+
+ Контакты
+
+
+ info@graff.tech
+
+
+
+
+ 8 800 770 00 76
+
+
+
+
+ graff.estate
+
+
+
+
+
+ Социальные сети
+
+
+ Telegram
+
+
+
+
+ VK
+
+
+
+
+ YouTube
+
+
+
+
+
+
+
+
+
+
+
+ © 2023 GRAFF interactive.
+
+ Все права защищены
+
+
+
+
+
+ );
+}
+
+export default GraffEmail;
diff --git a/notion-magic-link.tsx b/notion-magic-link.tsx
new file mode 100644
index 0000000..7386794
--- /dev/null
+++ b/notion-magic-link.tsx
@@ -0,0 +1,150 @@
+import {
+ Body,
+ Container,
+ Head,
+ Heading,
+ Html,
+ Img,
+ Link,
+ Preview,
+ Text,
+} from "@react-email/components";
+import * as React from "react";
+
+interface NotionMagicLinkEmailProps {
+ loginCode?: string;
+}
+
+const baseUrl = process.env.VERCEL_URL
+ ? `https://${process.env.VERCEL_URL}`
+ : "";
+
+export const NotionMagicLinkEmail = ({
+ loginCode,
+}: NotionMagicLinkEmailProps) => (
+
+
+
+ Login
+
+ Click here to log in with this magic link
+
+
+ Or, copy and paste this temporary login code:
+
+ {loginCode}
+
+ If you didn't try to login, you can safely ignore this email.
+
+
+ Hint: You can set a permanent password in Settings & members → My
+ account.
+
+
+
+
+ Notion.so
+
+ , the all-in-one-workspace
+
+ for your notes, tasks, wikis, and databases.
+
+
+
+
+);
+
+NotionMagicLinkEmail.PreviewProps = {
+ loginCode: "sparo-ndigo-amurt-secan",
+} as NotionMagicLinkEmailProps;
+
+export default NotionMagicLinkEmail;
+
+const main = {
+ backgroundColor: "#ffffff",
+};
+
+const container = {
+ paddingLeft: "12px",
+ paddingRight: "12px",
+ margin: "0 auto",
+};
+
+const h1 = {
+ color: "#333",
+ fontFamily:
+ "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif",
+ fontSize: "24px",
+ fontWeight: "bold",
+ margin: "40px 0",
+ padding: "0",
+};
+
+const link = {
+ color: "#2754C5",
+ fontFamily:
+ "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif",
+ fontSize: "14px",
+ textDecoration: "underline",
+};
+
+const text = {
+ color: "#333",
+ fontFamily:
+ "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif",
+ fontSize: "14px",
+ margin: "24px 0",
+};
+
+const footer = {
+ color: "#898989",
+ fontFamily:
+ "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif",
+ fontSize: "12px",
+ lineHeight: "22px",
+ marginTop: "12px",
+ marginBottom: "24px",
+};
+
+const code = {
+ display: "inline-block",
+ padding: "16px 4.5%",
+ width: "90.5%",
+ backgroundColor: "#f4f4f4",
+ borderRadius: "5px",
+ border: "1px solid #eee",
+ color: "#333",
+};
diff --git a/plaid-verify-identity.tsx b/plaid-verify-identity.tsx
new file mode 100644
index 0000000..877162d
--- /dev/null
+++ b/plaid-verify-identity.tsx
@@ -0,0 +1,158 @@
+import {
+ Body,
+ Container,
+ Head,
+ Heading,
+ Html,
+ Img,
+ Link,
+ Section,
+ Text,
+} from "@react-email/components";
+import * as React from "react";
+
+interface PlaidVerifyIdentityEmailProps {
+ validationCode?: string;
+}
+
+const baseUrl = process.env.VERCEL_URL
+ ? `https://${process.env.VERCEL_URL}`
+ : "";
+
+export const PlaidVerifyIdentityEmail = ({
+ validationCode,
+}: PlaidVerifyIdentityEmailProps) => (
+
+
+
+
+ Verify Your Identity
+
+ Enter the following code to finish linking Venmo.
+
+
+ Not expecting this email?
+
+ Contact{" "}
+
+ login@plaid.com
+ {" "}
+ if you did not request this code.
+
+
+ Securely powered by Plaid.
+
+
+);
+
+PlaidVerifyIdentityEmail.PreviewProps = {
+ validationCode: "144833",
+} as PlaidVerifyIdentityEmailProps;
+
+export default PlaidVerifyIdentityEmail;
+
+const main = {
+ 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",
+};
+
+const logo = {
+ 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,
+};
+
+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,
+};
+
+const codeContainer = {
+ 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,
+};
+
+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,
+};
+
+const link = {
+ 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,
+};
diff --git a/static/images/clients/1.png b/static/images/clients/1.png
new file mode 100644
index 0000000..e1d3b9b
Binary files /dev/null and b/static/images/clients/1.png differ
diff --git a/static/images/clients/10.png b/static/images/clients/10.png
new file mode 100644
index 0000000..6ae49e7
Binary files /dev/null and b/static/images/clients/10.png differ
diff --git a/static/images/clients/11.png b/static/images/clients/11.png
new file mode 100644
index 0000000..7a52a07
Binary files /dev/null and b/static/images/clients/11.png differ
diff --git a/static/images/clients/12.png b/static/images/clients/12.png
new file mode 100644
index 0000000..cff2364
Binary files /dev/null and b/static/images/clients/12.png differ
diff --git a/static/images/clients/13.png b/static/images/clients/13.png
new file mode 100644
index 0000000..b7ce385
Binary files /dev/null and b/static/images/clients/13.png differ
diff --git a/static/images/clients/14.png b/static/images/clients/14.png
new file mode 100644
index 0000000..6d24326
Binary files /dev/null and b/static/images/clients/14.png differ
diff --git a/static/images/clients/15.png b/static/images/clients/15.png
new file mode 100644
index 0000000..da80e74
Binary files /dev/null and b/static/images/clients/15.png differ
diff --git a/static/images/clients/16.png b/static/images/clients/16.png
new file mode 100644
index 0000000..a1447d4
Binary files /dev/null and b/static/images/clients/16.png differ
diff --git a/static/images/clients/17.png b/static/images/clients/17.png
new file mode 100644
index 0000000..9c9b750
Binary files /dev/null and b/static/images/clients/17.png differ
diff --git a/static/images/clients/18.png b/static/images/clients/18.png
new file mode 100644
index 0000000..8e9ceba
Binary files /dev/null and b/static/images/clients/18.png differ
diff --git a/static/images/clients/19.png b/static/images/clients/19.png
new file mode 100644
index 0000000..58d9ca3
Binary files /dev/null and b/static/images/clients/19.png differ
diff --git a/static/images/clients/2.png b/static/images/clients/2.png
new file mode 100644
index 0000000..291b70d
Binary files /dev/null and b/static/images/clients/2.png differ
diff --git a/static/images/clients/20.png b/static/images/clients/20.png
new file mode 100644
index 0000000..8b6b904
Binary files /dev/null and b/static/images/clients/20.png differ
diff --git a/static/images/clients/21.png b/static/images/clients/21.png
new file mode 100644
index 0000000..e36329e
Binary files /dev/null and b/static/images/clients/21.png differ
diff --git a/static/images/clients/22.png b/static/images/clients/22.png
new file mode 100644
index 0000000..534f14b
Binary files /dev/null and b/static/images/clients/22.png differ
diff --git a/static/images/clients/23.png b/static/images/clients/23.png
new file mode 100644
index 0000000..40bfb9c
Binary files /dev/null and b/static/images/clients/23.png differ
diff --git a/static/images/clients/24.png b/static/images/clients/24.png
new file mode 100644
index 0000000..60e7fcc
Binary files /dev/null and b/static/images/clients/24.png differ
diff --git a/static/images/clients/25.png b/static/images/clients/25.png
new file mode 100644
index 0000000..877d821
Binary files /dev/null and b/static/images/clients/25.png differ
diff --git a/static/images/clients/26.png b/static/images/clients/26.png
new file mode 100644
index 0000000..a99fac6
Binary files /dev/null and b/static/images/clients/26.png differ
diff --git a/static/images/clients/27.png b/static/images/clients/27.png
new file mode 100644
index 0000000..763b0f4
Binary files /dev/null and b/static/images/clients/27.png differ
diff --git a/static/images/clients/28.png b/static/images/clients/28.png
new file mode 100644
index 0000000..d09c520
Binary files /dev/null and b/static/images/clients/28.png differ
diff --git a/static/images/clients/29.png b/static/images/clients/29.png
new file mode 100644
index 0000000..0f70c17
Binary files /dev/null and b/static/images/clients/29.png differ
diff --git a/static/images/clients/3.png b/static/images/clients/3.png
new file mode 100644
index 0000000..c9da019
Binary files /dev/null and b/static/images/clients/3.png differ
diff --git a/static/images/clients/30.png b/static/images/clients/30.png
new file mode 100644
index 0000000..4d5937b
Binary files /dev/null and b/static/images/clients/30.png differ
diff --git a/static/images/clients/4.png b/static/images/clients/4.png
new file mode 100644
index 0000000..6d7176b
Binary files /dev/null and b/static/images/clients/4.png differ
diff --git a/static/images/clients/5.png b/static/images/clients/5.png
new file mode 100644
index 0000000..dac1a73
Binary files /dev/null and b/static/images/clients/5.png differ
diff --git a/static/images/clients/6.png b/static/images/clients/6.png
new file mode 100644
index 0000000..d7f3964
Binary files /dev/null and b/static/images/clients/6.png differ
diff --git a/static/images/clients/7.png b/static/images/clients/7.png
new file mode 100644
index 0000000..f6bbe5e
Binary files /dev/null and b/static/images/clients/7.png differ
diff --git a/static/images/clients/8.png b/static/images/clients/8.png
new file mode 100644
index 0000000..b28ca65
Binary files /dev/null and b/static/images/clients/8.png differ
diff --git a/static/images/clients/9.png b/static/images/clients/9.png
new file mode 100644
index 0000000..847b8c2
Binary files /dev/null and b/static/images/clients/9.png differ
diff --git a/static/images/clients_table.png b/static/images/clients_table.png
new file mode 100644
index 0000000..32a6d92
Binary files /dev/null and b/static/images/clients_table.png differ
diff --git a/static/images/contact.png b/static/images/contact.png
new file mode 100644
index 0000000..cbf58db
Binary files /dev/null and b/static/images/contact.png differ
diff --git a/static/images/geography.png b/static/images/geography.png
new file mode 100644
index 0000000..6a5542b
Binary files /dev/null and b/static/images/geography.png differ
diff --git a/static/images/geography/abu_dhabi.png b/static/images/geography/abu_dhabi.png
new file mode 100644
index 0000000..40f8847
Binary files /dev/null and b/static/images/geography/abu_dhabi.png differ
diff --git a/static/images/geography/russia.png b/static/images/geography/russia.png
new file mode 100644
index 0000000..fce17a0
Binary files /dev/null and b/static/images/geography/russia.png differ
diff --git a/static/images/possibilities.png b/static/images/possibilities.png
new file mode 100644
index 0000000..eb0283c
Binary files /dev/null and b/static/images/possibilities.png differ
diff --git a/static/images/projects/aivaz.png b/static/images/projects/aivaz.png
new file mode 100644
index 0000000..ccaf749
Binary files /dev/null and b/static/images/projects/aivaz.png differ
diff --git a/static/images/projects/revolution.png b/static/images/projects/revolution.png
new file mode 100644
index 0000000..8241ee9
Binary files /dev/null and b/static/images/projects/revolution.png differ
diff --git a/static/images/reviews.png b/static/images/reviews.png
new file mode 100644
index 0000000..3ba8357
Binary files /dev/null and b/static/images/reviews.png differ
diff --git a/static/images/reviews/1.png b/static/images/reviews/1.png
new file mode 100644
index 0000000..bab97d5
Binary files /dev/null and b/static/images/reviews/1.png differ
diff --git a/static/images/reviews/2.png b/static/images/reviews/2.png
new file mode 100644
index 0000000..e1f1e65
Binary files /dev/null and b/static/images/reviews/2.png differ
diff --git a/static/images/winners_buildUp.png b/static/images/winners_buildUp.png
new file mode 100644
index 0000000..03df635
Binary files /dev/null and b/static/images/winners_buildUp.png differ
diff --git a/static/images/winners_buildUp_image.png b/static/images/winners_buildUp_image.png
new file mode 100644
index 0000000..1c6c357
Binary files /dev/null and b/static/images/winners_buildUp_image.png differ
diff --git a/static/notion-logo.png b/static/notion-logo.png
new file mode 100644
index 0000000..57cddee
Binary files /dev/null and b/static/notion-logo.png differ
diff --git a/static/plaid-logo.png b/static/plaid-logo.png
new file mode 100644
index 0000000..ce9d08c
Binary files /dev/null and b/static/plaid-logo.png differ
diff --git a/static/plaid.png b/static/plaid.png
new file mode 100644
index 0000000..ce9d08c
Binary files /dev/null and b/static/plaid.png differ
diff --git a/static/stripe-logo.png b/static/stripe-logo.png
new file mode 100644
index 0000000..af4c771
Binary files /dev/null and b/static/stripe-logo.png differ
diff --git a/static/vercel-arrow.png b/static/vercel-arrow.png
new file mode 100644
index 0000000..018f64d
Binary files /dev/null and b/static/vercel-arrow.png differ
diff --git a/static/vercel-logo.png b/static/vercel-logo.png
new file mode 100644
index 0000000..5b97094
Binary files /dev/null and b/static/vercel-logo.png differ
diff --git a/static/vercel-team.png b/static/vercel-team.png
new file mode 100644
index 0000000..d3de7d9
Binary files /dev/null and b/static/vercel-team.png differ
diff --git a/static/vercel-user.png b/static/vercel-user.png
new file mode 100644
index 0000000..81beac6
Binary files /dev/null and b/static/vercel-user.png differ
diff --git a/stripe-welcome.tsx b/stripe-welcome.tsx
new file mode 100644
index 0000000..17a41b8
--- /dev/null
+++ b/stripe-welcome.tsx
@@ -0,0 +1,152 @@
+import {
+ 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}`
+ : "";
+
+export const StripeWelcomeEmail = () => (
+
+
+
+
+
+
+
+ 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',
+};
+
+const container = {
+ backgroundColor: "#ffffff",
+ margin: "0 auto",
+ padding: "20px 0 48px",
+ marginBottom: "64px",
+};
+
+const box = {
+ padding: "0 48px",
+};
+
+const hr = {
+ borderColor: "#e6ebf1",
+ margin: "20px 0",
+};
+
+const paragraph = {
+ color: "#525f7f",
+
+ fontSize: "16px",
+ lineHeight: "24px",
+ textAlign: "left" as const,
+};
+
+const anchor = {
+ 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",
+};
+
+const footer = {
+ color: "#8898aa",
+ fontSize: "12px",
+ lineHeight: "16px",
+};
diff --git a/vercel-invite-user.tsx b/vercel-invite-user.tsx
new file mode 100644
index 0000000..f30691a
--- /dev/null
+++ b/vercel-invite-user.tsx
@@ -0,0 +1,154 @@
+import {
+ Body,
+ Button,
+ Container,
+ Column,
+ Head,
+ Heading,
+ Hr,
+ Html,
+ Img,
+ Link,
+ Preview,
+ Row,
+ Section,
+ Text,
+} from "@react-email/components";
+import { Tailwind } from "@react-email/tailwind";
+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;
+}
+
+const baseUrl = process.env.VERCEL_URL
+ ? `https://${process.env.VERCEL_URL}`
+ : "";
+
+export const VercelInviteUserEmail = ({
+ username,
+ userImage,
+ invitedByUsername,
+ invitedByEmail,
+ teamName,
+ teamImage,
+ inviteLink,
+ inviteFromIp,
+ inviteFromLocation,
+}: VercelInviteUserEmailProps) => {
+ const previewText = `Join ${invitedByUsername} on Vercel`;
+
+ return (
+
+