@elementor/editor 0.11.1 → 0.12.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/CHANGELOG.md +27 -150
- package/dist/index.js +13 -22
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +18 -23
- package/dist/index.mjs.map +1 -1
- package/package.json +52 -45
- package/src/components/theme-provider.tsx +1 -5
- package/src/init.tsx +4 -3
- package/src/locations.ts +2 -8
- package/src/sync/use-color-scheme.ts +24 -25
- package/src/components/__tests__/shell.test.tsx +0 -20
- package/src/sync/__tests__/use-color-scheme.test.ts +0 -86
- package/typedoc.config.js +0 -6
package/CHANGELOG.md
CHANGED
|
@@ -3,302 +3,179 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
# [0.12.0](https://github.com/elementor/elementor-packages/compare/@elementor/editor@0.11.2...@elementor/editor@0.12.0) (2024-08-05)
|
|
8
7
|
|
|
9
8
|
### Bug Fixes
|
|
10
9
|
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
- publish only necessary files to npm ([#226](https://github.com/elementor/elementor-packages/issues/226)) ([d808e2f](https://github.com/elementor/elementor-packages/commit/d808e2f60eb7ca2d7b8560d0b79c0e62c2f969a8))
|
|
13
11
|
|
|
12
|
+
### Features
|
|
14
13
|
|
|
14
|
+
- **editor-editing-panel:** change textarea component [EDS-311] ([#221](https://github.com/elementor/elementor-packages/issues/221)) ([a9ab0d5](https://github.com/elementor/elementor-packages/commit/a9ab0d53e87086e323c4f024dca0eae93005e1a1))
|
|
15
|
+
- **editor-editing-panel:** settings and style tabs [EDS-277] ([#217](https://github.com/elementor/elementor-packages/issues/217)) ([c623797](https://github.com/elementor/elementor-packages/commit/c6237974d9940a2b58bdd1df3d835dc828e323f4))
|
|
15
16
|
|
|
17
|
+
## [0.11.2](https://github.com/elementor/elementor-packages/compare/@elementor/editor@0.11.1...@elementor/editor@0.11.2) (2024-07-16)
|
|
16
18
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
+
**Note:** Version bump only for package @elementor/editor
|
|
19
20
|
|
|
20
|
-
|
|
21
|
+
## [0.11.1](https://github.com/elementor/elementor-packages/compare/@elementor/editor@0.11.0...@elementor/editor@0.11.1) (2024-07-16)
|
|
21
22
|
|
|
22
|
-
|
|
23
|
+
### Bug Fixes
|
|
23
24
|
|
|
25
|
+
- **editor:** remove extensions dependency [EDS-263] ([#204](https://github.com/elementor/elementor-packages/issues/204)) ([22ca6a4](https://github.com/elementor/elementor-packages/commit/22ca6a423818c479ef7fafc177bba6e45dd697ff))
|
|
24
26
|
|
|
27
|
+
# [0.11.0](https://github.com/elementor/elementor-packages/compare/@elementor/editor@0.10.13...@elementor/editor@0.11.0) (2024-07-08)
|
|
25
28
|
|
|
29
|
+
### Features
|
|
26
30
|
|
|
31
|
+
- **editor-editing-panel:** create editor panel package [EDS-226] ([#188](https://github.com/elementor/elementor-packages/issues/188)) ([e361aed](https://github.com/elementor/elementor-packages/commit/e361aed023c3a5d4dd329b354f1403de238da20e))
|
|
27
32
|
|
|
28
33
|
## [0.10.13](https://github.com/elementor/elementor-packages/compare/@elementor/editor@0.10.12...@elementor/editor@0.10.13) (2024-07-03)
|
|
29
34
|
|
|
30
35
|
**Note:** Version bump only for package @elementor/editor
|
|
31
36
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
37
|
## [0.10.12](https://github.com/elementor/elementor-packages/compare/@elementor/editor@0.10.11...@elementor/editor@0.10.12) (2024-07-02)
|
|
37
38
|
|
|
38
39
|
**Note:** Version bump only for package @elementor/editor
|
|
39
40
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
41
|
## [0.10.11](https://github.com/elementor/elementor-packages/compare/@elementor/editor@0.10.10...@elementor/editor@0.10.11) (2024-05-09)
|
|
45
42
|
|
|
46
43
|
**Note:** Version bump only for package @elementor/editor
|
|
47
44
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
45
|
## [0.10.10](https://github.com/elementor/elementor-packages/compare/@elementor/editor@0.10.9...@elementor/editor@0.10.10) (2024-05-07)
|
|
53
46
|
|
|
54
47
|
**Note:** Version bump only for package @elementor/editor
|
|
55
48
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
49
|
## [0.10.9](https://github.com/elementor/elementor-packages/compare/@elementor/editor@0.10.8...@elementor/editor@0.10.9) (2024-04-16)
|
|
61
50
|
|
|
62
51
|
**Note:** Version bump only for package @elementor/editor
|
|
63
52
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
53
|
## [0.10.8](https://github.com/elementor/elementor-packages/compare/@elementor/editor@0.10.7...@elementor/editor@0.10.8) (2024-02-28)
|
|
69
54
|
|
|
70
55
|
**Note:** Version bump only for package @elementor/editor
|
|
71
56
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
57
|
## [0.10.7](https://github.com/elementor/elementor-packages/compare/@elementor/editor@0.10.6...@elementor/editor@0.10.7) (2024-02-22)
|
|
77
58
|
|
|
78
59
|
**Note:** Version bump only for package @elementor/editor
|
|
79
60
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
61
|
## [0.10.6](https://github.com/elementor/elementor-packages/compare/@elementor/editor@0.10.5...@elementor/editor@0.10.6) (2024-01-29)
|
|
85
62
|
|
|
86
63
|
**Note:** Version bump only for package @elementor/editor
|
|
87
64
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
65
|
## [0.10.5](https://github.com/elementor/elementor-packages/compare/@elementor/editor@0.10.4...@elementor/editor@0.10.5) (2023-11-07)
|
|
93
66
|
|
|
94
67
|
**Note:** Version bump only for package @elementor/editor
|
|
95
68
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
69
|
## [0.10.4](https://github.com/elementor/elementor-packages/compare/@elementor/editor@0.10.3...@elementor/editor@0.10.4) (2023-11-02)
|
|
101
70
|
|
|
102
71
|
**Note:** Version bump only for package @elementor/editor
|
|
103
72
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
73
|
## [0.10.3](https://github.com/elementor/elementor-packages/compare/@elementor/editor@0.10.2...@elementor/editor@0.10.3) (2023-10-19)
|
|
109
74
|
|
|
110
75
|
**Note:** Version bump only for package @elementor/editor
|
|
111
76
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
77
|
## [0.10.2](https://github.com/elementor/elementor-packages/compare/@elementor/editor@0.10.1...@elementor/editor@0.10.2) (2023-10-19)
|
|
117
78
|
|
|
118
79
|
**Note:** Version bump only for package @elementor/editor
|
|
119
80
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
81
|
## [0.10.1](https://github.com/elementor/elementor-packages/compare/@elementor/editor@0.10.0...@elementor/editor@0.10.1) (2023-09-26)
|
|
125
82
|
|
|
126
83
|
**Note:** Version bump only for package @elementor/editor
|
|
127
84
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
85
|
# [0.10.0](https://github.com/elementor/elementor-packages/compare/@elementor/editor@0.9.0...@elementor/editor@0.10.0) (2023-09-14)
|
|
133
86
|
|
|
134
|
-
|
|
135
87
|
### Features
|
|
136
88
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
89
|
+
- **v1-adapters:** mark private functions [ED-12029] ([#122](https://github.com/elementor/elementor-packages/issues/122)) ([2e79ccc](https://github.com/elementor/elementor-packages/commit/2e79ccc87add5f0508b5a142f9f6d832b4657062))
|
|
142
90
|
|
|
143
91
|
# [0.9.0](https://github.com/elementor/elementor-packages/compare/@elementor/editor@0.8.1...@elementor/editor@0.9.0) (2023-09-11)
|
|
144
92
|
|
|
145
|
-
|
|
146
93
|
### Features
|
|
147
94
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
95
|
+
- **editor-documents:** mark experimental functions [ED-12066] ([#112](https://github.com/elementor/elementor-packages/issues/112)) ([f4b7a9a](https://github.com/elementor/elementor-packages/commit/f4b7a9ac7953a2b48062349495acff05b5640de3))
|
|
96
|
+
- **store:** mark experimental functions [ED-12070] ([#114](https://github.com/elementor/elementor-packages/issues/114)) ([d790829](https://github.com/elementor/elementor-packages/commit/d79082911195c75f6d3a89a5619b234e2f5ce158))
|
|
154
97
|
|
|
155
98
|
## [0.8.1](https://github.com/elementor/elementor-packages/compare/@elementor/editor@0.8.0...@elementor/editor@0.8.1) (2023-08-02)
|
|
156
99
|
|
|
157
100
|
**Note:** Version bump only for package @elementor/editor
|
|
158
101
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
102
|
# [0.8.0](https://github.com/elementor/elementor-packages/compare/@elementor/editor@0.7.3...@elementor/editor@0.8.0) (2023-08-01)
|
|
164
103
|
|
|
165
|
-
|
|
166
104
|
### Features
|
|
167
105
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
106
|
+
- **app-bar:** introduce integrations menu [ED-11437] ([#93](https://github.com/elementor/elementor-packages/issues/93)) ([507f367](https://github.com/elementor/elementor-packages/commit/507f367ea54e80ed29c22b64fe93f15353327c21))
|
|
173
107
|
|
|
174
108
|
## [0.7.3](https://github.com/elementor/elementor-packages/compare/@elementor/editor@0.7.2...@elementor/editor@0.7.3) (2023-07-17)
|
|
175
109
|
|
|
176
110
|
**Note:** Version bump only for package @elementor/editor
|
|
177
111
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
112
|
## [0.7.2](https://github.com/elementor/elementor-packages/compare/@elementor/editor@0.7.1...@elementor/editor@0.7.2) (2023-07-17)
|
|
183
113
|
|
|
184
114
|
**Note:** Version bump only for package @elementor/editor
|
|
185
115
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
116
|
## [0.7.1](https://github.com/elementor/elementor-packages/compare/@elementor/editor@0.7.0...@elementor/editor@0.7.1) (2023-06-29)
|
|
191
117
|
|
|
192
118
|
**Note:** Version bump only for package @elementor/editor
|
|
193
119
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
120
|
# [0.7.0](https://github.com/elementor/elementor-packages/compare/@elementor/editor@0.6.2...@elementor/editor@0.7.0) (2023-06-28)
|
|
199
121
|
|
|
200
|
-
|
|
201
122
|
### Features
|
|
202
123
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
124
|
+
- **query:** add support for React Query [ED-11193] ([#62](https://github.com/elementor/elementor-packages/issues/62)) ([d50db2f](https://github.com/elementor/elementor-packages/commit/d50db2f4b310e644ddc154620bef1a850764d9a2))
|
|
208
125
|
|
|
209
126
|
## [0.6.2](https://github.com/elementor/elementor-packages/compare/@elementor/editor@0.6.1...@elementor/editor@0.6.2) (2023-06-25)
|
|
210
127
|
|
|
211
|
-
|
|
212
128
|
### Bug Fixes
|
|
213
129
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
130
|
+
- **editor:** document query parameters are not synced properly [ED-11024] ([#54](https://github.com/elementor/elementor-packages/issues/54)) ([4c17080](https://github.com/elementor/elementor-packages/commit/4c17080a7cecec7c807954e9381fb7c840e51ea4))
|
|
219
131
|
|
|
220
132
|
## [0.6.1](https://github.com/elementor/elementor-packages/compare/@elementor/editor@0.6.0...@elementor/editor@0.6.1) (2023-06-11)
|
|
221
133
|
|
|
222
134
|
**Note:** Version bump only for package @elementor/editor
|
|
223
135
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
136
|
# [0.6.0](https://github.com/elementor/elementor-packages/compare/@elementor/editor@0.5.1...@elementor/editor@0.6.0) (2023-06-06)
|
|
229
137
|
|
|
230
|
-
|
|
231
138
|
### Features
|
|
232
139
|
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
140
|
+
- drop support for React 17 [ED-10982] ([#50](https://github.com/elementor/elementor-packages/issues/50)) ([59c576c](https://github.com/elementor/elementor-packages/commit/59c576ca218947dc0992616311d4d399a20e91a6))
|
|
238
141
|
|
|
239
142
|
## [0.5.1](https://github.com/elementor/elementor-packages/compare/@elementor/editor@0.5.0...@elementor/editor@0.5.1) (2023-06-05)
|
|
240
143
|
|
|
241
144
|
**Note:** Version bump only for package @elementor/editor
|
|
242
145
|
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
146
|
# [0.5.0](https://github.com/elementor/elementor-packages/compare/@elementor/editor@0.4.0...@elementor/editor@0.5.0) (2023-06-01)
|
|
248
147
|
|
|
249
|
-
|
|
250
148
|
### Features
|
|
251
149
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
150
|
+
- add support for React 18 [ED-10905] ([#46](https://github.com/elementor/elementor-packages/issues/46)) ([c8915c6](https://github.com/elementor/elementor-packages/commit/c8915c6ea62550bcdeb5c8a576f311bedc35bcad))
|
|
257
151
|
|
|
258
152
|
# [0.4.0](https://github.com/elementor/elementor-packages/compare/@elementor/editor@0.3.0...@elementor/editor@0.4.0) (2023-05-30)
|
|
259
153
|
|
|
260
|
-
|
|
261
154
|
### Features
|
|
262
155
|
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
156
|
+
- **editor-documents:** sync document name with V1 [ED-9930] ([#45](https://github.com/elementor/elementor-packages/issues/45)) ([b4d7250](https://github.com/elementor/elementor-packages/commit/b4d7250fb5ed03e21dafcf76a82756cf086ce212))
|
|
268
157
|
|
|
269
158
|
# 0.3.0 (2023-05-21)
|
|
270
159
|
|
|
271
|
-
|
|
272
160
|
### Features
|
|
273
161
|
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
162
|
+
- **editor-site-navigation:** change post without refresh [ED-10713] ([#39](https://github.com/elementor/elementor-packages/issues/39)) ([b72e82f](https://github.com/elementor/elementor-packages/commit/b72e82f9adb9c1237300cbf603f33f268f9f0400))
|
|
163
|
+
- **locations:** change api to support props for slots [ED-10730] ([#38](https://github.com/elementor/elementor-packages/issues/38)) ([44bec3c](https://github.com/elementor/elementor-packages/commit/44bec3cda1020037ba7105c6f05ce4baa8e3b376))
|
|
278
164
|
|
|
279
165
|
## 0.2.1 (2023-05-11)
|
|
280
166
|
|
|
281
|
-
|
|
282
167
|
### Bug Fixes
|
|
283
168
|
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
169
|
+
- **editor-app-bar:** make save options button disabled in site-settings [ED-10221] ([#30](https://github.com/elementor/elementor-packages/issues/30)) ([1991096](https://github.com/elementor/elementor-packages/commit/1991096115efeae7bc3648e4889899b85d7328d6))
|
|
287
170
|
|
|
288
171
|
# 0.2.0 (2023-05-09)
|
|
289
172
|
|
|
290
|
-
|
|
291
173
|
### Features
|
|
292
174
|
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
175
|
+
- **env:** support consuming environment variables in packages [ED-10161] ([#26](https://github.com/elementor/elementor-packages/issues/26)) ([dd811ff](https://github.com/elementor/elementor-packages/commit/dd811ff71e43bf998ee07c6e1f380a379874a7fd))
|
|
298
176
|
|
|
299
177
|
## [0.2.1](https://github.com/elementor/elementor-packages/compare/v0.2.0...v0.2.1) (2023-05-11)
|
|
300
178
|
|
|
301
|
-
|
|
302
179
|
### Bug Fixes
|
|
303
180
|
|
|
304
|
-
|
|
181
|
+
- **editor-app-bar:** make save options button disabled in site-settings [ED-10221] ([#30](https://github.com/elementor/elementor-packages/issues/30)) ([1991096](https://github.com/elementor/elementor-packages/commit/1991096115efeae7bc3648e4889899b85d7328d6))
|
package/dist/index.js
CHANGED
|
@@ -38,14 +38,8 @@ module.exports = __toCommonJS(src_exports);
|
|
|
38
38
|
|
|
39
39
|
// src/locations.ts
|
|
40
40
|
var import_locations = require("@elementor/locations");
|
|
41
|
-
var {
|
|
42
|
-
|
|
43
|
-
inject: injectIntoTop
|
|
44
|
-
} = (0, import_locations.createLocation)();
|
|
45
|
-
var {
|
|
46
|
-
Slot: LogicSlot,
|
|
47
|
-
inject: injectIntoLogic
|
|
48
|
-
} = (0, import_locations.createLocation)();
|
|
41
|
+
var { Slot: TopSlot, inject: injectIntoTop } = (0, import_locations.createLocation)();
|
|
42
|
+
var { Slot: LogicSlot, inject: injectIntoLogic } = (0, import_locations.createLocation)();
|
|
49
43
|
|
|
50
44
|
// src/init.tsx
|
|
51
45
|
var React3 = __toESM(require("react"));
|
|
@@ -73,22 +67,16 @@ var import_editor_v1_adapters = require("@elementor/editor-v1-adapters");
|
|
|
73
67
|
function useColorScheme() {
|
|
74
68
|
const [colorScheme, setColorScheme] = (0, import_react.useState)(() => getV1ColorScheme());
|
|
75
69
|
(0, import_react.useEffect)(() => {
|
|
76
|
-
return (0, import_editor_v1_adapters.__privateListenTo)(
|
|
77
|
-
(0, import_editor_v1_adapters.v1ReadyEvent)(),
|
|
78
|
-
() => setColorScheme(getV1ColorScheme())
|
|
79
|
-
);
|
|
70
|
+
return (0, import_editor_v1_adapters.__privateListenTo)((0, import_editor_v1_adapters.v1ReadyEvent)(), () => setColorScheme(getV1ColorScheme()));
|
|
80
71
|
}, []);
|
|
81
72
|
(0, import_react.useEffect)(() => {
|
|
82
|
-
return (0, import_editor_v1_adapters.__privateListenTo)(
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
if (isColorScheme) {
|
|
88
|
-
setColorScheme(getV1ColorScheme());
|
|
89
|
-
}
|
|
73
|
+
return (0, import_editor_v1_adapters.__privateListenTo)((0, import_editor_v1_adapters.commandEndEvent)("document/elements/settings"), (e) => {
|
|
74
|
+
const event = e;
|
|
75
|
+
const isColorScheme = event.args?.settings && "ui_theme" in event.args.settings;
|
|
76
|
+
if (isColorScheme) {
|
|
77
|
+
setColorScheme(getV1ColorScheme());
|
|
90
78
|
}
|
|
91
|
-
);
|
|
79
|
+
});
|
|
92
80
|
}, []);
|
|
93
81
|
return colorScheme;
|
|
94
82
|
}
|
|
@@ -108,7 +96,10 @@ function init(domElement) {
|
|
|
108
96
|
const store = (0, import_store.__createStore)();
|
|
109
97
|
const queryClient = (0, import_query.createQueryClient)();
|
|
110
98
|
(0, import_editor_v1_adapters2.__privateDispatchReadyEvent)();
|
|
111
|
-
render2(
|
|
99
|
+
render2(
|
|
100
|
+
/* @__PURE__ */ React3.createElement(import_store.__StoreProvider, { store }, /* @__PURE__ */ React3.createElement(import_query.QueryClientProvider, { client: queryClient }, /* @__PURE__ */ React3.createElement(import_ui2.DirectionProvider, { rtl: window.document.dir === "rtl" }, /* @__PURE__ */ React3.createElement(ThemeProvider, null, /* @__PURE__ */ React3.createElement(Shell, null))))),
|
|
101
|
+
domElement
|
|
102
|
+
);
|
|
112
103
|
}
|
|
113
104
|
function render2(app, domElement) {
|
|
114
105
|
let renderFn;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/locations.ts","../src/init.tsx","../src/components/shell.tsx","../src/components/theme-provider.tsx","../src/sync/use-color-scheme.ts"],"sourcesContent":["export { injectIntoTop, injectIntoLogic } from './locations';\nexport { default as init } from './init';\n","import { createLocation } from '@elementor/locations';\n\nexport const {
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/locations.ts","../src/init.tsx","../src/components/shell.tsx","../src/components/theme-provider.tsx","../src/sync/use-color-scheme.ts"],"sourcesContent":["export { injectIntoTop, injectIntoLogic } from './locations';\nexport { default as init } from './init';\n","import { createLocation } from '@elementor/locations';\n\nexport const { Slot: TopSlot, inject: injectIntoTop } = createLocation();\n\nexport const { Slot: LogicSlot, inject: injectIntoLogic } = createLocation();\n","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { JSX } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport Shell from './components/shell';\nimport { DirectionProvider } from '@elementor/ui';\nimport { __StoreProvider as StoreProvider, __createStore } from '@elementor/store';\nimport { __privateDispatchReadyEvent as dispatchReadyEvent } from '@elementor/editor-v1-adapters';\nimport ThemeProvider from './components/theme-provider';\nimport { createQueryClient, QueryClientProvider } from '@elementor/query';\n\nexport default function init( domElement: Element ): void {\n\tconst store = __createStore();\n\tconst queryClient = createQueryClient();\n\n\tdispatchReadyEvent();\n\n\trender(\n\t\t<StoreProvider store={ store }>\n\t\t\t<QueryClientProvider client={ queryClient }>\n\t\t\t\t<DirectionProvider rtl={ window.document.dir === 'rtl' }>\n\t\t\t\t\t<ThemeProvider>\n\t\t\t\t\t\t<Shell />\n\t\t\t\t\t</ThemeProvider>\n\t\t\t\t</DirectionProvider>\n\t\t\t</QueryClientProvider>\n\t\t</StoreProvider>,\n\t\tdomElement\n\t);\n}\n\n// Support conditional rendering based on the React version.\n// We use `createRoot` when available, but fallback to `ReactDOM.render` for older versions.\nfunction render( app: JSX.Element, domElement: Element ) {\n\tlet renderFn: () => void;\n\n\ttry {\n\t\tconst root = createRoot( domElement );\n\n\t\trenderFn = () => {\n\t\t\troot.render( app );\n\t\t};\n\t} catch ( e ) {\n\t\trenderFn = () => {\n\t\t\t// eslint-disable-next-line react/no-deprecated\n\t\t\tReactDOM.render( app, domElement );\n\t\t};\n\t}\n\n\trenderFn();\n}\n","import * as React from 'react';\nimport { LogicSlot, TopSlot } from '../locations';\n\nexport default function Shell() {\n\treturn (\n\t\t<>\n\t\t\t<TopSlot />\n\t\t\t<div style={ { display: 'none' } }>\n\t\t\t\t<LogicSlot />\n\t\t\t</div>\n\t\t</>\n\t);\n}\n","import * as React from 'react';\nimport { ThemeProvider as ThemeProviderBase } from '@elementor/ui';\nimport { useColorScheme } from '../sync/use-color-scheme';\n\nexport default function ThemeProvider( { children }: { children: React.ReactNode } ) {\n\tconst colorScheme = useColorScheme();\n\n\treturn <ThemeProviderBase colorScheme={ colorScheme }>{ children }</ThemeProviderBase>;\n}\n","import { useEffect, useState } from 'react';\nimport {\n\tcommandEndEvent,\n\tCommandEvent,\n\t__privateListenTo as listenTo,\n\tv1ReadyEvent,\n} from '@elementor/editor-v1-adapters';\n\nexport type ColorScheme = 'auto' | 'dark' | 'light';\n\nexport type ExtendedWindow = Window & {\n\telementor: {\n\t\tgetPreferences: ( key: 'ui_theme' ) => ColorScheme;\n\t};\n};\n\nexport function useColorScheme() {\n\tconst [ colorScheme, setColorScheme ] = useState< ColorScheme >( () => getV1ColorScheme() );\n\n\tuseEffect( () => {\n\t\treturn listenTo( v1ReadyEvent(), () => setColorScheme( getV1ColorScheme() ) );\n\t}, [] );\n\n\tuseEffect( () => {\n\t\treturn listenTo( commandEndEvent( 'document/elements/settings' ), ( e ) => {\n\t\t\tconst event = e as CommandEvent< {\n\t\t\t\tsettings: {\n\t\t\t\t\tui_theme?: ColorScheme;\n\t\t\t\t};\n\t\t\t} >;\n\n\t\t\t// The User-Preferences settings object has a key named `ui_theme` that controls the color scheme.\n\t\t\tconst isColorScheme = event.args?.settings && 'ui_theme' in event.args.settings;\n\n\t\t\tif ( isColorScheme ) {\n\t\t\t\tsetColorScheme( getV1ColorScheme() );\n\t\t\t}\n\t\t} );\n\t}, [] );\n\n\treturn colorScheme;\n}\n\nfunction getV1ColorScheme() {\n\treturn ( window as unknown as ExtendedWindow ).elementor?.getPreferences?.( 'ui_theme' ) || 'auto';\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,uBAA+B;AAExB,IAAM,EAAE,MAAM,SAAS,QAAQ,cAAc,QAAI,iCAAe;AAEhE,IAAM,EAAE,MAAM,WAAW,QAAQ,gBAAgB,QAAI,iCAAe;;;ACJ3E,IAAAA,SAAuB;AACvB,eAA0B;AAE1B,oBAA2B;;;ACH3B,YAAuB;AAGR,SAAR,QAAyB;AAC/B,SACC,0DACC,oCAAC,aAAQ,GACT,oCAAC,SAAI,OAAQ,EAAE,SAAS,OAAO,KAC9B,oCAAC,eAAU,CACZ,CACD;AAEF;;;ADPA,IAAAC,aAAkC;AAClC,mBAAgE;AAChE,IAAAC,6BAAkE;;;AEPlE,IAAAC,SAAuB;AACvB,gBAAmD;;;ACDnD,mBAAoC;AACpC,gCAKO;AAUA,SAAS,iBAAiB;AAChC,QAAM,CAAE,aAAa,cAAe,QAAI,uBAAyB,MAAM,iBAAiB,CAAE;AAE1F,8BAAW,MAAM;AAChB,eAAO,0BAAAC,uBAAU,wCAAa,GAAG,MAAM,eAAgB,iBAAiB,CAAE,CAAE;AAAA,EAC7E,GAAG,CAAC,CAAE;AAEN,8BAAW,MAAM;AAChB,eAAO,0BAAAA,uBAAU,2CAAiB,4BAA6B,GAAG,CAAE,MAAO;AAC1E,YAAM,QAAQ;AAOd,YAAM,gBAAgB,MAAM,MAAM,YAAY,cAAc,MAAM,KAAK;AAEvE,UAAK,eAAgB;AACpB,uBAAgB,iBAAiB,CAAE;AAAA,MACpC;AAAA,IACD,CAAE;AAAA,EACH,GAAG,CAAC,CAAE;AAEN,SAAO;AACR;AAEA,SAAS,mBAAmB;AAC3B,SAAS,OAAsC,WAAW,iBAAkB,UAAW,KAAK;AAC7F;;;ADzCe,SAAR,cAAgC,EAAE,SAAS,GAAmC;AACpF,QAAM,cAAc,eAAe;AAEnC,SAAO,qCAAC,UAAAC,eAAA,EAAkB,eAA8B,QAAU;AACnE;;;AFCA,mBAAuD;AAExC,SAAR,KAAuB,YAA4B;AACzD,QAAM,YAAQ,4BAAc;AAC5B,QAAM,kBAAc,gCAAkB;AAEtC,iCAAAC,6BAAmB;AAEnB,EAAAC;AAAA,IACC,qCAAC,aAAAC,iBAAA,EAAc,SACd,qCAAC,oCAAoB,QAAS,eAC7B,qCAAC,gCAAkB,KAAM,OAAO,SAAS,QAAQ,SAChD,qCAAC,qBACA,qCAAC,WAAM,CACR,CACD,CACD,CACD;AAAA,IACA;AAAA,EACD;AACD;AAIA,SAASD,QAAQ,KAAkB,YAAsB;AACxD,MAAI;AAEJ,MAAI;AACH,UAAM,WAAO,0BAAY,UAAW;AAEpC,eAAW,MAAM;AAChB,WAAK,OAAQ,GAAI;AAAA,IAClB;AAAA,EACD,SAAU,GAAI;AACb,eAAW,MAAM;AAEhB,MAAS,gBAAQ,KAAK,UAAW;AAAA,IAClC;AAAA,EACD;AAEA,WAAS;AACV;","names":["React","import_ui","import_editor_v1_adapters","React","listenTo","ThemeProviderBase","dispatchReadyEvent","render","StoreProvider"]}
|
package/dist/index.mjs
CHANGED
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
// src/locations.ts
|
|
2
2
|
import { createLocation } from "@elementor/locations";
|
|
3
|
-
var {
|
|
4
|
-
|
|
5
|
-
inject: injectIntoTop
|
|
6
|
-
} = createLocation();
|
|
7
|
-
var {
|
|
8
|
-
Slot: LogicSlot,
|
|
9
|
-
inject: injectIntoLogic
|
|
10
|
-
} = createLocation();
|
|
3
|
+
var { Slot: TopSlot, inject: injectIntoTop } = createLocation();
|
|
4
|
+
var { Slot: LogicSlot, inject: injectIntoLogic } = createLocation();
|
|
11
5
|
|
|
12
6
|
// src/init.tsx
|
|
13
7
|
import * as React3 from "react";
|
|
@@ -31,26 +25,24 @@ import { ThemeProvider as ThemeProviderBase } from "@elementor/ui";
|
|
|
31
25
|
|
|
32
26
|
// src/sync/use-color-scheme.ts
|
|
33
27
|
import { useEffect, useState } from "react";
|
|
34
|
-
import {
|
|
28
|
+
import {
|
|
29
|
+
commandEndEvent,
|
|
30
|
+
__privateListenTo as listenTo,
|
|
31
|
+
v1ReadyEvent
|
|
32
|
+
} from "@elementor/editor-v1-adapters";
|
|
35
33
|
function useColorScheme() {
|
|
36
34
|
const [colorScheme, setColorScheme] = useState(() => getV1ColorScheme());
|
|
37
35
|
useEffect(() => {
|
|
38
|
-
return listenTo(
|
|
39
|
-
v1ReadyEvent(),
|
|
40
|
-
() => setColorScheme(getV1ColorScheme())
|
|
41
|
-
);
|
|
36
|
+
return listenTo(v1ReadyEvent(), () => setColorScheme(getV1ColorScheme()));
|
|
42
37
|
}, []);
|
|
43
38
|
useEffect(() => {
|
|
44
|
-
return listenTo(
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
if (isColorScheme) {
|
|
50
|
-
setColorScheme(getV1ColorScheme());
|
|
51
|
-
}
|
|
39
|
+
return listenTo(commandEndEvent("document/elements/settings"), (e) => {
|
|
40
|
+
const event = e;
|
|
41
|
+
const isColorScheme = event.args?.settings && "ui_theme" in event.args.settings;
|
|
42
|
+
if (isColorScheme) {
|
|
43
|
+
setColorScheme(getV1ColorScheme());
|
|
52
44
|
}
|
|
53
|
-
);
|
|
45
|
+
});
|
|
54
46
|
}, []);
|
|
55
47
|
return colorScheme;
|
|
56
48
|
}
|
|
@@ -70,7 +62,10 @@ function init(domElement) {
|
|
|
70
62
|
const store = __createStore();
|
|
71
63
|
const queryClient = createQueryClient();
|
|
72
64
|
dispatchReadyEvent();
|
|
73
|
-
render2(
|
|
65
|
+
render2(
|
|
66
|
+
/* @__PURE__ */ React3.createElement(StoreProvider, { store }, /* @__PURE__ */ React3.createElement(QueryClientProvider, { client: queryClient }, /* @__PURE__ */ React3.createElement(DirectionProvider, { rtl: window.document.dir === "rtl" }, /* @__PURE__ */ React3.createElement(ThemeProvider, null, /* @__PURE__ */ React3.createElement(Shell, null))))),
|
|
67
|
+
domElement
|
|
68
|
+
);
|
|
74
69
|
}
|
|
75
70
|
function render2(app, domElement) {
|
|
76
71
|
let renderFn;
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/locations.ts","../src/init.tsx","../src/components/shell.tsx","../src/components/theme-provider.tsx","../src/sync/use-color-scheme.ts"],"sourcesContent":["import { createLocation } from '@elementor/locations';\n\nexport const {
|
|
1
|
+
{"version":3,"sources":["../src/locations.ts","../src/init.tsx","../src/components/shell.tsx","../src/components/theme-provider.tsx","../src/sync/use-color-scheme.ts"],"sourcesContent":["import { createLocation } from '@elementor/locations';\n\nexport const { Slot: TopSlot, inject: injectIntoTop } = createLocation();\n\nexport const { Slot: LogicSlot, inject: injectIntoLogic } = createLocation();\n","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { JSX } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport Shell from './components/shell';\nimport { DirectionProvider } from '@elementor/ui';\nimport { __StoreProvider as StoreProvider, __createStore } from '@elementor/store';\nimport { __privateDispatchReadyEvent as dispatchReadyEvent } from '@elementor/editor-v1-adapters';\nimport ThemeProvider from './components/theme-provider';\nimport { createQueryClient, QueryClientProvider } from '@elementor/query';\n\nexport default function init( domElement: Element ): void {\n\tconst store = __createStore();\n\tconst queryClient = createQueryClient();\n\n\tdispatchReadyEvent();\n\n\trender(\n\t\t<StoreProvider store={ store }>\n\t\t\t<QueryClientProvider client={ queryClient }>\n\t\t\t\t<DirectionProvider rtl={ window.document.dir === 'rtl' }>\n\t\t\t\t\t<ThemeProvider>\n\t\t\t\t\t\t<Shell />\n\t\t\t\t\t</ThemeProvider>\n\t\t\t\t</DirectionProvider>\n\t\t\t</QueryClientProvider>\n\t\t</StoreProvider>,\n\t\tdomElement\n\t);\n}\n\n// Support conditional rendering based on the React version.\n// We use `createRoot` when available, but fallback to `ReactDOM.render` for older versions.\nfunction render( app: JSX.Element, domElement: Element ) {\n\tlet renderFn: () => void;\n\n\ttry {\n\t\tconst root = createRoot( domElement );\n\n\t\trenderFn = () => {\n\t\t\troot.render( app );\n\t\t};\n\t} catch ( e ) {\n\t\trenderFn = () => {\n\t\t\t// eslint-disable-next-line react/no-deprecated\n\t\t\tReactDOM.render( app, domElement );\n\t\t};\n\t}\n\n\trenderFn();\n}\n","import * as React from 'react';\nimport { LogicSlot, TopSlot } from '../locations';\n\nexport default function Shell() {\n\treturn (\n\t\t<>\n\t\t\t<TopSlot />\n\t\t\t<div style={ { display: 'none' } }>\n\t\t\t\t<LogicSlot />\n\t\t\t</div>\n\t\t</>\n\t);\n}\n","import * as React from 'react';\nimport { ThemeProvider as ThemeProviderBase } from '@elementor/ui';\nimport { useColorScheme } from '../sync/use-color-scheme';\n\nexport default function ThemeProvider( { children }: { children: React.ReactNode } ) {\n\tconst colorScheme = useColorScheme();\n\n\treturn <ThemeProviderBase colorScheme={ colorScheme }>{ children }</ThemeProviderBase>;\n}\n","import { useEffect, useState } from 'react';\nimport {\n\tcommandEndEvent,\n\tCommandEvent,\n\t__privateListenTo as listenTo,\n\tv1ReadyEvent,\n} from '@elementor/editor-v1-adapters';\n\nexport type ColorScheme = 'auto' | 'dark' | 'light';\n\nexport type ExtendedWindow = Window & {\n\telementor: {\n\t\tgetPreferences: ( key: 'ui_theme' ) => ColorScheme;\n\t};\n};\n\nexport function useColorScheme() {\n\tconst [ colorScheme, setColorScheme ] = useState< ColorScheme >( () => getV1ColorScheme() );\n\n\tuseEffect( () => {\n\t\treturn listenTo( v1ReadyEvent(), () => setColorScheme( getV1ColorScheme() ) );\n\t}, [] );\n\n\tuseEffect( () => {\n\t\treturn listenTo( commandEndEvent( 'document/elements/settings' ), ( e ) => {\n\t\t\tconst event = e as CommandEvent< {\n\t\t\t\tsettings: {\n\t\t\t\t\tui_theme?: ColorScheme;\n\t\t\t\t};\n\t\t\t} >;\n\n\t\t\t// The User-Preferences settings object has a key named `ui_theme` that controls the color scheme.\n\t\t\tconst isColorScheme = event.args?.settings && 'ui_theme' in event.args.settings;\n\n\t\t\tif ( isColorScheme ) {\n\t\t\t\tsetColorScheme( getV1ColorScheme() );\n\t\t\t}\n\t\t} );\n\t}, [] );\n\n\treturn colorScheme;\n}\n\nfunction getV1ColorScheme() {\n\treturn ( window as unknown as ExtendedWindow ).elementor?.getPreferences?.( 'ui_theme' ) || 'auto';\n}\n"],"mappings":";AAAA,SAAS,sBAAsB;AAExB,IAAM,EAAE,MAAM,SAAS,QAAQ,cAAc,IAAI,eAAe;AAEhE,IAAM,EAAE,MAAM,WAAW,QAAQ,gBAAgB,IAAI,eAAe;;;ACJ3E,YAAYA,YAAW;AACvB,YAAY,cAAc;AAE1B,SAAS,kBAAkB;;;ACH3B,YAAY,WAAW;AAGR,SAAR,QAAyB;AAC/B,SACC,0DACC,oCAAC,aAAQ,GACT,oCAAC,SAAI,OAAQ,EAAE,SAAS,OAAO,KAC9B,oCAAC,eAAU,CACZ,CACD;AAEF;;;ADPA,SAAS,yBAAyB;AAClC,SAAS,mBAAmB,eAAe,qBAAqB;AAChE,SAAS,+BAA+B,0BAA0B;;;AEPlE,YAAYC,YAAW;AACvB,SAAS,iBAAiB,yBAAyB;;;ACDnD,SAAS,WAAW,gBAAgB;AACpC;AAAA,EACC;AAAA,EAEA,qBAAqB;AAAA,EACrB;AAAA,OACM;AAUA,SAAS,iBAAiB;AAChC,QAAM,CAAE,aAAa,cAAe,IAAI,SAAyB,MAAM,iBAAiB,CAAE;AAE1F,YAAW,MAAM;AAChB,WAAO,SAAU,aAAa,GAAG,MAAM,eAAgB,iBAAiB,CAAE,CAAE;AAAA,EAC7E,GAAG,CAAC,CAAE;AAEN,YAAW,MAAM;AAChB,WAAO,SAAU,gBAAiB,4BAA6B,GAAG,CAAE,MAAO;AAC1E,YAAM,QAAQ;AAOd,YAAM,gBAAgB,MAAM,MAAM,YAAY,cAAc,MAAM,KAAK;AAEvE,UAAK,eAAgB;AACpB,uBAAgB,iBAAiB,CAAE;AAAA,MACpC;AAAA,IACD,CAAE;AAAA,EACH,GAAG,CAAC,CAAE;AAEN,SAAO;AACR;AAEA,SAAS,mBAAmB;AAC3B,SAAS,OAAsC,WAAW,iBAAkB,UAAW,KAAK;AAC7F;;;ADzCe,SAAR,cAAgC,EAAE,SAAS,GAAmC;AACpF,QAAM,cAAc,eAAe;AAEnC,SAAO,qCAAC,qBAAkB,eAA8B,QAAU;AACnE;;;AFCA,SAAS,mBAAmB,2BAA2B;AAExC,SAAR,KAAuB,YAA4B;AACzD,QAAM,QAAQ,cAAc;AAC5B,QAAM,cAAc,kBAAkB;AAEtC,qBAAmB;AAEnB,EAAAC;AAAA,IACC,qCAAC,iBAAc,SACd,qCAAC,uBAAoB,QAAS,eAC7B,qCAAC,qBAAkB,KAAM,OAAO,SAAS,QAAQ,SAChD,qCAAC,qBACA,qCAAC,WAAM,CACR,CACD,CACD,CACD;AAAA,IACA;AAAA,EACD;AACD;AAIA,SAASA,QAAQ,KAAkB,YAAsB;AACxD,MAAI;AAEJ,MAAI;AACH,UAAM,OAAO,WAAY,UAAW;AAEpC,eAAW,MAAM;AAChB,WAAK,OAAQ,GAAI;AAAA,IAClB;AAAA,EACD,SAAU,GAAI;AACb,eAAW,MAAM;AAEhB,MAAS,gBAAQ,KAAK,UAAW;AAAA,IAClC;AAAA,EACD;AAEA,WAAS;AACV;","names":["React","React","render"]}
|
package/package.json
CHANGED
|
@@ -1,47 +1,54 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
2
|
+
"name": "@elementor/editor",
|
|
3
|
+
"description": "The main application for Elementor's editor",
|
|
4
|
+
"version": "0.12.0",
|
|
5
|
+
"private": false,
|
|
6
|
+
"author": "Elementor Team",
|
|
7
|
+
"homepage": "https://elementor.com/",
|
|
8
|
+
"license": "GPL-3.0-or-later",
|
|
9
|
+
"main": "dist/index.js",
|
|
10
|
+
"module": "dist/index.mjs",
|
|
11
|
+
"types": "dist/index.d.ts",
|
|
12
|
+
"exports": {
|
|
13
|
+
".": {
|
|
14
|
+
"import": "./dist/index.mjs",
|
|
15
|
+
"require": "./dist/index.js",
|
|
16
|
+
"types": "./dist/index.d.ts"
|
|
17
|
+
},
|
|
18
|
+
"./package.json": "./package.json"
|
|
19
|
+
},
|
|
20
|
+
"repository": {
|
|
21
|
+
"type": "git",
|
|
22
|
+
"url": "git+https://github.com/elementor/elementor-packages.git",
|
|
23
|
+
"directory": "packages/core/editor"
|
|
24
|
+
},
|
|
25
|
+
"bugs": {
|
|
26
|
+
"url": "https://github.com/elementor/elementor-packages/issues"
|
|
27
|
+
},
|
|
28
|
+
"publishConfig": {
|
|
29
|
+
"access": "public"
|
|
30
|
+
},
|
|
31
|
+
"files": [
|
|
32
|
+
"README.md",
|
|
33
|
+
"CHANGELOG.md",
|
|
34
|
+
"/dist",
|
|
35
|
+
"/src",
|
|
36
|
+
"!**/__tests__"
|
|
37
|
+
],
|
|
38
|
+
"scripts": {
|
|
39
|
+
"build": "tsup --config=../../tsup.build.ts",
|
|
40
|
+
"dev": "tsup --config=../../tsup.dev.ts"
|
|
41
|
+
},
|
|
42
|
+
"dependencies": {
|
|
43
|
+
"@elementor/editor-v1-adapters": "^0.8.1",
|
|
44
|
+
"@elementor/locations": "^0.7.5",
|
|
45
|
+
"@elementor/query": "^0.2.2",
|
|
46
|
+
"@elementor/store": "^0.8.5",
|
|
47
|
+
"@elementor/ui": "^1.14.2"
|
|
48
|
+
},
|
|
49
|
+
"peerDependencies": {
|
|
50
|
+
"react": "^18.3.1",
|
|
51
|
+
"react-dom": "^18.3.1"
|
|
52
|
+
},
|
|
53
|
+
"gitHead": "f4ca33da0842a29d83736d0a173633085edddaee"
|
|
47
54
|
}
|
|
@@ -5,9 +5,5 @@ import { useColorScheme } from '../sync/use-color-scheme';
|
|
|
5
5
|
export default function ThemeProvider( { children }: { children: React.ReactNode } ) {
|
|
6
6
|
const colorScheme = useColorScheme();
|
|
7
7
|
|
|
8
|
-
return
|
|
9
|
-
<ThemeProviderBase colorScheme={ colorScheme }>
|
|
10
|
-
{ children }
|
|
11
|
-
</ThemeProviderBase>
|
|
12
|
-
);
|
|
8
|
+
return <ThemeProviderBase colorScheme={ colorScheme }>{ children }</ThemeProviderBase>;
|
|
13
9
|
}
|
package/src/init.tsx
CHANGED
|
@@ -15,7 +15,7 @@ export default function init( domElement: Element ): void {
|
|
|
15
15
|
|
|
16
16
|
dispatchReadyEvent();
|
|
17
17
|
|
|
18
|
-
render(
|
|
18
|
+
render(
|
|
19
19
|
<StoreProvider store={ store }>
|
|
20
20
|
<QueryClientProvider client={ queryClient }>
|
|
21
21
|
<DirectionProvider rtl={ window.document.dir === 'rtl' }>
|
|
@@ -24,8 +24,9 @@ export default function init( domElement: Element ): void {
|
|
|
24
24
|
</ThemeProvider>
|
|
25
25
|
</DirectionProvider>
|
|
26
26
|
</QueryClientProvider>
|
|
27
|
-
</StoreProvider
|
|
28
|
-
|
|
27
|
+
</StoreProvider>,
|
|
28
|
+
domElement
|
|
29
|
+
);
|
|
29
30
|
}
|
|
30
31
|
|
|
31
32
|
// Support conditional rendering based on the React version.
|
package/src/locations.ts
CHANGED
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
import { createLocation } from '@elementor/locations';
|
|
2
2
|
|
|
3
|
-
export const {
|
|
4
|
-
Slot: TopSlot,
|
|
5
|
-
inject: injectIntoTop,
|
|
6
|
-
} = createLocation();
|
|
3
|
+
export const { Slot: TopSlot, inject: injectIntoTop } = createLocation();
|
|
7
4
|
|
|
8
|
-
export const {
|
|
9
|
-
Slot: LogicSlot,
|
|
10
|
-
inject: injectIntoLogic,
|
|
11
|
-
} = createLocation();
|
|
5
|
+
export const { Slot: LogicSlot, inject: injectIntoLogic } = createLocation();
|
|
@@ -1,42 +1,41 @@
|
|
|
1
1
|
import { useEffect, useState } from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
commandEndEvent,
|
|
4
|
+
CommandEvent,
|
|
5
|
+
__privateListenTo as listenTo,
|
|
6
|
+
v1ReadyEvent,
|
|
7
|
+
} from '@elementor/editor-v1-adapters';
|
|
3
8
|
|
|
4
9
|
export type ColorScheme = 'auto' | 'dark' | 'light';
|
|
5
10
|
|
|
6
11
|
export type ExtendedWindow = Window & {
|
|
7
12
|
elementor: {
|
|
8
|
-
getPreferences: ( key: 'ui_theme' ) => ColorScheme
|
|
9
|
-
}
|
|
10
|
-
}
|
|
13
|
+
getPreferences: ( key: 'ui_theme' ) => ColorScheme;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
11
16
|
|
|
12
17
|
export function useColorScheme() {
|
|
13
|
-
const [ colorScheme, setColorScheme ] = useState<ColorScheme>( () => getV1ColorScheme() );
|
|
18
|
+
const [ colorScheme, setColorScheme ] = useState< ColorScheme >( () => getV1ColorScheme() );
|
|
14
19
|
|
|
15
20
|
useEffect( () => {
|
|
16
|
-
return listenTo(
|
|
17
|
-
v1ReadyEvent(),
|
|
18
|
-
() => setColorScheme( getV1ColorScheme() )
|
|
19
|
-
);
|
|
21
|
+
return listenTo( v1ReadyEvent(), () => setColorScheme( getV1ColorScheme() ) );
|
|
20
22
|
}, [] );
|
|
21
23
|
|
|
22
24
|
useEffect( () => {
|
|
23
|
-
return listenTo(
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
if ( isColorScheme ) {
|
|
36
|
-
setColorScheme( getV1ColorScheme() );
|
|
37
|
-
}
|
|
25
|
+
return listenTo( commandEndEvent( 'document/elements/settings' ), ( e ) => {
|
|
26
|
+
const event = e as CommandEvent< {
|
|
27
|
+
settings: {
|
|
28
|
+
ui_theme?: ColorScheme;
|
|
29
|
+
};
|
|
30
|
+
} >;
|
|
31
|
+
|
|
32
|
+
// The User-Preferences settings object has a key named `ui_theme` that controls the color scheme.
|
|
33
|
+
const isColorScheme = event.args?.settings && 'ui_theme' in event.args.settings;
|
|
34
|
+
|
|
35
|
+
if ( isColorScheme ) {
|
|
36
|
+
setColorScheme( getV1ColorScheme() );
|
|
38
37
|
}
|
|
39
|
-
);
|
|
38
|
+
} );
|
|
40
39
|
}, [] );
|
|
41
40
|
|
|
42
41
|
return colorScheme;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { render, screen } from '@testing-library/react';
|
|
3
|
-
import Shell from '../shell';
|
|
4
|
-
import { injectIntoTop } from '../../locations';
|
|
5
|
-
|
|
6
|
-
describe( '<Shell />', () => {
|
|
7
|
-
it( 'should render', () => {
|
|
8
|
-
// Arrange.
|
|
9
|
-
injectIntoTop( {
|
|
10
|
-
id: 'test',
|
|
11
|
-
component: () => <div>test</div>,
|
|
12
|
-
} );
|
|
13
|
-
|
|
14
|
-
// Act.
|
|
15
|
-
render( <Shell /> );
|
|
16
|
-
|
|
17
|
-
// Assert.
|
|
18
|
-
expect( screen.getByText( 'test' ) ).toBeInTheDocument();
|
|
19
|
-
} );
|
|
20
|
-
} );
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import { act, renderHook } from '@testing-library/react';
|
|
2
|
-
import { ColorScheme, ExtendedWindow, useColorScheme } from '../use-color-scheme';
|
|
3
|
-
|
|
4
|
-
describe( '@elementor/editor - useColorScheme', () => {
|
|
5
|
-
it( 'should use the "auto" color scheme by default', () => {
|
|
6
|
-
// Act.
|
|
7
|
-
const { result } = renderHook( () => useColorScheme() );
|
|
8
|
-
|
|
9
|
-
// Assert.
|
|
10
|
-
expect( result.current ).toBe( 'auto' );
|
|
11
|
-
} );
|
|
12
|
-
|
|
13
|
-
it( 'should sync color scheme on V1 ready', () => {
|
|
14
|
-
// Arrange.
|
|
15
|
-
mockV1ColorScheme( 'dark' );
|
|
16
|
-
|
|
17
|
-
// Act.
|
|
18
|
-
const { result } = renderHook( () => useColorScheme() );
|
|
19
|
-
|
|
20
|
-
act( () => {
|
|
21
|
-
dispatchEvent( new CustomEvent( 'elementor/initialized' ) );
|
|
22
|
-
} );
|
|
23
|
-
|
|
24
|
-
// Assert.
|
|
25
|
-
expect( result.current ).toBe( 'dark' );
|
|
26
|
-
} );
|
|
27
|
-
|
|
28
|
-
it( 'should sync color scheme on V1 change', () => {
|
|
29
|
-
// Arrange.
|
|
30
|
-
mockV1ColorScheme( 'auto' );
|
|
31
|
-
|
|
32
|
-
const { result } = renderHook( () => useColorScheme() );
|
|
33
|
-
|
|
34
|
-
// Assert - Before change.
|
|
35
|
-
expect( result.current ).toBe( 'auto' );
|
|
36
|
-
|
|
37
|
-
// Act - Change.
|
|
38
|
-
act( () => {
|
|
39
|
-
mockV1ColorScheme( 'dark' );
|
|
40
|
-
|
|
41
|
-
dispatchEvent( new CustomEvent( 'elementor/commands/run/after', {
|
|
42
|
-
detail: {
|
|
43
|
-
command: 'document/elements/settings',
|
|
44
|
-
args: {
|
|
45
|
-
container: {
|
|
46
|
-
id: 'editorPreferences_settings',
|
|
47
|
-
},
|
|
48
|
-
settings: {
|
|
49
|
-
ui_theme: 'dark',
|
|
50
|
-
},
|
|
51
|
-
},
|
|
52
|
-
},
|
|
53
|
-
} ) );
|
|
54
|
-
} );
|
|
55
|
-
|
|
56
|
-
// Assert.
|
|
57
|
-
expect( result.current ).toBe( 'dark' );
|
|
58
|
-
} );
|
|
59
|
-
|
|
60
|
-
it( 'should not sync color scheme on unrelated commands', () => {
|
|
61
|
-
// Act.
|
|
62
|
-
const { result } = renderHook( () => useColorScheme() );
|
|
63
|
-
|
|
64
|
-
act( () => {
|
|
65
|
-
dispatchEvent( new CustomEvent( 'elementor/commands/run/after', {
|
|
66
|
-
detail: {
|
|
67
|
-
command: 'document/elements/settings',
|
|
68
|
-
args: {
|
|
69
|
-
container: {
|
|
70
|
-
id: 'some_other_container',
|
|
71
|
-
},
|
|
72
|
-
},
|
|
73
|
-
},
|
|
74
|
-
} ) );
|
|
75
|
-
} );
|
|
76
|
-
|
|
77
|
-
// Assert.
|
|
78
|
-
expect( result.current ).toBe( 'auto' );
|
|
79
|
-
} );
|
|
80
|
-
} );
|
|
81
|
-
|
|
82
|
-
function mockV1ColorScheme( colorScheme: ColorScheme ) {
|
|
83
|
-
( window as unknown as ExtendedWindow ).elementor = {
|
|
84
|
-
getPreferences: () => colorScheme,
|
|
85
|
-
};
|
|
86
|
-
}
|