@markopolo_ai_inc/markopolo-email-editor 1.0.3

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 (91) hide show
  1. package/README.md +63 -0
  2. package/build/asset-manifest.json +12 -0
  3. package/build/favicon.ico +0 -0
  4. package/build/index.html +1 -0
  5. package/build/logo192.png +0 -0
  6. package/build/logo512.png +0 -0
  7. package/build/manifest.json +25 -0
  8. package/build/robots.txt +3 -0
  9. package/build/static/css/main.588cb535.css +9 -0
  10. package/build/static/js/206.a4343501.chunk.js +1 -0
  11. package/build/static/js/main.053d366a.js +2 -0
  12. package/build/static/js/main.053d366a.js.LICENSE.txt +56 -0
  13. package/package.json +64 -0
  14. package/public/favicon.ico +0 -0
  15. package/public/index.html +50 -0
  16. package/public/logo192.png +0 -0
  17. package/public/logo512.png +0 -0
  18. package/public/manifest.json +25 -0
  19. package/public/robots.txt +3 -0
  20. package/src/App.js +15 -0
  21. package/src/components/EmailEditor/assets/App.css +339 -0
  22. package/src/components/EmailEditor/assets/Columns.css +309 -0
  23. package/src/components/EmailEditor/assets/Header.css +174 -0
  24. package/src/components/EmailEditor/assets/ImageBlock.css +12 -0
  25. package/src/components/EmailEditor/assets/Preview.css +30 -0
  26. package/src/components/EmailEditor/assets/RichText.css +199 -0
  27. package/src/components/EmailEditor/assets/RightSettings.css +520 -0
  28. package/src/components/EmailEditor/assets/Sidebar.css +195 -0
  29. package/src/components/EmailEditor/components/BlockItems/ButtonBlock.js +25 -0
  30. package/src/components/EmailEditor/components/BlockItems/DividerBlock.js +19 -0
  31. package/src/components/EmailEditor/components/BlockItems/HeadingBlock.js +16 -0
  32. package/src/components/EmailEditor/components/BlockItems/ImageBlock.js +28 -0
  33. package/src/components/EmailEditor/components/BlockItems/MenuBlock.js +52 -0
  34. package/src/components/EmailEditor/components/BlockItems/SocialLinkBlocks.js +26 -0
  35. package/src/components/EmailEditor/components/BlockItems/SpacerBlock.js +23 -0
  36. package/src/components/EmailEditor/components/BlockItems/TextBlock.js +16 -0
  37. package/src/components/EmailEditor/components/BlockItems/index.js +25 -0
  38. package/src/components/EmailEditor/components/ColorPicker/index.js +26 -0
  39. package/src/components/EmailEditor/components/Column/index.js +253 -0
  40. package/src/components/EmailEditor/components/Header/index.js +243 -0
  41. package/src/components/EmailEditor/components/LeftSideBar/index.js +253 -0
  42. package/src/components/EmailEditor/components/Main/index.js +281 -0
  43. package/src/components/EmailEditor/components/Preview/index.js +97 -0
  44. package/src/components/EmailEditor/components/RichText/Bold.js +37 -0
  45. package/src/components/EmailEditor/components/RichText/FontColor.js +39 -0
  46. package/src/components/EmailEditor/components/RichText/InsertOrderedList.js +36 -0
  47. package/src/components/EmailEditor/components/RichText/InsertUnorderedList.js +36 -0
  48. package/src/components/EmailEditor/components/RichText/Italic.js +36 -0
  49. package/src/components/EmailEditor/components/RichText/Link.js +99 -0
  50. package/src/components/EmailEditor/components/RichText/RichTextLayout.js +53 -0
  51. package/src/components/EmailEditor/components/RichText/Strikethrough.js +36 -0
  52. package/src/components/EmailEditor/components/RichText/TextAlign.js +58 -0
  53. package/src/components/EmailEditor/components/RichText/Underline.js +36 -0
  54. package/src/components/EmailEditor/components/RichText/index.js +210 -0
  55. package/src/components/EmailEditor/components/RightSetting/index.js +126 -0
  56. package/src/components/EmailEditor/components/StyleSettings/ButtonStyleSettings.js +141 -0
  57. package/src/components/EmailEditor/components/StyleSettings/ColumnStyleSettings.js +241 -0
  58. package/src/components/EmailEditor/components/StyleSettings/DividerStyleSettings.js +111 -0
  59. package/src/components/EmailEditor/components/StyleSettings/HeadingStyleSettings.js +162 -0
  60. package/src/components/EmailEditor/components/StyleSettings/ImageStyleSettings.js +217 -0
  61. package/src/components/EmailEditor/components/StyleSettings/MenuStyleSettings.js +177 -0
  62. package/src/components/EmailEditor/components/StyleSettings/PaddingSettings.js +30 -0
  63. package/src/components/EmailEditor/components/StyleSettings/SocialLinkSettings.js +250 -0
  64. package/src/components/EmailEditor/components/StyleSettings/SpacerStyleSettings.js +38 -0
  65. package/src/components/EmailEditor/components/StyleSettings/TextStyleSettings.js +108 -0
  66. package/src/components/EmailEditor/components/StyleSettings/index.js +32 -0
  67. package/src/components/EmailEditor/configs/getBlockConfigsList.js +263 -0
  68. package/src/components/EmailEditor/configs/getColumnConfigFunc.js +59 -0
  69. package/src/components/EmailEditor/configs/getColumnsSettings.js +246 -0
  70. package/src/components/EmailEditor/configs/useDataSource.js +19 -0
  71. package/src/components/EmailEditor/index.js +93 -0
  72. package/src/components/EmailEditor/reducers/index.js +173 -0
  73. package/src/components/EmailEditor/translation/en.js +166 -0
  74. package/src/components/EmailEditor/translation/index.js +39 -0
  75. package/src/components/EmailEditor/translation/zh.js +166 -0
  76. package/src/components/EmailEditor/utils/classNames.js +5 -0
  77. package/src/components/EmailEditor/utils/dataToHTML.js +323 -0
  78. package/src/components/EmailEditor/utils/exportValidation.js +296 -0
  79. package/src/components/EmailEditor/utils/helpers.js +48 -0
  80. package/src/components/EmailEditor/utils/pexels.js +20 -0
  81. package/src/components/EmailEditor/utils/useSection.js +24 -0
  82. package/src/components/EmailEditor/utils/useStyleLayout.js +82 -0
  83. package/src/index.css +99 -0
  84. package/src/index.js +15 -0
  85. package/src/logo.svg +1 -0
  86. package/src/pages/AppPage/index.js +10 -0
  87. package/src/pages/Dashboard/Header.js +192 -0
  88. package/src/pages/Dashboard/defaultBlockList.json +1758 -0
  89. package/src/pages/Dashboard/index.js +48 -0
  90. package/src/reportWebVitals.js +13 -0
  91. package/src/setupTests.js +5 -0
@@ -0,0 +1,520 @@
1
+ .right-settings {
2
+ width: 300px;
3
+ min-width: 300px;
4
+ height: 100%;
5
+ overflow: auto;
6
+ padding: 36px 24px;
7
+ border-left: var(--ee-border-width) solid var(--border-color);
8
+ background-color: var(--ee-bg);
9
+ }
10
+
11
+ .right-setting-block-title {
12
+ padding-left: 6px;
13
+ font-size: 16px;
14
+ line-height: 16px;
15
+ color: var(--right-settings-font-color);
16
+ font-weight: 600;
17
+ border-left: 3px solid var(--ee-primary);
18
+ }
19
+
20
+ .subject-settings {
21
+ font-size: 15px;
22
+ height: 21px;
23
+ font-weight: 600;
24
+ margin-bottom: 30;
25
+ }
26
+
27
+ .card-item {
28
+ display: flex;
29
+ align-items: center;
30
+ justify-content: space-between;
31
+ margin-bottom: 12px;
32
+ }
33
+
34
+ .card-item-title {
35
+ color: var(--right-settings-title-font-color);
36
+ font-weight: 600;
37
+ }
38
+
39
+ .pre_header {
40
+ color: var(--right-settings-title-font-color);
41
+ font-weight: 600;
42
+ }
43
+
44
+
45
+ .pre_header-desc {
46
+ font-size: 10.5px;
47
+ line-height: 15px;
48
+ margin-top: 6px;
49
+ color: var(--right-settings-title-font-color);
50
+ }
51
+
52
+ .right-setting-block-item-title {
53
+ margin: 24px -24px;
54
+ padding: 12px 24px;
55
+ font-size: 13.5px;
56
+ line-height: 21px;
57
+ color: var(--right-settings-block-title-font-color);
58
+ border-top: var(--ee-border-width) solid var(--border-color);
59
+ border-bottom: var(--ee-border-width) solid var(--border-color);
60
+ background-color: var(--right-settings-block-title-background-color);
61
+ }
62
+
63
+ .link-tag {
64
+ text-align: center;
65
+ color: var(--blue-500);
66
+ border: var(--ee-border-width) solid var(--blue-500);
67
+ padding: 2px 6px;
68
+ border-radius: var(--ee-radius);
69
+ font-weight: 500;
70
+ }
71
+
72
+ .switch-active {
73
+ background-color: var(--blue-500);
74
+ }
75
+
76
+ .switch-disabled {
77
+ background-color: var(--gray-400);
78
+ }
79
+
80
+
81
+
82
+ .input-width {
83
+ width: 96px;
84
+ }
85
+
86
+ .align-style-item {
87
+ border-radius: calc(var(--ee-radius) - 2px);
88
+ width: 30px;
89
+ height: 30px;
90
+ border: var(--ee-border-width) solid;
91
+ text-align: center;
92
+ margin-left: 6px;
93
+ cursor: pointer;
94
+ transition-property: all;
95
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
96
+ transition-duration: 150ms;
97
+ font-weight: bold;
98
+ user-select: none;
99
+ display: flex;
100
+ justify-content: center;
101
+ align-items: center;
102
+ }
103
+
104
+ .align-style-item-active {
105
+ border-color: var(--align-style-item-active-color);
106
+ color: var(--align-style-item-active-color);
107
+ }
108
+
109
+ .align-style-item-un_active {
110
+ border-color: var(--align-style-item-un-active-color);
111
+ color: var(--align-style-item-un-active-color);
112
+ }
113
+
114
+ .align-style-item-un_active:hover {
115
+ border-color: var(--align-style-item-active-color);
116
+ color: var(--align-style-item-active-color);
117
+ }
118
+
119
+ .padding-settings {
120
+ margin-top: 12px;
121
+ margin-bottom: 12px;
122
+ display: grid;
123
+ grid-template-columns: repeat(2, minmax(0, 1fr));
124
+ gap: 24px;
125
+ }
126
+
127
+ .color-picker-button {
128
+ border-radius: var(--ee-radius);
129
+ width: 30px;
130
+ height: 30px;
131
+ border: var(--ee-border-width) solid var(--border-color);
132
+ }
133
+
134
+ .social-link-item {
135
+ margin-bottom: 12px;
136
+ position: relative;
137
+ border-width: var(--ee-border-width);
138
+ }
139
+
140
+ .social-link-item-drag_start::after {
141
+ content: "";
142
+ position: absolute;
143
+ top: 0;
144
+ left: 0;
145
+ right: 0;
146
+ bottom: 0;
147
+ z-index: 40;
148
+ }
149
+
150
+ .social-link-item-current {
151
+ opacity: 0.4;
152
+ border-style: dashed;
153
+ border-color: var(--ee-border);
154
+ }
155
+
156
+ .social-link-item-content {
157
+ padding: 12px;
158
+ border-radius: var(--ee-radius);
159
+ user-select: none;
160
+ border: var(--ee-border-width) solid transparent;
161
+ }
162
+
163
+ .social-link-item-content:hover {
164
+ border-color: var(--ee-primary);
165
+ box-shadow: 0 3px 12px 0 rgba(216, 254, 145, 0.2);
166
+ }
167
+
168
+ .social-link-item-img {
169
+ width: 27px;
170
+ height: 27px;
171
+ margin-right: 6px;
172
+ }
173
+
174
+ .social-link-item-icon {
175
+ transition-property: all;
176
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
177
+ transition-duration: 150ms;
178
+ padding: 6px;
179
+ border-radius: 100%;
180
+ width: 30px;
181
+ height: 30px;
182
+ display: flex;
183
+ align-items: center;
184
+ justify-content: center;
185
+ z-index: 40;
186
+ cursor: pointer;
187
+ }
188
+
189
+ .social-link-item-icon-slate:hover {
190
+ background-color: var(--slate-100);
191
+ }
192
+
193
+ .social-link-item-icon-red:hover {
194
+ background-color: var(--red-100);
195
+ }
196
+
197
+ .tag-style-size {
198
+ width: 30px;
199
+ height: 30px;
200
+ }
201
+
202
+ .social-link-item-icon-svg {
203
+ font-size: 13.5px;
204
+ line-height: 21px;
205
+
206
+ }
207
+
208
+ .social-link-item-icon-svg-deep {
209
+ color: var(--start-content-font-color);
210
+ }
211
+
212
+ .social-link-item-icon-svg-red {
213
+ color: var(--red-500);
214
+
215
+ }
216
+
217
+ .social-link-add {
218
+ display: flex;
219
+ flex-wrap: wrap;
220
+ gap: 12px;
221
+ }
222
+
223
+ /* Menu block: Add New Item button */
224
+ .menu-add-new-item {
225
+ display: flex;
226
+ align-items: center;
227
+ justify-content: center;
228
+ gap: 8px;
229
+ width: 100%;
230
+ padding: 12px 16px;
231
+ border: 1px dashed var(--ee-border, #d9d9d9);
232
+ border-radius: var(--ee-radius, 6px);
233
+ background: transparent;
234
+ color: var(--ee-primary, #2faade);
235
+ font-size: 14px;
236
+ cursor: pointer;
237
+ transition: border-color 0.2s, color 0.2s;
238
+ }
239
+ .menu-add-new-item:hover {
240
+ border-color: var(--ee-primary, #2faade);
241
+ color: var(--ee-primary, #2faade);
242
+ }
243
+ .menu-add-new-item-icon {
244
+ font-size: 18px;
245
+ line-height: 1;
246
+ }
247
+ .margin-bottom-8 {
248
+ margin-bottom: 8px;
249
+ }
250
+
251
+ .social-link-add-img {
252
+ width: 30px;
253
+ height: 30px;
254
+ cursor: pointer;
255
+ }
256
+
257
+ /* Image settings: upload trigger (UI only) */
258
+ .ee-image-upload-input-hidden {
259
+ position: absolute;
260
+ width: 0;
261
+ height: 0;
262
+ opacity: 0;
263
+ pointer-events: none;
264
+ }
265
+ .ee-image-upload-trigger {
266
+ display: flex;
267
+ align-items: center;
268
+ justify-content: center;
269
+ gap: 8px;
270
+ width: 100%;
271
+ min-height: 80px;
272
+ padding: 12px 16px;
273
+ margin-top: 6px;
274
+ background-color: var(--ee-muted);
275
+ border: var(--ee-border-width) dashed var(--ee-border);
276
+ border-radius: var(--ee-radius);
277
+ color: var(--ee-foreground);
278
+ font-size: 14px;
279
+ cursor: pointer;
280
+ transition: border-color 0.15s, background-color 0.15s;
281
+ }
282
+ .ee-image-upload-trigger:hover {
283
+ border-color: var(--ee-primary);
284
+ background-color: rgba(216, 254, 145, 0.08);
285
+ }
286
+ .ee-image-upload-icon {
287
+ font-size: 18px;
288
+ color: var(--ee-muted-foreground);
289
+ }
290
+ .ee-image-upload-trigger:hover .ee-image-upload-icon {
291
+ color: var(--ee-primary);
292
+ }
293
+
294
+ /* ----- Right panel dark theme: Ant Design overrides ----- */
295
+ .right-settings .ant-input,
296
+ .right-settings .ant-input-number-input,
297
+ .right-settings .ant-input-affix-wrapper {
298
+ background-color: var(--ee-muted) !important;
299
+ border-color: var(--ee-border) !important;
300
+ color: var(--ee-foreground) !important;
301
+ border-radius: var(--ee-radius);
302
+ }
303
+ .right-settings .ant-input::placeholder,
304
+ .right-settings .ant-input-number-input::placeholder {
305
+ color: var(--ee-muted-foreground);
306
+ }
307
+ .right-settings .ant-input:hover,
308
+ .right-settings .ant-input-affix-wrapper:hover {
309
+ border-color: var(--ee-muted-foreground) !important;
310
+ }
311
+ .right-settings .ant-input:focus,
312
+ .right-settings .ant-input-focused,
313
+ .right-settings .ant-input-number-focused .ant-input-number-input,
314
+ .right-settings .ant-input-affix-wrapper-focused {
315
+ border-color: var(--ee-primary) !important;
316
+ box-shadow: 0 0 0 1px var(--ee-primary) !important;
317
+ outline: none;
318
+ }
319
+ .right-settings .ant-input,
320
+ .right-settings .ant-input-number-input {
321
+ caret-color: var(--ee-primary);
322
+ }
323
+ .right-settings .ant-input-affix-wrapper:focus,
324
+ .right-settings .ant-input-affix-wrapper-focused {
325
+ border-color: var(--ee-primary) !important;
326
+ box-shadow: 0 0 0 1px var(--ee-primary) !important;
327
+ }
328
+
329
+ /* Input group (Link URL: addonBefore "https://" + input) – prefix/addon border radius */
330
+ .right-settings .ant-input-group-addon {
331
+ background-color: var(--ee-muted) !important;
332
+ border-color: var(--ee-border) !important;
333
+ color: var(--ee-foreground) !important;
334
+ }
335
+ .right-settings .ant-input-group-addon:first-child {
336
+ border-radius: var(--ee-radius) 0 0 var(--ee-radius);
337
+ }
338
+ .right-settings .ant-input-group-addon:last-child {
339
+ border-radius: 0 var(--ee-radius) var(--ee-radius) 0;
340
+ }
341
+ .right-settings .ant-input-group-addon * {
342
+ color: var(--ee-foreground) !important;
343
+ }
344
+ .right-settings .ant-input-group .ant-input {
345
+ border-left-color: var(--ee-border) !important;
346
+ }
347
+ .right-settings .ant-input-group .ant-input:first-child {
348
+ border-radius: var(--ee-radius) 0 0 var(--ee-radius);
349
+ }
350
+ .right-settings .ant-input-group .ant-input:last-child,
351
+ .right-settings .ant-input-group .ant-input-affix-wrapper:last-child {
352
+ border-radius: 0 var(--ee-radius) var(--ee-radius) 0;
353
+ }
354
+ .right-settings .ant-input-group .ant-input-affix-wrapper:last-child .ant-input {
355
+ border-radius: 0 var(--ee-radius) var(--ee-radius) 0;
356
+ }
357
+ .right-settings .ant-input-group .ant-input:focus {
358
+ border-left-color: var(--ee-primary) !important;
359
+ }
360
+
361
+ /* InputNumber addon (px / %) – antd uses .ant-input-number-group-addon (background #fafafa by default) */
362
+ .right-settings .ant-input-number-group-addon,
363
+ .right-settings .ant-input-number-group-wrapper .ant-input-number-group-addon,
364
+ .right-settings .ant-input-number-group-addon:first-child,
365
+ .right-settings .ant-input-number-group-addon:last-child {
366
+ background-color: var(--ee-muted) !important;
367
+ border-color: var(--ee-border) !important;
368
+ color: var(--ee-foreground) !important;
369
+ }
370
+ .right-settings .ant-input-number-group-addon:first-child {
371
+ border-radius: var(--ee-radius) 0 0 var(--ee-radius);
372
+ }
373
+ .right-settings .ant-input-number-group-addon:last-child {
374
+ border-radius: 0 var(--ee-radius) var(--ee-radius) 0;
375
+ }
376
+ .right-settings .ant-input-number-group-addon *,
377
+ .right-settings .ant-input-number-group-addon .ant-select .ant-select-selector {
378
+ color: var(--ee-foreground) !important;
379
+ background-color: transparent !important;
380
+ }
381
+ .right-settings .ant-input-number-group .ant-input-number {
382
+ border-right-color: var(--ee-border) !important;
383
+ }
384
+ .right-settings .ant-input-number-group .ant-input-number:first-child {
385
+ border-radius: var(--ee-radius) 0 0 var(--ee-radius);
386
+ }
387
+ .right-settings .ant-input-number-group .ant-input-number:last-child {
388
+ border-radius: 0 var(--ee-radius) var(--ee-radius) 0;
389
+ }
390
+ .right-settings .ant-input-number-group .ant-input-number-focused,
391
+ .right-settings .ant-input-number-group .ant-input-number:focus-within {
392
+ border-right-color: var(--ee-primary) !important;
393
+ }
394
+
395
+ /* InputNumber wrapper and handlers */
396
+ .right-settings .ant-input-number {
397
+ background-color: var(--ee-muted) !important;
398
+ border-color: var(--ee-border) !important;
399
+ border-radius: var(--ee-radius);
400
+ }
401
+ .right-settings .ant-input-number:hover {
402
+ border-color: var(--ee-muted-foreground) !important;
403
+ }
404
+ .right-settings .ant-input-number-focused {
405
+ border-color: var(--ee-primary) !important;
406
+ box-shadow: 0 0 0 1px var(--ee-primary) !important;
407
+ }
408
+ .right-settings .ant-input-number-handler-wrap {
409
+ background: var(--ee-card) !important;
410
+ border-left: var(--ee-border-width) solid var(--ee-border) !important;
411
+ }
412
+ .right-settings .ant-input-number-handler-up-inner,
413
+ .right-settings .ant-input-number-handler-down-inner {
414
+ color: var(--ee-foreground);
415
+ }
416
+ .right-settings .ant-input-number-handler-up:hover .ant-input-number-handler-up-inner,
417
+ .right-settings .ant-input-number-handler-down:hover .ant-input-number-handler-down-inner {
418
+ color: var(--ee-primary);
419
+ }
420
+
421
+ /* Select trigger */
422
+ .right-settings .ant-select .ant-select-selector {
423
+ background-color: var(--ee-muted) !important;
424
+ border-color: var(--ee-border) !important;
425
+ color: var(--ee-foreground) !important;
426
+ border-radius: var(--ee-radius);
427
+ }
428
+ .right-settings .ant-select:hover .ant-select-selector {
429
+ border-color: var(--ee-muted-foreground) !important;
430
+ }
431
+ .right-settings .ant-select-focused .ant-select-selector {
432
+ border-color: var(--ee-primary) !important;
433
+ box-shadow: 0 0 0 1px var(--ee-primary) !important;
434
+ }
435
+ .right-settings .ant-select-arrow {
436
+ color: var(--ee-muted-foreground);
437
+ }
438
+
439
+ /* Select dropdown (when getPopupContainer mounts it inside .right-settings) */
440
+ .right-settings .ant-select-dropdown {
441
+ background-color: var(--ee-card) !important;
442
+ border: var(--ee-border-width) solid var(--ee-border);
443
+ border-radius: var(--ee-radius);
444
+ box-shadow: var(--ee-shadow);
445
+ }
446
+ .right-settings .ant-select-dropdown .ant-select-item {
447
+ color: var(--ee-foreground);
448
+ }
449
+ .right-settings .ant-select-dropdown .ant-select-item-option-active,
450
+ .right-settings .ant-select-dropdown .ant-select-item-option-selected {
451
+ background-color: var(--option-hover-color) !important;
452
+ color: var(--ee-foreground);
453
+ }
454
+
455
+ /* Slider */
456
+ .right-settings .ant-slider-rail {
457
+ background-color: var(--ee-muted) !important;
458
+ }
459
+ .right-settings .ant-slider-track {
460
+ background-color: var(--ee-primary) !important;
461
+ }
462
+ .right-settings .ant-slider-handle {
463
+ border-color: var(--ee-primary) !important;
464
+ background-color: var(--ee-primary) !important;
465
+ }
466
+ .right-settings .ant-slider-handle:focus {
467
+ border-color: var(--ee-primary) !important;
468
+ box-shadow: 0 0 0 2px rgba(216, 254, 145, 0.2);
469
+ }
470
+
471
+ /* Switch */
472
+ .right-settings .ant-switch {
473
+ background-color: var(--ee-muted-foreground) !important;
474
+ }
475
+ .right-settings .ant-switch-checked {
476
+ background-color: var(--ee-primary) !important;
477
+ }
478
+ .right-settings .ant-switch-inner {
479
+ color: var(--ee-foreground);
480
+ }
481
+
482
+ /* Tabs (e.g. Column settings: Column 1, Column 2) – ensure unselected tab is visible on dark background */
483
+ .right-settings .ant-tabs-tab {
484
+ color: var(--ee-muted-foreground);
485
+ }
486
+ .right-settings .ant-tabs-tab:hover {
487
+ color: var(--ee-foreground);
488
+ }
489
+ .right-settings .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn {
490
+ color: var(--ee-primary) !important;
491
+ }
492
+ .right-settings .ant-tabs-tab-btn {
493
+ color: inherit;
494
+ }
495
+ .right-settings .ant-tabs-ink-bar {
496
+ background: var(--ee-primary) !important;
497
+ }
498
+ .right-settings .ant-tabs-nav::before {
499
+ border-bottom-color: var(--ee-border) !important;
500
+ }
501
+
502
+ /* Popover (e.g. ColorPicker) when mounted inside right panel */
503
+ .right-settings .ant-popover-inner {
504
+ background-color: var(--ee-card) !important;
505
+ border: var(--ee-border-width) solid var(--ee-border);
506
+ border-radius: var(--ee-radius);
507
+ box-shadow: var(--ee-shadow);
508
+ }
509
+ .right-settings .ant-popover-inner-content {
510
+ background-color: var(--ee-card);
511
+ }
512
+ /* ChromePicker inside popover - dark wrapper */
513
+ .right-settings .ee-color-picker-popover .chrome-picker {
514
+ background: var(--ee-card) !important;
515
+ }
516
+ .right-settings .ee-color-picker-popover input {
517
+ background-color: var(--ee-muted) !important;
518
+ border-color: var(--ee-border) !important;
519
+ color: var(--ee-foreground) !important;
520
+ }
@@ -0,0 +1,195 @@
1
+ .email-editor {
2
+ height: 100%;
3
+ min-width: 1280px;
4
+ }
5
+
6
+ .email-editor-main {
7
+ height: 100%;
8
+ display: flex;
9
+ justify-content: space-between;
10
+
11
+ }
12
+
13
+ .photo-container {
14
+ flex: 1;
15
+ height: 100%;
16
+ padding: 18px;
17
+ overflow: hidden;
18
+ }
19
+
20
+ .margin-bottom-12 {
21
+ margin-bottom: 12px;
22
+ }
23
+
24
+ .pexels-link {
25
+ margin-top: 12px;
26
+ color: var(--ee-muted-foreground);
27
+ font-size: 12px;
28
+ line-height: 15px;
29
+ cursor: pointer;
30
+ }
31
+
32
+ .pexels-link:hover {
33
+ color: var(--ee-foreground);
34
+ text-decoration: underline;
35
+ }
36
+
37
+ .photos-body {
38
+ height: calc(100% - 58px);
39
+ position: relative;
40
+ }
41
+
42
+ .photos-container {
43
+ display: grid;
44
+ grid-template-columns: repeat(2, 1fr);
45
+ gap: 6px;
46
+ overflow: auto;
47
+ height: 100%;
48
+ padding-right: 18px;
49
+ }
50
+
51
+ .photo-item {
52
+ transition-property: all;
53
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
54
+ transition-duration: 150ms;
55
+ cursor: grab;
56
+ margin-bottom: 6px;
57
+ }
58
+
59
+ .width-full {
60
+ width: 100%;
61
+ }
62
+
63
+ .scroll-loading-context {
64
+ position: absolute;
65
+ bottom: -6px;
66
+ left: 0;
67
+ right: 0;
68
+ width: 100%;
69
+ text-align: center;
70
+ color: var(--ee-muted-foreground);
71
+ }
72
+
73
+ .loading-spinner {
74
+ position: absolute;
75
+ top: 0;
76
+ left: 0;
77
+ right: 0;
78
+ bottom: 0;
79
+ display: flex;
80
+ justify-content: center;
81
+ align-items: center;
82
+ z-index: 10;
83
+ }
84
+
85
+ .text-18 {
86
+ font-size: 18px;
87
+ line-height: 24px;
88
+ }
89
+
90
+ .side-bar-icon-title {
91
+ margin-top: 3px;
92
+ font-weight: 600;
93
+ }
94
+
95
+ .side-bar-content {
96
+ overflow: hidden;
97
+ flex: 1;
98
+ }
99
+
100
+ .side-bar-blocks {
101
+ flex: 1;
102
+ height: 100%;
103
+ overflow: hidden;
104
+ }
105
+
106
+ .side-bar-blocks-container {
107
+ padding: 12px;
108
+ display: grid;
109
+ grid-template-columns: repeat(3, 1fr);
110
+ gap: 10px;
111
+ }
112
+
113
+ .side-bar-blocks-item {
114
+ position: relative;
115
+ width: 100%;
116
+ height: 96px;
117
+ border: var(--ee-border-width) solid transparent;
118
+ }
119
+
120
+ .side-bar {
121
+ width: 380px;
122
+ min-width: 380px;
123
+ background: var(--left-sidebar-background);
124
+ height: 100%;
125
+ display: flex;
126
+ border-right: var(--ee-border-width) solid var(--border-color);
127
+ }
128
+
129
+ .side-bar-tabs {
130
+ background: var(--left-sidebar-tabs-background);
131
+ }
132
+
133
+ .side-bar-item-default {
134
+ padding: 12px 18px;
135
+ cursor: pointer;
136
+ text-align: center;
137
+ user-select: none;
138
+ transition-property: all;
139
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
140
+ transition-duration: 150ms;
141
+ }
142
+
143
+ .side-bar-tab-item {
144
+ color: var(--left-sidebar-tab-color);
145
+ }
146
+
147
+ .side-bar-tab-item:hover {
148
+ background-color: var(--left-sidebar-tab-hover-background);
149
+ }
150
+
151
+ .side-bar-tab-item-active {
152
+ color: var(--left-sidebar-tabs-background);
153
+ background: var(--left-sidebar-tab-active-color);
154
+ }
155
+
156
+ .sidebar-block {
157
+ background-color: var(--ee-card);
158
+ border: var(--ee-border-width) solid var(--ee-border);
159
+ user-select: none;
160
+ cursor: -webkit-grab;
161
+ transition-duration: 0.15s;
162
+ transition-property: border-color, box-shadow;
163
+ color: var(--start-content-font-color);
164
+ display: flex;
165
+ flex-direction: column;
166
+ justify-content: center;
167
+ align-items: center;
168
+ border-radius: var(--ee-radius);
169
+ height: 100%;
170
+ }
171
+
172
+ .sidebar-block-icon {
173
+ font-size: 22.5px;
174
+ line-height: 27px;
175
+ margin-bottom: 9px;
176
+ }
177
+
178
+ .sidebar-block-text {
179
+ font-size: 13.5px;
180
+ line-height: 21px;
181
+ }
182
+
183
+ .sidebar-block:hover {
184
+ border-color: var(--ee-primary);
185
+ }
186
+
187
+ .sidebar-block-move {
188
+ background-color: transparent;
189
+ animation: none;
190
+ }
191
+
192
+ .sidebar-block-move:hover {
193
+ box-shadow: none;
194
+ animation: shake 0s linear 1s infinite normal none;
195
+ }