@react-email/editor 0.0.0-experimental.4 → 0.0.0-experimental.40

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 (74) hide show
  1. package/dist/core/index.cjs +9 -0
  2. package/dist/core/index.d.cts +2 -0
  3. package/dist/core/index.d.mts +3 -0
  4. package/dist/core/index.mjs +4 -0
  5. package/dist/create-paste-handler-B8BtjBk3.d.cts +14 -0
  6. package/dist/create-paste-handler-B8BtjBk3.d.cts.map +1 -0
  7. package/dist/create-paste-handler-CGR738bC.d.mts +14 -0
  8. package/dist/create-paste-handler-CGR738bC.d.mts.map +1 -0
  9. package/dist/event-bus-CHEzOS_O.mjs +329 -0
  10. package/dist/event-bus-CHEzOS_O.mjs.map +1 -0
  11. package/dist/event-bus-fb8U7hrl.cjs +450 -0
  12. package/dist/extension-DyY8_bh4.mjs +1110 -0
  13. package/dist/extension-DyY8_bh4.mjs.map +1 -0
  14. package/dist/extension-w5VaUeSw.cjs +1235 -0
  15. package/dist/extensions/index.cjs +51 -0
  16. package/dist/extensions/index.d.cts +399 -0
  17. package/dist/extensions/index.d.cts.map +1 -0
  18. package/dist/extensions/index.d.mts +400 -0
  19. package/dist/extensions/index.d.mts.map +1 -0
  20. package/dist/extensions/index.mjs +5 -0
  21. package/dist/extensions-BvfmaKCn.mjs +2088 -0
  22. package/dist/extensions-BvfmaKCn.mjs.map +1 -0
  23. package/dist/extensions-CkjPj2JO.cjs +2369 -0
  24. package/dist/global-content-D_WYaFgX.mjs +78 -0
  25. package/dist/global-content-D_WYaFgX.mjs.map +1 -0
  26. package/dist/global-content-bJgotqmA.cjs +89 -0
  27. package/dist/index-C4KcMQ0R.d.cts +161 -0
  28. package/dist/index-C4KcMQ0R.d.cts.map +1 -0
  29. package/dist/index-CxX7W63O.d.mts +161 -0
  30. package/dist/index-CxX7W63O.d.mts.map +1 -0
  31. package/dist/index.cjs +74 -0
  32. package/dist/index.css +832 -0
  33. package/dist/index.css.map +1 -0
  34. package/dist/index.d.cts +33 -0
  35. package/dist/index.d.cts.map +1 -0
  36. package/dist/index.d.mts +31 -277
  37. package/dist/index.d.mts.map +1 -1
  38. package/dist/index.mjs +64 -1377
  39. package/dist/index.mjs.map +1 -1
  40. package/dist/plugins/index.cjs +23 -0
  41. package/dist/plugins/index.d.cts +191 -0
  42. package/dist/plugins/index.d.cts.map +1 -0
  43. package/dist/plugins/index.d.mts +191 -0
  44. package/dist/plugins/index.d.mts.map +1 -0
  45. package/dist/plugins/index.mjs +3 -0
  46. package/dist/root-CkYaJZpj.mjs +2316 -0
  47. package/dist/root-CkYaJZpj.mjs.map +1 -0
  48. package/dist/root-Gu08xybW.cjs +2832 -0
  49. package/dist/set-text-alignment-Cv72txmv.cjs +24 -0
  50. package/dist/set-text-alignment-OA8IMWmO.mjs +19 -0
  51. package/dist/set-text-alignment-OA8IMWmO.mjs.map +1 -0
  52. package/dist/styles-C-cCyJCn.cjs +211 -0
  53. package/dist/styles-_TMw3YxC.mjs +194 -0
  54. package/dist/styles-_TMw3YxC.mjs.map +1 -0
  55. package/dist/ui/bubble-menu/bubble-menu.css +285 -0
  56. package/dist/ui/index.cjs +147 -0
  57. package/dist/ui/index.d.cts +939 -0
  58. package/dist/ui/index.d.cts.map +1 -0
  59. package/dist/ui/index.d.mts +939 -0
  60. package/dist/ui/index.d.mts.map +1 -0
  61. package/dist/ui/index.mjs +60 -0
  62. package/dist/ui/index.mjs.map +1 -0
  63. package/dist/ui/slash-command/slash-command.css +44 -0
  64. package/dist/ui/themes/default.css +830 -0
  65. package/dist/utils/index.cjs +3 -0
  66. package/dist/utils/index.d.cts +7 -0
  67. package/dist/utils/index.d.cts.map +1 -0
  68. package/dist/utils/index.d.mts +7 -0
  69. package/dist/utils/index.d.mts.map +1 -0
  70. package/dist/utils/index.mjs +3 -0
  71. package/package.json +109 -21
  72. package/dist/index.d.ts +0 -279
  73. package/dist/index.d.ts.map +0 -1
  74. package/dist/index.js +0 -1436
package/dist/index.css ADDED
@@ -0,0 +1,832 @@
1
+ /* Minimal functional styles for BubbleMenu compound components.
2
+ * This file handles layout and positioning only - no visual design.
3
+ * Import this optionally: import '@react-email/editor/styles/bubble-menu.css';
4
+ */
5
+
6
+ [data-re-bubble-menu] {
7
+ display: flex;
8
+ align-items: center;
9
+ gap: 0.125rem;
10
+ }
11
+
12
+ [data-re-bubble-menu-group] {
13
+ display: flex;
14
+ align-items: center;
15
+ gap: 0.125rem;
16
+ padding: 0 0.125rem;
17
+ border: none;
18
+ margin: 0;
19
+ min-width: 0;
20
+ }
21
+
22
+ [data-re-bubble-menu-separator] {
23
+ align-self: stretch;
24
+ width: 1px;
25
+ margin: 0.25rem 0;
26
+ }
27
+
28
+ [data-re-bubble-menu-item] {
29
+ display: inline-flex;
30
+ align-items: center;
31
+ justify-content: center;
32
+ cursor: pointer;
33
+ border: none;
34
+ background: none;
35
+ padding: 0.375rem;
36
+ }
37
+
38
+ [data-re-bubble-menu-item] svg {
39
+ width: 0.875rem;
40
+ height: 0.875rem;
41
+ }
42
+
43
+ [data-re-node-selector] {
44
+ position: relative;
45
+ }
46
+
47
+ [data-re-node-selector-trigger] {
48
+ display: flex;
49
+ align-items: center;
50
+ gap: 0.25rem;
51
+ cursor: pointer;
52
+ border: none;
53
+ background: none;
54
+ white-space: nowrap;
55
+ font-size: 0.8125rem;
56
+ padding: 0.375rem 0.5rem;
57
+ }
58
+
59
+ [data-re-node-selector-trigger] svg {
60
+ width: 0.75rem;
61
+ height: 0.75rem;
62
+ opacity: 0.5;
63
+ }
64
+
65
+ [data-re-node-selector-content] {
66
+ display: flex;
67
+ flex-direction: column;
68
+ min-width: 10rem;
69
+ }
70
+
71
+ [data-re-node-selector-item] {
72
+ display: flex;
73
+ align-items: center;
74
+ gap: 0.5rem;
75
+ cursor: pointer;
76
+ border: none;
77
+ background: none;
78
+ padding: 0.375rem 0.5rem;
79
+ font-size: 0.8125rem;
80
+ width: 100%;
81
+ text-align: left;
82
+ }
83
+
84
+ [data-re-node-selector-item] svg {
85
+ width: 0.875rem;
86
+ height: 0.875rem;
87
+ }
88
+
89
+ [data-re-link-selector] {
90
+ display: flex;
91
+ position: relative;
92
+ }
93
+
94
+ [data-re-link-selector-trigger] {
95
+ display: inline-flex;
96
+ align-items: center;
97
+ justify-content: center;
98
+ cursor: pointer;
99
+ border: none;
100
+ background: none;
101
+ padding: 0.375rem;
102
+ }
103
+
104
+ [data-re-link-selector-trigger] svg {
105
+ width: 0.875rem;
106
+ height: 0.875rem;
107
+ }
108
+
109
+ [data-re-link-selector-form] {
110
+ display: flex;
111
+ align-items: center;
112
+ gap: 0.25rem;
113
+ position: absolute;
114
+ top: 100%;
115
+ left: 0;
116
+ margin-top: 0.25rem;
117
+ width: max-content;
118
+ min-width: 16rem;
119
+ padding: 0.25rem;
120
+ }
121
+
122
+ [data-re-link-selector-input] {
123
+ flex: 1;
124
+ border: none;
125
+ outline: none;
126
+ font-size: 0.8125rem;
127
+ padding: 0.25rem;
128
+ background: transparent;
129
+ }
130
+
131
+ [data-re-link-selector-apply],
132
+ [data-re-link-selector-unlink] {
133
+ display: inline-flex;
134
+ align-items: center;
135
+ justify-content: center;
136
+ cursor: pointer;
137
+ border: none;
138
+ background: none;
139
+ padding: 0.25rem;
140
+ }
141
+
142
+ [data-re-link-selector-apply] svg,
143
+ [data-re-link-selector-unlink] svg {
144
+ width: 0.875rem;
145
+ height: 0.875rem;
146
+ }
147
+
148
+ /* Button bubble menu */
149
+
150
+ [data-re-btn-bm-toolbar] {
151
+ display: flex;
152
+ align-items: center;
153
+ }
154
+
155
+ [data-re-btn-bm-item] {
156
+ display: inline-flex;
157
+ align-items: center;
158
+ justify-content: center;
159
+ cursor: pointer;
160
+ border: none;
161
+ background: none;
162
+ padding: 0.375rem;
163
+ }
164
+
165
+ [data-re-btn-bm-item] svg {
166
+ width: 0.875rem;
167
+ height: 0.875rem;
168
+ }
169
+
170
+ [data-re-btn-bm-form] {
171
+ display: flex;
172
+ align-items: center;
173
+ gap: 0.25rem;
174
+ min-width: 16rem;
175
+ padding: 0.25rem;
176
+ }
177
+
178
+ [data-re-btn-bm-input] {
179
+ flex: 1;
180
+ border: none;
181
+ outline: none;
182
+ font-size: 0.8125rem;
183
+ padding: 0.25rem;
184
+ background: transparent;
185
+ }
186
+
187
+ [data-re-btn-bm-apply],
188
+ [data-re-btn-bm-unlink] {
189
+ display: inline-flex;
190
+ align-items: center;
191
+ justify-content: center;
192
+ cursor: pointer;
193
+ border: none;
194
+ background: none;
195
+ padding: 0.25rem;
196
+ }
197
+
198
+ [data-re-btn-bm-apply] svg,
199
+ [data-re-btn-bm-unlink] svg {
200
+ width: 0.875rem;
201
+ height: 0.875rem;
202
+ }
203
+
204
+ /* Link bubble menu */
205
+
206
+ [data-re-link-bm-toolbar] {
207
+ display: flex;
208
+ align-items: center;
209
+ }
210
+
211
+ [data-re-link-bm-item] {
212
+ display: inline-flex;
213
+ align-items: center;
214
+ justify-content: center;
215
+ cursor: pointer;
216
+ border: none;
217
+ background: none;
218
+ padding: 0.375rem;
219
+ }
220
+
221
+ [data-re-link-bm-item] svg {
222
+ width: 0.875rem;
223
+ height: 0.875rem;
224
+ }
225
+
226
+ a[data-re-link-bm-item] {
227
+ text-decoration: none;
228
+ color: inherit;
229
+ }
230
+
231
+ [data-re-link-bm-form] {
232
+ display: flex;
233
+ align-items: center;
234
+ gap: 0.25rem;
235
+ min-width: 16rem;
236
+ padding: 0.25rem;
237
+ }
238
+
239
+ [data-re-link-bm-input] {
240
+ flex: 1;
241
+ border: none;
242
+ outline: none;
243
+ font-size: 0.8125rem;
244
+ padding: 0.25rem;
245
+ background: transparent;
246
+ }
247
+
248
+ [data-re-link-bm-apply],
249
+ [data-re-link-bm-unlink] {
250
+ display: inline-flex;
251
+ align-items: center;
252
+ justify-content: center;
253
+ cursor: pointer;
254
+ border: none;
255
+ background: none;
256
+ padding: 0.25rem;
257
+ }
258
+
259
+ [data-re-link-bm-apply] svg,
260
+ [data-re-link-bm-unlink] svg {
261
+ width: 0.875rem;
262
+ height: 0.875rem;
263
+ }
264
+
265
+ /* Image bubble menu */
266
+
267
+ [data-re-img-bm-toolbar] {
268
+ display: flex;
269
+ align-items: center;
270
+ }
271
+
272
+ [data-re-img-bm-item] {
273
+ display: inline-flex;
274
+ align-items: center;
275
+ justify-content: center;
276
+ cursor: pointer;
277
+ border: none;
278
+ background: none;
279
+ padding: 0.5rem;
280
+ }
281
+
282
+ [data-re-img-bm-item] svg {
283
+ width: 1rem;
284
+ height: 1rem;
285
+ }
286
+
287
+ /* Minimal functional styles for SlashCommand components.
288
+ * Layout and positioning only - no visual design.
289
+ * Import optionally: import '@react-email/editor/styles/slash-command.css';
290
+ */
291
+
292
+ [data-re-slash-command] {
293
+ max-height: 330px;
294
+ overflow-y: auto;
295
+ width: 256px;
296
+ padding: 0.25rem;
297
+ }
298
+
299
+ [data-re-slash-command-item] {
300
+ display: flex;
301
+ align-items: center;
302
+ gap: 0.5rem;
303
+ width: 100%;
304
+ padding: 0.375rem 0.5rem;
305
+ border: none;
306
+ border-radius: 0.375rem;
307
+ background: none;
308
+ cursor: pointer;
309
+ font-size: 0.875rem;
310
+ line-height: 1.25rem;
311
+ text-align: left;
312
+ }
313
+
314
+ [data-re-slash-command-item] svg {
315
+ flex-shrink: 0;
316
+ }
317
+
318
+ [data-re-slash-command-category] {
319
+ font-size: 0.6875rem;
320
+ font-weight: 600;
321
+ text-transform: uppercase;
322
+ letter-spacing: 0.05em;
323
+ padding: 0.5rem 0.5rem 0.25rem;
324
+ }
325
+
326
+ [data-re-slash-command-empty] {
327
+ padding: 0.75rem 0.5rem;
328
+ font-size: 0.875rem;
329
+ text-align: center;
330
+ }
331
+
332
+ /* Default theme for @react-email/editor bubble menu primitives.
333
+ *
334
+ * Opt-in: import '@react-email/editor/themes/default.css';
335
+ *
336
+ * Override any variable on a parent element:
337
+ * .my-editor { --re-bg: #1a1a1a; --re-border: #333; }
338
+ */
339
+
340
+ /* Layer 0: layout (inlined at build time via postcss-import) */
341
+
342
+ /* ----------------------------------------------------------------
343
+ * CSS custom properties — light defaults
344
+ * ---------------------------------------------------------------- */
345
+
346
+ :root {
347
+ --re-bg: #fff;
348
+ --re-border: #e5e5e5;
349
+ --re-text: #1c1c1c;
350
+ --re-text-muted: #6b6b6b;
351
+ --re-hover: rgba(0, 0, 0, 0.04);
352
+ --re-active: rgba(0, 0, 0, 0.06);
353
+ --re-pressed: rgba(0, 0, 0, 0.06);
354
+ --re-separator: #e5e5e5;
355
+ --re-radius: 0.75rem;
356
+ --re-radius-sm: 0.5rem;
357
+ --re-shadow:
358
+ 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
359
+ --re-danger: #dc2626;
360
+ --re-danger-hover: rgba(220, 38, 38, 0.1);
361
+ }
362
+
363
+ /* ----------------------------------------------------------------
364
+ * Dark mode — prefers-color-scheme
365
+ * ---------------------------------------------------------------- */
366
+
367
+ @media (prefers-color-scheme: dark) {
368
+ :root {
369
+ --re-bg: #1c1c1c;
370
+ --re-border: #2e2e2e;
371
+ --re-text: #ececec;
372
+ --re-text-muted: #a0a0a0;
373
+ --re-hover: rgba(255, 255, 255, 0.06);
374
+ --re-active: rgba(255, 255, 255, 0.09);
375
+ --re-pressed: rgba(255, 255, 255, 0.09);
376
+ --re-separator: #2e2e2e;
377
+ --re-shadow:
378
+ 0 10px 15px -3px rgba(0, 0, 0, 0.3), 0 4px 6px -4px rgba(0, 0, 0, 0.3);
379
+ --re-danger: #f87171;
380
+ --re-danger-hover: rgba(248, 113, 113, 0.15);
381
+ }
382
+ }
383
+
384
+ /* ----------------------------------------------------------------
385
+ * Dark mode — .dark class override
386
+ * ---------------------------------------------------------------- */
387
+
388
+ .dark {
389
+ --re-bg: #1c1c1c;
390
+ --re-border: #2e2e2e;
391
+ --re-text: #ececec;
392
+ --re-text-muted: #a0a0a0;
393
+ --re-hover: rgba(255, 255, 255, 0.06);
394
+ --re-active: rgba(255, 255, 255, 0.09);
395
+ --re-pressed: rgba(255, 255, 255, 0.09);
396
+ --re-separator: #2e2e2e;
397
+ --re-shadow:
398
+ 0 10px 15px -3px rgba(0, 0, 0, 0.3), 0 4px 6px -4px rgba(0, 0, 0, 0.3);
399
+ --re-danger: #f87171;
400
+ --re-danger-hover: rgba(248, 113, 113, 0.15);
401
+ }
402
+
403
+ /* ----------------------------------------------------------------
404
+ * Root containers
405
+ * ---------------------------------------------------------------- */
406
+
407
+ [data-re-bubble-menu] {
408
+ background: var(--re-bg);
409
+ border: 1px solid var(--re-border);
410
+ border-radius: var(--re-radius);
411
+ box-shadow: var(--re-shadow);
412
+ z-index: 50;
413
+ padding: 0.125rem;
414
+ font-family: system-ui, -apple-system, sans-serif;
415
+ font-size: 0.8125rem;
416
+ line-height: 1;
417
+ }
418
+
419
+ /* ----------------------------------------------------------------
420
+ * Toolbars (link, button, image bubble menus)
421
+ * ---------------------------------------------------------------- */
422
+
423
+ [data-re-img-bm-toolbar] > * + * {
424
+ border-left: 1px solid var(--re-border);
425
+ }
426
+
427
+ /* ----------------------------------------------------------------
428
+ * Item buttons (all bubble menus)
429
+ * ---------------------------------------------------------------- */
430
+
431
+ [data-re-bubble-menu-item],
432
+ [data-re-link-bm-item],
433
+ [data-re-btn-bm-item],
434
+ [data-re-img-bm-item] {
435
+ color: var(--re-text-muted);
436
+ border-radius: var(--re-radius-sm);
437
+ transition:
438
+ background-color 0.15s,
439
+ color 0.15s;
440
+ }
441
+
442
+ [data-re-bubble-menu-item]:hover,
443
+ [data-re-link-bm-item]:hover,
444
+ [data-re-btn-bm-item]:hover,
445
+ [data-re-img-bm-item]:hover {
446
+ background: var(--re-hover);
447
+ color: var(--re-text);
448
+ }
449
+
450
+ [data-re-bubble-menu-item]:active,
451
+ [data-re-link-bm-item]:active,
452
+ [data-re-btn-bm-item]:active,
453
+ [data-re-img-bm-item]:active {
454
+ background: var(--re-active);
455
+ }
456
+
457
+ /* Active / pressed state */
458
+ [data-re-bubble-menu-item][data-active],
459
+ [data-re-bubble-menu-item][aria-pressed="true"] {
460
+ background: var(--re-pressed);
461
+ color: var(--re-text);
462
+ }
463
+
464
+ /* ----------------------------------------------------------------
465
+ * Separator (text bubble menu)
466
+ * ---------------------------------------------------------------- */
467
+
468
+ [data-re-bubble-menu-separator] {
469
+ background: var(--re-separator);
470
+ }
471
+
472
+ /* ----------------------------------------------------------------
473
+ * Node Selector
474
+ * ---------------------------------------------------------------- */
475
+
476
+ [data-re-node-selector-trigger] {
477
+ color: var(--re-text);
478
+ border-radius: var(--re-radius-sm);
479
+ transition: background-color 0.15s;
480
+ font-weight: 500;
481
+ }
482
+
483
+ [data-re-node-selector-trigger]:hover {
484
+ background: var(--re-hover);
485
+ }
486
+
487
+ [data-re-node-selector-trigger]:active {
488
+ background: var(--re-active);
489
+ }
490
+
491
+ [data-re-node-selector-content] {
492
+ background: var(--re-bg);
493
+ border: 1px solid var(--re-border);
494
+ border-radius: var(--re-radius);
495
+ box-shadow: var(--re-shadow);
496
+ padding: 0.25rem;
497
+ margin-top: 0.25rem;
498
+ z-index: 50;
499
+ }
500
+
501
+ [data-re-node-selector-item] {
502
+ color: var(--re-text-muted);
503
+ border-radius: var(--re-radius-sm);
504
+ transition:
505
+ background-color 0.15s,
506
+ color 0.15s;
507
+ }
508
+
509
+ [data-re-node-selector-item]:hover {
510
+ background: var(--re-hover);
511
+ color: var(--re-text);
512
+ }
513
+
514
+ [data-re-node-selector-item][data-active] {
515
+ color: var(--re-text);
516
+ }
517
+
518
+ /* ----------------------------------------------------------------
519
+ * Link Selector (text bubble menu)
520
+ * ---------------------------------------------------------------- */
521
+
522
+ [data-re-link-selector-trigger] {
523
+ color: var(--re-text-muted);
524
+ border-radius: var(--re-radius-sm);
525
+ transition:
526
+ background-color 0.15s,
527
+ color 0.15s;
528
+ }
529
+
530
+ [data-re-link-selector-trigger]:hover {
531
+ background: var(--re-hover);
532
+ color: var(--re-text);
533
+ }
534
+
535
+ [data-re-link-selector-trigger][aria-pressed="true"] {
536
+ background: var(--re-pressed);
537
+ }
538
+
539
+ [data-re-link-selector-form] {
540
+ background: var(--re-bg);
541
+ border: 1px solid var(--re-border);
542
+ border-radius: var(--re-radius);
543
+ box-shadow: var(--re-shadow);
544
+ padding: 0.25rem;
545
+ }
546
+
547
+ [data-re-link-selector-input] {
548
+ color: var(--re-text);
549
+ }
550
+
551
+ [data-re-link-selector-input]::placeholder {
552
+ color: var(--re-text-muted);
553
+ }
554
+
555
+ [data-re-link-selector-apply] {
556
+ color: var(--re-text);
557
+ border-radius: var(--re-radius-sm);
558
+ transition: background-color 0.15s;
559
+ }
560
+
561
+ [data-re-link-selector-apply]:hover {
562
+ background: var(--re-hover);
563
+ }
564
+
565
+ [data-re-link-selector-unlink] {
566
+ color: var(--re-danger);
567
+ border-radius: var(--re-radius-sm);
568
+ transition: background-color 0.15s;
569
+ }
570
+
571
+ [data-re-link-selector-unlink]:hover {
572
+ background: var(--re-danger-hover);
573
+ }
574
+
575
+ /* ----------------------------------------------------------------
576
+ * Link Bubble Menu Form
577
+ * ---------------------------------------------------------------- */
578
+
579
+ [data-re-link-bm-form] {
580
+ background: var(--re-bg);
581
+ padding: 0.25rem;
582
+ }
583
+
584
+ [data-re-link-bm-input] {
585
+ color: var(--re-text);
586
+ }
587
+
588
+ [data-re-link-bm-input]::placeholder {
589
+ color: var(--re-text-muted);
590
+ }
591
+
592
+ [data-re-link-bm-apply] {
593
+ color: var(--re-text);
594
+ border-radius: var(--re-radius-sm);
595
+ transition: background-color 0.15s;
596
+ }
597
+
598
+ [data-re-link-bm-apply]:hover {
599
+ background: var(--re-hover);
600
+ }
601
+
602
+ [data-re-link-bm-unlink] {
603
+ color: var(--re-danger);
604
+ border-radius: var(--re-radius-sm);
605
+ transition: background-color 0.15s;
606
+ }
607
+
608
+ [data-re-link-bm-unlink]:hover {
609
+ background: var(--re-danger-hover);
610
+ }
611
+
612
+ /* ----------------------------------------------------------------
613
+ * Button Bubble Menu Form
614
+ * ---------------------------------------------------------------- */
615
+
616
+ [data-re-btn-bm-form] {
617
+ background: var(--re-bg);
618
+ padding: 0.25rem;
619
+ }
620
+
621
+ [data-re-btn-bm-input] {
622
+ color: var(--re-text);
623
+ }
624
+
625
+ [data-re-btn-bm-input]::placeholder {
626
+ color: var(--re-text-muted);
627
+ }
628
+
629
+ [data-re-btn-bm-apply] {
630
+ color: var(--re-text);
631
+ border-radius: var(--re-radius-sm);
632
+ transition: background-color 0.15s;
633
+ }
634
+
635
+ [data-re-btn-bm-apply]:hover {
636
+ background: var(--re-hover);
637
+ }
638
+
639
+ [data-re-btn-bm-unlink] {
640
+ color: var(--re-danger);
641
+ border-radius: var(--re-radius-sm);
642
+ transition: background-color 0.15s;
643
+ }
644
+
645
+ [data-re-btn-bm-unlink]:hover {
646
+ background: var(--re-danger-hover);
647
+ }
648
+
649
+ /* ----------------------------------------------------------------
650
+ * Slash Command
651
+ * ---------------------------------------------------------------- */
652
+
653
+ [data-re-slash-command] {
654
+ background: var(--re-bg);
655
+ border: 1px solid var(--re-border);
656
+ border-radius: var(--re-radius);
657
+ box-shadow: var(--re-shadow);
658
+ font-family: system-ui, -apple-system, sans-serif;
659
+ }
660
+
661
+ [data-re-slash-command-item] {
662
+ color: var(--re-text);
663
+ border-radius: var(--re-radius-sm);
664
+ transition: background-color 0.15s;
665
+ }
666
+
667
+ [data-re-slash-command-item]:hover {
668
+ background: var(--re-hover);
669
+ }
670
+
671
+ [data-re-slash-command-item][data-selected] {
672
+ background: var(--re-hover);
673
+ }
674
+
675
+ [data-re-slash-command-item]:active {
676
+ background: var(--re-active);
677
+ }
678
+
679
+ [data-re-slash-command-item] svg {
680
+ color: var(--re-text-muted);
681
+ }
682
+
683
+ [data-re-slash-command-category] {
684
+ color: var(--re-text-muted);
685
+ }
686
+
687
+ [data-re-slash-command-empty] {
688
+ color: var(--re-text-muted);
689
+ }
690
+
691
+ /* ----------------------------------------------------------------
692
+ * Editor content — alignment attribute
693
+ * ---------------------------------------------------------------- */
694
+
695
+ .tiptap [alignment="left"] {
696
+ text-align: left;
697
+ }
698
+
699
+ .tiptap [alignment="center"] {
700
+ text-align: center;
701
+ }
702
+
703
+ .tiptap [alignment="right"] {
704
+ text-align: right;
705
+ }
706
+
707
+ .tiptap [alignment="justify"] {
708
+ text-align: justify;
709
+ }
710
+
711
+ /* ----------------------------------------------------------------
712
+ * Editor content — columns
713
+ * ---------------------------------------------------------------- */
714
+
715
+ .tiptap .node-columns {
716
+ display: flex;
717
+ gap: 0.5rem;
718
+ width: 100%;
719
+ }
720
+
721
+ .tiptap .node-column {
722
+ flex: 1;
723
+ min-width: 0;
724
+ }
725
+
726
+ /* ----------------------------------------------------------------
727
+ * Editor content — base typography
728
+ * ---------------------------------------------------------------- */
729
+
730
+ .tiptap {
731
+ outline: none;
732
+ color: var(--re-text);
733
+ }
734
+
735
+ .tiptap p {
736
+ margin: 0.25em 0;
737
+ }
738
+
739
+ .tiptap h1,
740
+ .tiptap h2,
741
+ .tiptap h3 {
742
+ margin: 0.5em 0 0.25em;
743
+ font-weight: 700;
744
+ }
745
+
746
+ .tiptap h1 {
747
+ font-size: 2em;
748
+ }
749
+
750
+ .tiptap h2 {
751
+ font-size: 1.5em;
752
+ }
753
+
754
+ .tiptap h3 {
755
+ font-size: 1.17em;
756
+ }
757
+
758
+ .tiptap a:not(.node-button) {
759
+ color: #2563eb;
760
+ text-decoration: underline;
761
+ text-underline-offset: 2px;
762
+ cursor: text;
763
+ }
764
+
765
+ .tiptap .node-button {
766
+ display: inline-block;
767
+ padding: 0.625em 1.25em;
768
+ background-color: #000;
769
+ color: #fff;
770
+ border-radius: 0.375em;
771
+ font-weight: 500;
772
+ font-size: 0.875em;
773
+ text-decoration: none;
774
+ text-align: center;
775
+ cursor: text;
776
+ }
777
+
778
+ .tiptap blockquote {
779
+ border-left: 3px solid var(--re-border);
780
+ margin: 0.5em 0;
781
+ padding-left: 1em;
782
+ color: var(--re-text-muted);
783
+ }
784
+
785
+ .tiptap hr {
786
+ border: none;
787
+ border-top: 1px solid var(--re-border);
788
+ margin: 1em 0;
789
+ }
790
+
791
+ .tiptap code {
792
+ background: var(--re-hover);
793
+ border-radius: 0.25rem;
794
+ padding: 0.125rem 0.375rem;
795
+ font-size: 0.875em;
796
+ }
797
+
798
+ .tiptap pre {
799
+ background: var(--re-hover);
800
+ border-radius: var(--re-radius-sm);
801
+ padding: 0.75rem 1rem;
802
+ overflow-x: auto;
803
+ }
804
+
805
+ .tiptap pre code {
806
+ background: none;
807
+ padding: 0;
808
+ border-radius: 0;
809
+ }
810
+
811
+ .tiptap ul {
812
+ list-style-type: disc;
813
+ padding-left: 1.5em;
814
+ margin: 0.25em 0;
815
+ }
816
+
817
+ .tiptap ol {
818
+ list-style-type: decimal;
819
+ padding-left: 1.5em;
820
+ margin: 0.25em 0;
821
+ }
822
+
823
+ .tiptap .node-placeholder::before {
824
+ color: var(--re-text-muted);
825
+ content: attr(data-placeholder);
826
+ float: left;
827
+ height: 0;
828
+ pointer-events: none;
829
+ }
830
+
831
+
832
+ /*# sourceMappingURL=index.css.map*/