@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,309 @@
1
+ .hover-visible::after {
2
+ visibility: visible;
3
+ content: '';
4
+ position: absolute;
5
+ outline: 2px solid var(--block-active-border);
6
+ right: 0px;
7
+ left: 0px;
8
+ top: 0%;
9
+ bottom: 0%;
10
+ opacity: 0;
11
+ z-index: 100;
12
+ outline-offset: -2px
13
+ }
14
+
15
+ .hover-visible:hover::after {
16
+ outline: 2px solid var(--block-hover-border);
17
+ opacity: 1;
18
+ }
19
+
20
+ .block-focus>.hover-visible::after {
21
+ outline: 2px solid var(--block-active-border);
22
+ opacity: 1;
23
+ }
24
+
25
+ .mobile-block-focus>.hover-visible::after {
26
+ margin-left: -50px;
27
+ margin-right: -50px;
28
+ }
29
+
30
+ .mobile-block-focus .block-move {
31
+ margin-right: -50px;
32
+ }
33
+
34
+ .mobile-block-focus .block-delete {
35
+ margin-right: -50px;
36
+ }
37
+
38
+ .block-content {
39
+ height: 100%;
40
+ display: flex;
41
+ margin: 0 auto;
42
+ flex-wrap: wrap;
43
+ max-width: 100%;
44
+ }
45
+
46
+ .block-focus .block-move {
47
+ visibility: visible;
48
+ }
49
+
50
+
51
+ .block-focus .block-delete {
52
+ visibility: visible;
53
+ }
54
+
55
+ .block-delete {
56
+ width: 30px;
57
+ height: 30px;
58
+ visibility: hidden;
59
+ right: 0;
60
+ bottom: -36px;
61
+ background-color: var(--block-active-border);
62
+ color: var(--tools-font-color);
63
+ text-align: center;
64
+ line-height: 30px;
65
+ z-index: 120;
66
+ cursor: pointer;
67
+ }
68
+
69
+ .block-move {
70
+ width: 30px;
71
+ height: 30px;
72
+ visibility: hidden;
73
+ right: -14px;
74
+ bottom: 50%;
75
+ background-color: var(--block-active-border);
76
+ color: var(--tools-font-color);
77
+ text-align: center;
78
+ line-height: 30px;
79
+ z-index: 120;
80
+ border-radius: 25px;
81
+ font-size: 16px;
82
+ transform: translateY(50%);
83
+ cursor: pointer;
84
+ }
85
+
86
+ .block-move-content {
87
+ height: 50%;
88
+ z-index: 100;
89
+ }
90
+
91
+ .block-move-content-top::after {
92
+ content: '';
93
+ position: absolute;
94
+ width: 100%;
95
+ bottom: 50%;
96
+ z-index: 104;
97
+ top: 0;
98
+ }
99
+
100
+ .block-move-content-bottom::after {
101
+ content: '';
102
+ position: absolute;
103
+ width: 100%;
104
+ top: 50%;
105
+ z-index: 104;
106
+ bottom: 0;
107
+ }
108
+
109
+
110
+ .block-move-top {
111
+ width: 100%;
112
+ top: -2px;
113
+ height: 4px;
114
+ background-color: var(--block-active-border);
115
+ display: flex;
116
+ justify-content: center;
117
+ align-items: center;
118
+ z-index: 103;
119
+ visibility: hidden;
120
+ }
121
+
122
+ .block-move-bottom {
123
+ width: 100%;
124
+ bottom: -2px;
125
+ height: 4px;
126
+ background-color: var(--block-active-border);
127
+ display: flex;
128
+ justify-content: center;
129
+ align-items: center;
130
+ z-index: 103;
131
+ visibility: hidden;
132
+ }
133
+
134
+ .block-tools-drag_here {
135
+ position: absolute;
136
+ padding: 6px 12px;
137
+ border-radius: 25px;
138
+ background-color: var(--block-active-border);
139
+ color: var(--tools-font-color);
140
+ text-align: center;
141
+ z-index: 98;
142
+ }
143
+
144
+ .block-empty-content {
145
+ display: flex;
146
+ color: var(--block-empty-content-color);
147
+ background-color: var(--block-empty-content-background);
148
+ outline: var(--block-empty-content-color) dashed 1px;
149
+ justify-content: center;
150
+ align-items: center;
151
+ text-align: center;
152
+ outline-offset: -1px;
153
+ height: 96px;
154
+ position: relative;
155
+ padding: 8px;
156
+ }
157
+
158
+ .block-empty-content-tools {
159
+ z-index: 110;
160
+ position: absolute;
161
+ display: flex;
162
+ justify-content: center;
163
+ align-items: center;
164
+ opacity: 0;
165
+ background-color: var(--block-empty-content-color);
166
+ color: var(--tools-font-color);
167
+ left: 0px;
168
+ right: 0px;
169
+ bottom: 0px;
170
+ top: 0px;
171
+ }
172
+
173
+ .start-to-add {
174
+ width: 100;
175
+ height: 50px;
176
+ background-color: var(--start-content-background);
177
+ color: var(--start-content-font-color);
178
+ display: flex;
179
+ justify-content: center;
180
+ align-items: center;
181
+ margin: auto;
182
+ }
183
+
184
+ .block-item {
185
+ position: relative;
186
+ flex: 1;
187
+ }
188
+
189
+ .block-item-tools {
190
+ position: absolute;
191
+ top: 0;
192
+ bottom: 0;
193
+ left: 0;
194
+ right: 0;
195
+ }
196
+
197
+ .block-item-tools::after {
198
+ visibility: visible;
199
+ content: '';
200
+ position: absolute;
201
+ outline: 2px solid var(--block-active-border);
202
+ right: 0px;
203
+ left: 0px;
204
+ top: 0px;
205
+ bottom: 0px;
206
+ opacity: 0;
207
+ z-index: 100;
208
+ outline-offset: -1.5px;
209
+ }
210
+
211
+ .block-item-tools:hover::after {
212
+ opacity: 0.9;
213
+ }
214
+
215
+ .block-item-focus .block-item-tools::after {
216
+ outline: 2px solid var(--block-active-border);
217
+ opacity: 1;
218
+ }
219
+
220
+ .block-item-delete {
221
+ width: 30px;
222
+ height: 30px;
223
+ visibility: hidden;
224
+ right: 0;
225
+ bottom: -36px;
226
+ background-color: var(--block-active-border);
227
+ color: var(--tools-font-color);
228
+ text-align: center;
229
+ line-height: 30px;
230
+ z-index: 120;
231
+ cursor: pointer;
232
+ }
233
+
234
+ .block-item-move {
235
+ width: 30px;
236
+ height: 30px;
237
+ visibility: hidden;
238
+ right: -14px;
239
+ bottom: 50%;
240
+ background-color: var(--block-active-border);
241
+ color: var(--tools-font-color);
242
+ text-align: center;
243
+ line-height: 30px;
244
+ z-index: 120;
245
+ border-radius: 25px;
246
+ font-size: 16px;
247
+ transform: translateY(50%);
248
+ cursor: pointer;
249
+ }
250
+
251
+ .block-item-focus .block-item-move {
252
+ visibility: visible;
253
+ }
254
+
255
+
256
+ .block-item-focus .block-item-delete {
257
+ visibility: visible;
258
+ }
259
+
260
+ .text-block {
261
+ position: relative;
262
+ z-index: 101;
263
+ border: none;
264
+ flex: 1;
265
+ }
266
+
267
+ .text-block:focus-visible {
268
+ outline: unset;
269
+ }
270
+
271
+ .column-item {
272
+ width: 100%;
273
+ border-radius: var(--ee-radius);
274
+ height: 36px;
275
+ background-color: var(--column-background);
276
+ border-width: var(--ee-border-width);
277
+ border-style: solid;
278
+ cursor: pointer;
279
+ display: flex;
280
+ margin-top: 12px;
281
+ }
282
+
283
+ .column-item-active {
284
+ border-color: var(--column-active-border);
285
+ }
286
+
287
+ .column-item-un_active {
288
+ border-color: var(--column-un-active-border);
289
+
290
+ }
291
+
292
+ .column-item-un_active:hover {
293
+ border-color: var(--ee-primary);
294
+ box-shadow: 0px 3px 12px 0px rgba(216, 254, 145, 0.2);
295
+ }
296
+
297
+ .column-item-border-right {
298
+ border-right-width: var(--ee-border-width);
299
+ border-right-style: solid;
300
+ }
301
+ /* Inner column dividers: visible in dark mode (muted-foreground on muted bg) */
302
+ .column-item .column-item-border-right {
303
+ border-right-color: var(--column-divider-color) !important;
304
+ }
305
+
306
+ .column-modal-context {
307
+ margin: 0 3px;
308
+ font-weight: 600;
309
+ }
@@ -0,0 +1,174 @@
1
+ .header {
2
+ /* flex items-center justify-between px-10 bg-white border py-4 */
3
+ padding: 12px 30px;
4
+ display: flex;
5
+ align-items: center;
6
+ justify-content: space-between;
7
+ background-color: var(--header-bg-color);
8
+ border-bottom: var(--ee-border-width) solid var(--border-color);
9
+
10
+ }
11
+
12
+ .header-box {
13
+ width: 33.3333%;
14
+ }
15
+
16
+ .header-icon {
17
+ margin-right: 24px;
18
+ font-size: 18px;
19
+ line-height: 24px;
20
+ cursor: pointer;
21
+ }
22
+
23
+ .header-icon-small {
24
+ margin-right: 24px;
25
+ font-size: 15px;
26
+ line-height: 21px;
27
+ cursor: pointer;
28
+ }
29
+
30
+ .header-icon-history {
31
+ font-size: 18px;
32
+ line-height: 24px;
33
+ }
34
+
35
+ .header-icon-history:nth-child(1) {
36
+ margin-right: 24px;
37
+ }
38
+
39
+ .header-icon-history_active {
40
+ cursor: pointer;
41
+ color: var(--header-icon-active-color);
42
+ }
43
+
44
+ .header-icon-history_disabled {
45
+ cursor: not-allowed;
46
+ color: var(--header-icon-disabled-color);
47
+ }
48
+
49
+ .header-icon-small:hover {
50
+ color: var(--header-icon-hover-color);
51
+ }
52
+
53
+ .header-icon:hover {
54
+ color: var(--header-icon-hover-color);
55
+ }
56
+
57
+ .header-icon_active {
58
+ color: var(--header-icon-active-color);
59
+ }
60
+
61
+ .header-icon_disabled {
62
+ color: var(--header-icon-disabled-color);
63
+ }
64
+
65
+ .header-drawer-close {
66
+ /* inline-flex justify-center items-center rounded-full bg-gray-500 hover:bg-gray-600 cursor-pointer text-white p-1 h-8 w-8 */
67
+ display: inline-flex;
68
+ justify-content: center;
69
+ align-items: center;
70
+ border-radius: 100%;
71
+ background-color: var(--header-drawer-close-bg-color);
72
+ cursor: pointer;
73
+ color: var(--header-drawer-close-color);
74
+ width: 24px;
75
+ height: 24px;
76
+ padding: 3px;
77
+ }
78
+
79
+ .header-drawer-close:hover {
80
+ background-color: var(--header-drawer-close-hover-bg-color);
81
+ }
82
+
83
+ .header-drawer-body {
84
+ border-radius: var(--ee-radius);
85
+ transition: all 0.3s;
86
+ margin: 0 auto;
87
+ height: 100%;
88
+ border: var(--ee-border-width) solid var(--border-color);
89
+ box-shadow: var(--ee-shadow);
90
+ }
91
+
92
+ .header-drawer-head {
93
+ border-top-left-radius: var(--ee-radius);
94
+ border-top-right-radius: var(--ee-radius);
95
+ background-color: var(--header-drawer-head-bg-color);
96
+ display: flex;
97
+ gap: 6px;
98
+ border-bottom: var(--ee-border-width) solid var(--border-color);
99
+ padding: 12px;
100
+ }
101
+
102
+ .header-drawer-head-item {
103
+ width: 12px;
104
+ height: 12px;
105
+ border-radius: 100%;
106
+ }
107
+
108
+ .header-drawer-head-item:nth-child(1) {
109
+ background-color: #dc2626;
110
+ }
111
+
112
+ .header-drawer-head-item:nth-child(2) {
113
+ background-color: #fbbf24;
114
+ }
115
+
116
+ .header-drawer-head-item:nth-child(3) {
117
+ background-color: #10b981;
118
+ }
119
+
120
+ .header-drawer-content {
121
+ width: 100%;
122
+ height: calc(100% - 40px);
123
+ }
124
+
125
+ .header-drawer-iframe {
126
+ width: 100%;
127
+ height: 100%;
128
+ border: none;
129
+ }
130
+
131
+ /* Preview drawer dark theme: background and device icons area */
132
+ .ee-preview-drawer.ant-drawer .ant-drawer-content {
133
+ background-color: var(--ee-bg) !important;
134
+ }
135
+ .ee-preview-drawer.ant-drawer .ant-drawer-wrapper-body {
136
+ background-color: var(--ee-bg);
137
+ }
138
+ .ee-preview-drawer.ant-drawer .ant-drawer-header {
139
+ background-color: var(--ee-card) !important;
140
+ border-bottom: var(--ee-border-width) solid var(--ee-border) !important;
141
+ color: var(--ee-foreground);
142
+ padding: 12px 24px;
143
+ }
144
+ .ee-preview-drawer.ant-drawer .ant-drawer-header-title {
145
+ color: var(--ee-foreground);
146
+ }
147
+ .ee-preview-drawer.ant-drawer .ant-drawer-body {
148
+ background-color: var(--ee-bg) !important;
149
+ padding: 16px;
150
+ flex: 1;
151
+ display: flex;
152
+ align-items: center;
153
+ justify-content: center;
154
+ }
155
+ /* Device icons in drawer title: ensure visible on dark */
156
+ .ee-preview-drawer .header-icon {
157
+ color: var(--ee-muted-foreground);
158
+ }
159
+ .ee-preview-drawer .header-icon:hover {
160
+ color: var(--ee-foreground);
161
+ }
162
+ .ee-preview-drawer .header-icon_active {
163
+ color: var(--ee-primary);
164
+ }
165
+ .ee-preview-drawer .header-icon_disabled {
166
+ color: var(--ee-muted-foreground);
167
+ }
168
+ /* Preview frame (browser chrome) sits inside drawer body */
169
+ .ee-preview-drawer .header-drawer-body {
170
+ background-color: var(--ee-card);
171
+ }
172
+ .ee-preview-drawer .header-drawer-head {
173
+ background-color: var(--ee-muted);
174
+ }
@@ -0,0 +1,12 @@
1
+ .empty-image {
2
+ padding: 24px;
3
+ border: var(--ee-border-width) solid var(--block-empty-content-color);
4
+ background-color: var(--block-empty-content-background);
5
+ text-align: center;
6
+ display: inline-block;
7
+ }
8
+
9
+ .empty-image-icon {
10
+ font-size: 48px;
11
+ color: var(--block-empty-content-color);
12
+ }
@@ -0,0 +1,30 @@
1
+ .preview-main {
2
+ flex: 1;
3
+ display: flex;
4
+ flex-direction: column;
5
+ background-color: var(--ee-bg);
6
+ }
7
+
8
+ .preview-content {
9
+ min-height: 100%;
10
+ margin: 0 auto;
11
+ transition-property: all;
12
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
13
+ transition-duration: 150ms;
14
+ border: var(--ee-border-width) solid var(--border-color);
15
+ border-radius: var(--ee-radius);
16
+ box-shadow: var(--ee-shadow-sm);
17
+ }
18
+
19
+ #preview {
20
+ flex: 1;
21
+ height: 100%;
22
+ inset: 0px 425px 0px 0px;
23
+ background-color: var(--ee-muted);
24
+ background-image: linear-gradient(45deg, var(--ee-card) 25%, transparent 25%), linear-gradient(-45deg, var(--ee-card) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--ee-card) 75%), linear-gradient(-45deg, transparent 75%, var(--ee-card) 75%);
25
+ background-size: 20px 20px;
26
+ background-position: 0px 0px, 0px 10px, 10px -10px, -10px 0px;
27
+ transition: right 0.3s ease 0s;
28
+ overflow: auto;
29
+ padding: 24px 18px;
30
+ }
@@ -0,0 +1,199 @@
1
+ .rich-text {
2
+ position: absolute;
3
+ z-index: 1060;
4
+ }
5
+
6
+ .rich-text-tools {
7
+ max-width: 375px;
8
+ min-height: 40px;
9
+ background-color: var(--ee-card);
10
+ border: var(--ee-border-width) solid var(--ee-border);
11
+ box-shadow: var(--ee-shadow);
12
+ display: flex;
13
+ align-items: center;
14
+ padding: 6px;
15
+ border-radius: var(--ee-radius);
16
+ }
17
+
18
+ .rich-text-tools-body {
19
+ display: flex;
20
+ flex-wrap: wrap;
21
+ }
22
+
23
+ .rich-text-tools-button-icon {
24
+ font-size: 14px;
25
+ color: var(--ee-foreground);
26
+ user-select: none;
27
+ }
28
+
29
+ .rich-text-tools-button {
30
+ width: 30px;
31
+ height: 30px;
32
+ line-height: 30px;
33
+ text-align: center;
34
+ cursor: pointer;
35
+ margin: 3px;
36
+ transition: all 0.12s linear;
37
+ border-radius: calc(var(--ee-radius) - 2px);
38
+ background-color: transparent;
39
+ border: none;
40
+ }
41
+
42
+ .rich-text-tools-button:hover {
43
+ background: var(--rich-text-icon);
44
+ }
45
+
46
+ .rich-text-tools-button-active {
47
+ background: var(--rich-text-icon);
48
+ }
49
+
50
+ .richText-select {
51
+ display: flex;
52
+ align-items: center;
53
+ position: relative;
54
+ font-size: 12px;
55
+ color: var(--ee-foreground);
56
+ margin: 0 12px;
57
+ user-select: none;
58
+ }
59
+
60
+ .richText-select-select {
61
+ cursor: pointer;
62
+ display: flex;
63
+ align-items: center;
64
+ justify-content: space-between;
65
+ width: 100%;
66
+ user-select: none;
67
+ }
68
+
69
+ .richText-select-option {
70
+ position: absolute;
71
+ width: 150px;
72
+ top: 100%;
73
+ background-color: var(--ee-card);
74
+ border: var(--ee-border-width) solid var(--ee-border);
75
+ box-shadow: var(--ee-shadow);
76
+ overflow: auto;
77
+ cursor: pointer;
78
+ display: none;
79
+ height: 200px;
80
+ padding: 3px 0;
81
+ border-radius: var(--ee-radius);
82
+ z-index: 1071;
83
+ }
84
+
85
+ .richText-mask {
86
+ /* fixed w-screen hidden h-screen top-0 left-0 z-[1070] */
87
+ position: fixed;
88
+ width: 100vw;
89
+ height: 100vh;
90
+ top: 0;
91
+ left: 0;
92
+ z-index: 1070;
93
+ display: none;
94
+ }
95
+
96
+ .richText-select-icon {
97
+ margin-left: 6px;
98
+ }
99
+
100
+ /* Scrollbar styles */
101
+ .richText-select-option::-webkit-scrollbar {
102
+ width: 4px;
103
+ }
104
+
105
+ .richText-select-option::-webkit-scrollbar-thumb {
106
+ border-radius: 10px;
107
+ box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
108
+ background: rgba(0, 0, 0, 0.2);
109
+ }
110
+
111
+ .richText-select-option_item {
112
+ font-size: 14px;
113
+ line-height: 14px;
114
+ padding: 12px 8px;
115
+ cursor: pointer;
116
+ transition: all 0.12s linear;
117
+ color: var(--ee-foreground);
118
+ }
119
+
120
+ .richText-select-option_item-checked {
121
+ background-color: var(--option-hover-color);
122
+ }
123
+
124
+ .richText-select-option_item:hover {
125
+ background-color: var(--option-hover-color);
126
+ }
127
+
128
+ @keyframes move {
129
+ 0% {
130
+ height: 0px;
131
+ display: block;
132
+
133
+ }
134
+
135
+ 100% {
136
+ height: 200px;
137
+ }
138
+ }
139
+
140
+ @keyframes leave {
141
+ 0% {
142
+ height: 200px;
143
+ }
144
+
145
+ 100% {
146
+ height: 0px;
147
+ display: none;
148
+ }
149
+ }
150
+
151
+ .input-wrapper {
152
+ display: flex;
153
+ align-items: center;
154
+ gap: 8px;
155
+ }
156
+
157
+ input[type="color"] {
158
+ -webkit-appearance: none;
159
+ -moz-appearance: none;
160
+ appearance: none;
161
+ background-color: transparent;
162
+ width: 40px;
163
+ height: 28px;
164
+ border: none;
165
+ cursor: pointer;
166
+ }
167
+
168
+ input[type="color"]::-webkit-color-swatch {
169
+ border-radius: 15px;
170
+ display: block;
171
+ width: auto;
172
+ height: auto;
173
+ opacity: 1;
174
+ box-shadow: 0 0 0 2px var(--ee-card), 0 0 0 3px var(--ee-border);
175
+ }
176
+
177
+ input[type="color"]::-moz-color-swatch {
178
+ border-radius: 15px;
179
+ display: block;
180
+ width: auto;
181
+ height: auto;
182
+ opacity: 1;
183
+ box-shadow: 0 0 0 2px var(--ee-card), 0 0 0 3px var(--ee-border);
184
+ }
185
+
186
+ .chrome-picker {
187
+ box-shadow: none !important;
188
+ }
189
+
190
+ .rich_text-font_color {
191
+ border-radius: 2px;
192
+ border: var(--ee-border-width) solid var(--border-color);
193
+ }
194
+
195
+ .rich_text-font_color-content {
196
+ width: 36px;
197
+ height: 10px;
198
+ border-radius: 2px;
199
+ }