@elementor/editor-canvas 0.9.0 → 0.10.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.
Files changed (57) hide show
  1. package/.turbo/turbo-build.log +10 -10
  2. package/CHANGELOG.md +14 -0
  3. package/dist/index.d.mts +13 -1
  4. package/dist/index.d.ts +13 -1
  5. package/dist/index.js +203 -225
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.mjs +192 -227
  8. package/dist/index.mjs.map +1 -1
  9. package/package.json +5 -5
  10. package/src/{renderers/__tests__ → __tests__}/__mocks__/styles-schema.ts +7 -0
  11. package/src/__tests__/init-styles-renderer.test.ts +8 -3
  12. package/src/{renderers/__tests__/create-props-resolver.transformers.test.ts → __tests__/styles-prop-resolver.test.ts} +12 -18
  13. package/src/index.ts +2 -0
  14. package/src/init-style-transformers.ts +58 -0
  15. package/src/init-styles-renderer.ts +8 -6
  16. package/src/init.tsx +2 -0
  17. package/src/renderers/__tests__/create-props-resolver.test.ts +43 -34
  18. package/src/renderers/__tests__/render-styles.test.ts +3 -15
  19. package/src/renderers/create-props-resolver.ts +32 -31
  20. package/src/renderers/render-styles.ts +4 -7
  21. package/src/style-transformers-registry.ts +3 -0
  22. package/src/transformers/create-transformer.ts +6 -0
  23. package/src/transformers/create-transformers-registry.ts +16 -0
  24. package/src/transformers/styles/background-color-overlay-transformer.ts +5 -0
  25. package/src/transformers/styles/background-image-overlay-transformer.ts +28 -0
  26. package/src/transformers/styles/background-image-position-offset-transformer.ts +10 -0
  27. package/src/transformers/styles/background-image-size-scale-transformer.ts +10 -0
  28. package/src/transformers/styles/background-transformer.ts +13 -0
  29. package/src/transformers/styles/create-combine-array-transformer.ts +5 -0
  30. package/src/transformers/styles/create-multi-props-transformer.ts +14 -0
  31. package/src/transformers/styles/image-attachment-transformer.ts +15 -0
  32. package/src/transformers/styles/image-src-transformer.ts +11 -0
  33. package/src/transformers/styles/image-transformer.ts +34 -0
  34. package/src/transformers/styles/primitive-transformer.ts +3 -0
  35. package/src/transformers/styles/shadow-transformer.ts +16 -0
  36. package/src/transformers/styles/size-transformer.ts +10 -0
  37. package/src/transformers/styles/stroke-transformer.ts +17 -0
  38. package/src/transformers/types.ts +14 -0
  39. package/src/renderers/style-transformers/background-color-overlay-transformer.ts +0 -9
  40. package/src/renderers/style-transformers/background-image-overlay-transformer.ts +0 -24
  41. package/src/renderers/style-transformers/background-image-position-offset-transformer.ts +0 -10
  42. package/src/renderers/style-transformers/background-image-size-scale-transformer.ts +0 -10
  43. package/src/renderers/style-transformers/background-transformer.ts +0 -12
  44. package/src/renderers/style-transformers/create-combine-array-transformer.ts +0 -9
  45. package/src/renderers/style-transformers/create-corner-sizes-transformer.ts +0 -31
  46. package/src/renderers/style-transformers/create-edge-sizes-transformer.ts +0 -31
  47. package/src/renderers/style-transformers/dimensions.ts +0 -20
  48. package/src/renderers/style-transformers/image-attachment.ts +0 -14
  49. package/src/renderers/style-transformers/image-src.ts +0 -8
  50. package/src/renderers/style-transformers/image.ts +0 -25
  51. package/src/renderers/style-transformers/index.ts +0 -48
  52. package/src/renderers/style-transformers/layout-direction-transformer.ts +0 -20
  53. package/src/renderers/style-transformers/primitive-transformer.ts +0 -7
  54. package/src/renderers/style-transformers/shadow-transformer.ts +0 -11
  55. package/src/renderers/style-transformers/size-transformer.ts +0 -9
  56. package/src/renderers/style-transformers/stroke-transformer.ts +0 -16
  57. package/src/renderers/types.ts +0 -12
@@ -1,5 +1,5 @@
1
1
 
2
- > @elementor/editor-canvas@0.9.0 build
2
+ > @elementor/editor-canvas@0.10.0 build
3
3
  > tsup --config=../../tsup.build.ts
4
4
 
5
5
  CLI Building entry: src/index.ts
@@ -10,13 +10,13 @@
10
10
  CLI Cleaning output folder
11
11
  ESM Build start
12
12
  CJS Build start
13
- ESM dist/index.mjs 18.47 KB
14
- ESM dist/index.mjs.map 38.82 KB
15
- ESM ⚡️ Build success in 105ms
16
- CJS dist/index.js 20.09 KB
17
- CJS dist/index.js.map 38.83 KB
18
- CJS ⚡️ Build success in 108ms
13
+ CJS dist/index.js 19.31 KB
14
+ CJS dist/index.js.map 37.41 KB
15
+ CJS ⚡️ Build success in 145ms
16
+ ESM dist/index.mjs 17.23 KB
17
+ ESM dist/index.mjs.map 37.36 KB
18
+ ESM ⚡️ Build success in 149ms
19
19
  DTS Build start
20
- DTS ⚡️ Build success in 18574ms
21
- DTS dist/index.d.mts 13.00 B
22
- DTS dist/index.d.ts 13.00 B
20
+ DTS ⚡️ Build success in 19410ms
21
+ DTS dist/index.d.mts 434.00 B
22
+ DTS dist/index.d.ts 434.00 B
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @elementor/editor-canvas
2
2
 
3
+ ## 0.10.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 728ffb5: Add the ability to extend transformers
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [728ffb5]
12
+ - @elementor/editor-props@0.9.2
13
+ - @elementor/editor-styles-repository@0.7.2
14
+ - @elementor/editor-elements@0.5.4
15
+ - @elementor/editor-styles@0.5.7
16
+
3
17
  ## 0.9.0
4
18
 
5
19
  ### Minor Changes
package/dist/index.d.mts CHANGED
@@ -1,2 +1,14 @@
1
+ type Transformer<TValue> = (value: TValue, options: {
2
+ key: string;
3
+ signal?: AbortSignal;
4
+ }) => unknown;
5
+ type TransformerName = string;
6
+ type AnyTransformer = Transformer<any>;
7
+ type TransformersMap = Record<string, AnyTransformer>;
1
8
 
2
- export { }
9
+ declare const styleTransformersRegistry: {
10
+ register(name: TransformerName, transformer: AnyTransformer): /*elided*/ any;
11
+ all(): TransformersMap;
12
+ };
13
+
14
+ export { styleTransformersRegistry };
package/dist/index.d.ts CHANGED
@@ -1,2 +1,14 @@
1
+ type Transformer<TValue> = (value: TValue, options: {
2
+ key: string;
3
+ signal?: AbortSignal;
4
+ }) => unknown;
5
+ type TransformerName = string;
6
+ type AnyTransformer = Transformer<any>;
7
+ type TransformersMap = Record<string, AnyTransformer>;
1
8
 
2
- export { }
9
+ declare const styleTransformersRegistry: {
10
+ register(name: TransformerName, transformer: AnyTransformer): /*elided*/ any;
11
+ all(): TransformersMap;
12
+ };
13
+
14
+ export { styleTransformersRegistry };
package/dist/index.js CHANGED
@@ -5,6 +5,10 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __getProtoOf = Object.getPrototypeOf;
7
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
8
12
  var __copyProps = (to, from, except, desc) => {
9
13
  if (from && typeof from === "object" || typeof from === "function") {
10
14
  for (let key of __getOwnPropNames(from))
@@ -21,6 +25,14 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
21
25
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
26
  mod
23
27
  ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/index.ts
31
+ var index_exports = {};
32
+ __export(index_exports, {
33
+ styleTransformersRegistry: () => styleTransformersRegistry
34
+ });
35
+ module.exports = __toCommonJS(index_exports);
24
36
 
25
37
  // src/init.tsx
26
38
  var import_editor = require("@elementor/editor");
@@ -148,14 +160,70 @@ function ElementsOverlays() {
148
160
  ));
149
161
  }
150
162
 
151
- // src/init-styles-renderer.ts
152
- var import_editor_responsive = require("@elementor/editor-responsive");
153
- var import_editor_styles = require("@elementor/editor-styles");
154
- var import_editor_styles_repository = require("@elementor/editor-styles-repository");
155
- var import_editor_v1_adapters2 = require("@elementor/editor-v1-adapters");
163
+ // src/transformers/create-transformers-registry.ts
164
+ function createTransformersRegistry() {
165
+ const transformers = {};
166
+ return {
167
+ register(name, transformer) {
168
+ transformers[name] = transformer;
169
+ return this;
170
+ },
171
+ all() {
172
+ return transformers;
173
+ }
174
+ };
175
+ }
156
176
 
157
- // src/renderers/create-props-resolver.ts
158
- var import_editor_props = require("@elementor/editor-props");
177
+ // src/style-transformers-registry.ts
178
+ var styleTransformersRegistry = createTransformersRegistry();
179
+
180
+ // src/transformers/create-transformer.ts
181
+ function createTransformer(cb) {
182
+ return cb;
183
+ }
184
+
185
+ // src/transformers/styles/background-color-overlay-transformer.ts
186
+ var backgroundColorOverlayTransformer = createTransformer(
187
+ (value) => `linear-gradient(${value}, ${value})`
188
+ );
189
+
190
+ // src/transformers/styles/background-image-overlay-transformer.ts
191
+ var DEFAULT_POSITION_VALUE = "0% 0%";
192
+ var backgroundImageOverlayTransformer = createTransformer((value) => {
193
+ const { image, size: size2 = null, position = null, repeat = null, attachment = null } = value;
194
+ if (!image) {
195
+ return null;
196
+ }
197
+ const backgroundStyles = [
198
+ image,
199
+ repeat,
200
+ attachment,
201
+ size2 ? `${position || DEFAULT_POSITION_VALUE} / ${size2}` : position
202
+ ].filter(Boolean);
203
+ return backgroundStyles.join(" ");
204
+ });
205
+
206
+ // src/transformers/styles/background-image-position-offset-transformer.ts
207
+ var backgroundImagePositionOffsetTransformer = createTransformer(
208
+ ({ x = "0px", y = "0px" }) => `${x} ${y}`
209
+ );
210
+
211
+ // src/transformers/styles/background-image-size-scale-transformer.ts
212
+ var backgroundImageSizeScaleTransformer = createTransformer(
213
+ ({ width = "auto", height = "auto" }) => `${width} ${height}`
214
+ );
215
+
216
+ // src/transformers/styles/background-transformer.ts
217
+ var backgroundTransformer = createTransformer((value) => {
218
+ const overlays = value["background-overlay"] ?? "";
219
+ const color = value.color ?? "";
220
+ return `${overlays} ${color}`.trim();
221
+ });
222
+
223
+ // src/transformers/styles/create-combine-array-transformer.ts
224
+ var createCombineArrayTransformer = (delimiter) => {
225
+ return createTransformer((value) => value.filter(Boolean).join(delimiter));
226
+ };
159
227
 
160
228
  // src/renderers/multi-props.ts
161
229
  var isMultiProps = (propValue) => {
@@ -171,9 +239,121 @@ var getMultiPropsValue = (multiProps) => {
171
239
  return multiProps.value;
172
240
  };
173
241
 
242
+ // src/transformers/styles/create-multi-props-transformer.ts
243
+ var createMultiPropsTransformer = (keys, keyGenerator) => {
244
+ return createTransformer((value, { key: propKey }) => {
245
+ const entries = keys.filter((key) => value[key]).map((key) => [keyGenerator({ propKey, key }), value[key]]);
246
+ return createMultiPropsValue(Object.fromEntries(entries));
247
+ });
248
+ };
249
+
250
+ // src/transformers/styles/image-attachment-transformer.ts
251
+ var import_wp_media = require("@elementor/wp-media");
252
+ var imageAttachmentTransformer = createTransformer(async (value) => {
253
+ const attachment = await (0, import_wp_media.getMediaAttachment)({ id: value });
254
+ if (!attachment) {
255
+ return null;
256
+ }
257
+ return attachment;
258
+ });
259
+
260
+ // src/transformers/styles/image-src-transformer.ts
261
+ var imageSrcTransformer = createTransformer((value) => ({
262
+ attachment: value.id,
263
+ url: value.url
264
+ }));
265
+
266
+ // src/transformers/styles/image-transformer.ts
267
+ var imageTransformer = createTransformer((value) => {
268
+ const { src, size: size2 } = value;
269
+ if (src?.url) {
270
+ return `url(${src.url})`;
271
+ }
272
+ const sizeUrl = src?.attachment?.sizes?.[size2 ?? ""]?.url;
273
+ if (sizeUrl) {
274
+ return `url(${sizeUrl})`;
275
+ }
276
+ const attachmentUrl = src?.attachment?.url;
277
+ if (attachmentUrl) {
278
+ return `url(${attachmentUrl})`;
279
+ }
280
+ return null;
281
+ });
282
+
283
+ // src/transformers/styles/primitive-transformer.ts
284
+ var primitiveTransformer = createTransformer((value) => value);
285
+
286
+ // src/transformers/styles/shadow-transformer.ts
287
+ var shadowTransformer = createTransformer((value) => {
288
+ return [value.hOffset, value.vOffset, value.blur, value.spread, value.color, value.position].filter(Boolean).join(" ");
289
+ });
290
+
291
+ // src/transformers/styles/size-transformer.ts
292
+ var sizeTransformer = createTransformer((value) => {
293
+ return `${value.size}${value.unit}`;
294
+ });
295
+
296
+ // src/transformers/styles/stroke-transformer.ts
297
+ var strokeTransformer = createTransformer((value) => {
298
+ const parsed = {
299
+ "-webkit-text-stroke": `${value.width} ${value.color}`,
300
+ stroke: `${value.color}`,
301
+ "stroke-width": `${value.width}`
302
+ };
303
+ return createMultiPropsValue(parsed);
304
+ });
305
+
306
+ // src/init-style-transformers.ts
307
+ function initStyleTransformers() {
308
+ styleTransformersRegistry.register("size", sizeTransformer).register("shadow", shadowTransformer).register("stroke", strokeTransformer).register(
309
+ "dimensions",
310
+ createMultiPropsTransformer(
311
+ ["top", "right", "bottom", "left"],
312
+ ({ propKey, key }) => `${propKey}-${key}`
313
+ )
314
+ ).register("color", primitiveTransformer).register("number", primitiveTransformer).register("string", primitiveTransformer).register("url", primitiveTransformer).register("box-shadow", createCombineArrayTransformer(",")).register("background", backgroundTransformer).register("background-overlay", createCombineArrayTransformer(",")).register("background-color-overlay", backgroundColorOverlayTransformer).register("background-image-overlay", backgroundImageOverlayTransformer).register("background-image-position-offset", backgroundImagePositionOffsetTransformer).register("background-image-size-scale", backgroundImageSizeScaleTransformer).register("image-attachment-id", imageAttachmentTransformer).register("image-src", imageSrcTransformer).register("image", imageTransformer).register(
315
+ "layout-direction",
316
+ createMultiPropsTransformer(["row", "column"], ({ propKey, key }) => `${key}-${propKey}`)
317
+ ).register(
318
+ "border-width",
319
+ createMultiPropsTransformer(["top", "right", "bottom", "left"], ({ key }) => `border-${key}-width`)
320
+ ).register(
321
+ "border-radius",
322
+ createMultiPropsTransformer(
323
+ ["start-start", "start-end", "end-start", "end-end"],
324
+ ({ key }) => `border-${key}-radius`
325
+ )
326
+ );
327
+ }
328
+
329
+ // src/init-styles-renderer.ts
330
+ var import_editor_responsive = require("@elementor/editor-responsive");
331
+ var import_editor_styles = require("@elementor/editor-styles");
332
+ var import_editor_styles_repository = require("@elementor/editor-styles-repository");
333
+ var import_editor_v1_adapters2 = require("@elementor/editor-v1-adapters");
334
+
174
335
  // src/renderers/create-props-resolver.ts
336
+ var import_editor_props = require("@elementor/editor-props");
175
337
  var TRANSFORM_DEPTH_LIMIT = 3;
176
- function createPropsResolver(transformers, { onPropResolve } = {}) {
338
+ function createPropsResolver({ transformers, schema: initialSchema, onPropResolve }) {
339
+ async function resolve({ props, schema, signal }) {
340
+ schema = schema ?? initialSchema;
341
+ const promises = Promise.all(
342
+ Object.entries(schema).map(async ([key, type]) => {
343
+ const value = props[key] ?? type.default;
344
+ const transformed = await transform({ value, key, type, signal });
345
+ if (transformed === null) {
346
+ return;
347
+ }
348
+ onPropResolve?.({ key, value: transformed });
349
+ if (isMultiProps(transformed)) {
350
+ return getMultiPropsValue(transformed);
351
+ }
352
+ return { [key]: transformed };
353
+ })
354
+ );
355
+ return Object.assign({}, ...(await promises).filter(Boolean));
356
+ }
177
357
  async function transform({ value, key, type, signal, depth = 0 }) {
178
358
  if (value === null || value === void 0) {
179
359
  return null;
@@ -219,23 +399,6 @@ function createPropsResolver(transformers, { onPropResolve } = {}) {
219
399
  return null;
220
400
  }
221
401
  }
222
- async function resolve({ props, schema, signal }) {
223
- const promises = Promise.all(
224
- Object.entries(schema).map(async ([key, type]) => {
225
- const value = props[key] ?? type.default;
226
- const transformed = await transform({ value, key, type, signal });
227
- if (transformed === null) {
228
- return;
229
- }
230
- onPropResolve?.({ key, value: transformed });
231
- if (isMultiProps(transformed)) {
232
- return getMultiPropsValue(transformed);
233
- }
234
- return { [key]: transformed };
235
- })
236
- );
237
- return Object.assign({}, ...(await promises).filter(Boolean));
238
- }
239
402
  return resolve;
240
403
  }
241
404
 
@@ -253,14 +416,13 @@ var SELECTORS_MAP = {
253
416
  async function renderStyles({
254
417
  resolve,
255
418
  styles,
256
- schema,
257
419
  breakpoints,
258
420
  selectorPrefix = "",
259
421
  signal
260
422
  }) {
261
423
  const stylesCssPromises = styles.map(async (style) => {
262
424
  const variantCssPromises = Object.values(style.variants).map(async (variant) => {
263
- const css = await propsToCss({ props: variant.props, schema, resolve, signal });
425
+ const css = await propsToCss({ props: variant.props, resolve, signal });
264
426
  return createStyleWrapper().forStyle(style).withPrefix(selectorPrefix).withState(variant.meta.state).withMediaQuery(variant.meta.breakpoint ? breakpoints[variant.meta.breakpoint] : null).wrap(css);
265
427
  });
266
428
  const variantsCss = await Promise.all(variantCssPromises);
@@ -296,8 +458,8 @@ function createStyleWrapper(value = "", wrapper) {
296
458
  }
297
459
  };
298
460
  }
299
- async function propsToCss({ props, resolve, signal, schema }) {
300
- const transformed = await resolve({ props, schema, signal });
461
+ async function propsToCss({ props, resolve, signal }) {
462
+ const transformed = await resolve({ props, signal });
301
463
  return Object.entries(transformed).reduce((acc, [propName, propValue]) => {
302
464
  acc.push(propName + ":" + propValue + ";");
303
465
  return acc;
@@ -307,197 +469,6 @@ function wrapCssWithStyleElement(id, css) {
307
469
  return `<style data-style-id="${id}">${css}</style>`;
308
470
  }
309
471
 
310
- // src/renderers/style-transformers/background-color-overlay-transformer.ts
311
- var backgroundColorOverlayTransformer = (value) => {
312
- return `linear-gradient(${value}, ${value})`;
313
- };
314
- var background_color_overlay_transformer_default = backgroundColorOverlayTransformer;
315
-
316
- // src/renderers/style-transformers/background-image-overlay-transformer.ts
317
- var DEFAULT_POSITION_VALUE = "0% 0%";
318
- var backgroundImageOverlayTransformer = (value) => {
319
- const { image: imageSrc, size: size2 = null, position = null, repeat = null, attachment = null } = value;
320
- if (!imageSrc) {
321
- return null;
322
- }
323
- const backgroundStyles = [
324
- imageSrc,
325
- repeat,
326
- attachment,
327
- size2 ? `${position || DEFAULT_POSITION_VALUE} / ${size2}` : position
328
- ].filter(Boolean);
329
- return backgroundStyles.join(" ");
330
- };
331
- var background_image_overlay_transformer_default = backgroundImageOverlayTransformer;
332
-
333
- // src/renderers/style-transformers/background-image-position-offset-transformer.ts
334
- var backgroundImagePositionOffsetTransformer = ({
335
- x = "0px",
336
- y = "0px"
337
- }) => `${x} ${y}`;
338
- var background_image_position_offset_transformer_default = backgroundImagePositionOffsetTransformer;
339
-
340
- // src/renderers/style-transformers/background-image-size-scale-transformer.ts
341
- var backgroundImageSizeScaleTransformer = ({
342
- width = "auto",
343
- height = "auto"
344
- }) => `${width} ${height}`;
345
- var background_image_size_scale_transformer_default = backgroundImageSizeScaleTransformer;
346
-
347
- // src/renderers/style-transformers/background-transformer.ts
348
- var backgroundTransformer = (value) => {
349
- const overlays = value["background-overlay"] ?? "";
350
- const color = value.color ?? "";
351
- return `${overlays} ${color}`.trim();
352
- };
353
- var background_transformer_default = backgroundTransformer;
354
-
355
- // src/renderers/style-transformers/create-combine-array-transformer.ts
356
- var createCombineArrayTransformer = (delimiter) => {
357
- return (value) => value.filter(Boolean).join(delimiter);
358
- };
359
- var create_combine_array_transformer_default = createCombineArrayTransformer;
360
-
361
- // src/renderers/style-transformers/create-corner-sizes-transformer.ts
362
- var validCorners = ["start-start", "start-end", "end-start", "end-end"];
363
- var createCornerSizesTransformer = (keyGenerator) => (value) => {
364
- const props = Object.entries(value).reduce((acc, [corner, cornerValue]) => {
365
- if (validCorners.includes(corner)) {
366
- const key = keyGenerator(corner);
367
- acc[key] = cornerValue;
368
- }
369
- return acc;
370
- }, {});
371
- return createMultiPropsValue(props);
372
- };
373
- var create_corner_sizes_transformer_default = createCornerSizesTransformer;
374
-
375
- // src/renderers/style-transformers/create-edge-sizes-transformer.ts
376
- var validEdges = ["top", "right", "bottom", "left"];
377
- var createEdgeSizesTransformer = (keyGenerator) => (value) => {
378
- const props = Object.entries(value).reduce((acc, [edge, edgeValue]) => {
379
- if (validEdges.includes(edge)) {
380
- const key = keyGenerator(edge);
381
- acc[key] = edgeValue;
382
- }
383
- return acc;
384
- }, {});
385
- return createMultiPropsValue(props);
386
- };
387
- var create_edge_sizes_transformer_default = createEdgeSizesTransformer;
388
-
389
- // src/renderers/style-transformers/dimensions.ts
390
- var validKeys = ["top", "right", "bottom", "left"];
391
- var dimensions = (value, { key }) => {
392
- const parsed = Object.entries(value).reduce((acc, [dimensionKey, dimensionValue]) => {
393
- if (dimensionValue && validKeys.includes(dimensionKey)) {
394
- acc[`${key}-${dimensionKey}`] = dimensionValue;
395
- }
396
- return acc;
397
- }, {});
398
- return createMultiPropsValue(parsed);
399
- };
400
- var dimensions_default = dimensions;
401
-
402
- // src/renderers/style-transformers/image.ts
403
- var imageTransformer = (value) => {
404
- const { src, size: size2 } = value;
405
- if (src.url) {
406
- return `url(${src.url})`;
407
- }
408
- const sizeUrl = src.attachment?.sizes[size2]?.url;
409
- if (sizeUrl) {
410
- return `url(${sizeUrl})`;
411
- }
412
- const attachmentUrl = src.attachment?.url;
413
- if (attachmentUrl) {
414
- return `url(${attachmentUrl})`;
415
- }
416
- return null;
417
- };
418
-
419
- // src/renderers/style-transformers/image-attachment.ts
420
- var import_wp_media = require("@elementor/wp-media");
421
- var imageAttachmentTransformer = async (value) => {
422
- const attachment = await (0, import_wp_media.getMediaAttachment)({ id: value });
423
- if (!attachment) {
424
- return null;
425
- }
426
- return attachment;
427
- };
428
-
429
- // src/renderers/style-transformers/image-src.ts
430
- var imageSrcTransformer = (value) => ({
431
- attachment: value.id,
432
- url: value.url
433
- });
434
-
435
- // src/renderers/style-transformers/layout-direction-transformer.ts
436
- var validKeys2 = ["row", "column"];
437
- var layoutDirectionTransformer = (value, { key }) => {
438
- const parsed = Object.entries(value).reduce((acc, [dimensionKey, dimensionValue]) => {
439
- if (dimensionValue && validKeys2.includes(dimensionKey)) {
440
- acc[`${dimensionKey}-${key}`] = dimensionValue;
441
- }
442
- return acc;
443
- }, {});
444
- return createMultiPropsValue(parsed);
445
- };
446
- var layout_direction_transformer_default = layoutDirectionTransformer;
447
-
448
- // src/renderers/style-transformers/primitive-transformer.ts
449
- var primitiveTransformer = (value) => {
450
- return value;
451
- };
452
-
453
- // src/renderers/style-transformers/shadow-transformer.ts
454
- var shadowTransformer = (value) => {
455
- return [value.hOffset, value.vOffset, value.blur, value.spread, value.color, value.position].filter(Boolean).join(" ");
456
- };
457
- var shadow_transformer_default = shadowTransformer;
458
-
459
- // src/renderers/style-transformers/size-transformer.ts
460
- var sizeTransformer = (value) => {
461
- return `${value.size}${value.unit}`;
462
- };
463
- var size_transformer_default = sizeTransformer;
464
-
465
- // src/renderers/style-transformers/stroke-transformer.ts
466
- var strokeTransformer = (value) => {
467
- const parsed = {
468
- "-webkit-text-stroke": `${value.width} ${value.color}`,
469
- stroke: `${value.color}`,
470
- "stroke-width": `${value.width}`
471
- };
472
- return createMultiPropsValue(parsed);
473
- };
474
- var stroke_transformer_default = strokeTransformer;
475
-
476
- // src/renderers/style-transformers/index.ts
477
- var styleTransformers = {
478
- size: size_transformer_default,
479
- shadow: shadow_transformer_default,
480
- stroke: stroke_transformer_default,
481
- background: background_transformer_default,
482
- color: primitiveTransformer,
483
- number: primitiveTransformer,
484
- string: primitiveTransformer,
485
- url: primitiveTransformer,
486
- dimensions: dimensions_default,
487
- "background-color-overlay": background_color_overlay_transformer_default,
488
- "background-image-overlay": background_image_overlay_transformer_default,
489
- "background-image-position-offset": background_image_position_offset_transformer_default,
490
- "background-image-size-scale": background_image_size_scale_transformer_default,
491
- "background-overlay": create_combine_array_transformer_default(","),
492
- "box-shadow": create_combine_array_transformer_default(","),
493
- "border-width": create_edge_sizes_transformer_default((edgeKey) => `border-${edgeKey}-width`),
494
- "border-radius": create_corner_sizes_transformer_default((cornerKey) => `border-${cornerKey}-radius`),
495
- "image-attachment-id": imageAttachmentTransformer,
496
- "image-src": imageSrcTransformer,
497
- image: imageTransformer,
498
- "layout-direction": layout_direction_transformer_default
499
- };
500
-
501
472
  // src/sync/enqueue-font.ts
502
473
  var enqueueFont = (fontFamily, context = "preview") => {
503
474
  const extendedWindow = window;
@@ -514,14 +485,17 @@ function getCanvasIframeBody() {
514
485
  var WRAPPER_DATA_ATTR = "data-styles-container";
515
486
  var SELECTOR_PREFIX = ".elementor";
516
487
  function initStylesRenderer() {
517
- let abortController = null;
518
- const resolve = createPropsResolver(styleTransformers, { onPropResolve: enqueueUsedFonts });
519
488
  (0, import_editor_v1_adapters2.__privateListenTo)((0, import_editor_v1_adapters2.v1ReadyEvent)(), () => {
489
+ let abortController = null;
490
+ const resolve = createPropsResolver({
491
+ transformers: styleTransformersRegistry.all(),
492
+ schema: (0, import_editor_styles.getStylesSchema)(),
493
+ onPropResolve: enqueueUsedFonts
494
+ });
520
495
  import_editor_styles_repository.stylesRepository.subscribe(async () => {
521
496
  const styleContainer = getStylesContainer();
522
497
  const styles = import_editor_styles_repository.stylesRepository.all().reverse();
523
498
  const breakpoints = (0, import_editor_responsive.getBreakpointsMap)();
524
- const schema = (0, import_editor_styles.getStylesSchema)();
525
499
  if (abortController) {
526
500
  abortController.abort();
527
501
  }
@@ -531,8 +505,7 @@ function initStylesRenderer() {
531
505
  resolve,
532
506
  breakpoints,
533
507
  selectorPrefix: SELECTOR_PREFIX,
534
- signal: abortController.signal,
535
- schema
508
+ signal: abortController.signal
536
509
  });
537
510
  });
538
511
  });
@@ -562,6 +535,7 @@ function enqueueUsedFonts({ key, value }) {
562
535
 
563
536
  // src/init.tsx
564
537
  function init() {
538
+ initStyleTransformers();
565
539
  initStylesRenderer();
566
540
  (0, import_editor.injectIntoTop)({
567
541
  id: "elements-overlays",
@@ -571,4 +545,8 @@ function init() {
571
545
 
572
546
  // src/index.ts
573
547
  init();
548
+ // Annotate the CommonJS export names for ESM import in node:
549
+ 0 && (module.exports = {
550
+ styleTransformersRegistry
551
+ });
574
552
  //# sourceMappingURL=index.js.map