@echozedlabs/wysiwyg-lexical 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/styles.css ADDED
@@ -0,0 +1,456 @@
1
+ .me-wysiwyg {
2
+ position: relative;
3
+ min-height: inherit;
4
+ flex: 1;
5
+ overflow: auto;
6
+ background: var(--me-surface, #ffffff);
7
+ color: var(--me-text, #18202a);
8
+ font-family: var(--me-font-ui, system-ui, sans-serif);
9
+ }
10
+
11
+ .me-wysiwyg-toolbar {
12
+ display: flex;
13
+ flex-wrap: wrap;
14
+ gap: 6px;
15
+ align-items: center;
16
+ border-bottom: 1px solid var(--me-border, #d9dee5);
17
+ background: var(--me-surface-muted, #f6f7f8);
18
+ padding: 8px;
19
+ }
20
+
21
+ .me-wysiwyg-toolbar button,
22
+ .me-wysiwyg-toolbar select {
23
+ min-height: 30px;
24
+ border: 1px solid var(--me-border, #d9dee5);
25
+ border-radius: 6px;
26
+ background: var(--me-surface, #ffffff);
27
+ color: var(--me-text, #18202a);
28
+ font: inherit;
29
+ padding: 0 8px;
30
+ }
31
+
32
+ .me-wysiwyg-toolbar button {
33
+ display: inline-flex;
34
+ align-items: center;
35
+ justify-content: center;
36
+ min-width: 32px;
37
+ cursor: pointer;
38
+ }
39
+
40
+ .me-wysiwyg-toolbar button svg {
41
+ width: 0.95em;
42
+ height: 0.95em;
43
+ }
44
+
45
+ .me-wysiwyg-toolbar button[data-active="true"] {
46
+ border-color: color-mix(in srgb, var(--me-accent, #2563eb), transparent 25%);
47
+ background: color-mix(in srgb, var(--me-accent, #2563eb), transparent 88%);
48
+ color: var(--me-accent, #2563eb);
49
+ }
50
+
51
+ .me-wysiwyg-toolbar button:disabled {
52
+ color: var(--me-muted, #5d6978);
53
+ cursor: not-allowed;
54
+ opacity: 0.55;
55
+ }
56
+
57
+ .me-wysiwyg-toolbar-group {
58
+ display: inline-flex;
59
+ gap: 3px;
60
+ align-items: center;
61
+ min-width: 0;
62
+ padding-right: 6px;
63
+ border-right: 1px solid var(--me-border, #d9dee5);
64
+ }
65
+
66
+ .me-wysiwyg-toolbar-group:last-child {
67
+ border-right: 0;
68
+ }
69
+
70
+ .me-wysiwyg-block-select {
71
+ min-width: 150px;
72
+ }
73
+
74
+ .me-wysiwyg-insert-select {
75
+ min-width: 112px;
76
+ }
77
+
78
+ .me-wysiwyg-table-action {
79
+ font-family: var(--me-font-mono, ui-monospace, monospace);
80
+ font-size: 12px;
81
+ font-weight: 650;
82
+ }
83
+
84
+ .me-wysiwyg-input {
85
+ min-height: inherit;
86
+ padding: 16px;
87
+ outline: none;
88
+ line-height: 1.65;
89
+ }
90
+
91
+ .me-wysiwyg-placeholder-text {
92
+ position: absolute;
93
+ top: 16px;
94
+ left: 16px;
95
+ color: var(--me-muted, #5d6978);
96
+ pointer-events: none;
97
+ }
98
+
99
+ .me-wysiwyg-heading {
100
+ margin: 0 0 10px;
101
+ line-height: 1.2;
102
+ }
103
+
104
+ .me-wysiwyg-heading-1 {
105
+ font-size: 1.75rem;
106
+ }
107
+
108
+ .me-wysiwyg-heading-2 {
109
+ font-size: 1.4rem;
110
+ }
111
+
112
+ .me-wysiwyg-heading-3 {
113
+ font-size: 1.2rem;
114
+ }
115
+
116
+ .me-wysiwyg-paragraph,
117
+ .me-wysiwyg-list,
118
+ .me-wysiwyg-quote,
119
+ .me-wysiwyg-code {
120
+ margin-top: 0;
121
+ }
122
+
123
+ .me-wysiwyg-list {
124
+ padding-left: 1.45rem;
125
+ }
126
+
127
+ .me-wysiwyg-check-list {
128
+ padding-left: 0;
129
+ list-style: none;
130
+ }
131
+
132
+ .me-wysiwyg-list-item-checked,
133
+ .me-wysiwyg-list-item-unchecked {
134
+ position: relative;
135
+ list-style: none;
136
+ padding-left: 1.7rem;
137
+ }
138
+
139
+ .me-wysiwyg-list-item-checked::before,
140
+ .me-wysiwyg-list-item-unchecked::before {
141
+ position: absolute;
142
+ top: 0.36em;
143
+ left: 0.1rem;
144
+ width: 1.05em;
145
+ height: 1.05em;
146
+ box-sizing: border-box;
147
+ border: 1px solid #9aa7b2;
148
+ border-radius: 4px;
149
+ background: #ffffff;
150
+ content: "";
151
+ }
152
+
153
+ .me-wysiwyg-list-item-checked {
154
+ color: var(--me-muted, #5d6978);
155
+ text-decoration: line-through;
156
+ }
157
+
158
+ .me-wysiwyg-list-item-checked::before {
159
+ border-color: var(--me-accent, #2563eb);
160
+ background-color: var(--me-accent, #2563eb);
161
+ background-image: linear-gradient(45deg, transparent 58%, #ffffff 58%),
162
+ linear-gradient(-45deg, transparent 48%, #ffffff 48%),
163
+ linear-gradient(45deg, #ffffff 42%, transparent 42%);
164
+ background-position: 0.14em 0.42em, 0.42em 0.42em, 0.28em 0.58em;
165
+ background-repeat: no-repeat;
166
+ background-size: 0.36em 0.12em, 0.48em 0.12em, 0.12em 0.28em;
167
+ }
168
+
169
+ .me-wysiwyg-quote {
170
+ border-left: 4px solid var(--me-accent, #2563eb);
171
+ color: var(--me-muted, #5d6978);
172
+ padding-left: 12px;
173
+ }
174
+
175
+ .me-wysiwyg-code {
176
+ display: block;
177
+ width: 100%;
178
+ box-sizing: border-box;
179
+ overflow: auto;
180
+ border: 1px solid var(--me-border, #d9dee5);
181
+ border-radius: 6px;
182
+ background: #f8fafc;
183
+ margin: 14px 0;
184
+ padding: 40px 12px 12px;
185
+ font-family: var(--me-font-mono, ui-monospace, monospace);
186
+ line-height: 1.55;
187
+ tab-size: 2;
188
+ }
189
+
190
+ .me-wysiwyg-code-language-popover {
191
+ position: absolute;
192
+ z-index: 4;
193
+ display: flex;
194
+ gap: 8px;
195
+ align-items: center;
196
+ justify-content: space-between;
197
+ min-height: 30px;
198
+ box-sizing: border-box;
199
+ border-bottom: 1px solid var(--me-border, #d9dee5);
200
+ color: var(--me-muted, #5d6978);
201
+ font-size: 12px;
202
+ pointer-events: auto;
203
+ }
204
+
205
+ .me-wysiwyg-code-language-popover select {
206
+ min-height: 26px;
207
+ border: 1px solid var(--me-border, #d9dee5);
208
+ border-radius: 5px;
209
+ background: var(--me-surface, #ffffff);
210
+ color: var(--me-text, #18202a);
211
+ font: inherit;
212
+ }
213
+
214
+ .me-wysiwyg-table-scroll {
215
+ max-width: 100%;
216
+ margin: 14px 0;
217
+ overflow-x: auto;
218
+ }
219
+
220
+ .me-wysiwyg-table {
221
+ width: 100%;
222
+ min-width: 420px;
223
+ border-collapse: collapse;
224
+ border: 1px solid var(--me-border, #d9dee5);
225
+ background: var(--me-surface, #ffffff);
226
+ font-size: 0.95rem;
227
+ }
228
+
229
+ .me-wysiwyg-table-row {
230
+ border-bottom: 1px solid var(--me-border, #d9dee5);
231
+ }
232
+
233
+ .me-wysiwyg-table-row:last-child {
234
+ border-bottom: 0;
235
+ }
236
+
237
+ .me-wysiwyg-table-cell {
238
+ min-width: 120px;
239
+ border-right: 1px solid var(--me-border, #d9dee5);
240
+ padding: 8px 10px;
241
+ text-align: left;
242
+ vertical-align: top;
243
+ }
244
+
245
+ .me-wysiwyg-table-cell:last-child {
246
+ border-right: 0;
247
+ }
248
+
249
+ .me-wysiwyg-table-cell-header {
250
+ background: #f8fafc;
251
+ color: var(--me-text, #18202a);
252
+ font-weight: 650;
253
+ }
254
+
255
+ .me-wysiwyg-table-cell-selected {
256
+ outline: 2px solid color-mix(in srgb, var(--me-accent, #2563eb), transparent 15%);
257
+ outline-offset: -2px;
258
+ }
259
+
260
+ .me-wysiwyg-table-selection {
261
+ user-select: none;
262
+ }
263
+
264
+ .me-wysiwyg-table-cell .me-wysiwyg-paragraph {
265
+ margin: 0;
266
+ }
267
+
268
+ .me-wysiwyg-token-comment,
269
+ .me-wysiwyg-token-prolog,
270
+ .me-wysiwyg-token-doctype,
271
+ .me-wysiwyg-token-cdata {
272
+ color: #64748b;
273
+ }
274
+
275
+ .me-wysiwyg-token-punctuation,
276
+ .me-wysiwyg-token-operator,
277
+ .me-wysiwyg-token-namespace {
278
+ color: #475569;
279
+ }
280
+
281
+ .me-wysiwyg-token-property,
282
+ .me-wysiwyg-token-tag,
283
+ .me-wysiwyg-token-boolean,
284
+ .me-wysiwyg-token-number,
285
+ .me-wysiwyg-token-constant,
286
+ .me-wysiwyg-token-symbol,
287
+ .me-wysiwyg-token-deleted {
288
+ color: #b45309;
289
+ }
290
+
291
+ .me-wysiwyg-token-selector,
292
+ .me-wysiwyg-token-attr-name,
293
+ .me-wysiwyg-token-string,
294
+ .me-wysiwyg-token-char,
295
+ .me-wysiwyg-token-builtin,
296
+ .me-wysiwyg-token-inserted {
297
+ color: #047857;
298
+ }
299
+
300
+ .me-wysiwyg-token-function,
301
+ .me-wysiwyg-token-class-name,
302
+ .me-wysiwyg-token-entity,
303
+ .me-wysiwyg-token-url {
304
+ color: #2563eb;
305
+ }
306
+
307
+ .me-wysiwyg-token-keyword,
308
+ .me-wysiwyg-token-atrule,
309
+ .me-wysiwyg-token-attr-value,
310
+ .me-wysiwyg-token-important,
311
+ .me-wysiwyg-token-regex,
312
+ .me-wysiwyg-token-variable {
313
+ color: #7c3aed;
314
+ }
315
+
316
+ .me-wysiwyg-link {
317
+ color: var(--me-accent, #2563eb);
318
+ text-decoration: underline;
319
+ }
320
+
321
+ .me-wysiwyg-text-bold {
322
+ font-weight: 700;
323
+ }
324
+
325
+ .me-wysiwyg-text-italic {
326
+ font-style: italic;
327
+ }
328
+
329
+ .me-wysiwyg-text-code {
330
+ border-radius: 4px;
331
+ background: #eef2f7;
332
+ font-family: var(--me-font-mono, ui-monospace, monospace);
333
+ padding: 0 3px;
334
+ }
335
+
336
+ .me-wysiwyg-mermaid,
337
+ .me-wysiwyg-plantuml,
338
+ .me-wysiwyg-image {
339
+ margin: 14px 0;
340
+ overflow: auto;
341
+ border: 1px solid var(--me-border, #d9dee5);
342
+ border-radius: 6px;
343
+ background: #ffffff;
344
+ }
345
+
346
+ .me-wysiwyg-mermaid figcaption,
347
+ .me-wysiwyg-plantuml figcaption,
348
+ .me-wysiwyg-image figcaption {
349
+ display: flex;
350
+ gap: 8px;
351
+ align-items: center;
352
+ justify-content: space-between;
353
+ border-bottom: 1px solid var(--me-border, #d9dee5);
354
+ background: #f8fafc;
355
+ color: var(--me-muted, #5d6978);
356
+ font-size: 13px;
357
+ padding: 7px 10px;
358
+ }
359
+
360
+ .me-wysiwyg-mermaid figcaption button,
361
+ .me-wysiwyg-plantuml figcaption button,
362
+ .me-wysiwyg-image figcaption button,
363
+ .me-wysiwyg-mermaid-editor button,
364
+ .me-wysiwyg-diagram-editor button,
365
+ .me-wysiwyg-image-editor button {
366
+ min-height: 28px;
367
+ border: 1px solid var(--me-border, #d9dee5);
368
+ border-radius: 6px;
369
+ background: var(--me-surface, #ffffff);
370
+ color: var(--me-text, #18202a);
371
+ cursor: pointer;
372
+ font: inherit;
373
+ padding: 0 8px;
374
+ }
375
+
376
+ .me-wysiwyg-mermaid-rendered,
377
+ .me-wysiwyg-mermaid-loading,
378
+ .me-wysiwyg-mermaid-error,
379
+ .me-wysiwyg-diagram-rendered,
380
+ .me-wysiwyg-diagram-loading,
381
+ .me-wysiwyg-diagram-error {
382
+ margin: 0;
383
+ padding: 12px;
384
+ }
385
+
386
+ .me-wysiwyg-mermaid-rendered svg,
387
+ .me-wysiwyg-diagram-rendered svg {
388
+ display: block;
389
+ max-width: 100%;
390
+ height: auto;
391
+ margin: 0 auto;
392
+ }
393
+
394
+ .me-wysiwyg-mermaid-editor,
395
+ .me-wysiwyg-diagram-editor {
396
+ display: grid;
397
+ gap: 8px;
398
+ padding: 10px;
399
+ }
400
+
401
+ .me-wysiwyg-mermaid-editor textarea,
402
+ .me-wysiwyg-diagram-editor textarea {
403
+ width: 100%;
404
+ min-width: 0;
405
+ resize: vertical;
406
+ border: 1px solid var(--me-border, #d9dee5);
407
+ border-radius: 6px;
408
+ color: var(--me-text, #18202a);
409
+ font: 13px/1.45 var(--me-font-mono, ui-monospace, monospace);
410
+ padding: 8px;
411
+ }
412
+
413
+ .me-wysiwyg-mermaid-error,
414
+ .me-wysiwyg-diagram-error {
415
+ color: #991b1b;
416
+ background: #fff1f2;
417
+ font-family: var(--me-font-mono, ui-monospace, monospace);
418
+ }
419
+
420
+ .me-wysiwyg-image img {
421
+ display: block;
422
+ max-width: calc(100% - 24px);
423
+ height: auto;
424
+ margin: 12px auto;
425
+ border-radius: 6px;
426
+ }
427
+
428
+ .me-wysiwyg-image p {
429
+ margin: -2px 12px 12px;
430
+ color: var(--me-muted, #5d6978);
431
+ font-size: 13px;
432
+ text-align: center;
433
+ }
434
+
435
+ .me-wysiwyg-image-editor {
436
+ display: grid;
437
+ gap: 8px;
438
+ padding: 10px;
439
+ }
440
+
441
+ .me-wysiwyg-image-editor label {
442
+ display: grid;
443
+ gap: 4px;
444
+ color: var(--me-muted, #5d6978);
445
+ font-size: 12px;
446
+ }
447
+
448
+ .me-wysiwyg-image-editor input {
449
+ min-height: 30px;
450
+ min-width: 0;
451
+ border: 1px solid var(--me-border, #d9dee5);
452
+ border-radius: 6px;
453
+ color: var(--me-text, #18202a);
454
+ font: 13px/1.4 var(--me-font-ui, system-ui, sans-serif);
455
+ padding: 0 8px;
456
+ }