@react-email/editor 0.0.0-experimental.11 → 0.0.0-experimental.13

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.
@@ -0,0 +1,29 @@
1
+ /* Minimal functional styles for ImageBubbleMenu compound components.
2
+ * Layout and positioning only - no visual design.
3
+ * Import optionally: import '@react-email/editor/styles/image-bubble-menu.css';
4
+ */
5
+
6
+ [data-re-img-bm] {
7
+ display: flex;
8
+ align-items: center;
9
+ }
10
+
11
+ [data-re-img-bm-toolbar] {
12
+ display: flex;
13
+ align-items: center;
14
+ }
15
+
16
+ [data-re-img-bm-item] {
17
+ display: inline-flex;
18
+ align-items: center;
19
+ justify-content: center;
20
+ cursor: pointer;
21
+ border: none;
22
+ background: none;
23
+ padding: 0.5rem;
24
+ }
25
+
26
+ [data-re-img-bm-item] svg {
27
+ width: 1rem;
28
+ height: 1rem;
29
+ }
@@ -0,0 +1,540 @@
1
+ /* Default theme for @react-email/editor bubble menu primitives.
2
+ *
3
+ * Opt-in: import '@react-email/editor/themes/default.css';
4
+ *
5
+ * Override any variable on a parent element:
6
+ * .my-editor { --re-bg: #1a1a1a; --re-border: #333; }
7
+ */
8
+
9
+ /* Layer 0: layout (inlined at build time via postcss-import) */
10
+
11
+ /* Minimal functional styles for BubbleMenu compound components.
12
+ * This file handles layout and positioning only - no visual design.
13
+ * Import this optionally: import '@react-email/editor/styles/bubble-menu.css';
14
+ */
15
+
16
+ [data-re-bubble-menu] {
17
+ display: flex;
18
+ align-items: center;
19
+ }
20
+
21
+ [data-re-bubble-menu-group] {
22
+ display: flex;
23
+ align-items: center;
24
+ }
25
+
26
+ [data-re-bubble-menu-separator] {
27
+ align-self: stretch;
28
+ width: 1px;
29
+ }
30
+
31
+ [data-re-bubble-menu-item] {
32
+ display: inline-flex;
33
+ align-items: center;
34
+ justify-content: center;
35
+ cursor: pointer;
36
+ border: none;
37
+ background: none;
38
+ padding: 0.5rem;
39
+ }
40
+
41
+ [data-re-bubble-menu-item] svg {
42
+ width: 1rem;
43
+ height: 1rem;
44
+ }
45
+
46
+ [data-re-node-selector] {
47
+ position: relative;
48
+ }
49
+
50
+ [data-re-node-selector-trigger] {
51
+ display: flex;
52
+ align-items: center;
53
+ gap: 0.25rem;
54
+ cursor: pointer;
55
+ border: none;
56
+ background: none;
57
+ white-space: nowrap;
58
+ font-size: 0.875rem;
59
+ padding: 0.5rem;
60
+ }
61
+
62
+ [data-re-node-selector-trigger] svg {
63
+ width: 1rem;
64
+ height: 1rem;
65
+ }
66
+
67
+ [data-re-node-selector-content] {
68
+ display: flex;
69
+ flex-direction: column;
70
+ min-width: 10rem;
71
+ }
72
+
73
+ [data-re-node-selector-item] {
74
+ display: flex;
75
+ align-items: center;
76
+ gap: 0.5rem;
77
+ cursor: pointer;
78
+ border: none;
79
+ background: none;
80
+ padding: 0.375rem 0.75rem;
81
+ font-size: 0.875rem;
82
+ width: 100%;
83
+ text-align: left;
84
+ }
85
+
86
+ [data-re-node-selector-item] svg {
87
+ width: 0.75rem;
88
+ height: 0.75rem;
89
+ }
90
+
91
+ [data-re-link-selector] {
92
+ display: flex;
93
+ position: relative;
94
+ }
95
+
96
+ [data-re-link-selector-trigger] {
97
+ display: inline-flex;
98
+ align-items: center;
99
+ justify-content: center;
100
+ cursor: pointer;
101
+ border: none;
102
+ background: none;
103
+ padding: 0.5rem;
104
+ }
105
+
106
+ [data-re-link-selector-trigger] svg {
107
+ width: 1rem;
108
+ height: 1rem;
109
+ }
110
+
111
+ [data-re-link-selector-form] {
112
+ display: flex;
113
+ align-items: center;
114
+ gap: 0.25rem;
115
+ }
116
+
117
+ [data-re-link-selector-input] {
118
+ flex: 1;
119
+ border: none;
120
+ outline: none;
121
+ font-size: 0.875rem;
122
+ padding: 0.25rem;
123
+ background: transparent;
124
+ }
125
+
126
+ [data-re-link-selector-apply],
127
+ [data-re-link-selector-unlink] {
128
+ display: inline-flex;
129
+ align-items: center;
130
+ justify-content: center;
131
+ cursor: pointer;
132
+ border: none;
133
+ background: none;
134
+ padding: 0.25rem;
135
+ }
136
+
137
+ [data-re-link-selector-apply] svg,
138
+ [data-re-link-selector-unlink] svg {
139
+ width: 1rem;
140
+ height: 1rem;
141
+ }
142
+
143
+ /* Minimal functional styles for LinkBubbleMenu compound components.
144
+ * Layout and positioning only - no visual design.
145
+ * Import optionally: import '@react-email/editor/styles/link-bubble-menu.css';
146
+ */
147
+
148
+ [data-re-link-bm] {
149
+ display: flex;
150
+ align-items: center;
151
+ }
152
+
153
+ [data-re-link-bm-toolbar] {
154
+ display: flex;
155
+ align-items: center;
156
+ }
157
+
158
+ [data-re-link-bm-item] {
159
+ display: inline-flex;
160
+ align-items: center;
161
+ justify-content: center;
162
+ cursor: pointer;
163
+ border: none;
164
+ background: none;
165
+ padding: 0.5rem;
166
+ }
167
+
168
+ [data-re-link-bm-item] svg {
169
+ width: 1rem;
170
+ height: 1rem;
171
+ }
172
+
173
+ a[data-re-link-bm-item] {
174
+ text-decoration: none;
175
+ color: inherit;
176
+ }
177
+
178
+ [data-re-link-bm-form] {
179
+ display: flex;
180
+ align-items: center;
181
+ gap: 0.25rem;
182
+ }
183
+
184
+ [data-re-link-bm-input] {
185
+ flex: 1;
186
+ border: none;
187
+ outline: none;
188
+ font-size: 0.875rem;
189
+ padding: 0.25rem;
190
+ background: transparent;
191
+ }
192
+
193
+ [data-re-link-bm-apply],
194
+ [data-re-link-bm-unlink] {
195
+ display: inline-flex;
196
+ align-items: center;
197
+ justify-content: center;
198
+ cursor: pointer;
199
+ border: none;
200
+ background: none;
201
+ padding: 0.25rem;
202
+ }
203
+
204
+ [data-re-link-bm-apply] svg,
205
+ [data-re-link-bm-unlink] svg {
206
+ width: 1rem;
207
+ height: 1rem;
208
+ }
209
+
210
+ /* Minimal functional styles for ButtonBubbleMenu compound components.
211
+ * Layout and positioning only - no visual design.
212
+ * Import optionally: import '@react-email/editor/styles/button-bubble-menu.css';
213
+ */
214
+
215
+ [data-re-btn-bm] {
216
+ display: flex;
217
+ align-items: center;
218
+ }
219
+
220
+ [data-re-btn-bm-toolbar] {
221
+ display: flex;
222
+ align-items: center;
223
+ }
224
+
225
+ [data-re-btn-bm-item] {
226
+ display: inline-flex;
227
+ align-items: center;
228
+ justify-content: center;
229
+ cursor: pointer;
230
+ border: none;
231
+ background: none;
232
+ padding: 0.5rem;
233
+ }
234
+
235
+ [data-re-btn-bm-item] svg {
236
+ width: 1rem;
237
+ height: 1rem;
238
+ }
239
+
240
+ /* Minimal functional styles for ImageBubbleMenu compound components.
241
+ * Layout and positioning only - no visual design.
242
+ * Import optionally: import '@react-email/editor/styles/image-bubble-menu.css';
243
+ */
244
+
245
+ [data-re-img-bm] {
246
+ display: flex;
247
+ align-items: center;
248
+ }
249
+
250
+ [data-re-img-bm-toolbar] {
251
+ display: flex;
252
+ align-items: center;
253
+ }
254
+
255
+ [data-re-img-bm-item] {
256
+ display: inline-flex;
257
+ align-items: center;
258
+ justify-content: center;
259
+ cursor: pointer;
260
+ border: none;
261
+ background: none;
262
+ padding: 0.5rem;
263
+ }
264
+
265
+ [data-re-img-bm-item] svg {
266
+ width: 1rem;
267
+ height: 1rem;
268
+ }
269
+
270
+ /* ----------------------------------------------------------------
271
+ * CSS custom properties — light defaults
272
+ * ---------------------------------------------------------------- */
273
+
274
+ :root {
275
+ --re-bg: #fff;
276
+ --re-border: #e5e5e5;
277
+ --re-text: #1c1c1c;
278
+ --re-text-muted: #6b6b6b;
279
+ --re-hover: rgba(0, 0, 0, 0.04);
280
+ --re-active: rgba(0, 0, 0, 0.06);
281
+ --re-pressed: rgba(0, 0, 0, 0.06);
282
+ --re-separator: #e5e5e5;
283
+ --re-radius: 0.75rem;
284
+ --re-radius-sm: 0.5rem;
285
+ --re-shadow:
286
+ 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
287
+ --re-danger: #dc2626;
288
+ --re-danger-hover: rgba(220, 38, 38, 0.1);
289
+ }
290
+
291
+ /* ----------------------------------------------------------------
292
+ * Dark mode — prefers-color-scheme
293
+ * ---------------------------------------------------------------- */
294
+
295
+ @media (prefers-color-scheme: dark) {
296
+ :root {
297
+ --re-bg: #1c1c1c;
298
+ --re-border: #2e2e2e;
299
+ --re-text: #ececec;
300
+ --re-text-muted: #a0a0a0;
301
+ --re-hover: rgba(255, 255, 255, 0.06);
302
+ --re-active: rgba(255, 255, 255, 0.09);
303
+ --re-pressed: rgba(255, 255, 255, 0.09);
304
+ --re-separator: #2e2e2e;
305
+ --re-shadow:
306
+ 0 10px 15px -3px rgba(0, 0, 0, 0.3), 0 4px 6px -4px rgba(0, 0, 0, 0.3);
307
+ --re-danger: #f87171;
308
+ --re-danger-hover: rgba(248, 113, 113, 0.15);
309
+ }
310
+ }
311
+
312
+ /* ----------------------------------------------------------------
313
+ * Dark mode — .dark class override
314
+ * ---------------------------------------------------------------- */
315
+
316
+ .dark {
317
+ --re-bg: #1c1c1c;
318
+ --re-border: #2e2e2e;
319
+ --re-text: #ececec;
320
+ --re-text-muted: #a0a0a0;
321
+ --re-hover: rgba(255, 255, 255, 0.06);
322
+ --re-active: rgba(255, 255, 255, 0.09);
323
+ --re-pressed: rgba(255, 255, 255, 0.09);
324
+ --re-separator: #2e2e2e;
325
+ --re-shadow:
326
+ 0 10px 15px -3px rgba(0, 0, 0, 0.3), 0 4px 6px -4px rgba(0, 0, 0, 0.3);
327
+ --re-danger: #f87171;
328
+ --re-danger-hover: rgba(248, 113, 113, 0.15);
329
+ }
330
+
331
+ /* ----------------------------------------------------------------
332
+ * Root containers
333
+ * ---------------------------------------------------------------- */
334
+
335
+ [data-re-bubble-menu],
336
+ [data-re-link-bm],
337
+ [data-re-btn-bm],
338
+ [data-re-img-bm] {
339
+ background: var(--re-bg);
340
+ border: 1px solid var(--re-border);
341
+ border-radius: var(--re-radius);
342
+ box-shadow: var(--re-shadow);
343
+ overflow: hidden;
344
+ }
345
+
346
+ /* ----------------------------------------------------------------
347
+ * Toolbars (link, button, image bubble menus)
348
+ * ---------------------------------------------------------------- */
349
+
350
+ [data-re-link-bm-toolbar] > * + *,
351
+ [data-re-btn-bm-toolbar] > * + *,
352
+ [data-re-img-bm-toolbar] > * + * {
353
+ border-left: 1px solid var(--re-border);
354
+ }
355
+
356
+ /* ----------------------------------------------------------------
357
+ * Item groups (text bubble menu)
358
+ * ---------------------------------------------------------------- */
359
+
360
+ [data-re-bubble-menu-group] + [data-re-bubble-menu-group] {
361
+ border-left: 1px solid var(--re-border);
362
+ }
363
+
364
+ /* ----------------------------------------------------------------
365
+ * Item buttons (all bubble menus)
366
+ * ---------------------------------------------------------------- */
367
+
368
+ [data-re-bubble-menu-item],
369
+ [data-re-link-bm-item],
370
+ [data-re-btn-bm-item],
371
+ [data-re-img-bm-item] {
372
+ color: var(--re-text);
373
+ transition: background-color 0.15s;
374
+ }
375
+
376
+ [data-re-bubble-menu-item]:hover,
377
+ [data-re-link-bm-item]:hover,
378
+ [data-re-btn-bm-item]:hover,
379
+ [data-re-img-bm-item]:hover {
380
+ background: var(--re-hover);
381
+ }
382
+
383
+ [data-re-bubble-menu-item]:active,
384
+ [data-re-link-bm-item]:active,
385
+ [data-re-btn-bm-item]:active,
386
+ [data-re-img-bm-item]:active {
387
+ background: var(--re-active);
388
+ }
389
+
390
+ /* Active / pressed state */
391
+
392
+ [data-re-bubble-menu-item][data-active],
393
+ [data-re-bubble-menu-item][aria-pressed="true"] {
394
+ background: var(--re-pressed);
395
+ color: var(--re-text);
396
+ }
397
+
398
+ /* ----------------------------------------------------------------
399
+ * Separator (text bubble menu)
400
+ * ---------------------------------------------------------------- */
401
+
402
+ [data-re-bubble-menu-separator] {
403
+ background: var(--re-separator);
404
+ }
405
+
406
+ /* ----------------------------------------------------------------
407
+ * Node Selector
408
+ * ---------------------------------------------------------------- */
409
+
410
+ [data-re-node-selector-trigger] {
411
+ color: var(--re-text);
412
+ transition: background-color 0.15s;
413
+ }
414
+
415
+ [data-re-node-selector-trigger]:hover {
416
+ background: var(--re-hover);
417
+ }
418
+
419
+ [data-re-node-selector-trigger]:active {
420
+ background: var(--re-active);
421
+ }
422
+
423
+ [data-re-node-selector-content] {
424
+ background: var(--re-bg);
425
+ border: 1px solid var(--re-border);
426
+ border-radius: var(--re-radius);
427
+ box-shadow: var(--re-shadow);
428
+ padding: 0.25rem 0;
429
+ margin-top: 0.25rem;
430
+ }
431
+
432
+ [data-re-node-selector-item] {
433
+ color: var(--re-text-muted);
434
+ border-radius: var(--re-radius-sm);
435
+ transition:
436
+ background-color 0.15s,
437
+ color 0.15s;
438
+ }
439
+
440
+ [data-re-node-selector-item]:hover {
441
+ background: var(--re-hover);
442
+ color: var(--re-text);
443
+ }
444
+
445
+ [data-re-node-selector-item][data-active] {
446
+ color: var(--re-text);
447
+ }
448
+
449
+ /* ----------------------------------------------------------------
450
+ * Link Selector (text bubble menu)
451
+ * ---------------------------------------------------------------- */
452
+
453
+ [data-re-link-selector-trigger] {
454
+ color: var(--re-text);
455
+ transition: background-color 0.15s;
456
+ }
457
+
458
+ [data-re-link-selector-trigger]:hover {
459
+ background: var(--re-hover);
460
+ }
461
+
462
+ [data-re-link-selector-trigger][aria-pressed="true"] {
463
+ background: var(--re-pressed);
464
+ }
465
+
466
+ [data-re-link-selector-form] {
467
+ background: var(--re-bg);
468
+ border: 1px solid var(--re-border);
469
+ border-radius: var(--re-radius);
470
+ box-shadow: var(--re-shadow);
471
+ padding: 0.25rem;
472
+ }
473
+
474
+ [data-re-link-selector-input] {
475
+ color: var(--re-text);
476
+ }
477
+
478
+ [data-re-link-selector-input]::placeholder {
479
+ color: var(--re-text-muted);
480
+ }
481
+
482
+ [data-re-link-selector-apply] {
483
+ color: var(--re-text);
484
+ border-radius: var(--re-radius-sm);
485
+ transition: background-color 0.15s;
486
+ }
487
+
488
+ [data-re-link-selector-apply]:hover {
489
+ background: var(--re-hover);
490
+ }
491
+
492
+ [data-re-link-selector-unlink] {
493
+ color: var(--re-danger);
494
+ border-radius: var(--re-radius-sm);
495
+ transition: background-color 0.15s;
496
+ }
497
+
498
+ [data-re-link-selector-unlink]:hover {
499
+ background: var(--re-danger-hover);
500
+ }
501
+
502
+ /* ----------------------------------------------------------------
503
+ * Link Bubble Menu Form
504
+ * ---------------------------------------------------------------- */
505
+
506
+ [data-re-link-bm-form] {
507
+ background: var(--re-bg);
508
+ border: 1px solid var(--re-border);
509
+ border-radius: var(--re-radius);
510
+ box-shadow: var(--re-shadow);
511
+ padding: 0.25rem;
512
+ }
513
+
514
+ [data-re-link-bm-input] {
515
+ color: var(--re-text);
516
+ }
517
+
518
+ [data-re-link-bm-input]::placeholder {
519
+ color: var(--re-text-muted);
520
+ }
521
+
522
+ [data-re-link-bm-apply] {
523
+ color: var(--re-text);
524
+ border-radius: var(--re-radius-sm);
525
+ transition: background-color 0.15s;
526
+ }
527
+
528
+ [data-re-link-bm-apply]:hover {
529
+ background: var(--re-hover);
530
+ }
531
+
532
+ [data-re-link-bm-unlink] {
533
+ color: var(--re-danger);
534
+ border-radius: var(--re-radius-sm);
535
+ transition: background-color 0.15s;
536
+ }
537
+
538
+ [data-re-link-bm-unlink]:hover {
539
+ background: var(--re-danger-hover);
540
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-email/editor",
3
- "version": "0.0.0-experimental.11",
3
+ "version": "0.0.0-experimental.13",
4
4
  "description": "",
5
5
  "sideEffects": [
6
6
  "**/*.css"
@@ -23,7 +23,10 @@
23
23
  }
24
24
  },
25
25
  "./styles/bubble-menu.css": "./dist/ui/bubble-menu/bubble-menu.css",
26
- "./styles/link-bubble-menu.css": "./dist/ui/link-bubble-menu/link-bubble-menu.css"
26
+ "./styles/link-bubble-menu.css": "./dist/ui/link-bubble-menu/link-bubble-menu.css",
27
+ "./styles/button-bubble-menu.css": "./dist/ui/button-bubble-menu/button-bubble-menu.css",
28
+ "./styles/image-bubble-menu.css": "./dist/ui/image-bubble-menu/image-bubble-menu.css",
29
+ "./themes/default.css": "./dist/ui/themes/default.css"
27
30
  },
28
31
  "license": "MIT",
29
32
  "repository": {
@@ -60,6 +63,9 @@
60
63
  "devDependencies": {
61
64
  "@testing-library/react": "^16.0.0",
62
65
  "@types/prismjs": "1.26.5",
66
+ "postcss": "8.5.6",
67
+ "postcss-import": "16.1.1",
68
+ "tsx": "4.21.0",
63
69
  "typescript": "5.8.3",
64
70
  "tsconfig": "0.0.0"
65
71
  },
@@ -68,7 +74,7 @@
68
74
  },
69
75
  "scripts": {
70
76
  "build": "tsdown src/index.ts --format esm,cjs --dts --external react && pnpm run build:css",
71
- "build:css": "node scripts/copy-css.mjs",
77
+ "build:css": "tsx scripts/copy-css.ts",
72
78
  "build:watch": "tsdown src/index.ts --format esm,cjs --dts --external react --watch",
73
79
  "clean": "rm -rf dist",
74
80
  "test": "vitest run",
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/core/email-node.ts","../src/core/event-bus.ts","../src/extensions/code-block.tsx","../src/extensions/preview-text.ts","../src/extensions/bold.ts","../src/extensions/table.tsx","../src/extensions/button.tsx","../src/extensions/alignment-attribute.tsx","../src/extensions/style-attribute.tsx","../src/extensions/class-attribute.tsx","../src/extensions/max-nesting.ts","../src/extensions/body.tsx","../src/extensions/columns.tsx","../src/extensions/div.tsx","../src/extensions/placeholder.ts","../src/extensions/preserved-style.ts","../src/extensions/section.tsx","../src/extensions/sup.ts","../src/extensions/uppercase.ts","../src/extensions/index.ts","../src/ui/bubble-menu/create-mark-bubble-item.tsx","../src/ui/bubble-menu/align-center.tsx","../src/ui/bubble-menu/align-left.tsx","../src/ui/bubble-menu/align-right.tsx","../src/ui/bubble-menu/default.tsx","../src/ui/bubble-menu/group.tsx","../src/ui/bubble-menu/item.tsx","../src/ui/bubble-menu/link-selector.tsx","../src/ui/bubble-menu/node-selector.tsx","../src/ui/bubble-menu/root.tsx","../src/ui/bubble-menu/separator.tsx","../src/ui/bubble-menu/bold.tsx","../src/ui/bubble-menu/code.tsx","../src/ui/bubble-menu/italic.tsx","../src/ui/bubble-menu/strike.tsx","../src/ui/bubble-menu/underline.tsx","../src/ui/bubble-menu/uppercase.tsx","../src/ui/bubble-menu/index.ts","../src/ui/button-bubble-menu/edit-link.tsx","../src/ui/button-bubble-menu/root.tsx","../src/ui/button-bubble-menu/toolbar.tsx","../src/ui/button-bubble-menu/context.tsx","../src/ui/button-bubble-menu/index.ts","../src/ui/link-bubble-menu/edit-link.tsx","../src/ui/link-bubble-menu/form.tsx","../src/ui/link-bubble-menu/open-link.tsx","../src/ui/link-bubble-menu/root.tsx","../src/ui/link-bubble-menu/toolbar.tsx","../src/ui/link-bubble-menu/unlink.tsx","../src/ui/link-bubble-menu/context.tsx","../src/ui/link-bubble-menu/index.ts","../src/utils/set-text-alignment.ts"],"sourcesContent":[],"mappings":"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"}