@vrplatform/email 1.0.1 → 1.0.2-1
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/build/main/components/ActionEmailTemplate.d.ts +1 -1
- package/build/main/components/ActionEmailTemplate.js +18 -14
- package/build/main/components/ActionEmailTemplate.js.map +1 -1
- package/build/main/components/Button.d.ts +1 -1
- package/build/main/components/Button.js +7 -3
- package/build/main/components/Button.js.map +1 -1
- package/build/main/components/EmailContainer.d.ts +1 -1
- package/build/main/components/EmailContainer.js +26 -21
- package/build/main/components/EmailContainer.js.map +1 -1
- package/build/main/components/index.js +18 -2
- package/build/main/components/index.js.map +1 -1
- package/build/main/components/utils/index.js +17 -1
- package/build/main/components/utils/index.js.map +1 -1
- package/build/main/components/utils/parse-email-html.js +9 -5
- package/build/main/components/utils/parse-email-html.js.map +1 -1
- package/build/main/const.js +4 -1
- package/build/main/const.js.map +1 -1
- package/build/main/extensions.js +7 -4
- package/build/main/extensions.js.map +1 -1
- package/build/main/index.js +25 -6
- package/build/main/index.js.map +1 -1
- package/build/main/templates/InviteOwnerEmailTemplate.d.ts +1 -3
- package/build/main/templates/InviteOwnerEmailTemplate.js +12 -29
- package/build/main/templates/InviteOwnerEmailTemplate.js.map +1 -1
- package/build/main/templates/InvitePmEmailTemplate.d.ts +1 -3
- package/build/main/templates/InvitePmEmailTemplate.js +12 -34
- package/build/main/templates/InvitePmEmailTemplate.js.map +1 -1
- package/build/main/templates/OwnerStatementEmailTemplate.d.ts +1 -3
- package/build/main/templates/OwnerStatementEmailTemplate.js +15 -43
- package/build/main/templates/OwnerStatementEmailTemplate.js.map +1 -1
- package/build/main/templates/TenantDeletionEmailTemplate.d.ts +2 -4
- package/build/main/templates/TenantDeletionEmailTemplate.js +15 -19
- package/build/main/templates/TenantDeletionEmailTemplate.js.map +1 -1
- package/build/main/templates/TenantSuspensionEmailTemplate.d.ts +1 -3
- package/build/main/templates/TenantSuspensionEmailTemplate.js +13 -17
- package/build/main/templates/TenantSuspensionEmailTemplate.js.map +1 -1
- package/build/main/templates/index.d.ts +0 -3
- package/build/main/templates/index.js +21 -10
- package/build/main/templates/index.js.map +1 -1
- package/build/main/theme.d.ts +1 -1
- package/build/main/theme.js +7 -3
- package/build/main/theme.js.map +1 -1
- package/build/main/types.js +2 -1
- package/build/main/types.js.map +1 -1
- package/build/main/utils/index.js +17 -1
- package/build/main/utils/index.js.map +1 -1
- package/build/main/utils/send-email.d.ts +17 -10
- package/build/main/utils/send-email.js +41 -6
- package/build/main/utils/send-email.js.map +1 -1
- package/build/module/components/ActionEmailTemplate.d.ts +1 -1
- package/build/module/components/ActionEmailTemplate.js.map +1 -1
- package/build/module/components/Button.d.ts +1 -1
- package/build/module/components/Button.js.map +1 -1
- package/build/module/components/EmailContainer.d.ts +1 -1
- package/build/module/components/EmailContainer.js +2 -1
- package/build/module/components/EmailContainer.js.map +1 -1
- package/build/module/components/index.js.map +1 -1
- package/build/module/components/utils/index.js.map +1 -1
- package/build/module/components/utils/parse-email-html.js +4 -4
- package/build/module/components/utils/parse-email-html.js.map +1 -1
- package/build/module/const.js.map +1 -1
- package/build/module/extensions.js.map +1 -1
- package/build/module/index.js.map +1 -1
- package/build/module/templates/InviteOwnerEmailTemplate.d.ts +1 -3
- package/build/module/templates/InviteOwnerEmailTemplate.js +0 -22
- package/build/module/templates/InviteOwnerEmailTemplate.js.map +1 -1
- package/build/module/templates/InvitePmEmailTemplate.d.ts +1 -3
- package/build/module/templates/InvitePmEmailTemplate.js +0 -27
- package/build/module/templates/InvitePmEmailTemplate.js.map +1 -1
- package/build/module/templates/OwnerStatementEmailTemplate.d.ts +1 -3
- package/build/module/templates/OwnerStatementEmailTemplate.js +0 -33
- package/build/module/templates/OwnerStatementEmailTemplate.js.map +1 -1
- package/build/module/templates/TenantDeletionEmailTemplate.d.ts +2 -4
- package/build/module/templates/TenantDeletionEmailTemplate.js +0 -9
- package/build/module/templates/TenantDeletionEmailTemplate.js.map +1 -1
- package/build/module/templates/TenantSuspensionEmailTemplate.d.ts +1 -3
- package/build/module/templates/TenantSuspensionEmailTemplate.js +0 -8
- package/build/module/templates/TenantSuspensionEmailTemplate.js.map +1 -1
- package/build/module/templates/index.d.ts +0 -3
- package/build/module/templates/index.js +0 -5
- package/build/module/templates/index.js.map +1 -1
- package/build/module/theme.d.ts +1 -1
- package/build/module/theme.js.map +1 -1
- package/build/module/types.js.map +1 -1
- package/build/module/utils/index.js.map +1 -1
- package/build/module/utils/send-email.d.ts +17 -10
- package/build/module/utils/send-email.js +38 -6
- package/build/module/utils/send-email.js.map +1 -1
- package/package.json +31 -31
- package/src/components/EmailContainer.tsx +2 -1
- package/src/components/utils/parse-email-html.ts +4 -7
- package/src/templates/InviteOwnerEmailTemplate.tsx +0 -34
- package/src/templates/InvitePmEmailTemplate.tsx +0 -41
- package/src/templates/OwnerStatementEmailTemplate.tsx +0 -47
- package/src/templates/TenantDeletionEmailTemplate.tsx +0 -17
- package/src/templates/TenantSuspensionEmailTemplate.tsx +0 -16
- package/src/templates/index.ts +0 -7
- package/src/theme.ts +1 -1
- package/src/utils/send-email.ts +76 -27
- package/build/main/components/utils/parse-email-html.test.d.ts +0 -1
- package/build/main/components/utils/parse-email-html.test.js +0 -59
- package/build/main/components/utils/parse-email-html.test.js.map +0 -1
- package/build/main/templates/DailyDigestEmailTemplate.d.ts +0 -11
- package/build/main/templates/DailyDigestEmailTemplate.js +0 -97
- package/build/main/templates/DailyDigestEmailTemplate.js.map +0 -1
- package/build/main/templates/OwnerStatementSummaryEmailTemplate.d.ts +0 -9
- package/build/main/templates/OwnerStatementSummaryEmailTemplate.js +0 -46
- package/build/main/templates/OwnerStatementSummaryEmailTemplate.js.map +0 -1
- package/build/main/templates/OwnerTaxStatementEmailTemplate.d.ts +0 -10
- package/build/main/templates/OwnerTaxStatementEmailTemplate.js +0 -47
- package/build/main/templates/OwnerTaxStatementEmailTemplate.js.map +0 -1
- package/build/main/tsconfig.main.tsbuildinfo +0 -1
- package/build/module/components/utils/parse-email-html.test.d.ts +0 -1
- package/build/module/components/utils/parse-email-html.test.js +0 -59
- package/build/module/components/utils/parse-email-html.test.js.map +0 -1
- package/build/module/templates/DailyDigestEmailTemplate.d.ts +0 -11
- package/build/module/templates/DailyDigestEmailTemplate.js +0 -97
- package/build/module/templates/DailyDigestEmailTemplate.js.map +0 -1
- package/build/module/templates/OwnerStatementSummaryEmailTemplate.d.ts +0 -9
- package/build/module/templates/OwnerStatementSummaryEmailTemplate.js +0 -46
- package/build/module/templates/OwnerStatementSummaryEmailTemplate.js.map +0 -1
- package/build/module/templates/OwnerTaxStatementEmailTemplate.d.ts +0 -10
- package/build/module/templates/OwnerTaxStatementEmailTemplate.js +0 -47
- package/build/module/templates/OwnerTaxStatementEmailTemplate.js.map +0 -1
- package/build/module/tsconfig.esm.tsbuildinfo +0 -1
- package/src/components/utils/parse-email-html.test.ts +0 -65
- package/src/liveblocks.d.ts +0 -88
- package/src/templates/DailyDigestEmailTemplate.tsx +0 -186
- package/src/templates/OwnerStatementSummaryEmailTemplate.tsx +0 -78
- package/src/templates/OwnerTaxStatementEmailTemplate.tsx +0 -80
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OwnerStatementEmailTemplate = exports.getDefaultOwnerStatementEmailData = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const extensions_1 = require("../extensions");
|
|
6
|
+
const ActionEmailTemplate_1 = require("../components/ActionEmailTemplate");
|
|
7
|
+
const getDefaultOwnerStatementEmailData = (mode, args) => {
|
|
8
|
+
const ownerStatementHref = mode === 'tag' ? extensions_1.EMAIL_ACTION_LINK_COMPONENT : args.ownerStatementHref;
|
|
9
|
+
const listingName = mode === 'tag' ? extensions_1.EMAIL_LISTING_COMPONENT : args.listingName;
|
|
10
|
+
const month = mode === 'tag' ? extensions_1.EMAIL_DATE_COMPONENT : args.month;
|
|
11
|
+
const userName = mode === 'tag' ? extensions_1.EMAIL_USER_NAME_COMPONENT : args.userName;
|
|
9
12
|
return {
|
|
10
13
|
subject: 'Owner statement was published',
|
|
11
14
|
shortDescription: `An owner statement is ready for you. Log in to ${args.appName} now to view it.`,
|
|
@@ -16,40 +19,9 @@ export const getDefaultOwnerStatementEmailData = (mode, args) => {
|
|
|
16
19
|
href: args.ownerStatementHref,
|
|
17
20
|
};
|
|
18
21
|
};
|
|
19
|
-
|
|
20
|
-
|
|
22
|
+
exports.getDefaultOwnerStatementEmailData = getDefaultOwnerStatementEmailData;
|
|
23
|
+
const OwnerStatementEmailTemplate = (props) => {
|
|
24
|
+
return (0, jsx_runtime_1.jsx)(ActionEmailTemplate_1.ActionEmailTemplate, { ...props });
|
|
21
25
|
};
|
|
22
|
-
|
|
23
|
-
const defaultListing = '1502 Amelia Way';
|
|
24
|
-
const defaultMonth = `May ${new Date().getFullYear()}`;
|
|
25
|
-
const defaultName = 'John';
|
|
26
|
-
return (_jsx(ActionEmailTemplate, { mode: "send", tenant: {
|
|
27
|
-
name: 'Pineapple Mountain',
|
|
28
|
-
logo: 'https://imagedelivery.net/Ftdv9WftbW1DctaiLSVfFA/fbd8c31f-478f-4eb0-74ac-c8eeb47b5000/256x256',
|
|
29
|
-
}, data: {
|
|
30
|
-
banner: 'This month there was a $1000 charge for the property. That charge was split between the two owners.',
|
|
31
|
-
...getDefaultOwnerStatementEmailData('text', {
|
|
32
|
-
appName: 'VRPlatform',
|
|
33
|
-
ownerStatementHref: 'https://example.com',
|
|
34
|
-
listingName: defaultListing,
|
|
35
|
-
month: defaultMonth,
|
|
36
|
-
userName: defaultName,
|
|
37
|
-
}),
|
|
38
|
-
}, user: {
|
|
39
|
-
firstName: 'John',
|
|
40
|
-
}, listing: defaultListing, month: defaultMonth, themeColors: [
|
|
41
|
-
// portal.brown
|
|
42
|
-
'#9E9390',
|
|
43
|
-
'#8D7C78',
|
|
44
|
-
'#7C6964',
|
|
45
|
-
'#6E5954',
|
|
46
|
-
'#614B46',
|
|
47
|
-
'#573F39',
|
|
48
|
-
'#4E342E',
|
|
49
|
-
'#3F2D29',
|
|
50
|
-
'#332725',
|
|
51
|
-
'#2A2220',
|
|
52
|
-
] }));
|
|
53
|
-
};
|
|
54
|
-
export default Preview;
|
|
26
|
+
exports.OwnerStatementEmailTemplate = OwnerStatementEmailTemplate;
|
|
55
27
|
//# sourceMappingURL=OwnerStatementEmailTemplate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OwnerStatementEmailTemplate.js","sourceRoot":"src/","sources":["templates/OwnerStatementEmailTemplate.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OwnerStatementEmailTemplate.js","sourceRoot":"src/","sources":["templates/OwnerStatementEmailTemplate.tsx"],"names":[],"mappings":";;;;AAAA,8CAKuB;AACvB,2EAI2C;AAEpC,MAAM,iCAAiC,GAAG,CAC/C,IAAoB,EACpB,IAMC,EACgB,EAAE;IACnB,MAAM,kBAAkB,GACtB,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,wCAA2B,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC;IAEzE,MAAM,WAAW,GACf,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,oCAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;IAC9D,MAAM,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,iCAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;IACjE,MAAM,QAAQ,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,sCAAyB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;IAE5E,OAAO;QACL,OAAO,EAAE,+BAA+B;QACxC,gBAAgB,EAAE,kDAAkD,IAAI,CAAC,OAAO,kBAAkB;QAClG,MAAM,EAAE,+BAA+B;QACvC,OAAO,EAAE,SAAS,QAAQ,YAAY,KAAK,iCAAiC,WAAW,gCAAgC,IAAI,CAAC,OAAO,sEAAsE;QACzM,UAAU,EAAE,sBAAsB;QAClC,OAAO,EAAE,wGAAwG,kBAAkB,MAAM;QACzI,IAAI,EAAE,IAAI,CAAC,kBAAkB;KAC9B,CAAC;AACJ,CAAC,CAAC;AA3BW,QAAA,iCAAiC,qCA2B5C;AAEK,MAAM,2BAA2B,GAAG,CACzC,KAA+B,EAC/B,EAAE;IACF,OAAO,uBAAC,yCAAmB,OAAK,KAAK,GAAI,CAAC;AAC5C,CAAC,CAAC;AAJW,QAAA,2BAA2B,+BAItC","sourcesContent":["import {\n EMAIL_ACTION_LINK_COMPONENT,\n EMAIL_DATE_COMPONENT,\n EMAIL_LISTING_COMPONENT,\n EMAIL_USER_NAME_COMPONENT,\n} from '../extensions';\nimport {\n type ActionEmailData,\n ActionEmailTemplate,\n type ActionEmailTemplateProps,\n} from '../components/ActionEmailTemplate';\n\nexport const getDefaultOwnerStatementEmailData = (\n mode: 'tag' | 'text',\n args: {\n appName: string;\n ownerStatementHref: string;\n listingName: string;\n userName: string;\n month: string;\n }\n): ActionEmailData => {\n const ownerStatementHref =\n mode === 'tag' ? EMAIL_ACTION_LINK_COMPONENT : args.ownerStatementHref;\n\n const listingName =\n mode === 'tag' ? EMAIL_LISTING_COMPONENT : args.listingName;\n const month = mode === 'tag' ? EMAIL_DATE_COMPONENT : args.month;\n const userName = mode === 'tag' ? EMAIL_USER_NAME_COMPONENT : args.userName;\n\n return {\n subject: 'Owner statement was published',\n shortDescription: `An owner statement is ready for you. Log in to ${args.appName} now to view it.`,\n header: 'Owner statement was published',\n bodyOne: `<p>Hi ${userName},<p>Your ${month} owner statement for property ${listingName} is ready for your review on ${args.appName}.</p><p>To access your statement, please click the button below:</p>`,\n buttonText: 'View Owner statement',\n bodyTwo: `<p>If you have any trouble with the button, you can copy and paste the link below into your browser: ${ownerStatementHref}</p>`,\n href: args.ownerStatementHref,\n };\n};\n\nexport const OwnerStatementEmailTemplate = (\n props: ActionEmailTemplateProps\n) => {\n return <ActionEmailTemplate {...props} />;\n};\n"]}
|
|
@@ -4,7 +4,5 @@ export type TenantDeletionEmailTemplateProps = {
|
|
|
4
4
|
mode: EmailBaseProps['mode'];
|
|
5
5
|
user: EmailBaseProps['user'];
|
|
6
6
|
};
|
|
7
|
-
export declare const TenantDeletionEmailTemplate: ({ tenant, mode, user, }: TenantDeletionEmailTemplateProps) => import("react
|
|
8
|
-
export declare const TenantDeletionEmail: (props: TenantDeletionEmailTemplateProps) => import("react
|
|
9
|
-
declare const Preview: () => import("react/jsx-runtime").JSX.Element;
|
|
10
|
-
export default Preview;
|
|
7
|
+
export declare const TenantDeletionEmailTemplate: ({ tenant, mode, user, }: TenantDeletionEmailTemplateProps) => import("react").JSX.Element;
|
|
8
|
+
export declare const TenantDeletionEmail: (props: TenantDeletionEmailTemplateProps) => import("react").JSX.Element;
|
|
@@ -1,26 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TenantDeletionEmail = exports.TenantDeletionEmailTemplate = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const heading_1 = require("@react-email/heading");
|
|
6
|
+
const text_1 = require("@react-email/text");
|
|
7
|
+
const components_1 = require("../components");
|
|
8
|
+
const TenantDeletionEmailTemplate = ({ tenant, mode, user, }) => {
|
|
9
|
+
return ((0, jsx_runtime_1.jsxs)(components_1.EmailContainer, { title: 'Team Account Deletion Notification', shortDescription: "We're reaching out to inform you that your VRPlatform team has been deleted.", tenant: {
|
|
7
10
|
logo: undefined,
|
|
8
|
-
}, mode: mode, children: [
|
|
11
|
+
}, mode: mode, children: [(0, jsx_runtime_1.jsx)(heading_1.Heading, { style: {
|
|
9
12
|
fontSize: 28,
|
|
10
13
|
fontWeight: 600,
|
|
11
14
|
marginBottom: '50px',
|
|
12
|
-
}, children: user.firstName ? `Dear ${user.firstName},` : 'Hi there,' }),
|
|
15
|
+
}, children: user.firstName ? `Dear ${user.firstName},` : 'Hi there,' }), (0, jsx_runtime_1.jsxs)(text_1.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:"] }), (0, jsx_runtime_1.jsxs)("ul", { children: [(0, jsx_runtime_1.jsx)("li", { children: (0, jsx_runtime_1.jsxs)(text_1.Text, { children: [(0, jsx_runtime_1.jsx)("b", { children: "Payments:" }), " All payment records linked to the team have been permanently deleted."] }) }), (0, jsx_runtime_1.jsx)("li", { children: (0, jsx_runtime_1.jsxs)(text_1.Text, { children: [(0, jsx_runtime_1.jsx)("b", { children: "Reservations:" }), " Any reservations made under this team account have been erased."] }) }), (0, jsx_runtime_1.jsx)("li", { children: (0, jsx_runtime_1.jsxs)(text_1.Text, { children: [(0, jsx_runtime_1.jsx)("b", { children: "Owner Statements:" }), " All statements generated for owners within this team are no longer accessible."] }) }), (0, jsx_runtime_1.jsx)("li", { children: (0, jsx_runtime_1.jsxs)(text_1.Text, { children: [(0, jsx_runtime_1.jsx)("b", { children: "Owner Data:" }), " Personal and transactional data of the owners connected to this team have been removed."] }) }), (0, jsx_runtime_1.jsx)("li", { children: (0, jsx_runtime_1.jsxs)(text_1.Text, { children: [(0, jsx_runtime_1.jsx)("b", { children: "Connections:" }), " Any established connections or integrations related to this team have been terminated."] }) }), (0, jsx_runtime_1.jsx)("li", { children: (0, jsx_runtime_1.jsxs)(text_1.Text, { children: [(0, jsx_runtime_1.jsx)("b", { children: "Other Related Data:" }), " All other data associated with this team has been permanently deleted."] }) })] }), (0, jsx_runtime_1.jsx)(text_1.Text, { children: "If you have any questions or need further assistance, please don't hesitate to reach out." }), (0, jsx_runtime_1.jsxs)(text_1.Text, { children: ["Best regards,", (0, jsx_runtime_1.jsx)("br", {}), "The VRPlatform Team"] })] }));
|
|
13
16
|
};
|
|
14
|
-
|
|
15
|
-
|
|
17
|
+
exports.TenantDeletionEmailTemplate = TenantDeletionEmailTemplate;
|
|
18
|
+
const TenantDeletionEmail = (props) => {
|
|
19
|
+
return (0, jsx_runtime_1.jsx)(exports.TenantDeletionEmailTemplate, { ...props });
|
|
16
20
|
};
|
|
17
|
-
|
|
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;
|
|
21
|
+
exports.TenantDeletionEmail = TenantDeletionEmail;
|
|
26
22
|
//# sourceMappingURL=TenantDeletionEmailTemplate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TenantDeletionEmailTemplate.js","sourceRoot":"src/","sources":["templates/TenantDeletionEmailTemplate.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TenantDeletionEmailTemplate.js","sourceRoot":"src/","sources":["templates/TenantDeletionEmailTemplate.tsx"],"names":[],"mappings":";;;;AAAA,kDAA+C;AAC/C,4CAAyC;AACzC,8CAA+C;AASxC,MAAM,2BAA2B,GAAG,CAAC,EAC1C,MAAM,EACN,IAAI,EACJ,IAAI,GAC6B,EAAE,EAAE;IACrC,OAAO,CACL,wBAAC,2BAAc,IACb,KAAK,EAAE,oCAAoC,EAC3C,gBAAgB,EACd,8EAA8E,EAEhF,MAAM,EAAE;YACN,IAAI,EAAE,SAAS;SAChB,EACD,IAAI,EAAE,IAAI,aAEV,uBAAC,iBAAO,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,wBAAC,WAAI,mEAC6C,MAAM,CAAC,IAAI,oHAGtD,EACP,2CACE,yCACE,wBAAC,WAAI,eACH,sDAAgB,8EAEX,GACJ,EACL,yCACE,wBAAC,WAAI,eACH,0DAAoB,wEAEf,GACJ,EAEL,yCACE,wBAAC,WAAI,eACH,8DAAwB,uFAEnB,GACJ,EAEL,yCACE,wBAAC,WAAI,eACH,wDAAkB,gGAEb,GACJ,EAEL,yCACE,wBAAC,WAAI,eACH,yDAAmB,+FAEd,GACJ,EAEL,yCACE,wBAAC,WAAI,eACH,gEAA0B,+EAErB,GACJ,IACF,EACL,uBAAC,WAAI,4GAGE,EACP,wBAAC,WAAI,gCAEH,gCAAM,2BAED,IACQ,CAClB,CAAC;AACJ,CAAC,CAAC;AApFW,QAAA,2BAA2B,+BAoFtC;AAEK,MAAM,mBAAmB,GAAG,CACjC,KAAuC,EACvC,EAAE;IACF,OAAO,uBAAC,mCAA2B,OAAK,KAAK,GAAI,CAAC;AACpD,CAAC,CAAC;AAJW,QAAA,mBAAmB,uBAI9B","sourcesContent":["import { Heading } from '@react-email/heading';\nimport { Text } from '@react-email/text';\nimport { EmailContainer } from '../components';\nimport type { EmailBaseProps } from '../types';\n\nexport type TenantDeletionEmailTemplateProps = {\n tenant: EmailBaseProps['tenant'];\n mode: EmailBaseProps['mode'];\n user: EmailBaseProps['user'];\n};\n\nexport const TenantDeletionEmailTemplate = ({\n tenant,\n mode,\n user,\n}: TenantDeletionEmailTemplateProps) => {\n return (\n <EmailContainer\n title={'Team Account Deletion Notification'}\n shortDescription={\n \"We're reaching out to inform you that your VRPlatform team has been deleted.\"\n }\n tenant={{\n logo: undefined,\n }}\n mode={mode}\n >\n <Heading\n style={{\n fontSize: 28,\n fontWeight: 600,\n marginBottom: '50px',\n }}\n >\n {user.firstName ? `Dear ${user.firstName},` : 'Hi there,'}\n </Heading>\n\n <Text>\n We wanted to inform you that the team account \"{tenant.name}\" has been\n deleted. This action has resulted in the removal of the following data\n associated with the team:\n </Text>\n <ul>\n <li>\n <Text>\n <b>Payments:</b> All payment records linked to the team have been\n permanently deleted.\n </Text>\n </li>\n <li>\n <Text>\n <b>Reservations:</b> Any reservations made under this team account\n have been erased.\n </Text>\n </li>\n\n <li>\n <Text>\n <b>Owner Statements:</b> All statements generated for owners within\n this team are no longer accessible.\n </Text>\n </li>\n\n <li>\n <Text>\n <b>Owner Data:</b> Personal and transactional data of the owners\n connected to this team have been removed.\n </Text>\n </li>\n\n <li>\n <Text>\n <b>Connections:</b> Any established connections or integrations\n related to this team have been terminated.\n </Text>\n </li>\n\n <li>\n <Text>\n <b>Other Related Data:</b> All other data associated with this team\n has been permanently deleted.\n </Text>\n </li>\n </ul>\n <Text>\n If you have any questions or need further assistance, please don't\n hesitate to reach out.\n </Text>\n <Text>\n Best regards,\n <br />\n The VRPlatform Team\n </Text>\n </EmailContainer>\n );\n};\n\nexport const TenantDeletionEmail = (\n props: TenantDeletionEmailTemplateProps\n) => {\n return <TenantDeletionEmailTemplate {...props} />;\n};\n"]}
|
|
@@ -4,6 +4,4 @@ export type TenantSuspensionEmailTemplateProps = {
|
|
|
4
4
|
user: EmailBaseProps['user'];
|
|
5
5
|
tenant: Omit<EmailBaseProps['tenant'], 'logo'>;
|
|
6
6
|
};
|
|
7
|
-
export declare const TenantSuspensionEmailTemplate: ({ mode, user, tenant, }: TenantSuspensionEmailTemplateProps) => import("react
|
|
8
|
-
declare const Preview: () => import("react/jsx-runtime").JSX.Element;
|
|
9
|
-
export default Preview;
|
|
7
|
+
export declare const TenantSuspensionEmailTemplate: ({ mode, user, tenant, }: TenantSuspensionEmailTemplateProps) => import("react").JSX.Element;
|
|
@@ -1,24 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TenantSuspensionEmailTemplate = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const heading_1 = require("@react-email/heading");
|
|
6
|
+
const text_1 = require("@react-email/text");
|
|
7
|
+
const components_1 = require("../components");
|
|
8
|
+
const TenantSuspensionEmailTemplate = ({ mode, user, tenant, }) => {
|
|
9
|
+
return ((0, jsx_runtime_1.jsxs)(components_1.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
10
|
logo: undefined,
|
|
8
|
-
}, mode: mode, children: [
|
|
11
|
+
}, mode: mode, children: [(0, jsx_runtime_1.jsx)(heading_1.Heading, { style: {
|
|
9
12
|
fontSize: 28,
|
|
10
13
|
fontWeight: 600,
|
|
11
14
|
marginBottom: '50px',
|
|
12
|
-
}, children: user.firstName ? `Dear ${user.firstName},` : 'Hi there,' }),
|
|
15
|
+
}, children: user.firstName ? `Dear ${user.firstName},` : 'Hi there,' }), (0, jsx_runtime_1.jsxs)(text_1.Text, { children: ["We're reaching out to inform you that as of today, access to your team", ' ', (0, jsx_runtime_1.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)."] }), (0, jsx_runtime_1.jsx)(text_1.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." }), (0, jsx_runtime_1.jsx)(text_1.Text, { style: {
|
|
13
16
|
fontWeight: 'bold',
|
|
14
|
-
}, children: "Next Steps to Regain Access:" }),
|
|
17
|
+
}, children: "Next Steps to Regain Access:" }), (0, jsx_runtime_1.jsxs)("ul", { children: [(0, jsx_runtime_1.jsx)("li", { children: (0, jsx_runtime_1.jsxs)(text_1.Text, { children: [(0, jsx_runtime_1.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."] }) }), (0, jsx_runtime_1.jsx)("li", { children: (0, jsx_runtime_1.jsxs)(text_1.Text, { children: [(0, jsx_runtime_1.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."] }) })] }), (0, jsx_runtime_1.jsx)(text_1.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." }), (0, jsx_runtime_1.jsxs)(text_1.Text, { children: ["Best regards,", (0, jsx_runtime_1.jsx)("br", {}), "The VRPlatform Team"] })] }));
|
|
15
18
|
};
|
|
16
|
-
|
|
17
|
-
return (_jsx(TenantSuspensionEmailTemplate, { mode: "send", user: {
|
|
18
|
-
firstName: 'John',
|
|
19
|
-
}, tenant: {
|
|
20
|
-
name: 'Demo Test Console',
|
|
21
|
-
} }));
|
|
22
|
-
};
|
|
23
|
-
export default Preview;
|
|
19
|
+
exports.TenantSuspensionEmailTemplate = TenantSuspensionEmailTemplate;
|
|
24
20
|
//# sourceMappingURL=TenantSuspensionEmailTemplate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TenantSuspensionEmailTemplate.js","sourceRoot":"src/","sources":["templates/TenantSuspensionEmailTemplate.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TenantSuspensionEmailTemplate.js","sourceRoot":"src/","sources":["templates/TenantSuspensionEmailTemplate.tsx"],"names":[],"mappings":";;;;AAAA,kDAA+C;AAC/C,4CAAyC;AACzC,8CAA+C;AASxC,MAAM,6BAA6B,GAAG,CAAC,EAC5C,IAAI,EACJ,IAAI,EACJ,MAAM,GAC6B,EAAE,EAAE;IACvC,OAAO,CACL,wBAAC,2BAAc,IACb,KAAK,EAAE,iDAAiD,EACxD,gBAAgB,EACd,sGAAsG,EAExG,MAAM,EAAE;YACN,IAAI,EAAE,SAAS;SAChB,EACD,IAAI,EAAE,IAAI,aAEV,uBAAC,iBAAO,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,wBAAC,WAAI,yFACoE,GAAG,EAC1E,wCAAI,MAAM,CAAC,IAAI,GAAK,iNAIf,EACP,uBAAC,WAAI,sSAKE,EACP,uBAAC,WAAI,IACH,KAAK,EAAE;oBACL,UAAU,EAAE,MAAM;iBACnB,6CAGI,EACP,2CACE,yCACE,wBAAC,WAAI,eACH,8DAAwB,6MAInB,GACJ,EACL,yCACE,wBAAC,WAAI,eACH,iEAA2B,2IAGtB,GACJ,IACF,EACL,uBAAC,WAAI,6JAGE,EACP,wBAAC,WAAI,gCAEH,gCAAM,2BAED,IACQ,CAClB,CAAC;AACJ,CAAC,CAAC;AA1EW,QAAA,6BAA6B,iCA0ExC","sourcesContent":["import { Heading } from '@react-email/heading';\nimport { Text } from '@react-email/text';\nimport { EmailContainer } from '../components';\nimport type { EmailBaseProps } from '../types';\n\nexport type TenantSuspensionEmailTemplateProps = {\n mode: EmailBaseProps['mode'];\n user: EmailBaseProps['user'];\n tenant: Omit<EmailBaseProps['tenant'], 'logo'>;\n};\n\nexport const TenantSuspensionEmailTemplate = ({\n mode,\n user,\n tenant,\n}: TenantSuspensionEmailTemplateProps) => {\n return (\n <EmailContainer\n title={'Action Required: Your VRPlatform Account Access'}\n shortDescription={\n \"We're reaching out to inform you that access to your VRPlatform team has been temporarily suspended.\"\n }\n tenant={{\n logo: undefined,\n }}\n mode={mode}\n >\n <Heading\n style={{\n fontSize: 28,\n fontWeight: 600,\n marginBottom: '50px',\n }}\n >\n {user.firstName ? `Dear ${user.firstName},` : 'Hi there,'}\n </Heading>\n\n <Text>\n We're reaching out to inform you that as of today, access to your team{' '}\n <b>{tenant.name}</b> has been temporarily suspended. This includes\n access to features such as accounting automations, owner statements,\n management commissions and the owner portal (including portal access for\n all owners).\n </Text>\n <Text>\n At VRPlatform, we take the security and functionality of our platform\n seriously, ensuring that our partners have the best possible experience.\n This step, though necessary, is intended to be temporary and is part of\n our commitment to maintain the highest standards of service.\n </Text>\n <Text\n style={{\n fontWeight: 'bold',\n }}\n >\n Next Steps to Regain Access:\n </Text>\n <ul>\n <li>\n <Text>\n <b>Immediate Action:</b> To adress this and help you regain access\n to your account, please contact our support team at your earliest\n convenience. We're here to assist you with the necessary steps to\n restore your services.\n </Text>\n </li>\n <li>\n <Text>\n <b>Contact Information:</b> You can reach us by emailing\n support@vrplatform.app. Our dedicated team is ready to support you\n in resolving this matter promptly.\n </Text>\n </li>\n </ul>\n <Text>\n Thank you for your prompt attention to this important matter. We value\n your partnership and are here to support you every step of the way.\n </Text>\n <Text>\n Best regards,\n <br />\n The VRPlatform Team\n </Text>\n </EmailContainer>\n );\n};\n"]}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
export * from './TenantSuspensionEmailTemplate';
|
|
2
2
|
export * from './TenantDeletionEmailTemplate';
|
|
3
|
-
export * from './OwnerStatementSummaryEmailTemplate';
|
|
4
3
|
export * from './OwnerStatementEmailTemplate';
|
|
5
|
-
export * from './OwnerTaxStatementEmailTemplate';
|
|
6
4
|
export * from './InviteOwnerEmailTemplate';
|
|
7
5
|
export * from './InvitePmEmailTemplate';
|
|
8
|
-
export * from './DailyDigestEmailTemplate';
|
|
@@ -1,14 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
17
|
// Teams
|
|
2
|
-
|
|
3
|
-
|
|
18
|
+
__exportStar(require("./TenantSuspensionEmailTemplate"), exports);
|
|
19
|
+
__exportStar(require("./TenantDeletionEmailTemplate"), exports);
|
|
4
20
|
// Owner Statements
|
|
5
|
-
|
|
6
|
-
export * from './OwnerStatementEmailTemplate';
|
|
7
|
-
// Owner Tax Statements
|
|
8
|
-
export * from './OwnerTaxStatementEmailTemplate';
|
|
21
|
+
__exportStar(require("./OwnerStatementEmailTemplate"), exports);
|
|
9
22
|
// Invitations
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
// Daily Digest
|
|
13
|
-
export * from './DailyDigestEmailTemplate';
|
|
23
|
+
__exportStar(require("./InviteOwnerEmailTemplate"), exports);
|
|
24
|
+
__exportStar(require("./InvitePmEmailTemplate"), exports);
|
|
14
25
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"src/","sources":["templates/index.ts"],"names":[],"mappings":"AAAA,QAAQ;AACR,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"src/","sources":["templates/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,QAAQ;AACR,kEAAgD;AAChD,gEAA8C;AAE9C,mBAAmB;AACnB,gEAA8C;AAE9C,cAAc;AACd,6DAA2C;AAC3C,0DAAwC","sourcesContent":["// Teams\nexport * from './TenantSuspensionEmailTemplate';\nexport * from './TenantDeletionEmailTemplate';\n\n// Owner Statements\nexport * from './OwnerStatementEmailTemplate';\n\n// Invitations\nexport * from './InviteOwnerEmailTemplate';\nexport * from './InvitePmEmailTemplate';\n"]}
|
package/build/main/theme.d.ts
CHANGED
package/build/main/theme.js
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.THEME_COLORS = exports.OWNER_PORTAL_COLORS = exports.getOwnerPortalColor = void 0;
|
|
4
|
+
const getOwnerPortalColor = (color) => {
|
|
2
5
|
if (!color)
|
|
3
6
|
return undefined;
|
|
4
7
|
if (color.includes('portal.'))
|
|
5
8
|
return color;
|
|
6
9
|
return `portal.${color}`;
|
|
7
10
|
};
|
|
8
|
-
|
|
11
|
+
exports.getOwnerPortalColor = getOwnerPortalColor;
|
|
12
|
+
exports.OWNER_PORTAL_COLORS = {
|
|
9
13
|
orange: '#9A3412',
|
|
10
14
|
teal: '#004d40',
|
|
11
15
|
indigo: '#1D3783',
|
|
@@ -19,7 +23,7 @@ export const OWNER_PORTAL_COLORS = {
|
|
|
19
23
|
deepPurple: '#4527a0',
|
|
20
24
|
purple: '#6a1b9a',
|
|
21
25
|
};
|
|
22
|
-
|
|
26
|
+
exports.THEME_COLORS = {
|
|
23
27
|
purple: [
|
|
24
28
|
'#BF98E7',
|
|
25
29
|
'#AE7CE0',
|
package/build/main/theme.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.js","sourceRoot":"src/","sources":["theme.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"src/","sources":["theme.ts"],"names":[],"mappings":";;;AAEO,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;AALW,QAAA,mBAAmB,uBAK9B;AAEW,QAAA,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;AAEW,QAAA,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","sourcesContent":["import type { Maybe } from '@vrplatform/utils';\n\nexport const getOwnerPortalColor = (color: Maybe<string>) => {\n if (!color) return undefined;\n if (color.includes('portal.')) return color;\n\n return `portal.${color}`;\n};\n\nexport const OWNER_PORTAL_COLORS = {\n orange: '#9A3412',\n teal: '#004d40',\n indigo: '#1D3783',\n brown: '#4e342e',\n green: '#3a5d57',\n blue: '#15638f',\n gray: '#707786',\n black: '#22201f',\n red: '#EB144C',\n violett: '#9900EF',\n deepPurple: '#4527a0',\n purple: '#6a1b9a',\n};\n\nexport const THEME_COLORS: Record<\n string,\n [\n string,\n string,\n string,\n string,\n string,\n string,\n string,\n string,\n string,\n string,\n ...string[],\n ]\n> = {\n purple: [\n '#BF98E7',\n '#AE7CE0',\n '#9E62DA',\n '#904BD5',\n '#8336D0',\n '#772DC1',\n '#6C29AF',\n '#61259D',\n '#57218E',\n '#4F1E80',\n ],\n\n finalytic: [\n '#C1C2C5',\n '#A6A7AB',\n '#909296',\n '#5c5f66',\n '#373A40',\n '#2C2E33',\n '#25262b',\n '#1A1B1E',\n '#141517',\n '#101113',\n ],\n\n vrplatform: [\n // baseColor: #012F64\n '#E6F1FF',\n '#B8D9FE',\n '#8BC0FE',\n '#5DA8FD',\n '#308FFD',\n '#0377FC',\n '#025FCA',\n '#024797',\n '#012F65',\n '#011832',\n ],\n\n // * Tailwind colors // leaving out last color to due mantine 10 color limit\n neutral: [\n '#fafafa',\n '#f5f5f5',\n '#e5e5e5',\n '#d4d4d4',\n '#a3a3a3',\n '#737373',\n '#525252',\n '#404040',\n '#262626',\n '#171717',\n // \"#0a0a0a\"\n ],\n\n sky: [\n '#f0f9ff',\n '#e0f2fe',\n '#bae6fd',\n '#7dd3fc',\n '#38bdf8',\n '#0ea5e9',\n '#0284c7',\n '#0369a1',\n '#075985',\n '#0c4a6e',\n // '#082f49',\n ],\n\n indigo: [\n '#eef2ff',\n '#e0e7ff',\n '#c7d2fe',\n '#a5b4fc',\n '#818cf8',\n '#6366f1',\n '#4f46e5',\n '#4338ca',\n '#3730a3',\n '#312e81',\n // '#1e1b4b',\n ],\n violet: [\n '#f5f3ff',\n '#ede9fe',\n '#ddd6fe',\n '#c4b5fd',\n '#a78bfa',\n '#8b5cf6',\n '#7c3aed',\n '#6d28d9',\n '#5b21b6',\n '#4c1d95',\n // '#2e1065',\n ],\n amber: [\n '#fffbeb',\n '#fef3c7',\n '#fde68a',\n '#fcd34d',\n '#fbbf24',\n '#f59e0b',\n '#d97706',\n '#b45309',\n '#92400e',\n '#78350f',\n ],\n\n // Portal Colors\n 'portal.orange': [\n '#DBCDC8',\n '#C8ABA1',\n '#BC8C7C',\n '#B76E55',\n '#AE5639',\n '#A34425',\n '#9A3412',\n '#76311B',\n '#5B2D1E',\n '#48291E',\n ],\n\n 'portal.teal': [\n '#45766E',\n '#366B62',\n '#296259',\n '#1D5B50',\n '#13554A',\n '#095044',\n '#004D40',\n '#063A31',\n '#0A2D27',\n '#0B231F',\n ],\n 'portal.indigo': [\n '#B9BECD',\n '#969FBA',\n '#7483AE',\n '#5469A6',\n '#405698',\n '#2D468C',\n '#1D3783',\n '#213265',\n '#212D4F',\n '#20283F',\n ],\n 'portal.brown': [\n '#9E9390',\n '#8D7C78',\n '#7C6964',\n '#6E5954',\n '#614B46',\n '#573F39',\n '#4E342E',\n '#3F2D29',\n '#332725',\n '#2A2220',\n ],\n 'portal.green': [\n '#B4BCBB',\n '#97A6A3',\n '#7D9490',\n '#68847F',\n '#57756F',\n '#476862',\n '#3A5D57',\n '#344B47',\n '#2D3D3A',\n '#273230',\n ],\n 'portal.blue': [\n '#BDCBD3',\n '#98B2C0',\n '#749EB5',\n '#508DB0',\n '#3A7DA3',\n '#276F98',\n '#15638F',\n '#1C506E',\n '#1E4255',\n '#1E3643',\n ],\n 'portal.gray': [\n '#DEDEE0',\n '#BDBFC3',\n '#A0A4AB',\n '#878C97',\n '#707786',\n '#60656F',\n '#52555C',\n '#46484C',\n '#3B3C3F',\n '#323335',\n ],\n 'portal.black': [\n '#504F4E',\n '#454443',\n '#3C3A3A',\n '#343232',\n '#2D2B2A',\n '#272524',\n '#22201F',\n '#1C1B1A',\n '#181716',\n '#141313',\n ],\n 'portal.red': [\n '#EFDFE3',\n '#DFAFBB',\n '#D97F96',\n '#DC4C71',\n '#EB144C',\n '#B32348',\n '#8B2943',\n '#6C2B3C',\n '#552A35',\n '#44272E',\n ],\n 'portal.violett': [\n '#FBFAFC',\n '#DDC9E8',\n '#C497DE',\n '#B265DD',\n '#A52EE8',\n '#9900EF',\n '#7B14B5',\n '#631E8A',\n '#51236B',\n '#422354',\n ],\n 'portal.deepPurple': [\n '#F1F0F4',\n '#CCC8DA',\n '#ABA2C7',\n '#8C7CBA',\n '#6E57B5',\n '#573BAC',\n '#4527A0',\n '#3F2B7C',\n '#382B62',\n '#32294D',\n ],\n 'portal.purple': [\n '#DED6E3',\n '#C2AFCD',\n '#AA8ABE',\n '#9764B6',\n '#8743B0',\n '#772EA4',\n '#6A1B9A',\n '#562177',\n '#47235D',\n '#3A2249',\n ],\n 'portal.hostingBlue': [\n '#C4C6CA',\n '#A6ABB1',\n '#8B939C',\n '#727E8C',\n '#5F6C7C',\n '#4F5D6E',\n '#415062',\n '#394350',\n '#323941',\n '#2B3035',\n ],\n};\n"]}
|
package/build/main/types.js
CHANGED
package/build/main/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"src/","sources":["types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"src/","sources":["types.ts"],"names":[],"mappings":"","sourcesContent":["export type EmailBaseProps = {\n mode: 'edit' | 'preview' | 'send';\n tenant: {\n name: string;\n logo: string | undefined | null;\n };\n listing: string | undefined;\n month: string | undefined;\n user: {\n firstName: string | undefined;\n };\n themeColors: readonly [\n string,\n string,\n string,\n string,\n string,\n string,\n string,\n string,\n string,\n string,\n ...string[],\n ];\n};\n"]}
|
|
@@ -1,2 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./send-email"), exports);
|
|
2
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"src/","sources":["utils/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"src/","sources":["utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B","sourcesContent":["export * from './send-email';\n"]}
|
|
@@ -1,10 +1,17 @@
|
|
|
1
|
-
export declare
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
export declare class EmailDeliveryError extends Error {
|
|
2
|
+
readonly details?: Record<string, unknown> | undefined;
|
|
3
|
+
readonly expected: boolean;
|
|
4
|
+
constructor(message: string, details?: Record<string, unknown> | undefined, expected?: boolean);
|
|
5
|
+
}
|
|
6
|
+
export declare function sendEmail(data: {
|
|
7
|
+
to: string;
|
|
8
|
+
subject: string;
|
|
9
|
+
text: string;
|
|
10
|
+
html: string;
|
|
11
|
+
replyTo?: string;
|
|
12
|
+
}, options: {
|
|
13
|
+
fetch?: (input: string | URL | Request, init?: RequestInit) => Promise<Response>;
|
|
14
|
+
postmarkToken?: string;
|
|
15
|
+
}): Promise<{
|
|
16
|
+
status: number;
|
|
17
|
+
}>;
|
|
@@ -1,10 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EmailDeliveryError = void 0;
|
|
4
|
+
exports.sendEmail = sendEmail;
|
|
5
|
+
class EmailDeliveryError extends Error {
|
|
6
|
+
constructor(message, details, expected = false) {
|
|
7
|
+
super(message);
|
|
8
|
+
this.details = details;
|
|
9
|
+
this.expected = expected;
|
|
10
|
+
this.name = 'EmailDeliveryError';
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.EmailDeliveryError = EmailDeliveryError;
|
|
14
|
+
async function sendEmail(data, options) {
|
|
15
|
+
if (!options.postmarkToken) {
|
|
16
|
+
throw new EmailDeliveryError('Postmark is not configured');
|
|
17
|
+
}
|
|
18
|
+
const response = await (options.fetch ?? fetch)('https://api.postmarkapp.com/email', {
|
|
3
19
|
method: 'POST',
|
|
4
20
|
headers: {
|
|
5
21
|
Accept: 'application/json',
|
|
6
22
|
'Content-Type': 'application/json',
|
|
7
|
-
'X-Postmark-Server-Token':
|
|
23
|
+
'X-Postmark-Server-Token': options.postmarkToken,
|
|
8
24
|
},
|
|
9
25
|
body: JSON.stringify({
|
|
10
26
|
From: 'VRPlatform <notifications@vrplatform.app>',
|
|
@@ -16,9 +32,28 @@ export const sendEmail = async ({ POSTMARK_TOKEN, data, }) => {
|
|
|
16
32
|
MessageStream: 'outbound',
|
|
17
33
|
}),
|
|
18
34
|
});
|
|
35
|
+
const providerResponse = await response.json().catch(() => ({}));
|
|
36
|
+
const providerMessage = providerResponse !== null &&
|
|
37
|
+
typeof providerResponse === 'object' &&
|
|
38
|
+
'Message' in providerResponse &&
|
|
39
|
+
typeof providerResponse.Message === 'string'
|
|
40
|
+
? providerResponse.Message
|
|
41
|
+
: undefined;
|
|
19
42
|
if (!response.ok) {
|
|
20
|
-
|
|
43
|
+
if (response.status === 422 &&
|
|
44
|
+
providerMessage?.includes('marked as inactive')) {
|
|
45
|
+
throw new EmailDeliveryError('Postmark recipient is inactive', {
|
|
46
|
+
providerMessage,
|
|
47
|
+
status: response.status,
|
|
48
|
+
statusText: response.statusText,
|
|
49
|
+
}, true);
|
|
50
|
+
}
|
|
51
|
+
throw new EmailDeliveryError('Postmark rejected the email', {
|
|
52
|
+
providerResponse,
|
|
53
|
+
status: response.status,
|
|
54
|
+
statusText: response.statusText,
|
|
55
|
+
});
|
|
21
56
|
}
|
|
22
|
-
return response;
|
|
23
|
-
}
|
|
57
|
+
return { status: response.status };
|
|
58
|
+
}
|
|
24
59
|
//# sourceMappingURL=send-email.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send-email.js","sourceRoot":"src/","sources":["utils/send-email.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"send-email.js","sourceRoot":"src/","sources":["utils/send-email.ts"],"names":[],"mappings":";;;AAWA,8BA0EC;AArFD,MAAa,kBAAmB,SAAQ,KAAK;IAC3C,YACE,OAAe,EACC,OAAiC,EACjC,WAAW,KAAK;QAEhC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,YAAO,GAAP,OAAO,CAA0B;QACjC,aAAQ,GAAR,QAAQ,CAAQ;QAGhC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AATD,gDASC;AAEM,KAAK,UAAU,SAAS,CAC7B,IAMC,EACD,OAMC;IAED,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3B,MAAM,IAAI,kBAAkB,CAAC,4BAA4B,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,CAC7C,mCAAmC,EACnC;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,MAAM,EAAE,kBAAkB;YAC1B,cAAc,EAAE,kBAAkB;YAClC,yBAAyB,EAAE,OAAO,CAAC,aAAa;SACjD;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,CACF,CAAC;IAEF,MAAM,gBAAgB,GAAY,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1E,MAAM,eAAe,GACnB,gBAAgB,KAAK,IAAI;QACzB,OAAO,gBAAgB,KAAK,QAAQ;QACpC,SAAS,IAAI,gBAAgB;QAC7B,OAAO,gBAAgB,CAAC,OAAO,KAAK,QAAQ;QAC1C,CAAC,CAAC,gBAAgB,CAAC,OAAO;QAC1B,CAAC,CAAC,SAAS,CAAC;IAEhB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,IACE,QAAQ,CAAC,MAAM,KAAK,GAAG;YACvB,eAAe,EAAE,QAAQ,CAAC,oBAAoB,CAAC,EAC/C,CAAC;YACD,MAAM,IAAI,kBAAkB,CAC1B,gCAAgC,EAChC;gBACE,eAAe;gBACf,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;aAChC,EACD,IAAI,CACL,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,kBAAkB,CAAC,6BAA6B,EAAE;YAC1D,gBAAgB;YAChB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;SAChC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;AACrC,CAAC","sourcesContent":["export class EmailDeliveryError extends Error {\n constructor(\n message: string,\n public readonly details?: Record<string, unknown>,\n public readonly expected = false\n ) {\n super(message);\n this.name = 'EmailDeliveryError';\n }\n}\n\nexport async function sendEmail(\n data: {\n to: string;\n subject: string;\n text: string;\n html: string;\n replyTo?: string;\n },\n options: {\n fetch?: (\n input: string | URL | Request,\n init?: RequestInit\n ) => Promise<Response>;\n postmarkToken?: string;\n }\n) {\n if (!options.postmarkToken) {\n throw new EmailDeliveryError('Postmark is not configured');\n }\n\n const response = await (options.fetch ?? fetch)(\n 'https://api.postmarkapp.com/email',\n {\n method: 'POST',\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n 'X-Postmark-Server-Token': options.postmarkToken,\n },\n body: JSON.stringify({\n From: 'VRPlatform <notifications@vrplatform.app>',\n To: data.to,\n Subject: data.subject,\n ReplyTo: data.replyTo,\n TextBody: data.text,\n HtmlBody: data.html,\n MessageStream: 'outbound',\n }),\n }\n );\n\n const providerResponse: unknown = await response.json().catch(() => ({}));\n const providerMessage =\n providerResponse !== null &&\n typeof providerResponse === 'object' &&\n 'Message' in providerResponse &&\n typeof providerResponse.Message === 'string'\n ? providerResponse.Message\n : undefined;\n\n if (!response.ok) {\n if (\n response.status === 422 &&\n providerMessage?.includes('marked as inactive')\n ) {\n throw new EmailDeliveryError(\n 'Postmark recipient is inactive',\n {\n providerMessage,\n status: response.status,\n statusText: response.statusText,\n },\n true\n );\n }\n\n throw new EmailDeliveryError('Postmark rejected the email', {\n providerResponse,\n status: response.status,\n statusText: response.statusText,\n });\n }\n\n return { status: response.status };\n}\n"]}
|
|
@@ -12,4 +12,4 @@ export type ActionEmailData = {
|
|
|
12
12
|
export interface ActionEmailTemplateProps extends EmailBaseProps {
|
|
13
13
|
data: ActionEmailData;
|
|
14
14
|
}
|
|
15
|
-
export declare const ActionEmailTemplate: ({ data, tenant, themeColors, mode, user, listing, month, }: ActionEmailTemplateProps) => import("react
|
|
15
|
+
export declare const ActionEmailTemplate: ({ data, tenant, themeColors, mode, user, listing, month, }: ActionEmailTemplateProps) => import("react").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionEmailTemplate.js","sourceRoot":"src/","sources":["components/ActionEmailTemplate.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,kBAAkB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAiBlC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAClC,IAAI,EACJ,MAAM,EACN,WAAW,EACX,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,KAAK,GACoB,EAAE,EAAE;IAC7B,OAAO,CACL,MAAC,cAAc,IACb,KAAK,EAAE,IAAI,CAAC,OAAO,EACnB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EACvC,MAAM,EAAE;YACN,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,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,MAAM,EAAE,IAAI,EAAE,IAAI,cAAc,MAAM,CAAC,IAAI,GAAG,GAC5C,EAET,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CACtB,KAAC,IAAI,IACH,KAAK,EAAE;oBACL,OAAO,EAAE,MAAM;oBACf,eAAe,EAAE,SAAS;oBAC1B,YAAY,EAAE,KAAK;oBACnB,YAAY,EAAE,MAAM;iBACrB,YAEA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GACd,CACR,EAED;gBACE,sEAAsE;gBACtE,uBAAuB,EAAE;oBACvB,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE;wBACnC,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,QAAQ,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;wBAC9B,IAAI,EAAE,KAAK,IAAI,EAAE;wBACjB,WAAW,EAAE,OAAO,IAAI,EAAE;qBAC3B,CAAC;iBACH,GACD,EAEF,KAAC,MAAM,IACL,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAE,IAAI,iBACE,sBAAsB,EAClC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,mBAAmB,EACrD,WAAW,EAAE,WAAW,GACxB,EAEF;gBACE,sEAAsE;gBACtE,uBAAuB,EAAE;oBACvB,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE;wBACnC,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,QAAQ,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;wBAC9B,IAAI,EAAE,KAAK,IAAI,EAAE;wBACjB,WAAW,EAAE,OAAO,IAAI,EAAE;qBAC3B,CAAC;iBACH,GACD,IACa,CAClB,CAAC;AACJ,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"ActionEmailTemplate.js","sourceRoot":"src/","sources":["components/ActionEmailTemplate.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,kBAAkB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAiBlC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAClC,IAAI,EACJ,MAAM,EACN,WAAW,EACX,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,KAAK,GACoB,EAAE,EAAE;IAC7B,OAAO,CACL,MAAC,cAAc,IACb,KAAK,EAAE,IAAI,CAAC,OAAO,EACnB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EACvC,MAAM,EAAE;YACN,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,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,MAAM,EAAE,IAAI,EAAE,IAAI,cAAc,MAAM,CAAC,IAAI,GAAG,GAC5C,EAET,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CACtB,KAAC,IAAI,IACH,KAAK,EAAE;oBACL,OAAO,EAAE,MAAM;oBACf,eAAe,EAAE,SAAS;oBAC1B,YAAY,EAAE,KAAK;oBACnB,YAAY,EAAE,MAAM;iBACrB,YAEA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GACd,CACR,EAED;gBACE,sEAAsE;gBACtE,uBAAuB,EAAE;oBACvB,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE;wBACnC,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,QAAQ,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;wBAC9B,IAAI,EAAE,KAAK,IAAI,EAAE;wBACjB,WAAW,EAAE,OAAO,IAAI,EAAE;qBAC3B,CAAC;iBACH,GACD,EAEF,KAAC,MAAM,IACL,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAE,IAAI,iBACE,sBAAsB,EAClC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,mBAAmB,EACrD,WAAW,EAAE,WAAW,GACxB,EAEF;gBACE,sEAAsE;gBACtE,uBAAuB,EAAE;oBACvB,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE;wBACnC,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,QAAQ,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;wBAC9B,IAAI,EAAE,KAAK,IAAI,EAAE;wBACjB,WAAW,EAAE,OAAO,IAAI,EAAE;qBAC3B,CAAC;iBACH,GACD,IACa,CAClB,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { Heading } from '@react-email/heading';\nimport { Text } from '@react-email/text';\nimport { EmailContainer } from './EmailContainer';\nimport type { EmailBaseProps } from '../types';\nimport { parseEmailHtml } from './utils';\nimport { Button } from './Button';\n\nexport type ActionEmailData = {\n subject: string;\n shortDescription: string;\n banner?: string;\n header: string;\n bodyOne: string;\n bodyTwo: string;\n href: string;\n buttonText: string;\n};\n\nexport interface ActionEmailTemplateProps extends EmailBaseProps {\n data: ActionEmailData;\n}\n\nexport const ActionEmailTemplate = ({\n data,\n tenant,\n themeColors,\n mode,\n user,\n listing,\n month,\n}: ActionEmailTemplateProps) => {\n return (\n <EmailContainer\n title={data.subject}\n shortDescription={data.shortDescription}\n tenant={{\n logo: tenant.logo,\n }}\n mode={mode}\n >\n <Heading\n style={{\n fontSize: 28,\n fontWeight: 600,\n marginBottom: '50px',\n }}\n >\n {data.header?.trim() || `Welcome to ${tenant.name}!`}\n </Heading>\n\n {data.banner?.trim() && (\n <Text\n style={{\n padding: '24px',\n backgroundColor: '#f2f3f3',\n borderRadius: '4px',\n marginBottom: '40px',\n }}\n >\n {data.banner.trim()}\n </Text>\n )}\n\n <div\n // biome-ignore lint/security/noDangerouslySetInnerHtml: <explanation>\n dangerouslySetInnerHTML={{\n __html: parseEmailHtml(data.bodyOne, {\n href: data.href,\n userName: user.firstName || '',\n date: month || '',\n listingName: listing || '',\n }),\n }}\n />\n\n <Button\n href={data.href}\n mode={mode}\n data-testid=\"accept-invite-button\"\n label={data.buttonText?.trim() || 'Accept Invitation'}\n themeColors={themeColors}\n />\n\n <div\n // biome-ignore lint/security/noDangerouslySetInnerHtml: <explanation>\n dangerouslySetInnerHTML={{\n __html: parseEmailHtml(data.bodyTwo, {\n href: data.href,\n userName: user.firstName || '',\n date: month || '',\n listingName: listing || '',\n }),\n }}\n />\n </EmailContainer>\n );\n};\n"]}
|
|
@@ -7,5 +7,5 @@ type Props = {
|
|
|
7
7
|
themeColors: EmailBaseProps['themeColors'];
|
|
8
8
|
label: string;
|
|
9
9
|
} & ComponentProps<typeof ReactEmailButton>;
|
|
10
|
-
export declare const Button: ({ href, mode, label, themeColors, style, ...props }: Props) => import("react
|
|
10
|
+
export declare const Button: ({ href, mode, label, themeColors, style, ...props }: Props) => import("react").JSX.Element;
|
|
11
11
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sourceRoot":"src/","sources":["components/Button.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAWjE,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EACrB,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,WAAW,EACX,KAAK,EACL,GAAG,KAAK,EACF,EAAE,EAAE,CAAC,CACX,KAAC,gBAAgB,IACf,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EACxC,KAAK,EAAE;QACL,KAAK,EAAE,MAAM;QACb,SAAS,EAAE,QAAQ;QACnB,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,QAAQ;QACjB,UAAU,EAAE,0FACV,WAAW,CAAC,CAAC,CACf,EAAE;QACF,KAAK,EAAE,MAAM;QACb,YAAY,EAAE,KAAK;QACnB,SAAS,EAAE,MAAM;QACjB,YAAY,EAAE,MAAM;QACpB,GAAG,KAAK;KACT,KACG,KAAK,YAER,KAAK,CAAC,IAAI,EAAE,GACI,CACpB,CAAC"}
|
|
1
|
+
{"version":3,"file":"Button.js","sourceRoot":"src/","sources":["components/Button.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAWjE,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EACrB,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,WAAW,EACX,KAAK,EACL,GAAG,KAAK,EACF,EAAE,EAAE,CAAC,CACX,KAAC,gBAAgB,IACf,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EACxC,KAAK,EAAE;QACL,KAAK,EAAE,MAAM;QACb,SAAS,EAAE,QAAQ;QACnB,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,QAAQ;QACjB,UAAU,EAAE,0FACV,WAAW,CAAC,CAAC,CACf,EAAE;QACF,KAAK,EAAE,MAAM;QACb,YAAY,EAAE,KAAK;QACnB,SAAS,EAAE,MAAM;QACjB,YAAY,EAAE,MAAM;QACpB,GAAG,KAAK;KACT,KACG,KAAK,YAER,KAAK,CAAC,IAAI,EAAE,GACI,CACpB,CAAC","sourcesContent":["import { Button as ReactEmailButton } from '@react-email/button';\nimport type { ComponentProps } from 'react';\nimport type { EmailBaseProps } from '../types';\n\ntype Props = {\n mode: EmailBaseProps['mode'];\n href: string;\n themeColors: EmailBaseProps['themeColors'];\n label: string;\n} & ComponentProps<typeof ReactEmailButton>;\n\nexport const Button = ({\n href,\n mode,\n label,\n themeColors,\n style,\n ...props\n}: Props) => (\n <ReactEmailButton\n href={mode === 'send' ? href : undefined}\n style={{\n width: '100%',\n textAlign: 'center',\n display: 'block',\n padding: '13px 0',\n background: `linear-gradient(180deg, rgba(255, 255, 255, 0.12) 0%, rgba(255, 255, 255, 0.00) 100%), ${\n themeColors[8]\n }`,\n color: '#fff',\n borderRadius: '8px',\n marginTop: '30px',\n marginBottom: '60px',\n ...style,\n }}\n {...props}\n >\n {label.trim()}\n </ReactEmailButton>\n);\n"]}
|
|
@@ -6,5 +6,5 @@ type Props = {
|
|
|
6
6
|
mode: EmailBaseProps['mode'];
|
|
7
7
|
shortDescription?: string;
|
|
8
8
|
};
|
|
9
|
-
export declare const EmailContainer: (props: Props) => import("react
|
|
9
|
+
export declare const EmailContainer: (props: Props) => import("react").JSX.Element;
|
|
10
10
|
export {};
|
|
@@ -7,6 +7,7 @@ import { Html } from '@react-email/html';
|
|
|
7
7
|
import { Img } from '@react-email/img';
|
|
8
8
|
import { Preview } from '@react-email/preview';
|
|
9
9
|
import { Text } from '@react-email/text';
|
|
10
|
+
import { day } from '@vrplatform/utils';
|
|
10
11
|
export const EmailContainer = (props) => {
|
|
11
12
|
const { children, shortDescription, title } = props;
|
|
12
13
|
const contentWrapperStyle = {
|
|
@@ -45,7 +46,7 @@ const Footer = () => (_jsxs(_Fragment, { children: [_jsx(Hr, { style: {
|
|
|
45
46
|
marginBottom: '50px',
|
|
46
47
|
} }), _jsxs(Text, { style: {
|
|
47
48
|
color: '#737373',
|
|
48
|
-
}, children: ["\u00A9 ",
|
|
49
|
+
}, children: ["\u00A9 ", day().year(), " VRPlatform Ventures Ltd. All rights reserved."] }), _jsx(Text, { style: {
|
|
49
50
|
color: '#737373',
|
|
50
51
|
}, children: "VR Technologies, LLC, a company incorporated and registered in the United States of America with company number 20201965158" })] }));
|
|
51
52
|
const VrpLogo = () => (_jsxs("svg", { width: "100%", height: "100%", viewBox: "0 0 28 29", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [_jsx("path", { d: "M18.2549 8.25161C18.2549 5.89704 20.1636 3.98828 22.5182 3.98828C24.8728 3.98828 26.7815 5.89704 26.7815 8.25161C26.7815 10.6062 24.8728 12.5149 22.5182 12.5149C20.1636 12.5149 18.2549 10.6062 18.2549 8.25161Z", fill: "#172554" }), _jsx("path", { d: "M7.02441 8.46593C7.02441 6.01867 9.20858 3.99805 11.6558 3.99805C14.1031 3.99805 15.0558 5.59785 16.5612 7.52728C17.1957 8.34054 20.7921 13.3413 20.7921 13.3413C20.7921 13.3413 21.566 14.6863 21.566 15.7894C21.566 18.5287 17.1993 22.8381 17.1993 22.8381L7.66841 10.6799C7.66841 10.6799 7.02441 10.0502 7.02441 8.46593Z", fill: "#172554", fillOpacity: "0.8" }), _jsx("path", { d: "M1.24707 8.42687C1.24707 5.97961 3.43123 3.95898 5.8785 3.95898C8.32576 3.95898 9.27845 5.55879 10.7839 7.48824C11.4184 8.30147 14.6041 12.4888 16.8247 15.5727C18.3585 17.703 18.474 17.705 18.474 20.3439C18.474 22.9827 15.1592 24.1379 14.1483 24.1914C12.0203 24.304 10.5418 22.4681 10.5418 22.4681L1.89106 10.6408C1.89106 10.6408 1.24707 10.0111 1.24707 8.42687Z", fill: "#172554" })] }));
|