@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.
Files changed (158) hide show
  1. package/LICENSE +3 -0
  2. package/build/main/components/ActionEmailTemplate.d.ts +15 -0
  3. package/build/main/components/ActionEmailTemplate.js +39 -0
  4. package/build/main/components/ActionEmailTemplate.js.map +1 -0
  5. package/build/main/components/Button.d.ts +11 -0
  6. package/build/main/components/Button.js +15 -0
  7. package/build/main/components/Button.js.map +1 -0
  8. package/build/main/components/EmailContainer.d.ts +10 -0
  9. package/build/main/components/EmailContainer.js +52 -0
  10. package/build/main/components/EmailContainer.js.map +1 -0
  11. package/build/main/components/index.d.ts +2 -0
  12. package/build/main/components/index.js +3 -0
  13. package/build/main/components/index.js.map +1 -0
  14. package/build/main/components/utils/index.d.ts +1 -0
  15. package/build/main/components/utils/index.js +2 -0
  16. package/build/main/components/utils/index.js.map +1 -0
  17. package/build/main/components/utils/parse-email-html.d.ts +6 -0
  18. package/build/main/components/utils/parse-email-html.js +11 -0
  19. package/build/main/components/utils/parse-email-html.js.map +1 -0
  20. package/build/main/components/utils/parse-email-html.test.d.ts +1 -0
  21. package/build/main/components/utils/parse-email-html.test.js +59 -0
  22. package/build/main/components/utils/parse-email-html.test.js.map +1 -0
  23. package/build/main/const.d.ts +6 -0
  24. package/build/main/const.js +7 -0
  25. package/build/main/const.js.map +1 -0
  26. package/build/main/extensions.d.ts +4 -0
  27. package/build/main/extensions.js +5 -0
  28. package/build/main/extensions.js.map +1 -0
  29. package/build/main/index.d.ts +7 -0
  30. package/build/main/index.js +7 -0
  31. package/build/main/index.js.map +1 -0
  32. package/build/main/templates/InviteOwnerEmailTemplate.d.ts +8 -0
  33. package/build/main/templates/InviteOwnerEmailTemplate.js +41 -0
  34. package/build/main/templates/InviteOwnerEmailTemplate.js.map +1 -0
  35. package/build/main/templates/InvitePmEmailTemplate.d.ts +8 -0
  36. package/build/main/templates/InvitePmEmailTemplate.js +51 -0
  37. package/build/main/templates/InvitePmEmailTemplate.js.map +1 -0
  38. package/build/main/templates/OwnerStatementEmailTemplate.d.ts +11 -0
  39. package/build/main/templates/OwnerStatementEmailTemplate.js +55 -0
  40. package/build/main/templates/OwnerStatementEmailTemplate.js.map +1 -0
  41. package/build/main/templates/OwnerStatementSummaryEmailTemplate.d.ts +9 -0
  42. package/build/main/templates/OwnerStatementSummaryEmailTemplate.js +46 -0
  43. package/build/main/templates/OwnerStatementSummaryEmailTemplate.js.map +1 -0
  44. package/build/main/templates/OwnerTaxStatementEmailTemplate.d.ts +10 -0
  45. package/build/main/templates/OwnerTaxStatementEmailTemplate.js +47 -0
  46. package/build/main/templates/OwnerTaxStatementEmailTemplate.js.map +1 -0
  47. package/build/main/templates/TenantDeletionEmailTemplate.d.ts +10 -0
  48. package/build/main/templates/TenantDeletionEmailTemplate.js +26 -0
  49. package/build/main/templates/TenantDeletionEmailTemplate.js.map +1 -0
  50. package/build/main/templates/TenantSuspensionEmailTemplate.d.ts +9 -0
  51. package/build/main/templates/TenantSuspensionEmailTemplate.js +24 -0
  52. package/build/main/templates/TenantSuspensionEmailTemplate.js.map +1 -0
  53. package/build/main/templates/index.d.ts +7 -0
  54. package/build/main/templates/index.js +12 -0
  55. package/build/main/templates/index.js.map +1 -0
  56. package/build/main/theme.d.ts +29 -0
  57. package/build/main/theme.js +283 -0
  58. package/build/main/theme.js.map +1 -0
  59. package/build/main/tsconfig.main.tsbuildinfo +1 -0
  60. package/build/main/types.d.ts +25 -0
  61. package/build/main/types.js +2 -0
  62. package/build/main/types.js.map +1 -0
  63. package/build/main/utils/index.d.ts +1 -0
  64. package/build/main/utils/index.js +2 -0
  65. package/build/main/utils/index.js.map +1 -0
  66. package/build/main/utils/send-email.d.ts +10 -0
  67. package/build/main/utils/send-email.js +24 -0
  68. package/build/main/utils/send-email.js.map +1 -0
  69. package/build/module/components/ActionEmailTemplate.d.ts +15 -0
  70. package/build/module/components/ActionEmailTemplate.js +39 -0
  71. package/build/module/components/ActionEmailTemplate.js.map +1 -0
  72. package/build/module/components/Button.d.ts +11 -0
  73. package/build/module/components/Button.js +15 -0
  74. package/build/module/components/Button.js.map +1 -0
  75. package/build/module/components/EmailContainer.d.ts +10 -0
  76. package/build/module/components/EmailContainer.js +52 -0
  77. package/build/module/components/EmailContainer.js.map +1 -0
  78. package/build/module/components/index.d.ts +2 -0
  79. package/build/module/components/index.js +3 -0
  80. package/build/module/components/index.js.map +1 -0
  81. package/build/module/components/utils/index.d.ts +1 -0
  82. package/build/module/components/utils/index.js +2 -0
  83. package/build/module/components/utils/index.js.map +1 -0
  84. package/build/module/components/utils/parse-email-html.d.ts +6 -0
  85. package/build/module/components/utils/parse-email-html.js +11 -0
  86. package/build/module/components/utils/parse-email-html.js.map +1 -0
  87. package/build/module/components/utils/parse-email-html.test.d.ts +1 -0
  88. package/build/module/components/utils/parse-email-html.test.js +59 -0
  89. package/build/module/components/utils/parse-email-html.test.js.map +1 -0
  90. package/build/module/const.d.ts +6 -0
  91. package/build/module/const.js +7 -0
  92. package/build/module/const.js.map +1 -0
  93. package/build/module/extensions.d.ts +4 -0
  94. package/build/module/extensions.js +5 -0
  95. package/build/module/extensions.js.map +1 -0
  96. package/build/module/index.d.ts +7 -0
  97. package/build/module/index.js +7 -0
  98. package/build/module/index.js.map +1 -0
  99. package/build/module/templates/InviteOwnerEmailTemplate.d.ts +8 -0
  100. package/build/module/templates/InviteOwnerEmailTemplate.js +41 -0
  101. package/build/module/templates/InviteOwnerEmailTemplate.js.map +1 -0
  102. package/build/module/templates/InvitePmEmailTemplate.d.ts +8 -0
  103. package/build/module/templates/InvitePmEmailTemplate.js +51 -0
  104. package/build/module/templates/InvitePmEmailTemplate.js.map +1 -0
  105. package/build/module/templates/OwnerStatementEmailTemplate.d.ts +11 -0
  106. package/build/module/templates/OwnerStatementEmailTemplate.js +55 -0
  107. package/build/module/templates/OwnerStatementEmailTemplate.js.map +1 -0
  108. package/build/module/templates/OwnerStatementSummaryEmailTemplate.d.ts +9 -0
  109. package/build/module/templates/OwnerStatementSummaryEmailTemplate.js +46 -0
  110. package/build/module/templates/OwnerStatementSummaryEmailTemplate.js.map +1 -0
  111. package/build/module/templates/OwnerTaxStatementEmailTemplate.d.ts +10 -0
  112. package/build/module/templates/OwnerTaxStatementEmailTemplate.js +47 -0
  113. package/build/module/templates/OwnerTaxStatementEmailTemplate.js.map +1 -0
  114. package/build/module/templates/TenantDeletionEmailTemplate.d.ts +10 -0
  115. package/build/module/templates/TenantDeletionEmailTemplate.js +26 -0
  116. package/build/module/templates/TenantDeletionEmailTemplate.js.map +1 -0
  117. package/build/module/templates/TenantSuspensionEmailTemplate.d.ts +9 -0
  118. package/build/module/templates/TenantSuspensionEmailTemplate.js +24 -0
  119. package/build/module/templates/TenantSuspensionEmailTemplate.js.map +1 -0
  120. package/build/module/templates/index.d.ts +7 -0
  121. package/build/module/templates/index.js +12 -0
  122. package/build/module/templates/index.js.map +1 -0
  123. package/build/module/theme.d.ts +29 -0
  124. package/build/module/theme.js +283 -0
  125. package/build/module/theme.js.map +1 -0
  126. package/build/module/tsconfig.esm.tsbuildinfo +1 -0
  127. package/build/module/types.d.ts +25 -0
  128. package/build/module/types.js +2 -0
  129. package/build/module/types.js.map +1 -0
  130. package/build/module/utils/index.d.ts +1 -0
  131. package/build/module/utils/index.js +2 -0
  132. package/build/module/utils/index.js.map +1 -0
  133. package/build/module/utils/send-email.d.ts +10 -0
  134. package/build/module/utils/send-email.js +24 -0
  135. package/build/module/utils/send-email.js.map +1 -0
  136. package/package.json +53 -0
  137. package/src/components/ActionEmailTemplate.tsx +97 -0
  138. package/src/components/Button.tsx +40 -0
  139. package/src/components/EmailContainer.tsx +161 -0
  140. package/src/components/index.ts +2 -0
  141. package/src/components/utils/index.ts +1 -0
  142. package/src/components/utils/parse-email-html.test.ts +65 -0
  143. package/src/components/utils/parse-email-html.ts +28 -0
  144. package/src/const.ts +6 -0
  145. package/src/extensions.ts +7 -0
  146. package/src/index.ts +8 -0
  147. package/src/templates/InviteOwnerEmailTemplate.tsx +66 -0
  148. package/src/templates/InvitePmEmailTemplate.tsx +83 -0
  149. package/src/templates/OwnerStatementEmailTemplate.tsx +93 -0
  150. package/src/templates/OwnerStatementSummaryEmailTemplate.tsx +78 -0
  151. package/src/templates/OwnerTaxStatementEmailTemplate.tsx +80 -0
  152. package/src/templates/TenantDeletionEmailTemplate.tsx +119 -0
  153. package/src/templates/TenantSuspensionEmailTemplate.tsx +102 -0
  154. package/src/templates/index.ts +14 -0
  155. package/src/theme.ts +307 -0
  156. package/src/types.ts +25 -0
  157. package/src/utils/index.ts +1 -0
  158. package/src/utils/send-email.ts +37 -0
@@ -0,0 +1,78 @@
1
+ import {
2
+ type ActionEmailData,
3
+ ActionEmailTemplate,
4
+ type ActionEmailTemplateProps,
5
+ } from '../components';
6
+ import {
7
+ EMAIL_ACTION_LINK_COMPONENT,
8
+ EMAIL_USER_NAME_COMPONENT,
9
+ } from '../extensions';
10
+
11
+ export const getDefaultOwnerStatementSummaryEmailData = (
12
+ mode: 'tag' | 'text',
13
+ args: {
14
+ appName: string;
15
+ ownerStatementHref: string;
16
+ userName: string;
17
+ }
18
+ ): ActionEmailData => {
19
+ const ownerStatementHref =
20
+ mode === 'tag' ? EMAIL_ACTION_LINK_COMPONENT : args.ownerStatementHref;
21
+
22
+ const userName = mode === 'tag' ? EMAIL_USER_NAME_COMPONENT : args.userName;
23
+
24
+ return {
25
+ subject: 'Summary statement is ready',
26
+ shortDescription: `An summary statement is ready for you. Log in to ${args.appName} to view it.`,
27
+ header: 'Summary is ready to view',
28
+ bodyOne: `<p>Hi ${userName},<p>A summary statement is ready for your review on ${args.appName}.</p><p>To access your statement, please click the button below:</p>`,
29
+ buttonText: 'View statement',
30
+ bodyTwo: `<p>If you have any trouble with the button, you can copy and paste the link below into your browser: ${ownerStatementHref}</p>`,
31
+ href: args.ownerStatementHref,
32
+ };
33
+ };
34
+
35
+ export const OwnerStatementSummaryEmailTemplate = (
36
+ props: ActionEmailTemplateProps
37
+ ) => {
38
+ return <ActionEmailTemplate {...props} />;
39
+ };
40
+
41
+ const Preview = () => {
42
+ const defaultName = 'John';
43
+
44
+ return (
45
+ <ActionEmailTemplate
46
+ mode="send"
47
+ tenant={{
48
+ name: 'Pineapple Mountain',
49
+ logo: 'https://imagedelivery.net/Ftdv9WftbW1DctaiLSVfFA/fbd8c31f-478f-4eb0-74ac-c8eeb47b5000/256x256',
50
+ }}
51
+ data={getDefaultOwnerStatementSummaryEmailData('text', {
52
+ appName: 'VRPlatform',
53
+ ownerStatementHref: 'https://example.com',
54
+ userName: defaultName,
55
+ })}
56
+ user={{
57
+ firstName: 'John',
58
+ }}
59
+ listing={undefined}
60
+ month={undefined}
61
+ themeColors={[
62
+ // portal.brown
63
+ '#9E9390',
64
+ '#8D7C78',
65
+ '#7C6964',
66
+ '#6E5954',
67
+ '#614B46',
68
+ '#573F39',
69
+ '#4E342E',
70
+ '#3F2D29',
71
+ '#332725',
72
+ '#2A2220',
73
+ ]}
74
+ />
75
+ );
76
+ };
77
+
78
+ export default Preview;
@@ -0,0 +1,80 @@
1
+ import {
2
+ EMAIL_ACTION_LINK_COMPONENT,
3
+ EMAIL_USER_NAME_COMPONENT,
4
+ } from '../extensions';
5
+ import {
6
+ type ActionEmailData,
7
+ ActionEmailTemplate,
8
+ type ActionEmailTemplateProps,
9
+ } from '../components';
10
+
11
+ export const getDefaultOwnerTaxStatementEmailData = (
12
+ mode: 'tag' | 'text',
13
+ args: {
14
+ appName: string;
15
+ href: string;
16
+ firstName: string | undefined | null;
17
+ year: number;
18
+ }
19
+ ): ActionEmailData => {
20
+ const href = mode === 'tag' ? EMAIL_ACTION_LINK_COMPONENT : args.href;
21
+
22
+ const firstName =
23
+ mode === 'tag' ? EMAIL_USER_NAME_COMPONENT : args.firstName || 'there';
24
+
25
+ return {
26
+ subject: 'Your 1099 Tax Statement is ready',
27
+ shortDescription: `Your 1099 Tax Statement is ready for you. Log in to ${args.appName} to view it.`,
28
+ header: '1099 Tax Statement is ready',
29
+ 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>`,
30
+ buttonText: 'View tax statement',
31
+ bodyTwo: `<p>If you have any trouble with the button, you can copy and paste the link below into your browser: ${href}</p>`,
32
+ href: args.href,
33
+ };
34
+ };
35
+
36
+ export const OwnerTaxStatementEmailTemplate = (
37
+ props: ActionEmailTemplateProps
38
+ ) => {
39
+ return <ActionEmailTemplate {...props} />;
40
+ };
41
+
42
+ const Preview = () => {
43
+ const defaultName = 'John';
44
+
45
+ return (
46
+ <ActionEmailTemplate
47
+ mode="send"
48
+ tenant={{
49
+ name: 'Pineapple Mountain',
50
+ logo: 'https://imagedelivery.net/Ftdv9WftbW1DctaiLSVfFA/fbd8c31f-478f-4eb0-74ac-c8eeb47b5000/256x256',
51
+ }}
52
+ data={getDefaultOwnerTaxStatementEmailData('text', {
53
+ appName: 'VRPlatform',
54
+ href: 'https://example.com',
55
+ firstName: defaultName,
56
+ year: new Date().getFullYear(),
57
+ })}
58
+ user={{
59
+ firstName: 'John',
60
+ }}
61
+ listing={undefined}
62
+ month={undefined}
63
+ themeColors={[
64
+ // portal.brown
65
+ '#9E9390',
66
+ '#8D7C78',
67
+ '#7C6964',
68
+ '#6E5954',
69
+ '#614B46',
70
+ '#573F39',
71
+ '#4E342E',
72
+ '#3F2D29',
73
+ '#332725',
74
+ '#2A2220',
75
+ ]}
76
+ />
77
+ );
78
+ };
79
+
80
+ export default Preview;
@@ -0,0 +1,119 @@
1
+ import { Heading } from '@react-email/heading';
2
+ import { Text } from '@react-email/text';
3
+ import { EmailContainer } from '../components';
4
+ import type { EmailBaseProps } from '../types';
5
+
6
+ export type TenantDeletionEmailTemplateProps = {
7
+ tenant: EmailBaseProps['tenant'];
8
+ mode: EmailBaseProps['mode'];
9
+ user: EmailBaseProps['user'];
10
+ };
11
+
12
+ export const TenantDeletionEmailTemplate = ({
13
+ tenant,
14
+ mode,
15
+ user,
16
+ }: TenantDeletionEmailTemplateProps) => {
17
+ return (
18
+ <EmailContainer
19
+ title={'Team Account Deletion Notification'}
20
+ shortDescription={
21
+ "We're reaching out to inform you that your VRPlatform team has been deleted."
22
+ }
23
+ tenant={{
24
+ logo: undefined,
25
+ }}
26
+ mode={mode}
27
+ >
28
+ <Heading
29
+ style={{
30
+ fontSize: 28,
31
+ fontWeight: 600,
32
+ marginBottom: '50px',
33
+ }}
34
+ >
35
+ {user.firstName ? `Dear ${user.firstName},` : 'Hi there,'}
36
+ </Heading>
37
+
38
+ <Text>
39
+ We wanted to inform you that the team account "{tenant.name}" has been
40
+ deleted. This action has resulted in the removal of the following data
41
+ associated with the team:
42
+ </Text>
43
+ <ul>
44
+ <li>
45
+ <Text>
46
+ <b>Payments:</b> All payment records linked to the team have been
47
+ permanently deleted.
48
+ </Text>
49
+ </li>
50
+ <li>
51
+ <Text>
52
+ <b>Reservations:</b> Any reservations made under this team account
53
+ have been erased.
54
+ </Text>
55
+ </li>
56
+
57
+ <li>
58
+ <Text>
59
+ <b>Owner Statements:</b> All statements generated for owners within
60
+ this team are no longer accessible.
61
+ </Text>
62
+ </li>
63
+
64
+ <li>
65
+ <Text>
66
+ <b>Owner Data:</b> Personal and transactional data of the owners
67
+ connected to this team have been removed.
68
+ </Text>
69
+ </li>
70
+
71
+ <li>
72
+ <Text>
73
+ <b>Connections:</b> Any established connections or integrations
74
+ related to this team have been terminated.
75
+ </Text>
76
+ </li>
77
+
78
+ <li>
79
+ <Text>
80
+ <b>Other Related Data:</b> All other data associated with this team
81
+ has been permanently deleted.
82
+ </Text>
83
+ </li>
84
+ </ul>
85
+ <Text>
86
+ If you have any questions or need further assistance, please don't
87
+ hesitate to reach out.
88
+ </Text>
89
+ <Text>
90
+ Best regards,
91
+ <br />
92
+ The VRPlatform Team
93
+ </Text>
94
+ </EmailContainer>
95
+ );
96
+ };
97
+
98
+ export const TenantDeletionEmail = (
99
+ props: TenantDeletionEmailTemplateProps
100
+ ) => {
101
+ return <TenantDeletionEmailTemplate {...props} />;
102
+ };
103
+
104
+ const Preview = () => {
105
+ return (
106
+ <TenantDeletionEmailTemplate
107
+ mode="send"
108
+ tenant={{
109
+ name: 'Pineapple Mountain',
110
+ logo: undefined,
111
+ }}
112
+ user={{
113
+ firstName: 'John',
114
+ }}
115
+ />
116
+ );
117
+ };
118
+
119
+ export default Preview;
@@ -0,0 +1,102 @@
1
+ import { Heading } from '@react-email/heading';
2
+ import { Text } from '@react-email/text';
3
+ import { EmailContainer } from '../components';
4
+ import type { EmailBaseProps } from '../types';
5
+
6
+ export type TenantSuspensionEmailTemplateProps = {
7
+ mode: EmailBaseProps['mode'];
8
+ user: EmailBaseProps['user'];
9
+ tenant: Omit<EmailBaseProps['tenant'], 'logo'>;
10
+ };
11
+
12
+ export const TenantSuspensionEmailTemplate = ({
13
+ mode,
14
+ user,
15
+ tenant,
16
+ }: TenantSuspensionEmailTemplateProps) => {
17
+ return (
18
+ <EmailContainer
19
+ title={'Action Required: Your VRPlatform Account Access'}
20
+ shortDescription={
21
+ "We're reaching out to inform you that access to your VRPlatform team has been temporarily suspended."
22
+ }
23
+ tenant={{
24
+ logo: undefined,
25
+ }}
26
+ mode={mode}
27
+ >
28
+ <Heading
29
+ style={{
30
+ fontSize: 28,
31
+ fontWeight: 600,
32
+ marginBottom: '50px',
33
+ }}
34
+ >
35
+ {user.firstName ? `Dear ${user.firstName},` : 'Hi there,'}
36
+ </Heading>
37
+
38
+ <Text>
39
+ We're reaching out to inform you that as of today, access to your team{' '}
40
+ <b>{tenant.name}</b> has been temporarily suspended. This includes
41
+ access to features such as accounting automations, owner statements,
42
+ management commissions and the owner portal (including portal access for
43
+ all owners).
44
+ </Text>
45
+ <Text>
46
+ At VRPlatform, we take the security and functionality of our platform
47
+ seriously, ensuring that our partners have the best possible experience.
48
+ This step, though necessary, is intended to be temporary and is part of
49
+ our commitment to maintain the highest standards of service.
50
+ </Text>
51
+ <Text
52
+ style={{
53
+ fontWeight: 'bold',
54
+ }}
55
+ >
56
+ Next Steps to Regain Access:
57
+ </Text>
58
+ <ul>
59
+ <li>
60
+ <Text>
61
+ <b>Immediate Action:</b> To adress this and help you regain access
62
+ to your account, please contact our support team at your earliest
63
+ convenience. We're here to assist you with the necessary steps to
64
+ restore your services.
65
+ </Text>
66
+ </li>
67
+ <li>
68
+ <Text>
69
+ <b>Contact Information:</b> You can reach us by emailing
70
+ support@vrplatform.app. Our dedicated team is ready to support you
71
+ in resolving this matter promptly.
72
+ </Text>
73
+ </li>
74
+ </ul>
75
+ <Text>
76
+ Thank you for your prompt attention to this important matter. We value
77
+ your partnership and are here to support you every step of the way.
78
+ </Text>
79
+ <Text>
80
+ Best regards,
81
+ <br />
82
+ The VRPlatform Team
83
+ </Text>
84
+ </EmailContainer>
85
+ );
86
+ };
87
+
88
+ const Preview = () => {
89
+ return (
90
+ <TenantSuspensionEmailTemplate
91
+ mode="send"
92
+ user={{
93
+ firstName: 'John',
94
+ }}
95
+ tenant={{
96
+ name: 'Demo Test Console',
97
+ }}
98
+ />
99
+ );
100
+ };
101
+
102
+ export default Preview;
@@ -0,0 +1,14 @@
1
+ // Teams
2
+ export * from './TenantSuspensionEmailTemplate';
3
+ export * from './TenantDeletionEmailTemplate';
4
+
5
+ // Owner Statements
6
+ export * from './OwnerStatementSummaryEmailTemplate';
7
+ export * from './OwnerStatementEmailTemplate';
8
+
9
+ // Owner Tax Statements
10
+ export * from './OwnerTaxStatementEmailTemplate';
11
+
12
+ // Invitations
13
+ export * from './InviteOwnerEmailTemplate';
14
+ export * from './InvitePmEmailTemplate';
package/src/theme.ts ADDED
@@ -0,0 +1,307 @@
1
+ import type { Maybe } from '@finalytic/utils';
2
+
3
+ export const getOwnerPortalColor = (color: Maybe<string>) => {
4
+ if (!color) return undefined;
5
+ if (color.includes('portal.')) return color;
6
+
7
+ return `portal.${color}`;
8
+ };
9
+
10
+ export const OWNER_PORTAL_COLORS = {
11
+ orange: '#9A3412',
12
+ teal: '#004d40',
13
+ indigo: '#1D3783',
14
+ brown: '#4e342e',
15
+ green: '#3a5d57',
16
+ blue: '#15638f',
17
+ gray: '#707786',
18
+ black: '#22201f',
19
+ red: '#EB144C',
20
+ violett: '#9900EF',
21
+ deepPurple: '#4527a0',
22
+ purple: '#6a1b9a',
23
+ };
24
+
25
+ export const THEME_COLORS: Record<
26
+ string,
27
+ [
28
+ string,
29
+ string,
30
+ string,
31
+ string,
32
+ string,
33
+ string,
34
+ string,
35
+ string,
36
+ string,
37
+ string,
38
+ ...string[],
39
+ ]
40
+ > = {
41
+ purple: [
42
+ '#BF98E7',
43
+ '#AE7CE0',
44
+ '#9E62DA',
45
+ '#904BD5',
46
+ '#8336D0',
47
+ '#772DC1',
48
+ '#6C29AF',
49
+ '#61259D',
50
+ '#57218E',
51
+ '#4F1E80',
52
+ ],
53
+
54
+ finalytic: [
55
+ '#C1C2C5',
56
+ '#A6A7AB',
57
+ '#909296',
58
+ '#5c5f66',
59
+ '#373A40',
60
+ '#2C2E33',
61
+ '#25262b',
62
+ '#1A1B1E',
63
+ '#141517',
64
+ '#101113',
65
+ ],
66
+
67
+ vrplatform: [
68
+ // baseColor: #012F64
69
+ '#E6F1FF',
70
+ '#B8D9FE',
71
+ '#8BC0FE',
72
+ '#5DA8FD',
73
+ '#308FFD',
74
+ '#0377FC',
75
+ '#025FCA',
76
+ '#024797',
77
+ '#012F65',
78
+ '#011832',
79
+ ],
80
+
81
+ // * Tailwind colors // leaving out last color to due mantine 10 color limit
82
+ neutral: [
83
+ '#fafafa',
84
+ '#f5f5f5',
85
+ '#e5e5e5',
86
+ '#d4d4d4',
87
+ '#a3a3a3',
88
+ '#737373',
89
+ '#525252',
90
+ '#404040',
91
+ '#262626',
92
+ '#171717',
93
+ // "#0a0a0a"
94
+ ],
95
+
96
+ sky: [
97
+ '#f0f9ff',
98
+ '#e0f2fe',
99
+ '#bae6fd',
100
+ '#7dd3fc',
101
+ '#38bdf8',
102
+ '#0ea5e9',
103
+ '#0284c7',
104
+ '#0369a1',
105
+ '#075985',
106
+ '#0c4a6e',
107
+ // '#082f49',
108
+ ],
109
+
110
+ indigo: [
111
+ '#eef2ff',
112
+ '#e0e7ff',
113
+ '#c7d2fe',
114
+ '#a5b4fc',
115
+ '#818cf8',
116
+ '#6366f1',
117
+ '#4f46e5',
118
+ '#4338ca',
119
+ '#3730a3',
120
+ '#312e81',
121
+ // '#1e1b4b',
122
+ ],
123
+ violet: [
124
+ '#f5f3ff',
125
+ '#ede9fe',
126
+ '#ddd6fe',
127
+ '#c4b5fd',
128
+ '#a78bfa',
129
+ '#8b5cf6',
130
+ '#7c3aed',
131
+ '#6d28d9',
132
+ '#5b21b6',
133
+ '#4c1d95',
134
+ // '#2e1065',
135
+ ],
136
+ amber: [
137
+ '#fffbeb',
138
+ '#fef3c7',
139
+ '#fde68a',
140
+ '#fcd34d',
141
+ '#fbbf24',
142
+ '#f59e0b',
143
+ '#d97706',
144
+ '#b45309',
145
+ '#92400e',
146
+ '#78350f',
147
+ ],
148
+
149
+ // Portal Colors
150
+ 'portal.orange': [
151
+ '#DBCDC8',
152
+ '#C8ABA1',
153
+ '#BC8C7C',
154
+ '#B76E55',
155
+ '#AE5639',
156
+ '#A34425',
157
+ '#9A3412',
158
+ '#76311B',
159
+ '#5B2D1E',
160
+ '#48291E',
161
+ ],
162
+
163
+ 'portal.teal': [
164
+ '#45766E',
165
+ '#366B62',
166
+ '#296259',
167
+ '#1D5B50',
168
+ '#13554A',
169
+ '#095044',
170
+ '#004D40',
171
+ '#063A31',
172
+ '#0A2D27',
173
+ '#0B231F',
174
+ ],
175
+ 'portal.indigo': [
176
+ '#B9BECD',
177
+ '#969FBA',
178
+ '#7483AE',
179
+ '#5469A6',
180
+ '#405698',
181
+ '#2D468C',
182
+ '#1D3783',
183
+ '#213265',
184
+ '#212D4F',
185
+ '#20283F',
186
+ ],
187
+ 'portal.brown': [
188
+ '#9E9390',
189
+ '#8D7C78',
190
+ '#7C6964',
191
+ '#6E5954',
192
+ '#614B46',
193
+ '#573F39',
194
+ '#4E342E',
195
+ '#3F2D29',
196
+ '#332725',
197
+ '#2A2220',
198
+ ],
199
+ 'portal.green': [
200
+ '#B4BCBB',
201
+ '#97A6A3',
202
+ '#7D9490',
203
+ '#68847F',
204
+ '#57756F',
205
+ '#476862',
206
+ '#3A5D57',
207
+ '#344B47',
208
+ '#2D3D3A',
209
+ '#273230',
210
+ ],
211
+ 'portal.blue': [
212
+ '#BDCBD3',
213
+ '#98B2C0',
214
+ '#749EB5',
215
+ '#508DB0',
216
+ '#3A7DA3',
217
+ '#276F98',
218
+ '#15638F',
219
+ '#1C506E',
220
+ '#1E4255',
221
+ '#1E3643',
222
+ ],
223
+ 'portal.gray': [
224
+ '#DEDEE0',
225
+ '#BDBFC3',
226
+ '#A0A4AB',
227
+ '#878C97',
228
+ '#707786',
229
+ '#60656F',
230
+ '#52555C',
231
+ '#46484C',
232
+ '#3B3C3F',
233
+ '#323335',
234
+ ],
235
+ 'portal.black': [
236
+ '#504F4E',
237
+ '#454443',
238
+ '#3C3A3A',
239
+ '#343232',
240
+ '#2D2B2A',
241
+ '#272524',
242
+ '#22201F',
243
+ '#1C1B1A',
244
+ '#181716',
245
+ '#141313',
246
+ ],
247
+ 'portal.red': [
248
+ '#EFDFE3',
249
+ '#DFAFBB',
250
+ '#D97F96',
251
+ '#DC4C71',
252
+ '#EB144C',
253
+ '#B32348',
254
+ '#8B2943',
255
+ '#6C2B3C',
256
+ '#552A35',
257
+ '#44272E',
258
+ ],
259
+ 'portal.violett': [
260
+ '#FBFAFC',
261
+ '#DDC9E8',
262
+ '#C497DE',
263
+ '#B265DD',
264
+ '#A52EE8',
265
+ '#9900EF',
266
+ '#7B14B5',
267
+ '#631E8A',
268
+ '#51236B',
269
+ '#422354',
270
+ ],
271
+ 'portal.deepPurple': [
272
+ '#F1F0F4',
273
+ '#CCC8DA',
274
+ '#ABA2C7',
275
+ '#8C7CBA',
276
+ '#6E57B5',
277
+ '#573BAC',
278
+ '#4527A0',
279
+ '#3F2B7C',
280
+ '#382B62',
281
+ '#32294D',
282
+ ],
283
+ 'portal.purple': [
284
+ '#DED6E3',
285
+ '#C2AFCD',
286
+ '#AA8ABE',
287
+ '#9764B6',
288
+ '#8743B0',
289
+ '#772EA4',
290
+ '#6A1B9A',
291
+ '#562177',
292
+ '#47235D',
293
+ '#3A2249',
294
+ ],
295
+ 'portal.hostingBlue': [
296
+ '#C4C6CA',
297
+ '#A6ABB1',
298
+ '#8B939C',
299
+ '#727E8C',
300
+ '#5F6C7C',
301
+ '#4F5D6E',
302
+ '#415062',
303
+ '#394350',
304
+ '#323941',
305
+ '#2B3035',
306
+ ],
307
+ };