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

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,131 @@
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
+ }
10
+
11
+ [data-re-bubble-menu-group] {
12
+ display: flex;
13
+ align-items: center;
14
+ }
15
+
16
+ [data-re-bubble-menu-separator] {
17
+ align-self: stretch;
18
+ width: 1px;
19
+ }
20
+
21
+ [data-re-bubble-menu-item] {
22
+ display: inline-flex;
23
+ align-items: center;
24
+ justify-content: center;
25
+ cursor: pointer;
26
+ border: none;
27
+ background: none;
28
+ padding: 0.5rem;
29
+ }
30
+
31
+ [data-re-bubble-menu-item] svg {
32
+ width: 1rem;
33
+ height: 1rem;
34
+ }
35
+
36
+ [data-re-node-selector] {
37
+ position: relative;
38
+ }
39
+
40
+ [data-re-node-selector-trigger] {
41
+ display: flex;
42
+ align-items: center;
43
+ gap: 0.25rem;
44
+ cursor: pointer;
45
+ border: none;
46
+ background: none;
47
+ white-space: nowrap;
48
+ font-size: 0.875rem;
49
+ padding: 0.5rem;
50
+ }
51
+
52
+ [data-re-node-selector-trigger] svg {
53
+ width: 1rem;
54
+ height: 1rem;
55
+ }
56
+
57
+ [data-re-node-selector-content] {
58
+ display: flex;
59
+ flex-direction: column;
60
+ min-width: 10rem;
61
+ }
62
+
63
+ [data-re-node-selector-item] {
64
+ display: flex;
65
+ align-items: center;
66
+ gap: 0.5rem;
67
+ cursor: pointer;
68
+ border: none;
69
+ background: none;
70
+ padding: 0.375rem 0.75rem;
71
+ font-size: 0.875rem;
72
+ width: 100%;
73
+ text-align: left;
74
+ }
75
+
76
+ [data-re-node-selector-item] svg {
77
+ width: 0.75rem;
78
+ height: 0.75rem;
79
+ }
80
+
81
+ [data-re-link-selector] {
82
+ display: flex;
83
+ position: relative;
84
+ }
85
+
86
+ [data-re-link-selector-trigger] {
87
+ display: inline-flex;
88
+ align-items: center;
89
+ justify-content: center;
90
+ cursor: pointer;
91
+ border: none;
92
+ background: none;
93
+ padding: 0.5rem;
94
+ }
95
+
96
+ [data-re-link-selector-trigger] svg {
97
+ width: 1rem;
98
+ height: 1rem;
99
+ }
100
+
101
+ [data-re-link-selector-form] {
102
+ display: flex;
103
+ align-items: center;
104
+ gap: 0.25rem;
105
+ }
106
+
107
+ [data-re-link-selector-input] {
108
+ flex: 1;
109
+ border: none;
110
+ outline: none;
111
+ font-size: 0.875rem;
112
+ padding: 0.25rem;
113
+ background: transparent;
114
+ }
115
+
116
+ [data-re-link-selector-apply],
117
+ [data-re-link-selector-unlink] {
118
+ display: inline-flex;
119
+ align-items: center;
120
+ justify-content: center;
121
+ cursor: pointer;
122
+ border: none;
123
+ background: none;
124
+ padding: 0.25rem;
125
+ }
126
+
127
+ [data-re-link-selector-apply] svg,
128
+ [data-re-link-selector-unlink] svg {
129
+ width: 1rem;
130
+ height: 1rem;
131
+ }
@@ -0,0 +1,29 @@
1
+ /* Minimal functional styles for ButtonBubbleMenu compound components.
2
+ * Layout and positioning only - no visual design.
3
+ * Import optionally: import '@react-email/editor/styles/button-bubble-menu.css';
4
+ */
5
+
6
+ [data-re-btn-bm] {
7
+ display: flex;
8
+ align-items: center;
9
+ }
10
+
11
+ [data-re-btn-bm-toolbar] {
12
+ display: flex;
13
+ align-items: center;
14
+ }
15
+
16
+ [data-re-btn-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-btn-bm-item] svg {
27
+ width: 1rem;
28
+ height: 1rem;
29
+ }
@@ -0,0 +1,66 @@
1
+ /* Minimal functional styles for LinkBubbleMenu compound components.
2
+ * Layout and positioning only - no visual design.
3
+ * Import optionally: import '@react-email/editor/styles/link-bubble-menu.css';
4
+ */
5
+
6
+ [data-re-link-bm] {
7
+ display: flex;
8
+ align-items: center;
9
+ }
10
+
11
+ [data-re-link-bm-toolbar] {
12
+ display: flex;
13
+ align-items: center;
14
+ }
15
+
16
+ [data-re-link-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-link-bm-item] svg {
27
+ width: 1rem;
28
+ height: 1rem;
29
+ }
30
+
31
+ a[data-re-link-bm-item] {
32
+ text-decoration: none;
33
+ color: inherit;
34
+ }
35
+
36
+ [data-re-link-bm-form] {
37
+ display: flex;
38
+ align-items: center;
39
+ gap: 0.25rem;
40
+ }
41
+
42
+ [data-re-link-bm-input] {
43
+ flex: 1;
44
+ border: none;
45
+ outline: none;
46
+ font-size: 0.875rem;
47
+ padding: 0.25rem;
48
+ background: transparent;
49
+ }
50
+
51
+ [data-re-link-bm-apply],
52
+ [data-re-link-bm-unlink] {
53
+ display: inline-flex;
54
+ align-items: center;
55
+ justify-content: center;
56
+ cursor: pointer;
57
+ border: none;
58
+ background: none;
59
+ padding: 0.25rem;
60
+ }
61
+
62
+ [data-re-link-bm-apply] svg,
63
+ [data-re-link-bm-unlink] svg {
64
+ width: 1rem;
65
+ height: 1rem;
66
+ }
package/package.json CHANGED
@@ -1,8 +1,10 @@
1
1
  {
2
2
  "name": "@react-email/editor",
3
- "version": "0.0.0-experimental.1",
3
+ "version": "0.0.0-experimental.11",
4
4
  "description": "",
5
- "sideEffects": false,
5
+ "sideEffects": [
6
+ "**/*.css"
7
+ ],
6
8
  "main": "./dist/index.js",
7
9
  "module": "./dist/index.mjs",
8
10
  "types": "./dist/index.d.ts",
@@ -19,7 +21,9 @@
19
21
  "types": "./dist/index.d.ts",
20
22
  "default": "./dist/index.js"
21
23
  }
22
- }
24
+ },
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"
23
27
  },
24
28
  "license": "MIT",
25
29
  "repository": {
@@ -35,20 +39,26 @@
35
39
  "node": ">=20.0.0"
36
40
  },
37
41
  "peerDependencies": {
42
+ "@radix-ui/react-popover": "^1.0.0",
43
+ "lucide-react": ">=0.300.0",
38
44
  "react": "^18.0 || ^19.0 || ^19.0.0-rc",
39
45
  "@react-email/components": "1.0.8"
40
46
  },
41
47
  "dependencies": {
42
- "@tiptap/core": "^3.10.7",
43
- "@tiptap/extension-code-block": "^3.10.7",
44
- "@tiptap/extension-heading": "^3.10.7",
45
- "@tiptap/extension-horizontal-rule": "^3.10.7",
46
- "@tiptap/pm": "^3.10.7",
47
- "@tiptap/react": "^3.10.7",
48
+ "@tiptap/core": "^3.17.1",
49
+ "@tiptap/extension-code-block": "^3.17.1",
50
+ "@tiptap/extension-heading": "^3.17.1",
51
+ "@tiptap/extension-horizontal-rule": "^3.17.1",
52
+ "@tiptap/extension-placeholder": "^3.17.1",
53
+ "@tiptap/html": "^3.17.1",
54
+ "@tiptap/pm": "^3.17.1",
55
+ "@tiptap/react": "^3.17.1",
56
+ "@tiptap/starter-kit": "^3.17.1",
48
57
  "hast-util-from-html": "^2.0.3",
49
58
  "prismjs": "^1.30.0"
50
59
  },
51
60
  "devDependencies": {
61
+ "@testing-library/react": "^16.0.0",
52
62
  "@types/prismjs": "1.26.5",
53
63
  "typescript": "5.8.3",
54
64
  "tsconfig": "0.0.0"
@@ -57,7 +67,8 @@
57
67
  "access": "public"
58
68
  },
59
69
  "scripts": {
60
- "build": "tsdown src/index.ts --format esm,cjs --dts --external react",
70
+ "build": "tsdown src/index.ts --format esm,cjs --dts --external react && pnpm run build:css",
71
+ "build:css": "node scripts/copy-css.mjs",
61
72
  "build:watch": "tsdown src/index.ts --format esm,cjs --dts --external react --watch",
62
73
  "clean": "rm -rf dist",
63
74
  "test": "vitest run",