@zyther/tzmail 0.1.4 → 0.5.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 (132) hide show
  1. package/README.md +411 -78
  2. package/dist/core/enums/theme.enum.d.ts +11 -1
  3. package/dist/core/enums/theme.enum.d.ts.map +1 -1
  4. package/dist/core/enums/theme.enum.js +10 -0
  5. package/dist/core/interfaces/email.interface.d.ts +95 -5
  6. package/dist/core/interfaces/email.interface.d.ts.map +1 -1
  7. package/dist/core/interfaces/template.interface.d.ts +12 -1
  8. package/dist/core/interfaces/template.interface.d.ts.map +1 -1
  9. package/dist/factories/email-factory.d.ts +32 -6
  10. package/dist/factories/email-factory.d.ts.map +1 -1
  11. package/dist/factories/email-factory.js +110 -6
  12. package/dist/factories/template-factory.d.ts.map +1 -1
  13. package/dist/factories/template-factory.js +170 -60
  14. package/dist/index.d.ts +16 -3
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +23 -1
  17. package/dist/providers/mailgun.transport.d.ts +10 -0
  18. package/dist/providers/mailgun.transport.d.ts.map +1 -0
  19. package/dist/providers/mailgun.transport.js +85 -0
  20. package/dist/providers/nodemailer.transport.d.ts +11 -0
  21. package/dist/providers/nodemailer.transport.d.ts.map +1 -0
  22. package/dist/providers/nodemailer.transport.js +23 -0
  23. package/dist/providers/provider-utils.d.ts +17 -0
  24. package/dist/providers/provider-utils.d.ts.map +1 -0
  25. package/dist/providers/provider-utils.js +89 -0
  26. package/dist/providers/provider.interface.d.ts +30 -0
  27. package/dist/providers/provider.interface.d.ts.map +1 -0
  28. package/dist/providers/provider.interface.js +2 -0
  29. package/dist/providers/sendgrid.transport.d.ts +10 -0
  30. package/dist/providers/sendgrid.transport.d.ts.map +1 -0
  31. package/dist/providers/sendgrid.transport.js +76 -0
  32. package/dist/queues/bullmq-email-queue.d.ts +153 -0
  33. package/dist/queues/bullmq-email-queue.d.ts.map +1 -0
  34. package/dist/queues/bullmq-email-queue.js +292 -0
  35. package/dist/services/attachment.service.d.ts +15 -37
  36. package/dist/services/attachment.service.d.ts.map +1 -1
  37. package/dist/services/attachment.service.js +58 -46
  38. package/dist/services/email.service.d.ts +22 -22
  39. package/dist/services/email.service.d.ts.map +1 -1
  40. package/dist/services/email.service.js +117 -33
  41. package/dist/services/template.service.d.ts +24 -111
  42. package/dist/services/template.service.d.ts.map +1 -1
  43. package/dist/services/template.service.js +273 -362
  44. package/dist/templates/base/color-accessibility.d.ts +4 -0
  45. package/dist/templates/base/color-accessibility.d.ts.map +1 -0
  46. package/dist/templates/base/color-accessibility.js +38 -0
  47. package/dist/templates/base/template-builder.d.ts +4 -1
  48. package/dist/templates/base/template-builder.d.ts.map +1 -1
  49. package/dist/templates/base/template-builder.js +276 -527
  50. package/dist/templates/themes/aurora.theme.d.ts +12 -0
  51. package/dist/templates/themes/aurora.theme.d.ts.map +1 -0
  52. package/dist/templates/themes/aurora.theme.js +88 -0
  53. package/dist/templates/themes/corporate.theme.d.ts +2 -1
  54. package/dist/templates/themes/corporate.theme.d.ts.map +1 -1
  55. package/dist/templates/themes/corporate.theme.js +139 -102
  56. package/dist/templates/themes/editorial.theme.d.ts +12 -0
  57. package/dist/templates/themes/editorial.theme.d.ts.map +1 -0
  58. package/dist/templates/themes/editorial.theme.js +90 -0
  59. package/dist/templates/themes/forest.theme.d.ts +12 -0
  60. package/dist/templates/themes/forest.theme.d.ts.map +1 -0
  61. package/dist/templates/themes/forest.theme.js +89 -0
  62. package/dist/templates/themes/glass.theme.d.ts +12 -0
  63. package/dist/templates/themes/glass.theme.d.ts.map +1 -0
  64. package/dist/templates/themes/glass.theme.js +88 -0
  65. package/dist/templates/themes/lavender.theme.d.ts +12 -0
  66. package/dist/templates/themes/lavender.theme.d.ts.map +1 -0
  67. package/dist/templates/themes/lavender.theme.js +91 -0
  68. package/dist/templates/themes/midnight.theme.d.ts +12 -0
  69. package/dist/templates/themes/midnight.theme.d.ts.map +1 -0
  70. package/dist/templates/themes/midnight.theme.js +91 -0
  71. package/dist/templates/themes/minimal.theme.d.ts +2 -1
  72. package/dist/templates/themes/minimal.theme.d.ts.map +1 -1
  73. package/dist/templates/themes/minimal.theme.js +142 -107
  74. package/dist/templates/themes/modern.theme.d.ts +2 -1
  75. package/dist/templates/themes/modern.theme.d.ts.map +1 -1
  76. package/dist/templates/themes/modern.theme.js +109 -74
  77. package/dist/templates/themes/monokai.theme.d.ts +2 -1
  78. package/dist/templates/themes/monokai.theme.d.ts.map +1 -1
  79. package/dist/templates/themes/monokai.theme.js +102 -66
  80. package/dist/templates/themes/neobrutal.theme.d.ts +12 -0
  81. package/dist/templates/themes/neobrutal.theme.d.ts.map +1 -0
  82. package/dist/templates/themes/neobrutal.theme.js +91 -0
  83. package/dist/templates/themes/ocean.theme.d.ts +12 -0
  84. package/dist/templates/themes/ocean.theme.d.ts.map +1 -0
  85. package/dist/templates/themes/ocean.theme.js +90 -0
  86. package/dist/templates/themes/pastel.theme.d.ts +12 -0
  87. package/dist/templates/themes/pastel.theme.d.ts.map +1 -0
  88. package/dist/templates/themes/pastel.theme.js +89 -0
  89. package/dist/templates/themes/sunset.theme.d.ts +12 -0
  90. package/dist/templates/themes/sunset.theme.d.ts.map +1 -0
  91. package/dist/templates/themes/sunset.theme.js +90 -0
  92. package/dist/templates/themes/system.theme.d.ts +2 -1
  93. package/dist/templates/themes/system.theme.d.ts.map +1 -1
  94. package/dist/templates/themes/system.theme.js +81 -47
  95. package/dist/templates/themes/theme.interface.d.ts +48 -0
  96. package/dist/templates/themes/theme.interface.d.ts.map +1 -1
  97. package/package.json +36 -14
  98. package/src/core/enums/template-part.enum.ts +7 -0
  99. package/src/core/enums/theme.enum.ts +18 -0
  100. package/src/core/interfaces/email.interface.ts +116 -0
  101. package/src/core/interfaces/template.interface.ts +71 -0
  102. package/src/factories/email-factory.ts +208 -0
  103. package/src/factories/template-factory.ts +201 -0
  104. package/src/index.ts +53 -0
  105. package/src/providers/mailgun.transport.ts +80 -0
  106. package/src/providers/nodemailer.transport.ts +20 -0
  107. package/src/providers/provider-utils.ts +91 -0
  108. package/src/providers/provider.interface.ts +26 -0
  109. package/src/providers/sendgrid.transport.ts +80 -0
  110. package/src/queues/bullmq-email-queue.ts +418 -0
  111. package/src/services/attachment.service.ts +98 -0
  112. package/src/services/email.service.ts +151 -0
  113. package/src/services/template.service.ts +431 -0
  114. package/src/templates/base/color-accessibility.ts +31 -0
  115. package/src/templates/base/template-builder.ts +438 -0
  116. package/src/templates/themes/aurora.theme.ts +91 -0
  117. package/src/templates/themes/corporate.theme.ts +156 -0
  118. package/src/templates/themes/editorial.theme.ts +93 -0
  119. package/src/templates/themes/forest.theme.ts +92 -0
  120. package/src/templates/themes/glass.theme.ts +91 -0
  121. package/src/templates/themes/lavender.theme.ts +94 -0
  122. package/src/templates/themes/midnight.theme.ts +94 -0
  123. package/src/templates/themes/minimal.theme.ts +158 -0
  124. package/src/templates/themes/modern.theme.ts +124 -0
  125. package/src/templates/themes/monokai.theme.ts +117 -0
  126. package/src/templates/themes/neobrutal.theme.ts +94 -0
  127. package/src/templates/themes/ocean.theme.ts +93 -0
  128. package/src/templates/themes/pastel.theme.ts +92 -0
  129. package/src/templates/themes/sunset.theme.ts +93 -0
  130. package/src/templates/themes/system.theme.ts +92 -0
  131. package/src/templates/themes/theme.interface.ts +95 -0
  132. package/src/tests/template.service.test.ts +1 -0
@@ -0,0 +1,12 @@
1
+ import { ThemeType } from '../../core/enums/theme.enum';
2
+ import { ITheme, IThemeColors, ITypography, ISpacing, IThemeEmailStyles } from './theme.interface';
3
+ export declare class AuroraTheme implements ITheme {
4
+ id: ThemeType;
5
+ name: string;
6
+ light: IThemeColors;
7
+ dark: IThemeColors;
8
+ typography: ITypography;
9
+ spacing: ISpacing;
10
+ emailStyles: IThemeEmailStyles;
11
+ }
12
+ //# sourceMappingURL=aurora.theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aurora.theme.d.ts","sourceRoot":"","sources":["../../../src/templates/themes/aurora.theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEnG,qBAAa,WAAY,YAAW,MAAM;IACxC,EAAE,YAAoB;IACtB,IAAI,SAAY;IAEhB,KAAK,EAAE,YAAY,CAUjB;IAEF,IAAI,EAAE,YAAY,CAUhB;IAEF,UAAU,EAAE,WAAW,CAarB;IAEF,OAAO,EAAE,QAAQ,CAMf;IAEF,WAAW,EAAE,iBAAiB,CAmC5B;CACH"}
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AuroraTheme = void 0;
4
+ const theme_enum_1 = require("../../core/enums/theme.enum");
5
+ class AuroraTheme {
6
+ id = theme_enum_1.ThemeType.AURORA;
7
+ name = 'Aurora';
8
+ light = {
9
+ primary: '#06727D',
10
+ secondary: '#6750A4',
11
+ background: '#F3F8FA',
12
+ text: '#112B3A',
13
+ textMuted: '#536B78',
14
+ border: '#CBD9DF',
15
+ success: '#18794E',
16
+ error: '#B42332',
17
+ warning: '#8A5A00'
18
+ };
19
+ dark = {
20
+ primary: '#5ADBC7',
21
+ secondary: '#B9A5FF',
22
+ background: '#0B1624',
23
+ text: '#EDF5F8',
24
+ textMuted: '#B0C0CA',
25
+ border: '#334454',
26
+ success: '#69D5A0',
27
+ error: '#FF8A8A',
28
+ warning: '#FFD166'
29
+ };
30
+ typography = {
31
+ fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif',
32
+ fontSizes: {
33
+ small: '14px',
34
+ medium: '16px',
35
+ large: '18px',
36
+ xlarge: '26px'
37
+ },
38
+ fontWeights: {
39
+ normal: 400,
40
+ medium: 500,
41
+ bold: 600
42
+ }
43
+ };
44
+ spacing = {
45
+ xs: '4px',
46
+ sm: '8px',
47
+ md: '16px',
48
+ lg: '24px',
49
+ xl: '36px'
50
+ };
51
+ emailStyles = {
52
+ maxWidthPx: 600,
53
+ container: {
54
+ borderColor: 'border',
55
+ borderWidth: '1px',
56
+ borderRadius: '12px',
57
+ boxShadow: 'none'
58
+ },
59
+ header: {
60
+ accentColor: 'primary',
61
+ accentWidth: '3px',
62
+ horizontalPadding: '24px',
63
+ logoColor: 'primary',
64
+ imageBorderRadius: '8px'
65
+ },
66
+ body: {
67
+ accentColor: 'primary',
68
+ accentWidth: '3px',
69
+ borderRadius: '10px',
70
+ boxShadow: 'none',
71
+ horizontalPadding: '24px',
72
+ lineHeight: 1.55
73
+ },
74
+ button: {
75
+ appearance: 'solid',
76
+ borderRadius: '6px',
77
+ borderWidth: '1px',
78
+ boxShadow: 'none',
79
+ textTransform: 'none',
80
+ letterSpacing: '0.01em'
81
+ },
82
+ footer: {
83
+ accentColor: 'secondary',
84
+ accentWidth: '1px'
85
+ }
86
+ };
87
+ }
88
+ exports.AuroraTheme = AuroraTheme;
@@ -1,5 +1,5 @@
1
1
  import { ThemeType } from '../../core/enums/theme.enum';
2
- import { ITheme, IThemeColors, ITypography, ISpacing } from './theme.interface';
2
+ import { ITheme, IThemeColors, ITypography, ISpacing, IThemeEmailStyles } from './theme.interface';
3
3
  export declare class CorporateTheme implements ITheme {
4
4
  id: ThemeType;
5
5
  name: string;
@@ -61,5 +61,6 @@ export declare class CorporateTheme implements ITheme {
61
61
  headerHeight: string;
62
62
  footerHeight: string;
63
63
  };
64
+ emailStyles: IThemeEmailStyles;
64
65
  }
65
66
  //# sourceMappingURL=corporate.theme.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"corporate.theme.d.ts","sourceRoot":"","sources":["../../../src/templates/themes/corporate.theme.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEhF,qBAAa,cAAe,YAAW,MAAM;IAC3C,EAAE,YAAuB;IACzB,IAAI,SAAe;IAEnB,KAAK,EAAE,YAAY,CAUjB;IAEF,IAAI,EAAE,YAAY,CAUhB;IAEF,UAAU,EAAE,WAAW,CAarB;IAEF,OAAO,EAAE,QAAQ,CAMf;IAGF,eAAe;;;;;;;MAOb;IAGF,WAAW;;;;;;;;;;;;;MAaT;IAEF,SAAS;;;;;MAKP;IAEF,QAAQ;;;;;;;;;;;;;;;;;;MAkBN;IAEF,MAAM;;;;;;MAMJ;CACH"}
1
+ {"version":3,"file":"corporate.theme.d.ts","sourceRoot":"","sources":["../../../src/templates/themes/corporate.theme.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEnG,qBAAa,cAAe,YAAW,MAAM;IAC3C,EAAE,YAAuB;IACzB,IAAI,SAAe;IAEnB,KAAK,EAAE,YAAY,CAUjB;IAEF,IAAI,EAAE,YAAY,CAUhB;IAEF,UAAU,EAAE,WAAW,CAarB;IAEF,OAAO,EAAE,QAAQ,CAMf;IAGF,eAAe;;;;;;;MAOb;IAGF,WAAW;;;;;;;;;;;;;MAaT;IAEF,SAAS;;;;;MAKP;IAEF,QAAQ;;;;;;;;;;;;;;;;;;MAkBN;IAEF,MAAM;;;;;;MAMJ;IAEF,WAAW,EAAE,iBAAiB,CAsC5B;CACH"}
@@ -3,107 +3,144 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CorporateTheme = void 0;
4
4
  const theme_enum_1 = require("../../core/enums/theme.enum");
5
5
  class CorporateTheme {
6
- constructor() {
7
- this.id = theme_enum_1.ThemeType.CORPORATE;
8
- this.name = 'Corporate';
9
- this.light = {
10
- primary: '#1e40af',
11
- secondary: '#334155',
12
- background: '#ffffff',
13
- text: '#0f172a',
14
- textMuted: '#475569',
15
- border: '#e2e8f0',
16
- success: '#059669',
17
- error: '#dc2626',
18
- warning: '#d97706'
19
- };
20
- this.dark = {
21
- primary: '#3b82f6',
22
- secondary: '#64748b',
23
- background: '#0f172a',
24
- text: '#f1f5f9',
25
- textMuted: '#94a3b8',
26
- border: '#1e293b',
27
- success: '#10b981',
28
- error: '#ef4444',
29
- warning: '#f59e0b'
30
- };
31
- this.typography = {
32
- fontFamily: '"Playfair Display", "Georgia", "Times New Roman", serif',
33
- fontSizes: {
34
- small: '12px',
35
- medium: '14px',
36
- large: '16px',
37
- xlarge: '24px'
38
- },
39
- fontWeights: {
40
- normal: 400,
41
- medium: 500,
42
- bold: 700
43
- }
44
- };
45
- this.spacing = {
46
- xs: '4px',
47
- sm: '8px',
48
- md: '16px',
49
- lg: '24px',
50
- xl: '32px'
51
- };
52
- // cores adicionais
53
- this.corporateColors = {
54
- gold: '#d4af37',
55
- silver: '#c0c0c0',
56
- bronze: '#cd7f32',
57
- navy: '#0a2540',
58
- charcoal: '#36454f',
59
- ivory: '#fffff0'
60
- };
61
- this.borderStyle = {
62
- radius: {
63
- small: '2px',
64
- medium: '4px',
65
- large: '8px',
66
- pill: '20px'
67
- },
68
- width: {
69
- thin: '1px',
70
- medium: '2px',
71
- thick: '3px'
72
- },
73
- style: 'solid'
74
- };
75
- this.elevation = {
76
- shadow: '0 1px 3px rgba(0, 0, 0, 0.08), 0 1px 2px rgba(0, 0, 0, 0.04)',
77
- card: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',
78
- modal: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.02)',
79
- hover: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)'
80
- };
81
- this.branding = {
82
- logoSize: {
83
- small: '32px',
84
- medium: '48px',
85
- large: '64px'
86
- },
87
- letterSpacing: {
88
- tight: '-0.5px',
89
- normal: '0px',
90
- wide: '0.5px',
91
- wider: '1px'
92
- },
93
- textTransform: {
94
- uppercase: 'uppercase',
95
- lowercase: 'lowercase',
96
- capitalize: 'capitalize',
97
- normal: 'none'
98
- }
99
- };
100
- this.layout = {
101
- maxWidth: '600px',
102
- contentWidth: '560px',
103
- sidebarWidth: '200px',
104
- headerHeight: '80px',
105
- footerHeight: '120px'
106
- };
107
- }
6
+ id = theme_enum_1.ThemeType.CORPORATE;
7
+ name = 'Corporate';
8
+ light = {
9
+ primary: '#1e40af',
10
+ secondary: '#334155',
11
+ background: '#ffffff',
12
+ text: '#0f172a',
13
+ textMuted: '#475569',
14
+ border: '#e2e8f0',
15
+ success: '#059669',
16
+ error: '#dc2626',
17
+ warning: '#d97706'
18
+ };
19
+ dark = {
20
+ primary: '#3b82f6',
21
+ secondary: '#64748b',
22
+ background: '#0f172a',
23
+ text: '#f1f5f9',
24
+ textMuted: '#94a3b8',
25
+ border: '#1e293b',
26
+ success: '#10b981',
27
+ error: '#ef4444',
28
+ warning: '#f59e0b'
29
+ };
30
+ typography = {
31
+ fontFamily: '"Playfair Display", "Georgia", "Times New Roman", serif',
32
+ fontSizes: {
33
+ small: '12px',
34
+ medium: '14px',
35
+ large: '16px',
36
+ xlarge: '24px'
37
+ },
38
+ fontWeights: {
39
+ normal: 400,
40
+ medium: 500,
41
+ bold: 700
42
+ }
43
+ };
44
+ spacing = {
45
+ xs: '4px',
46
+ sm: '8px',
47
+ md: '16px',
48
+ lg: '24px',
49
+ xl: '32px'
50
+ };
51
+ // cores adicionais
52
+ corporateColors = {
53
+ gold: '#d4af37',
54
+ silver: '#c0c0c0',
55
+ bronze: '#cd7f32',
56
+ navy: '#0a2540',
57
+ charcoal: '#36454f',
58
+ ivory: '#fffff0'
59
+ };
60
+ borderStyle = {
61
+ radius: {
62
+ small: '2px',
63
+ medium: '4px',
64
+ large: '8px',
65
+ pill: '20px'
66
+ },
67
+ width: {
68
+ thin: '1px',
69
+ medium: '2px',
70
+ thick: '3px'
71
+ },
72
+ style: 'solid'
73
+ };
74
+ elevation = {
75
+ shadow: '0 1px 3px rgba(0, 0, 0, 0.08), 0 1px 2px rgba(0, 0, 0, 0.04)',
76
+ card: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',
77
+ modal: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.02)',
78
+ hover: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)'
79
+ };
80
+ branding = {
81
+ logoSize: {
82
+ small: '32px',
83
+ medium: '48px',
84
+ large: '64px'
85
+ },
86
+ letterSpacing: {
87
+ tight: '-0.5px',
88
+ normal: '0px',
89
+ wide: '0.5px',
90
+ wider: '1px'
91
+ },
92
+ textTransform: {
93
+ uppercase: 'uppercase',
94
+ lowercase: 'lowercase',
95
+ capitalize: 'capitalize',
96
+ normal: 'none'
97
+ }
98
+ };
99
+ layout = {
100
+ maxWidth: '600px',
101
+ contentWidth: '560px',
102
+ sidebarWidth: '200px',
103
+ headerHeight: '80px',
104
+ footerHeight: '120px'
105
+ };
106
+ emailStyles = {
107
+ maxWidthPx: 600,
108
+ container: {
109
+ borderColor: 'border',
110
+ borderWidth: '1px',
111
+ borderRadius: '4px',
112
+ boxShadow: 'none'
113
+ },
114
+ header: {
115
+ accentColor: 'primary',
116
+ accentWidth: '3px',
117
+ horizontalPadding: '28px',
118
+ logoColor: 'text',
119
+ logoFontFamily: '"Playfair Display", "Georgia", "Times New Roman", serif',
120
+ logoTextTransform: 'uppercase',
121
+ logoLetterSpacing: '1px',
122
+ imageBorderRadius: '2px'
123
+ },
124
+ body: {
125
+ accentColor: 'secondary',
126
+ accentWidth: '1px',
127
+ borderRadius: '4px',
128
+ boxShadow: 'none',
129
+ horizontalPadding: '32px',
130
+ lineHeight: 1.6
131
+ },
132
+ button: {
133
+ appearance: 'solid',
134
+ borderRadius: '2px',
135
+ borderWidth: '1px',
136
+ boxShadow: 'none',
137
+ textTransform: 'uppercase',
138
+ letterSpacing: '0.5px'
139
+ },
140
+ footer: {
141
+ accentColor: 'border',
142
+ accentWidth: '1px'
143
+ }
144
+ };
108
145
  }
109
146
  exports.CorporateTheme = CorporateTheme;
@@ -0,0 +1,12 @@
1
+ import { ThemeType } from '../../core/enums/theme.enum';
2
+ import { ITheme, IThemeColors, ITypography, ISpacing, IThemeEmailStyles } from './theme.interface';
3
+ export declare class EditorialTheme implements ITheme {
4
+ id: ThemeType;
5
+ name: string;
6
+ light: IThemeColors;
7
+ dark: IThemeColors;
8
+ typography: ITypography;
9
+ spacing: ISpacing;
10
+ emailStyles: IThemeEmailStyles;
11
+ }
12
+ //# sourceMappingURL=editorial.theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editorial.theme.d.ts","sourceRoot":"","sources":["../../../src/templates/themes/editorial.theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEnG,qBAAa,cAAe,YAAW,MAAM;IAC3C,EAAE,YAAuB;IACzB,IAAI,SAAe;IAEnB,KAAK,EAAE,YAAY,CAUjB;IAEF,IAAI,EAAE,YAAY,CAUhB;IAEF,UAAU,EAAE,WAAW,CAarB;IAEF,OAAO,EAAE,QAAQ,CAMf;IAEF,WAAW,EAAE,iBAAiB,CAqC5B;CACH"}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EditorialTheme = void 0;
4
+ const theme_enum_1 = require("../../core/enums/theme.enum");
5
+ class EditorialTheme {
6
+ id = theme_enum_1.ThemeType.EDITORIAL;
7
+ name = 'Editorial';
8
+ light = {
9
+ primary: '#8B342D',
10
+ secondary: '#5D5148',
11
+ background: '#F7F3EA',
12
+ text: '#292522',
13
+ textMuted: '#655C54',
14
+ border: '#D8CFC1',
15
+ success: '#286146',
16
+ error: '#963B34',
17
+ warning: '#75500F'
18
+ };
19
+ dark = {
20
+ primary: '#E49A8E',
21
+ secondary: '#C8BBA9',
22
+ background: '#211F1C',
23
+ text: '#F3EEE4',
24
+ textMuted: '#C2B8AA',
25
+ border: '#4A433C',
26
+ success: '#91CBA5',
27
+ error: '#F0A097',
28
+ warning: '#E9C77B'
29
+ };
30
+ typography = {
31
+ fontFamily: 'Georgia, "Times New Roman", Times, serif',
32
+ fontSizes: {
33
+ small: '14px',
34
+ medium: '16px',
35
+ large: '19px',
36
+ xlarge: '28px'
37
+ },
38
+ fontWeights: {
39
+ normal: 400,
40
+ medium: 500,
41
+ bold: 700
42
+ }
43
+ };
44
+ spacing = {
45
+ xs: '4px',
46
+ sm: '8px',
47
+ md: '16px',
48
+ lg: '24px',
49
+ xl: '36px'
50
+ };
51
+ emailStyles = {
52
+ maxWidthPx: 600,
53
+ container: {
54
+ borderColor: 'border',
55
+ borderWidth: '1px',
56
+ borderRadius: '3px',
57
+ boxShadow: 'none'
58
+ },
59
+ header: {
60
+ accentColor: 'primary',
61
+ accentWidth: '2px',
62
+ horizontalPadding: '28px',
63
+ logoColor: 'primary',
64
+ logoFontFamily: 'Georgia, "Times New Roman", Times, serif',
65
+ logoLetterSpacing: '0.02em',
66
+ imageBorderRadius: '2px'
67
+ },
68
+ body: {
69
+ accentColor: 'primary',
70
+ accentWidth: '2px',
71
+ borderRadius: '2px',
72
+ boxShadow: 'none',
73
+ horizontalPadding: '28px',
74
+ lineHeight: 1.65
75
+ },
76
+ button: {
77
+ appearance: 'solid',
78
+ borderRadius: '2px',
79
+ borderWidth: '1px',
80
+ boxShadow: 'none',
81
+ textTransform: 'uppercase',
82
+ letterSpacing: '0.04em'
83
+ },
84
+ footer: {
85
+ accentColor: 'secondary',
86
+ accentWidth: '1px'
87
+ }
88
+ };
89
+ }
90
+ exports.EditorialTheme = EditorialTheme;
@@ -0,0 +1,12 @@
1
+ import { ThemeType } from '../../core/enums/theme.enum';
2
+ import { ITheme, IThemeColors, ITypography, ISpacing, IThemeEmailStyles } from './theme.interface';
3
+ export declare class ForestTheme implements ITheme {
4
+ id: ThemeType;
5
+ name: string;
6
+ light: IThemeColors;
7
+ dark: IThemeColors;
8
+ typography: ITypography;
9
+ spacing: ISpacing;
10
+ emailStyles: IThemeEmailStyles;
11
+ }
12
+ //# sourceMappingURL=forest.theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forest.theme.d.ts","sourceRoot":"","sources":["../../../src/templates/themes/forest.theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEnG,qBAAa,WAAY,YAAW,MAAM;IACxC,EAAE,YAAoB;IACtB,IAAI,SAAY;IAEhB,KAAK,EAAE,YAAY,CAUjB;IAEF,IAAI,EAAE,YAAY,CAUhB;IAEF,UAAU,EAAE,WAAW,CAarB;IAEF,OAAO,EAAE,QAAQ,CAMf;IAEF,WAAW,EAAE,iBAAiB,CAoC5B;CACH"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ForestTheme = void 0;
4
+ const theme_enum_1 = require("../../core/enums/theme.enum");
5
+ class ForestTheme {
6
+ id = theme_enum_1.ThemeType.FOREST;
7
+ name = 'Forest';
8
+ light = {
9
+ primary: '#315A3D',
10
+ secondary: '#657B5D',
11
+ background: '#F7F5EC',
12
+ text: '#26362B',
13
+ textMuted: '#58665A',
14
+ border: '#D9DFD2',
15
+ success: '#356B48',
16
+ error: '#A34037',
17
+ warning: '#805713'
18
+ };
19
+ dark = {
20
+ primary: '#A9C69A',
21
+ secondary: '#B4C2A8',
22
+ background: '#18231C',
23
+ text: '#F1F2E9',
24
+ textMuted: '#B7C2B5',
25
+ border: '#3A4A3D',
26
+ success: '#9BC99E',
27
+ error: '#F0A39A',
28
+ warning: '#E5C078'
29
+ };
30
+ typography = {
31
+ fontFamily: 'Georgia, "Times New Roman", serif',
32
+ fontSizes: {
33
+ small: '14px',
34
+ medium: '16px',
35
+ large: '18px',
36
+ xlarge: '26px'
37
+ },
38
+ fontWeights: {
39
+ normal: 400,
40
+ medium: 500,
41
+ bold: 700
42
+ }
43
+ };
44
+ spacing = {
45
+ xs: '6px',
46
+ sm: '12px',
47
+ md: '20px',
48
+ lg: '30px',
49
+ xl: '44px'
50
+ };
51
+ emailStyles = {
52
+ maxWidthPx: 600,
53
+ container: {
54
+ borderColor: 'border',
55
+ borderWidth: '1px',
56
+ borderRadius: '8px',
57
+ boxShadow: 'none'
58
+ },
59
+ header: {
60
+ accentColor: 'primary',
61
+ accentWidth: '4px',
62
+ horizontalPadding: '28px',
63
+ logoColor: 'primary',
64
+ logoFontFamily: 'Georgia, "Times New Roman", serif',
65
+ imageBorderRadius: '6px'
66
+ },
67
+ body: {
68
+ accentColor: 'secondary',
69
+ accentWidth: '3px',
70
+ borderRadius: '6px',
71
+ boxShadow: 'none',
72
+ horizontalPadding: '28px',
73
+ lineHeight: 1.65
74
+ },
75
+ button: {
76
+ appearance: 'solid',
77
+ borderRadius: '4px',
78
+ borderWidth: '1px',
79
+ boxShadow: 'none',
80
+ textTransform: 'uppercase',
81
+ letterSpacing: '0.04em'
82
+ },
83
+ footer: {
84
+ accentColor: 'secondary',
85
+ accentWidth: '1px'
86
+ }
87
+ };
88
+ }
89
+ exports.ForestTheme = ForestTheme;
@@ -0,0 +1,12 @@
1
+ import { ThemeType } from '../../core/enums/theme.enum';
2
+ import { ITheme, IThemeColors, ITypography, ISpacing, IThemeEmailStyles } from './theme.interface';
3
+ export declare class GlassTheme implements ITheme {
4
+ id: ThemeType;
5
+ name: string;
6
+ light: IThemeColors;
7
+ dark: IThemeColors;
8
+ typography: ITypography;
9
+ spacing: ISpacing;
10
+ emailStyles: IThemeEmailStyles;
11
+ }
12
+ //# sourceMappingURL=glass.theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glass.theme.d.ts","sourceRoot":"","sources":["../../../src/templates/themes/glass.theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEnG,qBAAa,UAAW,YAAW,MAAM;IACvC,EAAE,YAAmB;IACrB,IAAI,SAAW;IAEf,KAAK,EAAE,YAAY,CAUjB;IAEF,IAAI,EAAE,YAAY,CAUhB;IAEF,UAAU,EAAE,WAAW,CAarB;IAEF,OAAO,EAAE,QAAQ,CAMf;IAEF,WAAW,EAAE,iBAAiB,CAmC5B;CACH"}