@useinsider/guido 1.0.0-beta.02a8faf

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 (117) hide show
  1. package/README.md +217 -0
  2. package/dist/@types/events.d.ts +1 -0
  3. package/dist/@types/generic.d.ts +13 -0
  4. package/dist/App.vue.d.ts +3 -0
  5. package/dist/_virtual/_plugin-vue2_normalizer.js +10 -0
  6. package/dist/components/Guido.vue.d.ts +20 -0
  7. package/dist/components/Guido.vue.js +18 -0
  8. package/dist/components/Guido.vue2.js +43 -0
  9. package/dist/components/organisms/header/HeaderWrapper.vue.d.ts +2 -0
  10. package/dist/components/organisms/header/HeaderWrapper.vue.js +17 -0
  11. package/dist/components/organisms/header/HeaderWrapper.vue2.js +14 -0
  12. package/dist/components/organisms/header/LeftSlot.vue.d.ts +2 -0
  13. package/dist/components/organisms/header/LeftSlot.vue.js +17 -0
  14. package/dist/components/organisms/header/LeftSlot.vue2.js +11 -0
  15. package/dist/components/organisms/header/MiddleSlot.vue.d.ts +2 -0
  16. package/dist/components/organisms/header/MiddleSlot.vue.js +17 -0
  17. package/dist/components/organisms/header/MiddleSlot.vue2.js +20 -0
  18. package/dist/components/organisms/header/RightSlot.vue.d.ts +2 -0
  19. package/dist/components/organisms/header/RightSlot.vue.js +20 -0
  20. package/dist/components/organisms/header/RightSlot.vue2.js +24 -0
  21. package/dist/components/organisms/header/ViewOptions.vue.d.ts +2 -0
  22. package/dist/components/organisms/header/ViewOptions.vue.js +18 -0
  23. package/dist/components/organisms/header/ViewOptions.vue2.js +15 -0
  24. package/dist/components/organisms/header/version-history/VersionHistory.vue.d.ts +2 -0
  25. package/dist/components/organisms/header/version-history/VersionHistory.vue.js +22 -0
  26. package/dist/components/organisms/header/version-history/VersionHistory.vue2.js +15 -0
  27. package/dist/components/organisms/header/version-history/VersionHistoryItem.vue.d.ts +16 -0
  28. package/dist/components/organisms/header/version-history/VersionHistoryItem.vue.js +18 -0
  29. package/dist/components/organisms/header/version-history/VersionHistoryItem.vue2.js +16 -0
  30. package/dist/components/organisms/header/version-history/ViewOptions.vue.d.ts +2 -0
  31. package/dist/components/organisms/header/version-history/ViewOptions.vue.js +18 -0
  32. package/dist/components/organisms/header/version-history/ViewOptions.vue2.js +23 -0
  33. package/dist/composables/useActionsApi.d.ts +4 -0
  34. package/dist/composables/useActionsApi.js +36 -0
  35. package/dist/composables/useApiExample.d.ts +61 -0
  36. package/dist/composables/useCustomInterfaceAppearance.d.ts +3 -0
  37. package/dist/composables/useCustomInterfaceAppearance.js +13 -0
  38. package/dist/composables/useExport.d.ts +3 -0
  39. package/dist/composables/useExport.js +30 -0
  40. package/dist/composables/useHttp.d.ts +78 -0
  41. package/dist/composables/useHttp.js +84 -0
  42. package/dist/composables/usePartner.d.ts +4 -0
  43. package/dist/composables/usePartner.js +16 -0
  44. package/dist/composables/useStripo.d.ts +4 -0
  45. package/dist/composables/useStripo.js +74 -0
  46. package/dist/composables/useTemplates.d.ts +5 -0
  47. package/dist/composables/useTemplates.js +27 -0
  48. package/dist/composables/useToaster.d.ts +21 -0
  49. package/dist/composables/useToaster.js +37 -0
  50. package/dist/composables/useTranslations.d.ts +5 -0
  51. package/dist/composables/useTranslations.js +18 -0
  52. package/dist/composables/useVersionHistoryApi.d.ts +8 -0
  53. package/dist/composables/useVersionHistoryApi.js +53 -0
  54. package/dist/enums/defaults.d.ts +4 -0
  55. package/dist/enums/defaults.js +8 -0
  56. package/dist/guido.css +1 -0
  57. package/dist/guido.png +0 -0
  58. package/dist/library.d.ts +3 -0
  59. package/dist/library.js +4 -0
  60. package/dist/main.d.ts +1 -0
  61. package/dist/mock/api/auth.d.ts +2 -0
  62. package/dist/mock/api/custom-fonts.d.ts +2 -0
  63. package/dist/mock/browser.d.ts +1 -0
  64. package/dist/mock/handlers.d.ts +1 -0
  65. package/dist/mockServiceWorker.js +344 -0
  66. package/dist/node_modules/lodash-es/_Hash.js +20 -0
  67. package/dist/node_modules/lodash-es/_ListCache.js +20 -0
  68. package/dist/node_modules/lodash-es/_Map.js +6 -0
  69. package/dist/node_modules/lodash-es/_MapCache.js +20 -0
  70. package/dist/node_modules/lodash-es/_Symbol.js +5 -0
  71. package/dist/node_modules/lodash-es/_assocIndexOf.js +10 -0
  72. package/dist/node_modules/lodash-es/_baseGetTag.js +10 -0
  73. package/dist/node_modules/lodash-es/_baseIsNative.js +16 -0
  74. package/dist/node_modules/lodash-es/_coreJsData.js +5 -0
  75. package/dist/node_modules/lodash-es/_freeGlobal.js +4 -0
  76. package/dist/node_modules/lodash-es/_getMapData.js +8 -0
  77. package/dist/node_modules/lodash-es/_getNative.js +9 -0
  78. package/dist/node_modules/lodash-es/_getRawTag.js +15 -0
  79. package/dist/node_modules/lodash-es/_getValue.js +6 -0
  80. package/dist/node_modules/lodash-es/_hashClear.js +7 -0
  81. package/dist/node_modules/lodash-es/_hashDelete.js +7 -0
  82. package/dist/node_modules/lodash-es/_hashGet.js +13 -0
  83. package/dist/node_modules/lodash-es/_hashHas.js +9 -0
  84. package/dist/node_modules/lodash-es/_hashSet.js +9 -0
  85. package/dist/node_modules/lodash-es/_isKeyable.js +7 -0
  86. package/dist/node_modules/lodash-es/_isMasked.js +11 -0
  87. package/dist/node_modules/lodash-es/_listCacheClear.js +6 -0
  88. package/dist/node_modules/lodash-es/_listCacheDelete.js +12 -0
  89. package/dist/node_modules/lodash-es/_listCacheGet.js +8 -0
  90. package/dist/node_modules/lodash-es/_listCacheHas.js +7 -0
  91. package/dist/node_modules/lodash-es/_listCacheSet.js +8 -0
  92. package/dist/node_modules/lodash-es/_mapCacheClear.js +13 -0
  93. package/dist/node_modules/lodash-es/_mapCacheDelete.js +8 -0
  94. package/dist/node_modules/lodash-es/_mapCacheGet.js +7 -0
  95. package/dist/node_modules/lodash-es/_mapCacheHas.js +7 -0
  96. package/dist/node_modules/lodash-es/_mapCacheSet.js +8 -0
  97. package/dist/node_modules/lodash-es/_nativeCreate.js +5 -0
  98. package/dist/node_modules/lodash-es/_objectToString.js +7 -0
  99. package/dist/node_modules/lodash-es/_root.js +5 -0
  100. package/dist/node_modules/lodash-es/_toSource.js +17 -0
  101. package/dist/node_modules/lodash-es/eq.js +6 -0
  102. package/dist/node_modules/lodash-es/isFunction.js +12 -0
  103. package/dist/node_modules/lodash-es/isObject.js +7 -0
  104. package/dist/node_modules/lodash-es/memoize.js +18 -0
  105. package/dist/services/stripoApi.d.ts +7 -0
  106. package/dist/services/stripoApi.js +29 -0
  107. package/dist/sprite.svg +3133 -0
  108. package/dist/static/editor.css.js +232 -0
  109. package/dist/static/templates/default/index.html.js +5 -0
  110. package/dist/static/templates/default/style.css.js +119 -0
  111. package/dist/stores/editor.d.ts +5 -0
  112. package/dist/stores/editor.js +11 -0
  113. package/dist/stores/version-history.d.ts +80 -0
  114. package/dist/stores/version-history.js +28 -0
  115. package/dist/utils/dateUtil.d.ts +1 -0
  116. package/dist/utils/dateUtil.js +16 -0
  117. package/package.json +80 -0
@@ -0,0 +1,232 @@
1
+ const n = `:host {
2
+ --guido-color-white: #FFFFFF;
3
+ --guido-color-primary-500: #0A2ECC;
4
+ --guido-color-primary-100: #DAE1FB;
5
+ --guido-color-gray-800: #292929;
6
+ --guido-color-gray-300: #E1E1E1;
7
+ }
8
+
9
+ .label {
10
+ font-size: 13px;
11
+ color: var(--guido-color-gray-800);
12
+ }
13
+
14
+ .stacked-panel-title {
15
+ padding: 16px;
16
+ font-size: 16px;
17
+ font-weight: 600;
18
+ color: var(--guido-color-gray-800);
19
+ text-align: left;
20
+ }
21
+
22
+ .stacked-panel-item {
23
+ border-radius: 4px;
24
+ border: 1px solid #dcdfe6;
25
+ box-shadow: 0 0 0 0 var(--guido-color-gray-300),0 15px 35px -5px rgba(0, 0, 0, .1),0 8px 10px -6px rgba(0, 0, 0, .1);
26
+ }
27
+
28
+ .container {
29
+ padding: 16px;
30
+ }
31
+
32
+ .container.parent-container>.container {
33
+ padding: 0 16px;
34
+ }
35
+
36
+ /** SEGMENT BUTTON */
37
+ ue-switcher input {
38
+ border-radius: 26px;
39
+ }
40
+
41
+ ue-switcher input:before {
42
+ border-radius: 22px;
43
+ }
44
+
45
+ .tabs-header {
46
+ padding: 0;
47
+ column-gap: 0;
48
+ background-color: transparent;
49
+ }
50
+
51
+ .tabs-header button {
52
+ background-color: #f7f9fa;
53
+ outline: none;
54
+ padding: 8px 16px;
55
+ border: 1px solid #dcdee6;
56
+ height: 42px;
57
+ }
58
+
59
+ .tabs-header button ue-icon-component.icon-button {
60
+ color: var(--guido-color-gray-800);
61
+ }
62
+
63
+ .tabs-header button:not(:last-child),
64
+ .tabs-header button:not(:first-child) {
65
+ border-radius: 0;
66
+ }
67
+
68
+ .tabs-header button:first-child {
69
+ border-radius: 4px 0 0 4px;
70
+ }
71
+
72
+ .tabs-header button:last-child {
73
+ border-radius: 0 4px 4px 0;
74
+ }
75
+
76
+ .tabs-header button.checked {
77
+ background-color: var(--guido-color-primary-100);
78
+ color: var(--guido-color-primary-500);
79
+ border-color: var(--guido-color-primary-500);
80
+ }
81
+
82
+ .tabs-header button.checked ue-icon-component.icon-button {
83
+ color: var(--guido-color-primary-500);
84
+ }
85
+ /** SEGMENT BUTTON */
86
+
87
+ /** BUTTON */
88
+ .button:not(:disabled,.disabled):active {
89
+ transform: none !important;
90
+ }
91
+ /** BUTTON */
92
+
93
+ /** BUTTON GROUP */
94
+ .button-group {
95
+ padding: 0;
96
+ column-gap: 0;
97
+ border-radius: 0;
98
+ background-color: transparent;
99
+ }
100
+
101
+ .button-group .button {
102
+ background-color: #f7f9fa;
103
+ outline: none;
104
+ padding: 8px 12px;
105
+ border: 1px solid #dcdee6;
106
+ box-shadow: none;
107
+ height: 42px;
108
+ }
109
+
110
+ .button-group .button ue-icon-component.icon-button {
111
+ color: var(--guido-color-gray-800);
112
+ }
113
+
114
+ .button-group > div:first-of-type .button {
115
+ border-radius: 4px 0 0 4px;
116
+ }
117
+
118
+ .button-group > *:last-child .button {
119
+ border-radius: 0 4px 4px 0;
120
+ }
121
+
122
+ ue-check-buttons input:checked + .button,
123
+ ue-radio-buttons input:checked + .button {
124
+ background-color: var(--guido-color-primary-100);
125
+ color: var(--guido-color-primary-500);
126
+ border-color: var(--guido-color-primary-500);
127
+ }
128
+
129
+ ue-check-buttons input:checked + .button ue-icon-component.icon-button,
130
+ ue-radio-buttons input:checked + .button ue-icon-component.icon-button {
131
+ color: var(--guido-color-primary-500);
132
+ }
133
+ /** BUTTON GROUP */
134
+
135
+ /** COMBOBOX */
136
+ .control-shadow-wrapper:has(.button[role="combobox"]) {
137
+ border-radius: 0;
138
+ padding: 0;
139
+ background: transparent;
140
+ }
141
+
142
+ .button[role="combobox"] {
143
+ background-color: #f9f9f9;
144
+ border: 1px solid var(--guido-color-gray-300);
145
+ border-radius: 4px;
146
+ box-shadow: none;
147
+ min-height: 42px;
148
+ padding: 8px;
149
+ color: var(--guido-color-gray-800);
150
+ text-align: left;
151
+ outline: none;
152
+ white-space: nowrap;
153
+ text-overflow: ellipsis;
154
+ overflow: hidden;
155
+ }
156
+
157
+ .button[role="combobox"].on {
158
+ background-color: #f9f9f9;
159
+ border-color: var(--guido-color-primary-500);
160
+ box-shadow: 0 0 0 3px #b5c1f1 !important;
161
+ }
162
+ /** COMBOBOX */
163
+
164
+ /** BASE INPUT */
165
+ .base-input {
166
+ border: 1px solid var(--guido-color-gray-300);
167
+ border-radius: 4px;
168
+ background-color: #f9f9f9;
169
+ align-items: center;
170
+ height: 40px;
171
+ max-height: 40px;
172
+ box-sizing: content-box;
173
+ outline: none;
174
+ resize: vertical;
175
+ padding: 8px;
176
+ transition: none !important;
177
+ color: var(--guido-color-gray-800);
178
+ box-shadow: none !important;
179
+ box-sizing: border-box !important;
180
+ }
181
+
182
+ .base-input:hover:not(:disabled) {
183
+ background-color: #f9f9f9;
184
+ border-color: #7a92f2;
185
+ }
186
+
187
+ .base-input:focus:not(:disabled) {
188
+ background-color: #f9f9f9;
189
+ border-color: #0a2ecc;
190
+ box-shadow: 0 0 0 3px #b5c1f1 !important;
191
+ }
192
+ /** BASE INPUT */
193
+
194
+ /** COUNTER */
195
+ ue-counter {
196
+ padding: 0 !important;
197
+ background-color: var(--guido-color-white) !important;
198
+ border: 1px solid var(--guido-color-gray-300);
199
+ }
200
+
201
+ ue-counter .button {
202
+ width: 40px;
203
+ height: 40px;
204
+ box-shadow: none;
205
+ }
206
+
207
+ ue-counter .button .icon-button {
208
+ color: var(--guido-color-primary-500);
209
+ }
210
+
211
+ ue-counter ue-button:first-child .button {
212
+ border-right: 1px solid var(--guido-color-gray-300);
213
+ }
214
+
215
+ ue-counter ue-button:last-child .button {
216
+ border-left: 1px solid var(--guido-color-gray-300);
217
+ }
218
+ /** COUNTER */
219
+
220
+ /** COLOR */
221
+ ue-color {
222
+ width: 80px;
223
+ }
224
+
225
+ ue-color .base-input {
226
+ width: 100%;
227
+ }
228
+ /** COLOR */
229
+ `;
230
+ export {
231
+ n as default
232
+ };
@@ -0,0 +1,5 @@
1
+ const t = `<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><meta charset="UTF-8"><meta content="width=device-width, initial-scale=1" name="viewport"><meta name="x-apple-disable-message-reformatting"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta content="telephone=no" name="format-detection"><title></title><!--[if (mso 16)]><style type="text/css">a{text-decoration:none;}</style><![endif]--><!--[if gte mso 9]><style>sup{font-size:100% !important;}</style><![endif]--><!--[if gte mso 9]><noscript><xml><o:OfficeDocumentSettings><o:AllowPNG></o:AllowPNG><o:PixelsPerInch>96</o:PixelsPerInch></o:OfficeDocumentSettings></xml></noscript><![endif]--><!--[if mso]><xml><w:WordDocument xmlns:w="urn:schemas-microsoft-com:office:word"><w:DontUseAdvancedTypographyReadingMail></w:DontUseAdvancedTypographyReadingMail></w:WordDocument></xml><![endif]--></head><body><div class="es-wrapper-color"> <!--[if gte mso 9]> <v:background xmlns:v="urn:schemas-microsoft-com:vml" fill="t"> <v:fill type="tile" color="#f6f6f6"></v:fill> </v:background> <![endif]--><table class="es-wrapper" width="100%" cellspacing="0" cellpadding="0"><tbody><tr><td class="esd-email-paddings" valign="top"><table class="es-content esd-header-popover" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td class="esd-stripe" align="center"><table class="es-content-body" width="600" cellspacing="0" cellpadding="0" bgcolor="#ffffff" align="center"><tbody><tr><td class="esd-structure es-p20" align="left" bgcolor="#91949F" style="background-color: #91949f;"><table width="100%" cellspacing="0" cellpadding="0"><tbody><tr><td class="esd-container-frame" width="560" valign="top" align="center"><table width="100%" cellspacing="0" cellpadding="0"><tbody><tr><td align="center" class="esd-block-image es-p15" style="font-size: 0px;"><a target="_blank"><img class="adapt-img" src="https://web-image.useinsider.com/email-template/logo.png" alt style="display: block;" height="30"></a></td></tr><tr><td class="esd-block-text" align="center"><h2 style="color: #ffffff; font-size: 30px;"><strong>Time for great email design</strong></h2></td></tr><tr><td class="esd-block-text es-m-txt-c es-p10t" align="center"><p style="color: #ffffff;">I'm a new text block ready for your message content.</p></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table class="es-content" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td class="esd-stripe" align="center"><table class="es-content-body" width="600" cellspacing="0" cellpadding="0" bgcolor="#ffffff" align="center"><tbody><tr><td class="esd-structure es-p30t es-p20b es-p20r es-p20l" align="left" bgcolor="#F9F9F9" style="background-color: #f9f9f9;"><table cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td width="560" class="esd-container-frame" align="center" valign="top"><table cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td align="center" class="esd-block-image es-p30t es-p20r" style="font-size: 0px;"><a target="_blank"><img class="adapt-img" src="https://web-image.useinsider.com/email-template/image-placeholder.png" alt style="display: block;" width="138"></a></td></tr><tr><td align="center" class="esd-block-text es-p10t es-p40b"><p style="color: #c5c6cc;">Image Placeholder</p></td></tr></tbody></table></td></tr></tbody></table></td></tr><tr><td class="esd-structure es-p20t es-p20r es-p20l" align="left"><table cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td width="560" class="esd-container-frame" align="center" valign="top"><table cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td align="center" class="esd-block-text"><p style="font-size: 24px; color: #2c3546;"><strong>This is a sample heading</strong><br></p></td></tr><tr><td align="center" class="esd-block-text"><p style="color: #2c3546;">I'm a new text block ready for your message content.</p></td></tr><tr><td align="center" class="esd-block-text"><p style="color: #959aa3; font-size: 10px;">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor<br> incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud<br>&nbsp;exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table class="es-content esd-footer-popover" cellspacing="0" cellpadding="0" align="center"><tbody><tr></tr><tr><td class="esd-stripe" esd-custom-block-id="8631" align="center"><table class="es-footer-body" style="background-color: #ffffff;" width="600" cellspacing="0" cellpadding="0" align="center" bgcolor="#fff"><tbody><tr><td class="esd-structure es-p20t es-p15b es-p20r es-p20l" align="left"> <!--[if mso]><table width="560" cellpadding="0" cellspacing="0"><tr><td width="270" valign="top"><![endif]--><table cellpadding="0" cellspacing="0" class="es-left" align="left"><tbody><tr><td width="270" class="es-m-p20b esd-container-frame" align="left"><table cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td align="right" class="esd-block-button"><span class="es-button-border" style="border-radius: 4px; border-color: #5d6980; background: #5d6980; border-width: 1px;"><a href class="es-button" target="_blank" style="color: #ffffff; background: #5d6980; border-color: #5d6980; border-radius: 4px; border-width: 10px 15px;"> Button </a></span></td></tr></tbody></table></td></tr></tbody></table> <!--[if mso]></td><td width="20"></td><td width="270" valign="top"><![endif]--><table cellpadding="0" cellspacing="0" class="es-right" align="right"><tbody><tr><td width="270" align="left" class="esd-container-frame"><table cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td align="left" class="esd-block-button"><span class="es-button-border" style="border-radius: 4px; border-color: #5d6980; background: #ffffff; border-width: 1px;"><a href class="es-button" target="_blank" style="background: #ffffff; border-color: #ffffff; color: #5d6980; border-radius: 4px; border-width: 10px 15px;"> Button </a></span></td></tr></tbody></table></td></tr></tbody></table> <!--[if mso]></td></tr></table><![endif]--></td></tr><tr><td class="esd-structure es-p30t es-p35b es-p40r es-p40l" align="left" bgcolor="#F9F9F9" style="background-color: #f9f9f9;"> <!--[if mso]><table width="520" cellpadding="0" cellspacing="0"><tr><td width="257" valign="top"><![endif]--><table cellpadding="0" cellspacing="0" class="es-left" align="left"><tbody><tr><td width="257" class="es-m-p20b esd-container-frame" align="left"><table cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td align="center" class="esd-block-image" style="font-size: 0px;"><a target="_blank"><img class="adapt-img" src="https://web-image.useinsider.com/email-template/image-placeholder.png" alt style="display: block;" width="96"></a></td></tr><tr><td align="center" class="esd-block-text"><p style="color: #c5c6cc;">Image Placeholder</p></td></tr></tbody></table></td></tr></tbody></table> <!--[if mso]></td><td width="0"></td><td width="263" valign="top"><![endif]--><table cellpadding="0" cellspacing="0" class="es-right" align="right"><tbody><tr><td width="263" align="left" class="esd-container-frame"><table cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td align="center" class="esd-block-image" style="font-size: 0px;"><a target="_blank"><img class="adapt-img" src="https://web-image.useinsider.com/email-template/image-placeholder.png" alt style="display: block;" width="96"></a></td></tr><tr><td align="center" class="esd-block-text"><p style="color: #c5c6cc;">Image Placeholder</p></td></tr></tbody></table></td></tr></tbody></table> <!--[if mso]></td></tr></table><![endif]--></td></tr><tr><td class="esd-structure es-p20t es-p15b es-p20r es-p20l" align="left"><table cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td width="560" class="esd-container-frame" align="center" valign="top"><table cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td align="left" class="esd-block-text"><p>Text</p></td></tr></tbody></table></td></tr></tbody></table></td></tr><tr><td class="esd-structure es-p20t es-p20b es-p20r es-p20l" align="left" bgcolor="#2C3546" style="background-color: #2c3546;"><table width="100%" cellspacing="0" cellpadding="0"><tbody><tr><td class="esd-container-frame" width="560" valign="top" align="center"><table width="100%" cellspacing="0" cellpadding="0"><tbody><tr><td align="center" class="esd-block-social" style="font-size:0"><table cellpadding="0" cellspacing="0" class="es-table-not-adapt es-social"><tbody><tr><td align="center" valign="top" class="es-p20r" esd-tmp-icon-type="facebook"><a target="_blank" href="https://facebook.com"><img title="Facebook" src="https://web-image.useinsider.com/email-template/facebook.png" alt="Facebook" width="24" height="24"></a></td><td align="center" valign="top" class="es-p20r" esd-tmp-icon-type="twitter"><a target="_blank" href="https://instagram.com"><img title="Instagram" src="https://web-image.useinsider.com/email-template/instagram.png" alt="Instagram" width="24" height="24"></a></td><td align="center" valign="top" esd-tmp-icon-type="instagram"><a target="_blank" href="https://twitter.com"><img title="Twitter" src="https://web-image.useinsider.com/email-template/twitter.png" alt="Twitter" width="24" height="24"></a></td></tr></tbody></table></td></tr><tr><td align="center" class="esd-block-text es-p20"><p style="font-size: 10px;">ADDRESS LINE, PROVINCE, CITY, COUNTRY - 999999</p></td></tr><tr><td align="center" class="esd-block-text"><p style="color: #959aa2; font-size: 10px;">You can <u>unsubscribe</u> from our emails, if you need to.</p></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></div></body></html>
2
+ `;
3
+ export {
4
+ t as default
5
+ };
@@ -0,0 +1,119 @@
1
+ const t = `/* CONFIG STYLES Please do not delete and edit CSS styles below */ /* IMPORTANT THIS STYLES MUST BE ON FINAL EMAIL */ #outlook a { padding: 0; }.ExternalClass { width: 100%; }.ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div { line-height: 100%; }.es-button { mso-style-priority: 100 !important; text-decoration: none !important; }a[x-apple-data-detectors] { color: inherit !important; text-decoration: none !important; font-size: inherit !important; font-family: inherit !important; font-weight: inherit !important; line-height: inherit !important; }.es-desk-hidden { display: none; float: left; overflow: hidden; width: 0; max-height: 0; line-height: 0; mso-hide: all; }/* END OF IMPORTANT */ html, body { width: 100%; font-family: arial, 'helvetica neue', helvetica, sans-serif; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; }table { mso-table-lspace: 0pt; mso-table-rspace: 0pt; border-collapse: collapse; border-spacing: 0px; }table td, html, body, .es-wrapper { padding: 0; Margin: 0; }.es-content, .es-header, .es-footer { table-layout: fixed !important; width: 100%; }img { display: block; border: 0; outline: none; text-decoration: none; -ms-interpolation-mode: bicubic; }table tr { border-collapse: collapse; }p, hr { Margin: 0; }h1, h2, h3, h4, h5 { Margin: 0; line-height: 120%; mso-line-height-rule: exactly; font-family: arial, 'helvetica neue', helvetica, sans-serif; }p, ul li, ol li, a { -webkit-text-size-adjust: none; -ms-text-size-adjust: none; mso-line-height-rule: exactly; }.es-left { float: left; }.es-right { float: right; }.es-p5 { padding: 5px; }.es-p5t { padding-top: 5px; }.es-p5b { padding-bottom: 5px; }.es-p5l { padding-left: 5px; }.es-p5r { padding-right: 5px; }.es-p10 { padding: 10px; }.es-p10t { padding-top: 10px; }.es-p10b { padding-bottom: 10px; }.es-p10l { padding-left: 10px; }.es-p10r { padding-right: 10px; }.es-p15 { padding: 15px; }.es-p15t { padding-top: 15px; }.es-p15b { padding-bottom: 15px; }.es-p15l { padding-left: 15px; }.es-p15r { padding-right: 15px; }.es-p20 { padding: 20px; }.es-p20t { padding-top: 20px; }.es-p20b { padding-bottom: 20px; }.es-p20l { padding-left: 20px; }.es-p20r { padding-right: 20px; }.es-p25 { padding: 25px; }.es-p25t { padding-top: 25px; }.es-p25b { padding-bottom: 25px; }.es-p25l { padding-left: 25px; }.es-p25r { padding-right: 25px; }.es-p30 { padding: 30px; }.es-p30t { padding-top: 30px; }.es-p30b { padding-bottom: 30px; }.es-p30l { padding-left: 30px; }.es-p30r { padding-right: 30px; }.es-p35 { padding: 35px; }.es-p35t { padding-top: 35px; }.es-p35b { padding-bottom: 35px; }.es-p35l { padding-left: 35px; }.es-p35r { padding-right: 35px; }.es-p40 { padding: 40px; }.es-p40t { padding-top: 40px; }.es-p40b { padding-bottom: 40px; }.es-p40l { padding-left: 40px; }.es-p40r { padding-right: 40px; }.es-menu td { border: 0; }.es-menu td a img { display: inline !important; }/* END CONFIG STYLES */ a { text-decoration: underline; }p, ul li, ol li { font-family: arial, 'helvetica neue', helvetica, sans-serif; line-height: 150%; }ul li, ol li { Margin-bottom: 15px; }.es-menu td a { text-decoration: none; display: block; }.es-wrapper { width: 100%; height: 100%; background-image: ; background-repeat: repeat; background-position: center top; }.es-wrapper-color { background-color: #f6f6f6; }.es-header { background-color: transparent; background-image: ; background-repeat: repeat; background-position: center top; }.es-header-body { background-color: transparent; }.es-header-body p, .es-header-body ul li, .es-header-body ol li { color: #333333; font-size: 14px; }.es-header-body a { color: #333333; font-size: 14px; }.es-content-body { background-color: #ffffff; }.es-content-body p, .es-content-body ul li, .es-content-body ol li { color: #333333; font-size: 14px; }.es-content-body a { color: #333333; font-size: 14px; }.es-footer { background-color: transparent; background-image: ; background-repeat: repeat; background-position: center top; }.es-footer-body { background-color: #333333; }.es-footer-body p, .es-footer-body ul li, .es-footer-body ol li { color: #ffffff; font-size: 14px; }.es-footer-body a { color: #ffffff; font-size: 14px; }.es-infoblock, .es-infoblock p, .es-infoblock ul li, .es-infoblock ol li { line-height: 120%; font-size: 12px; color: #cccccc; }.es-infoblock a { font-size: 12px; color: #cccccc; }h1 { font-size: 30px; font-style: normal; font-weight: normal; color: #333333; }h2 { font-size: 24px; font-style: normal; font-weight: normal; color: #333333; }h3 { font-size: 20px; font-style: normal; font-weight: normal; color: #333333; }.es-header-body h1 a, .es-content-body h1 a, .es-footer-body h1 a { font-size: 30px; }.es-header-body h2 a, .es-content-body h2 a, .es-footer-body h2 a { font-size: 24px; }.es-header-body h3 a, .es-content-body h3 a, .es-footer-body h3 a { font-size: 20px; }a.es-button, button.es-button { border-style: solid; border-color: #f0f0f0; border-width: 5px 30px 5px 30px; display: inline-block; background: #f0f0f0; border-radius: 0px; font-size: 16px; font-family: arial, 'helvetica neue', helvetica, sans-serif; font-weight: normal; font-style: normal; line-height: 120%; color: #333333; text-decoration: none; width: auto; text-align: center; }.es-button-border { border-style: solid solid solid solid; border-color: #808080 #808080 #808080 #808080; background: #f0f0f0; border-width: 2px 2px 2px 2px; display: inline-block; border-radius: 0px; width: auto; }.ins-trim-text {
2
+ overflow: hidden;
3
+ text-overflow: ellipsis;
4
+ white-space: nowrap;
5
+ padding-top: 10px;
6
+ padding-bottom: 10px;
7
+ }/* RESPONSIVE STYLES Please do not delete and edit CSS styles below. If you don't need responsive layout, please delete this section. */ @media only screen and (max-width: 600px) {p, ul li, ol li, a { line-height: 150% !important; }h1 { font-size: 30px !important; text-align: center; line-height: 120% !important; }h2 { font-size: 26px !important; text-align: center; line-height: 120% !important; }h3 { font-size: 20px !important; text-align: center; line-height: 120% !important; }.es-header-body h1 a, .es-content-body h1 a, .es-footer-body h1 a { font-size: 30px !important; }.es-header-body h2 a, .es-content-body h2 a, .es-footer-body h2 a { font-size: 26px !important; }.es-header-body h3 a, .es-content-body h3 a, .es-footer-body h3 a { font-size: 20px !important; }.es-menu td a { font-size: 13px !important; }.es-header-body p, .es-header-body ul li, .es-header-body ol li, .es-header-body a { font-size: 16px !important; }.es-content-body p, .es-content-body ul li, .es-content-body ol li, .es-content-body a { font-size: 16px !important; }.es-footer-body p, .es-footer-body ul li, .es-footer-body ol li, .es-footer-body a { font-size: 16px !important; }.es-infoblock p, .es-infoblock ul li, .es-infoblock ol li, .es-infoblock a { font-size: 12px !important; }*[class="gmail-fix"] { display: none !important; }.es-m-txt-c, .es-m-txt-c h1, .es-m-txt-c h2, .es-m-txt-c h3 { text-align: center !important; }.es-m-txt-r, .es-m-txt-r h1, .es-m-txt-r h2, .es-m-txt-r h3 { text-align: right !important; }.es-m-txt-l, .es-m-txt-l h1, .es-m-txt-l h2, .es-m-txt-l h3 { text-align: left !important; }.es-m-txt-r img, .es-m-txt-c img, .es-m-txt-l img { display: inline !important; }.es-button-border { display: block !important; }a.es-button, button.es-button { font-size: 16px !important; display: block !important; border-width: 10px 0px 10px 0px !important; }.es-btn-fw { border-width: 10px 0px !important; text-align: center !important; }.es-adaptive table, .es-btn-fw, .es-btn-fw-brdr, .es-left, .es-right { width: 100% !important; }.ext-product-button,
8
+ .ext-product-price p,
9
+ .ext-product-original-price p,
10
+ .ext-product-omnibus-price p,
11
+ .ext-product-omnibus-discount p {
12
+ width: 100% !important;
13
+ }
14
+
15
+ .ext-product-button a {
16
+ max-width: 100% !important;
17
+ }
18
+
19
+ .ext-product-name.ins-vertical p {
20
+ height: 90px !important;
21
+ overflow: hidden !important;
22
+ word-break: break-all !important;
23
+ font-size: 12px !important;
24
+ line-height: 150% !important;
25
+ }
26
+
27
+ .ext-product-name.ins-vertical {
28
+ height: 100px !important;
29
+ }
30
+
31
+ .ext-product-omnibus-price.ins-vertical p {
32
+ height: 30px !important;
33
+ overflow: hidden !important;
34
+ word-break: break-all !important;
35
+ font-size: 10px !important;
36
+ line-height: 150% !important;
37
+ }
38
+
39
+ .ext-product-omnibus-price.ins-vertical {
40
+ height: 50px !important;
41
+ }
42
+
43
+ .ext-product-omnibus-discount.ins-vertical p {
44
+ height: 30px !important;
45
+ overflow: hidden !important;
46
+ word-break: break-all !important;
47
+ font-size: 10px !important;
48
+ line-height: 150% !important;
49
+ }
50
+
51
+ .ext-product-omnibus-discount.ins-vertical {
52
+ height: 50px !important;
53
+ }
54
+
55
+ .ext-product-name p {
56
+ height: unset !important;
57
+ width: 100% !important;
58
+ overflow: hidden !important;
59
+ font-size: 16px !important;
60
+ line-height: 150% !important;
61
+ }
62
+
63
+ .ext-product-name {
64
+ height: unset !important;
65
+ }
66
+
67
+ .ext-product-price.ins-vertical p {
68
+ overflow: hidden !important;
69
+ word-break: break-all !important;
70
+ height: 36px !important;
71
+ font-size: 12px !important;
72
+ line-height: 150% !important;
73
+ }
74
+
75
+ .ext-product-price.ins-vertical {
76
+ height: 56px !important;
77
+ }
78
+
79
+ .ext-product-original-price.ins-vertical p {
80
+ overflow: hidden !important;
81
+ word-break: break-all !important;
82
+ height: 36px !important;
83
+ font-size: 12px !important;
84
+ line-height: 150% !important;
85
+ }
86
+
87
+ .ext-product-original-price.ins-vertical {
88
+ height: 56px !important;
89
+ }
90
+
91
+ .ext-ins-attr.ins-vertical p {
92
+ overflow: hidden !important;
93
+ word-break: break-all !important;
94
+ height: 54px !important;
95
+ font-size: 12px !important;
96
+ line-height: 150% !important;
97
+ width: 100% !important;
98
+ }
99
+
100
+ .ext-ins-attr.ins-vertical {
101
+ height: 74px !important;
102
+ }
103
+
104
+ .ext-product-button a.ins-vertical {
105
+ word-break: break-all !important;
106
+ font-size: 12px !important;
107
+ }
108
+
109
+ .ext-product-image.ins-vertical {
110
+ height: unset !important;
111
+ }
112
+
113
+ td.esdev-mso-td.ins-vertical {
114
+ vertical-align: bottom !important;
115
+ }.es-content table, .es-header table, .es-footer table, .es-content, .es-footer, .es-header { width: 100% !important; max-width: 600px !important; }.es-adapt-td { display: block !important; width: 100% !important; }.adapt-img { width: 100% !important; height: auto !important; }.es-m-p0 { padding: 0px !important; }.es-m-p0r { padding-right: 0px !important; }.es-m-p0l { padding-left: 0px !important; }.es-m-p0t { padding-top: 0px !important; }.es-m-p0b { padding-bottom: 0 !important; }.es-m-p20b { padding-bottom: 20px !important; }.es-mobile-hidden, .es-hidden { display: none !important; }.es-desk-hidden { display: table-row !important; width: auto !important; overflow: visible !important; float: none !important; max-height: inherit !important; line-height: inherit !important; }.es-desk-menu-hidden { display: table-cell !important; }table.es-table-not-adapt, .esd-block-html table { width: auto !important; }table.es-social { display: inline-block !important; }table.es-social td { display: inline-block !important; } }/* END RESPONSIVE STYLES */.ext-product-name p { -webkit-line-clamp:3 !important;-webkit-box-orient:vertical !important;overflow:hidden !important; }.ext-product-price p { height:26px !important; }
116
+ `;
117
+ export {
118
+ t as default
119
+ };
@@ -0,0 +1,5 @@
1
+ export declare const useEditorStore: import("pinia").StoreDefinition<"editor", {
2
+ isCodeEditorOpen: boolean;
3
+ isVersionHistoryOpen: boolean;
4
+ editorVisualMode: string;
5
+ }, {}, {}>;
@@ -0,0 +1,11 @@
1
+ import { defineStore as e } from "pinia";
2
+ const t = e("editor", {
3
+ state: () => ({
4
+ isCodeEditorOpen: !1,
5
+ isVersionHistoryOpen: !1,
6
+ editorVisualMode: "desktop"
7
+ })
8
+ });
9
+ export {
10
+ t as useEditorStore
11
+ };
@@ -0,0 +1,80 @@
1
+ import type { VersionHistoryState } from '@@/Types/version-history-api';
2
+ export interface StoreState extends VersionHistoryState {
3
+ editorVisualMode: 'desktop' | 'mobile';
4
+ }
5
+ export declare const useVersionHistoryStore: import("pinia").StoreDefinition<"versionHistory", StoreState, {
6
+ hasPreviousPatch: (state: {
7
+ editorVisualMode: "desktop" | "mobile";
8
+ previousPatch: {
9
+ id: string;
10
+ date: number;
11
+ description: string;
12
+ authorId: string;
13
+ authorName: string;
14
+ };
15
+ currentPatch: {
16
+ id: string;
17
+ date: number;
18
+ description: string;
19
+ authorId: string;
20
+ authorName: string;
21
+ };
22
+ nextPatch: {
23
+ id: string;
24
+ date: number;
25
+ description: string;
26
+ authorId: string;
27
+ authorName: string;
28
+ };
29
+ } & import("pinia").PiniaCustomStateProperties<StoreState>) => boolean;
30
+ hasCurrentPatch: (state: {
31
+ editorVisualMode: "desktop" | "mobile";
32
+ previousPatch: {
33
+ id: string;
34
+ date: number;
35
+ description: string;
36
+ authorId: string;
37
+ authorName: string;
38
+ };
39
+ currentPatch: {
40
+ id: string;
41
+ date: number;
42
+ description: string;
43
+ authorId: string;
44
+ authorName: string;
45
+ };
46
+ nextPatch: {
47
+ id: string;
48
+ date: number;
49
+ description: string;
50
+ authorId: string;
51
+ authorName: string;
52
+ };
53
+ } & import("pinia").PiniaCustomStateProperties<StoreState>) => boolean;
54
+ hasNextPatch: (state: {
55
+ editorVisualMode: "desktop" | "mobile";
56
+ previousPatch: {
57
+ id: string;
58
+ date: number;
59
+ description: string;
60
+ authorId: string;
61
+ authorName: string;
62
+ };
63
+ currentPatch: {
64
+ id: string;
65
+ date: number;
66
+ description: string;
67
+ authorId: string;
68
+ authorName: string;
69
+ };
70
+ nextPatch: {
71
+ id: string;
72
+ date: number;
73
+ description: string;
74
+ authorId: string;
75
+ authorName: string;
76
+ };
77
+ } & import("pinia").PiniaCustomStateProperties<StoreState>) => boolean;
78
+ }, {
79
+ updateState(state: VersionHistoryState): void;
80
+ }>;
@@ -0,0 +1,28 @@
1
+ import { defineStore as a } from "pinia";
2
+ const e = () => ({
3
+ id: "",
4
+ date: 0,
5
+ description: "",
6
+ authorId: "",
7
+ authorName: ""
8
+ }), r = () => ({
9
+ previousPatch: e(),
10
+ currentPatch: e(),
11
+ nextPatch: e(),
12
+ editorVisualMode: "desktop"
13
+ }), o = a("versionHistory", {
14
+ state: () => r(),
15
+ getters: {
16
+ hasPreviousPatch: (t) => !!t.previousPatch.id,
17
+ hasCurrentPatch: (t) => !!t.currentPatch.id,
18
+ hasNextPatch: (t) => !!t.nextPatch.id
19
+ },
20
+ actions: {
21
+ updateState(t) {
22
+ t.previousPatch && (this.previousPatch = t.previousPatch), t.currentPatch && (this.currentPatch = t.currentPatch), t.nextPatch && (this.nextPatch = t.nextPatch);
23
+ }
24
+ }
25
+ });
26
+ export {
27
+ o as useVersionHistoryStore
28
+ };
@@ -0,0 +1 @@
1
+ export declare const formatPatchDate: (timestamp: number) => string;
@@ -0,0 +1,16 @@
1
+ const o = (t) => {
2
+ if (!t)
3
+ return "";
4
+ const e = new Date(t);
5
+ return new Intl.DateTimeFormat("en-US", {
6
+ month: "short",
7
+ day: "numeric",
8
+ hour: "2-digit",
9
+ minute: "2-digit",
10
+ second: "2-digit",
11
+ hour12: !1
12
+ }).format(e);
13
+ };
14
+ export {
15
+ o as formatPatchDate
16
+ };
package/package.json ADDED
@@ -0,0 +1,80 @@
1
+ {
2
+ "name": "@useinsider/guido",
3
+ "version": "1.0.0-beta.02a8faf",
4
+ "description": "Guido is a Vue + TypeScript wrapper for Email Plugin. Easily embed the email editor in your Vue applications.",
5
+ "main": "./dist/guido.umd.cjs",
6
+ "module": "./dist/library.js",
7
+ "type": "module",
8
+ "files": [
9
+ "dist"
10
+ ],
11
+ "exports": {
12
+ ".": {
13
+ "import": "./dist/library.js",
14
+ "types": "./dist/components/Guido.vue.d.ts",
15
+ "require": "./dist/components/Guido.vue.js"
16
+ },
17
+ "./style": "./dist/guido.css"
18
+ },
19
+ "scripts": {
20
+ "prestart": "node .vscode/prepareI18n.js",
21
+ "start": "vite",
22
+ "build": "vite build && vue-tsc --declaration --emitDeclarationOnly --project tsconfig.app.json",
23
+ "preview": "vite preview",
24
+ "test": "echo \"Error: no test specified\" && exit 1",
25
+ "lint": "NODE_OPTIONS=--max-old-space-size=2048 eslint ./ && bun run type-check",
26
+ "lint:fix": "NODE_OPTIONS=--max-old-space-size=2048 eslint --fix ./",
27
+ "type-check": "vue-tsc --noEmit --project tsconfig.config.json && vue-tsc --noEmit --project tsconfig.app.json"
28
+ },
29
+ "keywords": [],
30
+ "author": "",
31
+ "license": "ISC",
32
+ "dependencies": {
33
+ "@useinsider/design-system-vue": "0.14.8",
34
+ "@vuelidate/core": "2.0.3",
35
+ "@vuelidate/validators": "2.0.4",
36
+ "lodash-es": "4.17.21",
37
+ "pinia": "2.3.1",
38
+ "vite": "6.3.5",
39
+ "vue": "2.7.14"
40
+ },
41
+ "devDependencies": {
42
+ "@cspell/eslint-plugin": "8.17.5",
43
+ "@eslint/eslintrc": "3.3.0",
44
+ "@eslint/js": "8.57.1",
45
+ "@stylistic/eslint-plugin": "3.1.0",
46
+ "@stylistic/eslint-plugin-migrate": "3.1.0",
47
+ "@types/eslint": "8.56.12",
48
+ "@types/eslint__eslintrc": "2.1.2",
49
+ "@types/eslint__js": "8.42.3",
50
+ "@types/lodash-es": "4.17.12",
51
+ "@types/node": "20.10.4",
52
+ "@typescript-eslint/eslint-plugin": "7.18.0",
53
+ "@typescript-eslint/parser": "7.18.0",
54
+ "@useinsider/eslint-config": "1.5.3",
55
+ "@vitejs/plugin-vue2": "2.3.1",
56
+ "@vue/eslint-config-typescript": "12.0.0",
57
+ "eslint": "8.57.1",
58
+ "eslint-config-airbnb-base": "15.0.0",
59
+ "eslint-config-airbnb-typescript": "18.0.0",
60
+ "eslint-import-resolver-typescript": "3.8.3",
61
+ "eslint-plugin-import": "2.31.0",
62
+ "eslint-plugin-jsdoc": "50.5.0",
63
+ "eslint-plugin-vue": "10.1.0",
64
+ "eslint-plugin-vue-scoped-css": "2.6.1",
65
+ "globals": "16.0.0",
66
+ "msw": "2.10.3",
67
+ "sass": "1.69.7",
68
+ "typescript": "5.5.4",
69
+ "typescript-eslint": "8.26.0",
70
+ "vite-plugin-dts": "4.5.4",
71
+ "vue-tsc": "2.2.10"
72
+ },
73
+ "overrides": {
74
+ "micromatch": "4.0.8",
75
+ "path-to-regexp": "6.3.0"
76
+ },
77
+ "msw": {
78
+ "workerDirectory": "public"
79
+ }
80
+ }