@vrplatform/email 1.0.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/LICENSE +3 -0
- package/build/main/components/ActionEmailTemplate.d.ts +15 -0
- package/build/main/components/ActionEmailTemplate.js +39 -0
- package/build/main/components/ActionEmailTemplate.js.map +1 -0
- package/build/main/components/Button.d.ts +11 -0
- package/build/main/components/Button.js +15 -0
- package/build/main/components/Button.js.map +1 -0
- package/build/main/components/EmailContainer.d.ts +10 -0
- package/build/main/components/EmailContainer.js +52 -0
- package/build/main/components/EmailContainer.js.map +1 -0
- package/build/main/components/index.d.ts +2 -0
- package/build/main/components/index.js +3 -0
- package/build/main/components/index.js.map +1 -0
- package/build/main/components/utils/index.d.ts +1 -0
- package/build/main/components/utils/index.js +2 -0
- package/build/main/components/utils/index.js.map +1 -0
- package/build/main/components/utils/parse-email-html.d.ts +6 -0
- package/build/main/components/utils/parse-email-html.js +11 -0
- package/build/main/components/utils/parse-email-html.js.map +1 -0
- package/build/main/components/utils/parse-email-html.test.d.ts +1 -0
- package/build/main/components/utils/parse-email-html.test.js +59 -0
- package/build/main/components/utils/parse-email-html.test.js.map +1 -0
- package/build/main/const.d.ts +6 -0
- package/build/main/const.js +7 -0
- package/build/main/const.js.map +1 -0
- package/build/main/extensions.d.ts +4 -0
- package/build/main/extensions.js +5 -0
- package/build/main/extensions.js.map +1 -0
- package/build/main/index.d.ts +7 -0
- package/build/main/index.js +7 -0
- package/build/main/index.js.map +1 -0
- package/build/main/templates/InviteOwnerEmailTemplate.d.ts +8 -0
- package/build/main/templates/InviteOwnerEmailTemplate.js +41 -0
- package/build/main/templates/InviteOwnerEmailTemplate.js.map +1 -0
- package/build/main/templates/InvitePmEmailTemplate.d.ts +8 -0
- package/build/main/templates/InvitePmEmailTemplate.js +51 -0
- package/build/main/templates/InvitePmEmailTemplate.js.map +1 -0
- package/build/main/templates/OwnerStatementEmailTemplate.d.ts +11 -0
- package/build/main/templates/OwnerStatementEmailTemplate.js +55 -0
- package/build/main/templates/OwnerStatementEmailTemplate.js.map +1 -0
- package/build/main/templates/OwnerStatementSummaryEmailTemplate.d.ts +9 -0
- package/build/main/templates/OwnerStatementSummaryEmailTemplate.js +46 -0
- package/build/main/templates/OwnerStatementSummaryEmailTemplate.js.map +1 -0
- package/build/main/templates/OwnerTaxStatementEmailTemplate.d.ts +10 -0
- package/build/main/templates/OwnerTaxStatementEmailTemplate.js +47 -0
- package/build/main/templates/OwnerTaxStatementEmailTemplate.js.map +1 -0
- package/build/main/templates/TenantDeletionEmailTemplate.d.ts +10 -0
- package/build/main/templates/TenantDeletionEmailTemplate.js +26 -0
- package/build/main/templates/TenantDeletionEmailTemplate.js.map +1 -0
- package/build/main/templates/TenantSuspensionEmailTemplate.d.ts +9 -0
- package/build/main/templates/TenantSuspensionEmailTemplate.js +24 -0
- package/build/main/templates/TenantSuspensionEmailTemplate.js.map +1 -0
- package/build/main/templates/index.d.ts +7 -0
- package/build/main/templates/index.js +12 -0
- package/build/main/templates/index.js.map +1 -0
- package/build/main/theme.d.ts +29 -0
- package/build/main/theme.js +283 -0
- package/build/main/theme.js.map +1 -0
- package/build/main/tsconfig.main.tsbuildinfo +1 -0
- package/build/main/types.d.ts +25 -0
- package/build/main/types.js +2 -0
- package/build/main/types.js.map +1 -0
- package/build/main/utils/index.d.ts +1 -0
- package/build/main/utils/index.js +2 -0
- package/build/main/utils/index.js.map +1 -0
- package/build/main/utils/send-email.d.ts +10 -0
- package/build/main/utils/send-email.js +24 -0
- package/build/main/utils/send-email.js.map +1 -0
- package/build/module/components/ActionEmailTemplate.d.ts +15 -0
- package/build/module/components/ActionEmailTemplate.js +39 -0
- package/build/module/components/ActionEmailTemplate.js.map +1 -0
- package/build/module/components/Button.d.ts +11 -0
- package/build/module/components/Button.js +15 -0
- package/build/module/components/Button.js.map +1 -0
- package/build/module/components/EmailContainer.d.ts +10 -0
- package/build/module/components/EmailContainer.js +52 -0
- package/build/module/components/EmailContainer.js.map +1 -0
- package/build/module/components/index.d.ts +2 -0
- package/build/module/components/index.js +3 -0
- package/build/module/components/index.js.map +1 -0
- package/build/module/components/utils/index.d.ts +1 -0
- package/build/module/components/utils/index.js +2 -0
- package/build/module/components/utils/index.js.map +1 -0
- package/build/module/components/utils/parse-email-html.d.ts +6 -0
- package/build/module/components/utils/parse-email-html.js +11 -0
- package/build/module/components/utils/parse-email-html.js.map +1 -0
- package/build/module/components/utils/parse-email-html.test.d.ts +1 -0
- package/build/module/components/utils/parse-email-html.test.js +59 -0
- package/build/module/components/utils/parse-email-html.test.js.map +1 -0
- package/build/module/const.d.ts +6 -0
- package/build/module/const.js +7 -0
- package/build/module/const.js.map +1 -0
- package/build/module/extensions.d.ts +4 -0
- package/build/module/extensions.js +5 -0
- package/build/module/extensions.js.map +1 -0
- package/build/module/index.d.ts +7 -0
- package/build/module/index.js +7 -0
- package/build/module/index.js.map +1 -0
- package/build/module/templates/InviteOwnerEmailTemplate.d.ts +8 -0
- package/build/module/templates/InviteOwnerEmailTemplate.js +41 -0
- package/build/module/templates/InviteOwnerEmailTemplate.js.map +1 -0
- package/build/module/templates/InvitePmEmailTemplate.d.ts +8 -0
- package/build/module/templates/InvitePmEmailTemplate.js +51 -0
- package/build/module/templates/InvitePmEmailTemplate.js.map +1 -0
- package/build/module/templates/OwnerStatementEmailTemplate.d.ts +11 -0
- package/build/module/templates/OwnerStatementEmailTemplate.js +55 -0
- package/build/module/templates/OwnerStatementEmailTemplate.js.map +1 -0
- package/build/module/templates/OwnerStatementSummaryEmailTemplate.d.ts +9 -0
- package/build/module/templates/OwnerStatementSummaryEmailTemplate.js +46 -0
- package/build/module/templates/OwnerStatementSummaryEmailTemplate.js.map +1 -0
- package/build/module/templates/OwnerTaxStatementEmailTemplate.d.ts +10 -0
- package/build/module/templates/OwnerTaxStatementEmailTemplate.js +47 -0
- package/build/module/templates/OwnerTaxStatementEmailTemplate.js.map +1 -0
- package/build/module/templates/TenantDeletionEmailTemplate.d.ts +10 -0
- package/build/module/templates/TenantDeletionEmailTemplate.js +26 -0
- package/build/module/templates/TenantDeletionEmailTemplate.js.map +1 -0
- package/build/module/templates/TenantSuspensionEmailTemplate.d.ts +9 -0
- package/build/module/templates/TenantSuspensionEmailTemplate.js +24 -0
- package/build/module/templates/TenantSuspensionEmailTemplate.js.map +1 -0
- package/build/module/templates/index.d.ts +7 -0
- package/build/module/templates/index.js +12 -0
- package/build/module/templates/index.js.map +1 -0
- package/build/module/theme.d.ts +29 -0
- package/build/module/theme.js +283 -0
- package/build/module/theme.js.map +1 -0
- package/build/module/tsconfig.esm.tsbuildinfo +1 -0
- package/build/module/types.d.ts +25 -0
- package/build/module/types.js +2 -0
- package/build/module/types.js.map +1 -0
- package/build/module/utils/index.d.ts +1 -0
- package/build/module/utils/index.js +2 -0
- package/build/module/utils/index.js.map +1 -0
- package/build/module/utils/send-email.d.ts +10 -0
- package/build/module/utils/send-email.js +24 -0
- package/build/module/utils/send-email.js.map +1 -0
- package/package.json +53 -0
- package/src/components/ActionEmailTemplate.tsx +97 -0
- package/src/components/Button.tsx +40 -0
- package/src/components/EmailContainer.tsx +161 -0
- package/src/components/index.ts +2 -0
- package/src/components/utils/index.ts +1 -0
- package/src/components/utils/parse-email-html.test.ts +65 -0
- package/src/components/utils/parse-email-html.ts +28 -0
- package/src/const.ts +6 -0
- package/src/extensions.ts +7 -0
- package/src/index.ts +8 -0
- package/src/templates/InviteOwnerEmailTemplate.tsx +66 -0
- package/src/templates/InvitePmEmailTemplate.tsx +83 -0
- package/src/templates/OwnerStatementEmailTemplate.tsx +93 -0
- package/src/templates/OwnerStatementSummaryEmailTemplate.tsx +78 -0
- package/src/templates/OwnerTaxStatementEmailTemplate.tsx +80 -0
- package/src/templates/TenantDeletionEmailTemplate.tsx +119 -0
- package/src/templates/TenantSuspensionEmailTemplate.tsx +102 -0
- package/src/templates/index.ts +14 -0
- package/src/theme.ts +307 -0
- package/src/types.ts +25 -0
- package/src/utils/index.ts +1 -0
- package/src/utils/send-email.ts +37 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OwnerStatementSummaryEmailTemplate.js","sourceRoot":"src/","sources":["templates/OwnerStatementSummaryEmailTemplate.tsx"],"names":[],"mappings":";AAAA,OAAO,EAEL,mBAAmB,GAEpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AAEvB,MAAM,CAAC,MAAM,wCAAwC,GAAG,CACtD,IAAoB,EACpB,IAIC,EACgB,EAAE;IACnB,MAAM,kBAAkB,GACtB,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC;IAEzE,MAAM,QAAQ,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;IAE5E,OAAO;QACL,OAAO,EAAE,4BAA4B;QACrC,gBAAgB,EAAE,oDAAoD,IAAI,CAAC,OAAO,cAAc;QAChG,MAAM,EAAE,0BAA0B;QAClC,OAAO,EAAE,SAAS,QAAQ,uDAAuD,IAAI,CAAC,OAAO,sEAAsE;QACnK,UAAU,EAAE,gBAAgB;QAC5B,OAAO,EAAE,wGAAwG,kBAAkB,MAAM;QACzI,IAAI,EAAE,IAAI,CAAC,kBAAkB;KAC9B,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAChD,KAA+B,EAC/B,EAAE;IACF,OAAO,KAAC,mBAAmB,OAAK,KAAK,GAAI,CAAC;AAC5C,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,GAAG,EAAE;IACnB,MAAM,WAAW,GAAG,MAAM,CAAC;IAE3B,OAAO,CACL,KAAC,mBAAmB,IAClB,IAAI,EAAC,MAAM,EACX,MAAM,EAAE;YACN,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,+FAA+F;SACtG,EACD,IAAI,EAAE,wCAAwC,CAAC,MAAM,EAAE;YACrD,OAAO,EAAE,YAAY;YACrB,kBAAkB,EAAE,qBAAqB;YACzC,QAAQ,EAAE,WAAW;SACtB,CAAC,EACF,IAAI,EAAE;YACJ,SAAS,EAAE,MAAM;SAClB,EACD,OAAO,EAAE,SAAS,EAClB,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE;YACX,eAAe;YACf,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;SACV,GACD,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type ActionEmailData, type ActionEmailTemplateProps } from '../components';
|
|
2
|
+
export declare const getDefaultOwnerTaxStatementEmailData: (mode: "tag" | "text", args: {
|
|
3
|
+
appName: string;
|
|
4
|
+
href: string;
|
|
5
|
+
firstName: string | undefined | null;
|
|
6
|
+
year: number;
|
|
7
|
+
}) => ActionEmailData;
|
|
8
|
+
export declare const OwnerTaxStatementEmailTemplate: (props: ActionEmailTemplateProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
declare const Preview: () => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export default Preview;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { EMAIL_ACTION_LINK_COMPONENT, EMAIL_USER_NAME_COMPONENT, } from '../extensions';
|
|
3
|
+
import { ActionEmailTemplate, } from '../components';
|
|
4
|
+
export const getDefaultOwnerTaxStatementEmailData = (mode, args) => {
|
|
5
|
+
const href = mode === 'tag' ? EMAIL_ACTION_LINK_COMPONENT : args.href;
|
|
6
|
+
const firstName = mode === 'tag' ? EMAIL_USER_NAME_COMPONENT : args.firstName || 'there';
|
|
7
|
+
return {
|
|
8
|
+
subject: 'Your 1099 Tax Statement is ready',
|
|
9
|
+
shortDescription: `Your 1099 Tax Statement is ready for you. Log in to ${args.appName} to view it.`,
|
|
10
|
+
header: '1099 Tax Statement is ready',
|
|
11
|
+
bodyOne: `<p>Hi ${firstName},<p>Your 1099 tax statement for ${args.year} is now available for you to review on ${args.appName}.</p><p>Click below to see your tax statement before we send it to the IRS.</p><p>To update your tax statement details, log into your ${args.appName} account and navigate to Settings>Statement Details.</p><p>To view your annual summary statement, navigate to the Summary page from within your ${args.appName} account.</p><p>Simply reply to this email if you have any questions.</p>`,
|
|
12
|
+
buttonText: 'View tax statement',
|
|
13
|
+
bodyTwo: `<p>If you have any trouble with the button, you can copy and paste the link below into your browser: ${href}</p>`,
|
|
14
|
+
href: args.href,
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export const OwnerTaxStatementEmailTemplate = (props) => {
|
|
18
|
+
return _jsx(ActionEmailTemplate, { ...props });
|
|
19
|
+
};
|
|
20
|
+
const Preview = () => {
|
|
21
|
+
const defaultName = 'John';
|
|
22
|
+
return (_jsx(ActionEmailTemplate, { mode: "send", tenant: {
|
|
23
|
+
name: 'Pineapple Mountain',
|
|
24
|
+
logo: 'https://imagedelivery.net/Ftdv9WftbW1DctaiLSVfFA/fbd8c31f-478f-4eb0-74ac-c8eeb47b5000/256x256',
|
|
25
|
+
}, data: getDefaultOwnerTaxStatementEmailData('text', {
|
|
26
|
+
appName: 'VRPlatform',
|
|
27
|
+
href: 'https://example.com',
|
|
28
|
+
firstName: defaultName,
|
|
29
|
+
year: new Date().getFullYear(),
|
|
30
|
+
}), user: {
|
|
31
|
+
firstName: 'John',
|
|
32
|
+
}, listing: undefined, month: undefined, themeColors: [
|
|
33
|
+
// portal.brown
|
|
34
|
+
'#9E9390',
|
|
35
|
+
'#8D7C78',
|
|
36
|
+
'#7C6964',
|
|
37
|
+
'#6E5954',
|
|
38
|
+
'#614B46',
|
|
39
|
+
'#573F39',
|
|
40
|
+
'#4E342E',
|
|
41
|
+
'#3F2D29',
|
|
42
|
+
'#332725',
|
|
43
|
+
'#2A2220',
|
|
44
|
+
] }));
|
|
45
|
+
};
|
|
46
|
+
export default Preview;
|
|
47
|
+
//# sourceMappingURL=OwnerTaxStatementEmailTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OwnerTaxStatementEmailTemplate.js","sourceRoot":"src/","sources":["templates/OwnerTaxStatementEmailTemplate.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AACvB,OAAO,EAEL,mBAAmB,GAEpB,MAAM,eAAe,CAAC;AAEvB,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAClD,IAAoB,EACpB,IAKC,EACgB,EAAE;IACnB,MAAM,IAAI,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAEtE,MAAM,SAAS,GACb,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC;IAEzE,OAAO;QACL,OAAO,EAAE,kCAAkC;QAC3C,gBAAgB,EAAE,uDAAuD,IAAI,CAAC,OAAO,cAAc;QACnG,MAAM,EAAE,6BAA6B;QACrC,OAAO,EAAE,SAAS,SAAS,mCAAmC,IAAI,CAAC,IAAI,0CAA0C,IAAI,CAAC,OAAO,yIAAyI,IAAI,CAAC,OAAO,mJAAmJ,IAAI,CAAC,OAAO,2EAA2E;QAC5f,UAAU,EAAE,oBAAoB;QAChC,OAAO,EAAE,wGAAwG,IAAI,MAAM;QAC3H,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAC5C,KAA+B,EAC/B,EAAE;IACF,OAAO,KAAC,mBAAmB,OAAK,KAAK,GAAI,CAAC;AAC5C,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,GAAG,EAAE;IACnB,MAAM,WAAW,GAAG,MAAM,CAAC;IAE3B,OAAO,CACL,KAAC,mBAAmB,IAClB,IAAI,EAAC,MAAM,EACX,MAAM,EAAE;YACN,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,+FAA+F;SACtG,EACD,IAAI,EAAE,oCAAoC,CAAC,MAAM,EAAE;YACjD,OAAO,EAAE,YAAY;YACrB,IAAI,EAAE,qBAAqB;YAC3B,SAAS,EAAE,WAAW;YACtB,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SAC/B,CAAC,EACF,IAAI,EAAE;YACJ,SAAS,EAAE,MAAM;SAClB,EACD,OAAO,EAAE,SAAS,EAClB,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE;YACX,eAAe;YACf,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;SACV,GACD,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { EmailBaseProps } from '../types';
|
|
2
|
+
export type TenantDeletionEmailTemplateProps = {
|
|
3
|
+
tenant: EmailBaseProps['tenant'];
|
|
4
|
+
mode: EmailBaseProps['mode'];
|
|
5
|
+
user: EmailBaseProps['user'];
|
|
6
|
+
};
|
|
7
|
+
export declare const TenantDeletionEmailTemplate: ({ tenant, mode, user, }: TenantDeletionEmailTemplateProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export declare const TenantDeletionEmail: (props: TenantDeletionEmailTemplateProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
declare const Preview: () => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export default Preview;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Heading } from '@react-email/heading';
|
|
3
|
+
import { Text } from '@react-email/text';
|
|
4
|
+
import { EmailContainer } from '../components';
|
|
5
|
+
export const TenantDeletionEmailTemplate = ({ tenant, mode, user, }) => {
|
|
6
|
+
return (_jsxs(EmailContainer, { title: 'Team Account Deletion Notification', shortDescription: "We're reaching out to inform you that your VRPlatform team has been deleted.", tenant: {
|
|
7
|
+
logo: undefined,
|
|
8
|
+
}, mode: mode, children: [_jsx(Heading, { style: {
|
|
9
|
+
fontSize: 28,
|
|
10
|
+
fontWeight: 600,
|
|
11
|
+
marginBottom: '50px',
|
|
12
|
+
}, children: user.firstName ? `Dear ${user.firstName},` : 'Hi there,' }), _jsxs(Text, { children: ["We wanted to inform you that the team account \"", tenant.name, "\" has been deleted. This action has resulted in the removal of the following data associated with the team:"] }), _jsxs("ul", { children: [_jsx("li", { children: _jsxs(Text, { children: [_jsx("b", { children: "Payments:" }), " All payment records linked to the team have been permanently deleted."] }) }), _jsx("li", { children: _jsxs(Text, { children: [_jsx("b", { children: "Reservations:" }), " Any reservations made under this team account have been erased."] }) }), _jsx("li", { children: _jsxs(Text, { children: [_jsx("b", { children: "Owner Statements:" }), " All statements generated for owners within this team are no longer accessible."] }) }), _jsx("li", { children: _jsxs(Text, { children: [_jsx("b", { children: "Owner Data:" }), " Personal and transactional data of the owners connected to this team have been removed."] }) }), _jsx("li", { children: _jsxs(Text, { children: [_jsx("b", { children: "Connections:" }), " Any established connections or integrations related to this team have been terminated."] }) }), _jsx("li", { children: _jsxs(Text, { children: [_jsx("b", { children: "Other Related Data:" }), " All other data associated with this team has been permanently deleted."] }) })] }), _jsx(Text, { children: "If you have any questions or need further assistance, please don't hesitate to reach out." }), _jsxs(Text, { children: ["Best regards,", _jsx("br", {}), "The VRPlatform Team"] })] }));
|
|
13
|
+
};
|
|
14
|
+
export const TenantDeletionEmail = (props) => {
|
|
15
|
+
return _jsx(TenantDeletionEmailTemplate, { ...props });
|
|
16
|
+
};
|
|
17
|
+
const Preview = () => {
|
|
18
|
+
return (_jsx(TenantDeletionEmailTemplate, { mode: "send", tenant: {
|
|
19
|
+
name: 'Pineapple Mountain',
|
|
20
|
+
logo: undefined,
|
|
21
|
+
}, user: {
|
|
22
|
+
firstName: 'John',
|
|
23
|
+
} }));
|
|
24
|
+
};
|
|
25
|
+
export default Preview;
|
|
26
|
+
//# sourceMappingURL=TenantDeletionEmailTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TenantDeletionEmailTemplate.js","sourceRoot":"src/","sources":["templates/TenantDeletionEmailTemplate.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAS/C,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,EAC1C,MAAM,EACN,IAAI,EACJ,IAAI,GAC6B,EAAE,EAAE;IACrC,OAAO,CACL,MAAC,cAAc,IACb,KAAK,EAAE,oCAAoC,EAC3C,gBAAgB,EACd,8EAA8E,EAEhF,MAAM,EAAE;YACN,IAAI,EAAE,SAAS;SAChB,EACD,IAAI,EAAE,IAAI,aAEV,KAAC,OAAO,IACN,KAAK,EAAE;oBACL,QAAQ,EAAE,EAAE;oBACZ,UAAU,EAAE,GAAG;oBACf,YAAY,EAAE,MAAM;iBACrB,YAEA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,WAAW,GACjD,EAEV,MAAC,IAAI,mEAC6C,MAAM,CAAC,IAAI,oHAGtD,EACP,yBACE,uBACE,MAAC,IAAI,eACH,oCAAgB,8EAEX,GACJ,EACL,uBACE,MAAC,IAAI,eACH,wCAAoB,wEAEf,GACJ,EAEL,uBACE,MAAC,IAAI,eACH,4CAAwB,uFAEnB,GACJ,EAEL,uBACE,MAAC,IAAI,eACH,sCAAkB,gGAEb,GACJ,EAEL,uBACE,MAAC,IAAI,eACH,uCAAmB,+FAEd,GACJ,EAEL,uBACE,MAAC,IAAI,eACH,8CAA0B,+EAErB,GACJ,IACF,EACL,KAAC,IAAI,4GAGE,EACP,MAAC,IAAI,gCAEH,cAAM,2BAED,IACQ,CAClB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,KAAuC,EACvC,EAAE;IACF,OAAO,KAAC,2BAA2B,OAAK,KAAK,GAAI,CAAC;AACpD,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,GAAG,EAAE;IACnB,OAAO,CACL,KAAC,2BAA2B,IAC1B,IAAI,EAAC,MAAM,EACX,MAAM,EAAE;YACN,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,SAAS;SAChB,EACD,IAAI,EAAE;YACJ,SAAS,EAAE,MAAM;SAClB,GACD,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { EmailBaseProps } from '../types';
|
|
2
|
+
export type TenantSuspensionEmailTemplateProps = {
|
|
3
|
+
mode: EmailBaseProps['mode'];
|
|
4
|
+
user: EmailBaseProps['user'];
|
|
5
|
+
tenant: Omit<EmailBaseProps['tenant'], 'logo'>;
|
|
6
|
+
};
|
|
7
|
+
export declare const TenantSuspensionEmailTemplate: ({ mode, user, tenant, }: TenantSuspensionEmailTemplateProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
declare const Preview: () => import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export default Preview;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Heading } from '@react-email/heading';
|
|
3
|
+
import { Text } from '@react-email/text';
|
|
4
|
+
import { EmailContainer } from '../components';
|
|
5
|
+
export const TenantSuspensionEmailTemplate = ({ mode, user, tenant, }) => {
|
|
6
|
+
return (_jsxs(EmailContainer, { title: 'Action Required: Your VRPlatform Account Access', shortDescription: "We're reaching out to inform you that access to your VRPlatform team has been temporarily suspended.", tenant: {
|
|
7
|
+
logo: undefined,
|
|
8
|
+
}, mode: mode, children: [_jsx(Heading, { style: {
|
|
9
|
+
fontSize: 28,
|
|
10
|
+
fontWeight: 600,
|
|
11
|
+
marginBottom: '50px',
|
|
12
|
+
}, children: user.firstName ? `Dear ${user.firstName},` : 'Hi there,' }), _jsxs(Text, { children: ["We're reaching out to inform you that as of today, access to your team", ' ', _jsx("b", { children: tenant.name }), " has been temporarily suspended. This includes access to features such as accounting automations, owner statements, management commissions and the owner portal (including portal access for all owners)."] }), _jsx(Text, { children: "At VRPlatform, we take the security and functionality of our platform seriously, ensuring that our partners have the best possible experience. This step, though necessary, is intended to be temporary and is part of our commitment to maintain the highest standards of service." }), _jsx(Text, { style: {
|
|
13
|
+
fontWeight: 'bold',
|
|
14
|
+
}, children: "Next Steps to Regain Access:" }), _jsxs("ul", { children: [_jsx("li", { children: _jsxs(Text, { children: [_jsx("b", { children: "Immediate Action:" }), " To adress this and help you regain access to your account, please contact our support team at your earliest convenience. We're here to assist you with the necessary steps to restore your services."] }) }), _jsx("li", { children: _jsxs(Text, { children: [_jsx("b", { children: "Contact Information:" }), " You can reach us by emailing support@vrplatform.app. Our dedicated team is ready to support you in resolving this matter promptly."] }) })] }), _jsx(Text, { children: "Thank you for your prompt attention to this important matter. We value your partnership and are here to support you every step of the way." }), _jsxs(Text, { children: ["Best regards,", _jsx("br", {}), "The VRPlatform Team"] })] }));
|
|
15
|
+
};
|
|
16
|
+
const Preview = () => {
|
|
17
|
+
return (_jsx(TenantSuspensionEmailTemplate, { mode: "send", user: {
|
|
18
|
+
firstName: 'John',
|
|
19
|
+
}, tenant: {
|
|
20
|
+
name: 'Demo Test Console',
|
|
21
|
+
} }));
|
|
22
|
+
};
|
|
23
|
+
export default Preview;
|
|
24
|
+
//# sourceMappingURL=TenantSuspensionEmailTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TenantSuspensionEmailTemplate.js","sourceRoot":"src/","sources":["templates/TenantSuspensionEmailTemplate.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAS/C,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,EAC5C,IAAI,EACJ,IAAI,EACJ,MAAM,GAC6B,EAAE,EAAE;IACvC,OAAO,CACL,MAAC,cAAc,IACb,KAAK,EAAE,iDAAiD,EACxD,gBAAgB,EACd,sGAAsG,EAExG,MAAM,EAAE;YACN,IAAI,EAAE,SAAS;SAChB,EACD,IAAI,EAAE,IAAI,aAEV,KAAC,OAAO,IACN,KAAK,EAAE;oBACL,QAAQ,EAAE,EAAE;oBACZ,UAAU,EAAE,GAAG;oBACf,YAAY,EAAE,MAAM;iBACrB,YAEA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,WAAW,GACjD,EAEV,MAAC,IAAI,yFACoE,GAAG,EAC1E,sBAAI,MAAM,CAAC,IAAI,GAAK,iNAIf,EACP,KAAC,IAAI,sSAKE,EACP,KAAC,IAAI,IACH,KAAK,EAAE;oBACL,UAAU,EAAE,MAAM;iBACnB,6CAGI,EACP,yBACE,uBACE,MAAC,IAAI,eACH,4CAAwB,6MAInB,GACJ,EACL,uBACE,MAAC,IAAI,eACH,+CAA2B,2IAGtB,GACJ,IACF,EACL,KAAC,IAAI,6JAGE,EACP,MAAC,IAAI,gCAEH,cAAM,2BAED,IACQ,CAClB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,GAAG,EAAE;IACnB,OAAO,CACL,KAAC,6BAA6B,IAC5B,IAAI,EAAC,MAAM,EACX,IAAI,EAAE;YACJ,SAAS,EAAE,MAAM;SAClB,EACD,MAAM,EAAE;YACN,IAAI,EAAE,mBAAmB;SAC1B,GACD,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './TenantSuspensionEmailTemplate';
|
|
2
|
+
export * from './TenantDeletionEmailTemplate';
|
|
3
|
+
export * from './OwnerStatementSummaryEmailTemplate';
|
|
4
|
+
export * from './OwnerStatementEmailTemplate';
|
|
5
|
+
export * from './OwnerTaxStatementEmailTemplate';
|
|
6
|
+
export * from './InviteOwnerEmailTemplate';
|
|
7
|
+
export * from './InvitePmEmailTemplate';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// Teams
|
|
2
|
+
export * from './TenantSuspensionEmailTemplate';
|
|
3
|
+
export * from './TenantDeletionEmailTemplate';
|
|
4
|
+
// Owner Statements
|
|
5
|
+
export * from './OwnerStatementSummaryEmailTemplate';
|
|
6
|
+
export * from './OwnerStatementEmailTemplate';
|
|
7
|
+
// Owner Tax Statements
|
|
8
|
+
export * from './OwnerTaxStatementEmailTemplate';
|
|
9
|
+
// Invitations
|
|
10
|
+
export * from './InviteOwnerEmailTemplate';
|
|
11
|
+
export * from './InvitePmEmailTemplate';
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"src/","sources":["templates/index.ts"],"names":[],"mappings":"AAAA,QAAQ;AACR,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAE9C,mBAAmB;AACnB,cAAc,sCAAsC,CAAC;AACrD,cAAc,+BAA+B,CAAC;AAE9C,uBAAuB;AACvB,cAAc,kCAAkC,CAAC;AAEjD,cAAc;AACd,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { Maybe } from '@finalytic/utils';
|
|
2
|
+
export declare const getOwnerPortalColor: (color: Maybe<string>) => string | undefined;
|
|
3
|
+
export declare const OWNER_PORTAL_COLORS: {
|
|
4
|
+
orange: string;
|
|
5
|
+
teal: string;
|
|
6
|
+
indigo: string;
|
|
7
|
+
brown: string;
|
|
8
|
+
green: string;
|
|
9
|
+
blue: string;
|
|
10
|
+
gray: string;
|
|
11
|
+
black: string;
|
|
12
|
+
red: string;
|
|
13
|
+
violett: string;
|
|
14
|
+
deepPurple: string;
|
|
15
|
+
purple: string;
|
|
16
|
+
};
|
|
17
|
+
export declare const THEME_COLORS: Record<string, [
|
|
18
|
+
string,
|
|
19
|
+
string,
|
|
20
|
+
string,
|
|
21
|
+
string,
|
|
22
|
+
string,
|
|
23
|
+
string,
|
|
24
|
+
string,
|
|
25
|
+
string,
|
|
26
|
+
string,
|
|
27
|
+
string,
|
|
28
|
+
...string[]
|
|
29
|
+
]>;
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
export const getOwnerPortalColor = (color) => {
|
|
2
|
+
if (!color)
|
|
3
|
+
return undefined;
|
|
4
|
+
if (color.includes('portal.'))
|
|
5
|
+
return color;
|
|
6
|
+
return `portal.${color}`;
|
|
7
|
+
};
|
|
8
|
+
export const OWNER_PORTAL_COLORS = {
|
|
9
|
+
orange: '#9A3412',
|
|
10
|
+
teal: '#004d40',
|
|
11
|
+
indigo: '#1D3783',
|
|
12
|
+
brown: '#4e342e',
|
|
13
|
+
green: '#3a5d57',
|
|
14
|
+
blue: '#15638f',
|
|
15
|
+
gray: '#707786',
|
|
16
|
+
black: '#22201f',
|
|
17
|
+
red: '#EB144C',
|
|
18
|
+
violett: '#9900EF',
|
|
19
|
+
deepPurple: '#4527a0',
|
|
20
|
+
purple: '#6a1b9a',
|
|
21
|
+
};
|
|
22
|
+
export const THEME_COLORS = {
|
|
23
|
+
purple: [
|
|
24
|
+
'#BF98E7',
|
|
25
|
+
'#AE7CE0',
|
|
26
|
+
'#9E62DA',
|
|
27
|
+
'#904BD5',
|
|
28
|
+
'#8336D0',
|
|
29
|
+
'#772DC1',
|
|
30
|
+
'#6C29AF',
|
|
31
|
+
'#61259D',
|
|
32
|
+
'#57218E',
|
|
33
|
+
'#4F1E80',
|
|
34
|
+
],
|
|
35
|
+
finalytic: [
|
|
36
|
+
'#C1C2C5',
|
|
37
|
+
'#A6A7AB',
|
|
38
|
+
'#909296',
|
|
39
|
+
'#5c5f66',
|
|
40
|
+
'#373A40',
|
|
41
|
+
'#2C2E33',
|
|
42
|
+
'#25262b',
|
|
43
|
+
'#1A1B1E',
|
|
44
|
+
'#141517',
|
|
45
|
+
'#101113',
|
|
46
|
+
],
|
|
47
|
+
vrplatform: [
|
|
48
|
+
// baseColor: #012F64
|
|
49
|
+
'#E6F1FF',
|
|
50
|
+
'#B8D9FE',
|
|
51
|
+
'#8BC0FE',
|
|
52
|
+
'#5DA8FD',
|
|
53
|
+
'#308FFD',
|
|
54
|
+
'#0377FC',
|
|
55
|
+
'#025FCA',
|
|
56
|
+
'#024797',
|
|
57
|
+
'#012F65',
|
|
58
|
+
'#011832',
|
|
59
|
+
],
|
|
60
|
+
// * Tailwind colors // leaving out last color to due mantine 10 color limit
|
|
61
|
+
neutral: [
|
|
62
|
+
'#fafafa',
|
|
63
|
+
'#f5f5f5',
|
|
64
|
+
'#e5e5e5',
|
|
65
|
+
'#d4d4d4',
|
|
66
|
+
'#a3a3a3',
|
|
67
|
+
'#737373',
|
|
68
|
+
'#525252',
|
|
69
|
+
'#404040',
|
|
70
|
+
'#262626',
|
|
71
|
+
'#171717',
|
|
72
|
+
// "#0a0a0a"
|
|
73
|
+
],
|
|
74
|
+
sky: [
|
|
75
|
+
'#f0f9ff',
|
|
76
|
+
'#e0f2fe',
|
|
77
|
+
'#bae6fd',
|
|
78
|
+
'#7dd3fc',
|
|
79
|
+
'#38bdf8',
|
|
80
|
+
'#0ea5e9',
|
|
81
|
+
'#0284c7',
|
|
82
|
+
'#0369a1',
|
|
83
|
+
'#075985',
|
|
84
|
+
'#0c4a6e',
|
|
85
|
+
// '#082f49',
|
|
86
|
+
],
|
|
87
|
+
indigo: [
|
|
88
|
+
'#eef2ff',
|
|
89
|
+
'#e0e7ff',
|
|
90
|
+
'#c7d2fe',
|
|
91
|
+
'#a5b4fc',
|
|
92
|
+
'#818cf8',
|
|
93
|
+
'#6366f1',
|
|
94
|
+
'#4f46e5',
|
|
95
|
+
'#4338ca',
|
|
96
|
+
'#3730a3',
|
|
97
|
+
'#312e81',
|
|
98
|
+
// '#1e1b4b',
|
|
99
|
+
],
|
|
100
|
+
violet: [
|
|
101
|
+
'#f5f3ff',
|
|
102
|
+
'#ede9fe',
|
|
103
|
+
'#ddd6fe',
|
|
104
|
+
'#c4b5fd',
|
|
105
|
+
'#a78bfa',
|
|
106
|
+
'#8b5cf6',
|
|
107
|
+
'#7c3aed',
|
|
108
|
+
'#6d28d9',
|
|
109
|
+
'#5b21b6',
|
|
110
|
+
'#4c1d95',
|
|
111
|
+
// '#2e1065',
|
|
112
|
+
],
|
|
113
|
+
amber: [
|
|
114
|
+
'#fffbeb',
|
|
115
|
+
'#fef3c7',
|
|
116
|
+
'#fde68a',
|
|
117
|
+
'#fcd34d',
|
|
118
|
+
'#fbbf24',
|
|
119
|
+
'#f59e0b',
|
|
120
|
+
'#d97706',
|
|
121
|
+
'#b45309',
|
|
122
|
+
'#92400e',
|
|
123
|
+
'#78350f',
|
|
124
|
+
],
|
|
125
|
+
// Portal Colors
|
|
126
|
+
'portal.orange': [
|
|
127
|
+
'#DBCDC8',
|
|
128
|
+
'#C8ABA1',
|
|
129
|
+
'#BC8C7C',
|
|
130
|
+
'#B76E55',
|
|
131
|
+
'#AE5639',
|
|
132
|
+
'#A34425',
|
|
133
|
+
'#9A3412',
|
|
134
|
+
'#76311B',
|
|
135
|
+
'#5B2D1E',
|
|
136
|
+
'#48291E',
|
|
137
|
+
],
|
|
138
|
+
'portal.teal': [
|
|
139
|
+
'#45766E',
|
|
140
|
+
'#366B62',
|
|
141
|
+
'#296259',
|
|
142
|
+
'#1D5B50',
|
|
143
|
+
'#13554A',
|
|
144
|
+
'#095044',
|
|
145
|
+
'#004D40',
|
|
146
|
+
'#063A31',
|
|
147
|
+
'#0A2D27',
|
|
148
|
+
'#0B231F',
|
|
149
|
+
],
|
|
150
|
+
'portal.indigo': [
|
|
151
|
+
'#B9BECD',
|
|
152
|
+
'#969FBA',
|
|
153
|
+
'#7483AE',
|
|
154
|
+
'#5469A6',
|
|
155
|
+
'#405698',
|
|
156
|
+
'#2D468C',
|
|
157
|
+
'#1D3783',
|
|
158
|
+
'#213265',
|
|
159
|
+
'#212D4F',
|
|
160
|
+
'#20283F',
|
|
161
|
+
],
|
|
162
|
+
'portal.brown': [
|
|
163
|
+
'#9E9390',
|
|
164
|
+
'#8D7C78',
|
|
165
|
+
'#7C6964',
|
|
166
|
+
'#6E5954',
|
|
167
|
+
'#614B46',
|
|
168
|
+
'#573F39',
|
|
169
|
+
'#4E342E',
|
|
170
|
+
'#3F2D29',
|
|
171
|
+
'#332725',
|
|
172
|
+
'#2A2220',
|
|
173
|
+
],
|
|
174
|
+
'portal.green': [
|
|
175
|
+
'#B4BCBB',
|
|
176
|
+
'#97A6A3',
|
|
177
|
+
'#7D9490',
|
|
178
|
+
'#68847F',
|
|
179
|
+
'#57756F',
|
|
180
|
+
'#476862',
|
|
181
|
+
'#3A5D57',
|
|
182
|
+
'#344B47',
|
|
183
|
+
'#2D3D3A',
|
|
184
|
+
'#273230',
|
|
185
|
+
],
|
|
186
|
+
'portal.blue': [
|
|
187
|
+
'#BDCBD3',
|
|
188
|
+
'#98B2C0',
|
|
189
|
+
'#749EB5',
|
|
190
|
+
'#508DB0',
|
|
191
|
+
'#3A7DA3',
|
|
192
|
+
'#276F98',
|
|
193
|
+
'#15638F',
|
|
194
|
+
'#1C506E',
|
|
195
|
+
'#1E4255',
|
|
196
|
+
'#1E3643',
|
|
197
|
+
],
|
|
198
|
+
'portal.gray': [
|
|
199
|
+
'#DEDEE0',
|
|
200
|
+
'#BDBFC3',
|
|
201
|
+
'#A0A4AB',
|
|
202
|
+
'#878C97',
|
|
203
|
+
'#707786',
|
|
204
|
+
'#60656F',
|
|
205
|
+
'#52555C',
|
|
206
|
+
'#46484C',
|
|
207
|
+
'#3B3C3F',
|
|
208
|
+
'#323335',
|
|
209
|
+
],
|
|
210
|
+
'portal.black': [
|
|
211
|
+
'#504F4E',
|
|
212
|
+
'#454443',
|
|
213
|
+
'#3C3A3A',
|
|
214
|
+
'#343232',
|
|
215
|
+
'#2D2B2A',
|
|
216
|
+
'#272524',
|
|
217
|
+
'#22201F',
|
|
218
|
+
'#1C1B1A',
|
|
219
|
+
'#181716',
|
|
220
|
+
'#141313',
|
|
221
|
+
],
|
|
222
|
+
'portal.red': [
|
|
223
|
+
'#EFDFE3',
|
|
224
|
+
'#DFAFBB',
|
|
225
|
+
'#D97F96',
|
|
226
|
+
'#DC4C71',
|
|
227
|
+
'#EB144C',
|
|
228
|
+
'#B32348',
|
|
229
|
+
'#8B2943',
|
|
230
|
+
'#6C2B3C',
|
|
231
|
+
'#552A35',
|
|
232
|
+
'#44272E',
|
|
233
|
+
],
|
|
234
|
+
'portal.violett': [
|
|
235
|
+
'#FBFAFC',
|
|
236
|
+
'#DDC9E8',
|
|
237
|
+
'#C497DE',
|
|
238
|
+
'#B265DD',
|
|
239
|
+
'#A52EE8',
|
|
240
|
+
'#9900EF',
|
|
241
|
+
'#7B14B5',
|
|
242
|
+
'#631E8A',
|
|
243
|
+
'#51236B',
|
|
244
|
+
'#422354',
|
|
245
|
+
],
|
|
246
|
+
'portal.deepPurple': [
|
|
247
|
+
'#F1F0F4',
|
|
248
|
+
'#CCC8DA',
|
|
249
|
+
'#ABA2C7',
|
|
250
|
+
'#8C7CBA',
|
|
251
|
+
'#6E57B5',
|
|
252
|
+
'#573BAC',
|
|
253
|
+
'#4527A0',
|
|
254
|
+
'#3F2B7C',
|
|
255
|
+
'#382B62',
|
|
256
|
+
'#32294D',
|
|
257
|
+
],
|
|
258
|
+
'portal.purple': [
|
|
259
|
+
'#DED6E3',
|
|
260
|
+
'#C2AFCD',
|
|
261
|
+
'#AA8ABE',
|
|
262
|
+
'#9764B6',
|
|
263
|
+
'#8743B0',
|
|
264
|
+
'#772EA4',
|
|
265
|
+
'#6A1B9A',
|
|
266
|
+
'#562177',
|
|
267
|
+
'#47235D',
|
|
268
|
+
'#3A2249',
|
|
269
|
+
],
|
|
270
|
+
'portal.hostingBlue': [
|
|
271
|
+
'#C4C6CA',
|
|
272
|
+
'#A6ABB1',
|
|
273
|
+
'#8B939C',
|
|
274
|
+
'#727E8C',
|
|
275
|
+
'#5F6C7C',
|
|
276
|
+
'#4F5D6E',
|
|
277
|
+
'#415062',
|
|
278
|
+
'#394350',
|
|
279
|
+
'#323941',
|
|
280
|
+
'#2B3035',
|
|
281
|
+
],
|
|
282
|
+
};
|
|
283
|
+
//# sourceMappingURL=theme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"src/","sources":["theme.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAoB,EAAE,EAAE;IAC1D,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAE5C,OAAO,UAAU,KAAK,EAAE,CAAC;AAC3B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,MAAM,EAAE,SAAS;IACjB,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,SAAS;IAChB,GAAG,EAAE,SAAS;IACd,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,SAAS;IACrB,MAAM,EAAE,SAAS;CAClB,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAerB;IACF,MAAM,EAAE;QACN,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV;IAED,SAAS,EAAE;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV;IAED,UAAU,EAAE;QACV,qBAAqB;QACrB,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV;IAED,4EAA4E;IAC5E,OAAO,EAAE;QACP,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,YAAY;KACb;IAED,GAAG,EAAE;QACH,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,aAAa;KACd;IAED,MAAM,EAAE;QACN,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,aAAa;KACd;IACD,MAAM,EAAE;QACN,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,aAAa;KACd;IACD,KAAK,EAAE;QACL,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV;IAED,gBAAgB;IAChB,eAAe,EAAE;QACf,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV;IAED,aAAa,EAAE;QACb,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV;IACD,eAAe,EAAE;QACf,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV;IACD,cAAc,EAAE;QACd,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV;IACD,cAAc,EAAE;QACd,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV;IACD,aAAa,EAAE;QACb,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV;IACD,aAAa,EAAE;QACb,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV;IACD,cAAc,EAAE;QACd,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV;IACD,YAAY,EAAE;QACZ,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV;IACD,gBAAgB,EAAE;QAChB,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV;IACD,mBAAmB,EAAE;QACnB,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV;IACD,eAAe,EAAE;QACf,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV;IACD,oBAAoB,EAAE;QACpB,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"root":["../../src/const.ts","../../src/extensions.ts","../../src/index.ts","../../src/theme.ts","../../src/types.ts","../../src/components/actionemailtemplate.tsx","../../src/components/button.tsx","../../src/components/emailcontainer.tsx","../../src/components/index.ts","../../src/components/utils/index.ts","../../src/components/utils/parse-email-html.test.ts","../../src/components/utils/parse-email-html.ts","../../src/templates/inviteowneremailtemplate.tsx","../../src/templates/invitepmemailtemplate.tsx","../../src/templates/ownerstatementemailtemplate.tsx","../../src/templates/ownerstatementsummaryemailtemplate.tsx","../../src/templates/ownertaxstatementemailtemplate.tsx","../../src/templates/tenantdeletionemailtemplate.tsx","../../src/templates/tenantsuspensionemailtemplate.tsx","../../src/templates/index.ts","../../src/utils/index.ts","../../src/utils/send-email.ts"],"version":"5.8.3"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export type EmailBaseProps = {
|
|
2
|
+
mode: 'edit' | 'preview' | 'send';
|
|
3
|
+
tenant: {
|
|
4
|
+
name: string;
|
|
5
|
+
logo: string | undefined | null;
|
|
6
|
+
};
|
|
7
|
+
listing: string | undefined;
|
|
8
|
+
month: string | undefined;
|
|
9
|
+
user: {
|
|
10
|
+
firstName: string | undefined;
|
|
11
|
+
};
|
|
12
|
+
themeColors: readonly [
|
|
13
|
+
string,
|
|
14
|
+
string,
|
|
15
|
+
string,
|
|
16
|
+
string,
|
|
17
|
+
string,
|
|
18
|
+
string,
|
|
19
|
+
string,
|
|
20
|
+
string,
|
|
21
|
+
string,
|
|
22
|
+
string,
|
|
23
|
+
...string[]
|
|
24
|
+
];
|
|
25
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"src/","sources":["types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './send-email';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"src/","sources":["utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export const sendEmail = async ({ POSTMARK_TOKEN, data, }) => {
|
|
2
|
+
const response = await fetch('https://api.postmarkapp.com/email', {
|
|
3
|
+
method: 'POST',
|
|
4
|
+
headers: {
|
|
5
|
+
Accept: 'application/json',
|
|
6
|
+
'Content-Type': 'application/json',
|
|
7
|
+
'X-Postmark-Server-Token': POSTMARK_TOKEN,
|
|
8
|
+
},
|
|
9
|
+
body: JSON.stringify({
|
|
10
|
+
From: 'VRPlatform <notifications@vrplatform.app>',
|
|
11
|
+
To: data.to,
|
|
12
|
+
Subject: data.subject,
|
|
13
|
+
ReplyTo: data.replyTo,
|
|
14
|
+
TextBody: data.text,
|
|
15
|
+
HtmlBody: data.html,
|
|
16
|
+
MessageStream: 'outbound',
|
|
17
|
+
}),
|
|
18
|
+
});
|
|
19
|
+
if (!response.ok) {
|
|
20
|
+
throw new Error(`Failed to send email: ${response.statusText}`);
|
|
21
|
+
}
|
|
22
|
+
return response;
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=send-email.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send-email.js","sourceRoot":"src/","sources":["utils/send-email.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAAE,EAC9B,cAAc,EACd,IAAI,GAUL,EAAE,EAAE;IACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,mCAAmC,EAAE;QAChE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,MAAM,EAAE,kBAAkB;YAC1B,cAAc,EAAE,kBAAkB;YAClC,yBAAyB,EAAE,cAAc;SAC1C;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,IAAI,EAAE,2CAA2C;YACjD,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,aAAa,EAAE,UAAU;SAC1B,CAAC;KACH,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { EmailBaseProps } from '../types';
|
|
2
|
+
export type ActionEmailData = {
|
|
3
|
+
subject: string;
|
|
4
|
+
shortDescription: string;
|
|
5
|
+
banner?: string;
|
|
6
|
+
header: string;
|
|
7
|
+
bodyOne: string;
|
|
8
|
+
bodyTwo: string;
|
|
9
|
+
href: string;
|
|
10
|
+
buttonText: string;
|
|
11
|
+
};
|
|
12
|
+
export interface ActionEmailTemplateProps extends EmailBaseProps {
|
|
13
|
+
data: ActionEmailData;
|
|
14
|
+
}
|
|
15
|
+
export declare const ActionEmailTemplate: ({ data, tenant, themeColors, mode, user, listing, month, }: ActionEmailTemplateProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Heading } from '@react-email/heading';
|
|
3
|
+
import { Text } from '@react-email/text';
|
|
4
|
+
import { EmailContainer } from './EmailContainer';
|
|
5
|
+
import { parseEmailHtml } from './utils';
|
|
6
|
+
import { Button } from './Button';
|
|
7
|
+
export const ActionEmailTemplate = ({ data, tenant, themeColors, mode, user, listing, month, }) => {
|
|
8
|
+
return (_jsxs(EmailContainer, { title: data.subject, shortDescription: data.shortDescription, tenant: {
|
|
9
|
+
logo: tenant.logo,
|
|
10
|
+
}, mode: mode, children: [_jsx(Heading, { style: {
|
|
11
|
+
fontSize: 28,
|
|
12
|
+
fontWeight: 600,
|
|
13
|
+
marginBottom: '50px',
|
|
14
|
+
}, children: data.header?.trim() || `Welcome to ${tenant.name}!` }), data.banner?.trim() && (_jsx(Text, { style: {
|
|
15
|
+
padding: '24px',
|
|
16
|
+
backgroundColor: '#f2f3f3',
|
|
17
|
+
borderRadius: '4px',
|
|
18
|
+
marginBottom: '40px',
|
|
19
|
+
}, children: data.banner.trim() })), _jsx("div", {
|
|
20
|
+
// biome-ignore lint/security/noDangerouslySetInnerHtml: <explanation>
|
|
21
|
+
dangerouslySetInnerHTML: {
|
|
22
|
+
__html: parseEmailHtml(data.bodyOne, {
|
|
23
|
+
href: data.href,
|
|
24
|
+
userName: user.firstName || '',
|
|
25
|
+
date: month || '',
|
|
26
|
+
listingName: listing || '',
|
|
27
|
+
}),
|
|
28
|
+
} }), _jsx(Button, { href: data.href, mode: mode, "data-testid": "accept-invite-button", label: data.buttonText?.trim() || 'Accept Invitation', themeColors: themeColors }), _jsx("div", {
|
|
29
|
+
// biome-ignore lint/security/noDangerouslySetInnerHtml: <explanation>
|
|
30
|
+
dangerouslySetInnerHTML: {
|
|
31
|
+
__html: parseEmailHtml(data.bodyTwo, {
|
|
32
|
+
href: data.href,
|
|
33
|
+
userName: user.firstName || '',
|
|
34
|
+
date: month || '',
|
|
35
|
+
listingName: listing || '',
|
|
36
|
+
}),
|
|
37
|
+
} })] }));
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=ActionEmailTemplate.js.map
|