@elementor/editor-canvas 0.3.0 → 0.5.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 (42) hide show
  1. package/.turbo/turbo-build.log +8 -8
  2. package/CHANGELOG.md +29 -0
  3. package/dist/index.js +162 -127
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.mjs +158 -123
  6. package/dist/index.mjs.map +1 -1
  7. package/package.json +4 -4
  8. package/src/__tests__/init-styles-renderer.test.ts +1 -1
  9. package/src/init-styles-renderer.ts +1 -1
  10. package/src/styles-renderer/__tests__/__mocks__/styles-schema.ts +785 -0
  11. package/src/styles-renderer/__tests__/index.test.ts +644 -71
  12. package/src/styles-renderer/get-styles-schema.ts +17 -0
  13. package/src/styles-renderer/multi-props.ts +26 -0
  14. package/src/styles-renderer/render.ts +10 -12
  15. package/src/styles-renderer/resolve.ts +99 -0
  16. package/src/styles-renderer/transformers/background-color-overlay-transformer.ts +9 -0
  17. package/src/styles-renderer/transformers/background-transformer.ts +12 -0
  18. package/src/styles-renderer/transformers/create-combine-array-transformer.ts +4 -15
  19. package/src/styles-renderer/transformers/create-corner-sizes-transformer.ts +33 -0
  20. package/src/styles-renderer/transformers/create-edge-sizes-transformer.ts +31 -0
  21. package/src/styles-renderer/transformers/gap-transformer.ts +20 -0
  22. package/src/styles-renderer/transformers/index.ts +22 -15
  23. package/src/styles-renderer/transformers/linked-dimensions-transformer.ts +13 -8
  24. package/src/styles-renderer/transformers/primitive-transformer.ts +7 -0
  25. package/src/styles-renderer/transformers/shadow-transformer.ts +5 -16
  26. package/src/styles-renderer/transformers/size-transformer.ts +3 -5
  27. package/src/styles-renderer/transformers/stroke-transformer.ts +3 -5
  28. package/src/styles-renderer/types.ts +3 -6
  29. package/src/styles-renderer/__tests__/__mocks__/style-definitions.ts +0 -171
  30. package/src/styles-renderer/transform.ts +0 -34
  31. package/src/styles-renderer/transformers/__tests__/background-overlay-transformer.test.ts +0 -46
  32. package/src/styles-renderer/transformers/__tests__/create-combine-array-transformer.test.ts +0 -61
  33. package/src/styles-renderer/transformers/__tests__/linked-dimensions-transformer.test.ts +0 -34
  34. package/src/styles-renderer/transformers/__tests__/shadow-transformer.test.ts +0 -127
  35. package/src/styles-renderer/transformers/__tests__/size-transformer.test.ts +0 -37
  36. package/src/styles-renderer/transformers/__tests__/stroke-transformer.test.ts +0 -59
  37. package/src/styles-renderer/transformers/background-overlay-transformer.ts +0 -13
  38. package/src/styles-renderer/transformers/border-radius-transformer.ts +0 -20
  39. package/src/styles-renderer/transformers/border-width-transformer.ts +0 -15
  40. package/src/styles-renderer/transformers/color-transformer.ts +0 -11
  41. package/src/styles-renderer/transformers/number-transformer.ts +0 -11
  42. package/src/styles-renderer/transformers/string-transformer.ts +0 -11
@@ -0,0 +1,785 @@
1
+ import { type PropsSchema } from '@elementor/editor-elements';
2
+
3
+ export const stylesSchemaMock = {
4
+ 'font-size': {
5
+ kind: 'object',
6
+ key: 'size',
7
+ default: null,
8
+ meta: {},
9
+ settings: {},
10
+ shape: {
11
+ size: {
12
+ kind: 'plain',
13
+ key: 'number',
14
+ default: null,
15
+ meta: {},
16
+ settings: {
17
+ required: true,
18
+ },
19
+ },
20
+ unit: {
21
+ kind: 'plain',
22
+ key: 'string',
23
+ default: null,
24
+ meta: {},
25
+ settings: {
26
+ enum: [ 'px', 'em', 'rem', '%', 'vh', 'vw', 'vmin', 'vmax' ],
27
+ required: true,
28
+ },
29
+ },
30
+ },
31
+ },
32
+ 'text-stroke': {
33
+ kind: 'object',
34
+ key: 'stroke',
35
+ default: null,
36
+ meta: {},
37
+ settings: {},
38
+ shape: {
39
+ color: {
40
+ kind: 'plain',
41
+ key: 'color',
42
+ default: null,
43
+ meta: {},
44
+ settings: {},
45
+ },
46
+ width: {
47
+ kind: 'object',
48
+ key: 'size',
49
+ default: null,
50
+ meta: {},
51
+ settings: {},
52
+ shape: {
53
+ size: {
54
+ kind: 'plain',
55
+ key: 'number',
56
+ default: null,
57
+ meta: {},
58
+ settings: {
59
+ required: true,
60
+ },
61
+ },
62
+ unit: {
63
+ kind: 'plain',
64
+ key: 'string',
65
+ default: null,
66
+ meta: {},
67
+ settings: {
68
+ enum: [ 'px', 'em', 'rem', '%', 'vh', 'vw', 'vmin', 'vmax' ],
69
+ required: true,
70
+ },
71
+ },
72
+ },
73
+ },
74
+ },
75
+ },
76
+ padding: {
77
+ kind: 'object',
78
+ key: 'linked-dimensions',
79
+ default: null,
80
+ meta: {},
81
+ settings: {},
82
+ shape: {
83
+ isLinked: {
84
+ kind: 'plain',
85
+ key: 'boolean',
86
+ default: null,
87
+ meta: {},
88
+ settings: {},
89
+ },
90
+ top: {
91
+ kind: 'object',
92
+ key: 'size',
93
+ default: null,
94
+ meta: {},
95
+ settings: {},
96
+ shape: {
97
+ size: {
98
+ kind: 'plain',
99
+ key: 'number',
100
+ default: null,
101
+ meta: {},
102
+ settings: {
103
+ required: true,
104
+ },
105
+ },
106
+ unit: {
107
+ kind: 'plain',
108
+ key: 'string',
109
+ default: null,
110
+ meta: {},
111
+ settings: {
112
+ enum: [ 'px', 'em', 'rem', '%', 'vh', 'vw', 'vmin', 'vmax' ],
113
+ required: true,
114
+ },
115
+ },
116
+ },
117
+ },
118
+ right: {
119
+ kind: 'object',
120
+ key: 'size',
121
+ default: null,
122
+ meta: {},
123
+ settings: {},
124
+ shape: {
125
+ size: {
126
+ kind: 'plain',
127
+ key: 'number',
128
+ default: null,
129
+ meta: {},
130
+ settings: {
131
+ required: true,
132
+ },
133
+ },
134
+ unit: {
135
+ kind: 'plain',
136
+ key: 'string',
137
+ default: null,
138
+ meta: {},
139
+ settings: {
140
+ enum: [ 'px', 'em', 'rem', '%', 'vh', 'vw', 'vmin', 'vmax' ],
141
+ required: true,
142
+ },
143
+ },
144
+ },
145
+ },
146
+ bottom: {
147
+ kind: 'object',
148
+ key: 'size',
149
+ default: null,
150
+ meta: {},
151
+ settings: {},
152
+ shape: {
153
+ size: {
154
+ kind: 'plain',
155
+ key: 'number',
156
+ default: null,
157
+ meta: {},
158
+ settings: {
159
+ required: true,
160
+ },
161
+ },
162
+ unit: {
163
+ kind: 'plain',
164
+ key: 'string',
165
+ default: null,
166
+ meta: {},
167
+ settings: {
168
+ enum: [ 'px', 'em', 'rem', '%', 'vh', 'vw', 'vmin', 'vmax' ],
169
+ required: true,
170
+ },
171
+ },
172
+ },
173
+ },
174
+ left: {
175
+ kind: 'object',
176
+ key: 'size',
177
+ default: null,
178
+ meta: {},
179
+ settings: {},
180
+ shape: {
181
+ size: {
182
+ kind: 'plain',
183
+ key: 'number',
184
+ default: null,
185
+ meta: {},
186
+ settings: {
187
+ required: true,
188
+ },
189
+ },
190
+ unit: {
191
+ kind: 'plain',
192
+ key: 'string',
193
+ default: null,
194
+ meta: {},
195
+ settings: {
196
+ enum: [ 'px', 'em', 'rem', '%', 'vh', 'vw', 'vmin', 'vmax' ],
197
+ required: true,
198
+ },
199
+ },
200
+ },
201
+ },
202
+ },
203
+ },
204
+ 'border-radius': {
205
+ kind: 'union',
206
+ default: null,
207
+ meta: {},
208
+ settings: {},
209
+ prop_types: {
210
+ size: {
211
+ kind: 'object',
212
+ key: 'size',
213
+ default: null,
214
+ meta: {},
215
+ settings: {},
216
+ shape: {
217
+ size: {
218
+ kind: 'plain',
219
+ key: 'number',
220
+ default: null,
221
+ meta: {},
222
+ settings: {
223
+ required: true,
224
+ },
225
+ },
226
+ unit: {
227
+ kind: 'plain',
228
+ key: 'string',
229
+ default: null,
230
+ meta: {},
231
+ settings: {
232
+ enum: [ 'px', 'em', 'rem', '%', 'vh', 'vw', 'vmin', 'vmax' ],
233
+ required: true,
234
+ },
235
+ },
236
+ },
237
+ },
238
+ 'border-radius': {
239
+ kind: 'object',
240
+ key: 'border-radius',
241
+ default: null,
242
+ meta: {},
243
+ settings: {},
244
+ shape: {
245
+ 'top-left': {
246
+ kind: 'object',
247
+ key: 'size',
248
+ default: null,
249
+ meta: {},
250
+ settings: {},
251
+ shape: {
252
+ size: {
253
+ kind: 'plain',
254
+ key: 'number',
255
+ default: null,
256
+ meta: {},
257
+ settings: {
258
+ required: true,
259
+ },
260
+ },
261
+ unit: {
262
+ kind: 'plain',
263
+ key: 'string',
264
+ default: null,
265
+ meta: {},
266
+ settings: {
267
+ enum: [ 'px', 'em', 'rem', '%', 'vh', 'vw', 'vmin', 'vmax' ],
268
+ required: true,
269
+ },
270
+ },
271
+ },
272
+ },
273
+ 'top-right': {
274
+ kind: 'object',
275
+ key: 'size',
276
+ default: null,
277
+ meta: {},
278
+ settings: {},
279
+ shape: {
280
+ size: {
281
+ kind: 'plain',
282
+ key: 'number',
283
+ default: null,
284
+ meta: {},
285
+ settings: {
286
+ required: true,
287
+ },
288
+ },
289
+ unit: {
290
+ kind: 'plain',
291
+ key: 'string',
292
+ default: null,
293
+ meta: {},
294
+ settings: {
295
+ enum: [ 'px', 'em', 'rem', '%', 'vh', 'vw', 'vmin', 'vmax' ],
296
+ required: true,
297
+ },
298
+ },
299
+ },
300
+ },
301
+ 'bottom-right': {
302
+ kind: 'object',
303
+ key: 'size',
304
+ default: null,
305
+ meta: {},
306
+ settings: {},
307
+ shape: {
308
+ size: {
309
+ kind: 'plain',
310
+ key: 'number',
311
+ default: null,
312
+ meta: {},
313
+ settings: {
314
+ required: true,
315
+ },
316
+ },
317
+ unit: {
318
+ kind: 'plain',
319
+ key: 'string',
320
+ default: null,
321
+ meta: {},
322
+ settings: {
323
+ enum: [ 'px', 'em', 'rem', '%', 'vh', 'vw', 'vmin', 'vmax' ],
324
+ required: true,
325
+ },
326
+ },
327
+ },
328
+ },
329
+ 'bottom-left': {
330
+ kind: 'object',
331
+ key: 'size',
332
+ default: null,
333
+ meta: {},
334
+ settings: {},
335
+ shape: {
336
+ size: {
337
+ kind: 'plain',
338
+ key: 'number',
339
+ default: null,
340
+ meta: {},
341
+ settings: {
342
+ required: true,
343
+ },
344
+ },
345
+ unit: {
346
+ kind: 'plain',
347
+ key: 'string',
348
+ default: null,
349
+ meta: {},
350
+ settings: {
351
+ enum: [ 'px', 'em', 'rem', '%', 'vh', 'vw', 'vmin', 'vmax' ],
352
+ required: true,
353
+ },
354
+ },
355
+ },
356
+ },
357
+ },
358
+ },
359
+ },
360
+ },
361
+ 'border-width': {
362
+ kind: 'object',
363
+ key: 'border-width',
364
+ default: null,
365
+ meta: {},
366
+ settings: {},
367
+ shape: {
368
+ top: {
369
+ kind: 'object',
370
+ key: 'size',
371
+ default: null,
372
+ meta: {},
373
+ settings: {},
374
+ shape: {
375
+ size: {
376
+ kind: 'plain',
377
+ key: 'number',
378
+ default: null,
379
+ meta: {},
380
+ settings: {
381
+ required: true,
382
+ },
383
+ },
384
+ unit: {
385
+ kind: 'plain',
386
+ key: 'string',
387
+ default: null,
388
+ meta: {},
389
+ settings: {
390
+ enum: [ 'px', 'em', 'rem', '%', 'vh', 'vw', 'vmin', 'vmax' ],
391
+ required: true,
392
+ },
393
+ },
394
+ },
395
+ },
396
+ right: {
397
+ kind: 'object',
398
+ key: 'size',
399
+ default: null,
400
+ meta: {},
401
+ settings: {},
402
+ shape: {
403
+ size: {
404
+ kind: 'plain',
405
+ key: 'number',
406
+ default: null,
407
+ meta: {},
408
+ settings: {
409
+ required: true,
410
+ },
411
+ },
412
+ unit: {
413
+ kind: 'plain',
414
+ key: 'string',
415
+ default: null,
416
+ meta: {},
417
+ settings: {
418
+ enum: [ 'px', 'em', 'rem', '%', 'vh', 'vw', 'vmin', 'vmax' ],
419
+ required: true,
420
+ },
421
+ },
422
+ },
423
+ },
424
+ bottom: {
425
+ kind: 'object',
426
+ key: 'size',
427
+ default: null,
428
+ meta: {},
429
+ settings: {},
430
+ shape: {
431
+ size: {
432
+ kind: 'plain',
433
+ key: 'number',
434
+ default: null,
435
+ meta: {},
436
+ settings: {
437
+ required: true,
438
+ },
439
+ },
440
+ unit: {
441
+ kind: 'plain',
442
+ key: 'string',
443
+ default: null,
444
+ meta: {},
445
+ settings: {
446
+ enum: [ 'px', 'em', 'rem', '%', 'vh', 'vw', 'vmin', 'vmax' ],
447
+ required: true,
448
+ },
449
+ },
450
+ },
451
+ },
452
+ left: {
453
+ kind: 'object',
454
+ key: 'size',
455
+ default: null,
456
+ meta: {},
457
+ settings: {},
458
+ shape: {
459
+ size: {
460
+ kind: 'plain',
461
+ key: 'number',
462
+ default: null,
463
+ meta: {},
464
+ settings: {
465
+ required: true,
466
+ },
467
+ },
468
+ unit: {
469
+ kind: 'plain',
470
+ key: 'string',
471
+ default: null,
472
+ meta: {},
473
+ settings: {
474
+ enum: [ 'px', 'em', 'rem', '%', 'vh', 'vw', 'vmin', 'vmax' ],
475
+ required: true,
476
+ },
477
+ },
478
+ },
479
+ },
480
+ },
481
+ },
482
+ background: {
483
+ kind: 'object',
484
+ key: 'background',
485
+ default: null,
486
+ meta: {},
487
+ settings: {},
488
+ shape: {
489
+ 'background-overlay': {
490
+ kind: 'array',
491
+ key: 'background-overlay',
492
+ default: null,
493
+ meta: {},
494
+ settings: {},
495
+ item_prop_type: {
496
+ kind: 'union',
497
+ default: null,
498
+ meta: {},
499
+ settings: {},
500
+ prop_types: {
501
+ 'background-image-overlay': {
502
+ kind: 'object',
503
+ key: 'background-image-overlay',
504
+ default: null,
505
+ meta: {},
506
+ settings: {},
507
+ shape: {
508
+ url: {
509
+ kind: 'plain',
510
+ key: 'string',
511
+ default: null,
512
+ meta: {},
513
+ settings: {},
514
+ },
515
+ repeat: {
516
+ kind: 'plain',
517
+ key: 'string',
518
+ default: null,
519
+ meta: {},
520
+ settings: {},
521
+ },
522
+ },
523
+ },
524
+ 'background-gradient-overlay': {
525
+ kind: 'object',
526
+ key: 'background-gradient-overlay',
527
+ default: null,
528
+ meta: {},
529
+ settings: {},
530
+ shape: {
531
+ color: {
532
+ kind: 'plain',
533
+ key: 'color',
534
+ default: null,
535
+ meta: {},
536
+ settings: {},
537
+ },
538
+ },
539
+ },
540
+ 'background-color-overlay': {
541
+ kind: 'plain',
542
+ key: 'background-color-overlay',
543
+ default: null,
544
+ meta: {},
545
+ settings: {},
546
+ },
547
+ },
548
+ },
549
+ },
550
+ color: {
551
+ kind: 'plain',
552
+ key: 'color',
553
+ default: null,
554
+ meta: {},
555
+ settings: {},
556
+ },
557
+ },
558
+ },
559
+ 'box-shadow': {
560
+ kind: 'array',
561
+ key: 'box-shadow',
562
+ default: null,
563
+ meta: {},
564
+ settings: {},
565
+ item_prop_type: {
566
+ kind: 'object',
567
+ key: 'shadow',
568
+ default: null,
569
+ meta: {},
570
+ settings: {},
571
+ shape: {
572
+ hOffset: {
573
+ kind: 'object',
574
+ key: 'size',
575
+ default: null,
576
+ meta: {},
577
+ settings: {
578
+ required: true,
579
+ },
580
+ shape: {
581
+ size: {
582
+ kind: 'plain',
583
+ key: 'number',
584
+ default: null,
585
+ meta: {},
586
+ settings: {
587
+ required: true,
588
+ },
589
+ },
590
+ unit: {
591
+ kind: 'plain',
592
+ key: 'string',
593
+ default: null,
594
+ meta: {},
595
+ settings: {
596
+ enum: [ 'px', 'em', 'rem', '%', 'vh', 'vw', 'vmin', 'vmax' ],
597
+ required: true,
598
+ },
599
+ },
600
+ },
601
+ },
602
+ vOffset: {
603
+ kind: 'object',
604
+ key: 'size',
605
+ default: null,
606
+ meta: {},
607
+ settings: {
608
+ required: true,
609
+ },
610
+ shape: {
611
+ size: {
612
+ kind: 'plain',
613
+ key: 'number',
614
+ default: null,
615
+ meta: {},
616
+ settings: {
617
+ required: true,
618
+ },
619
+ },
620
+ unit: {
621
+ kind: 'plain',
622
+ key: 'string',
623
+ default: null,
624
+ meta: {},
625
+ settings: {
626
+ enum: [ 'px', 'em', 'rem', '%', 'vh', 'vw', 'vmin', 'vmax' ],
627
+ required: true,
628
+ },
629
+ },
630
+ },
631
+ },
632
+ blur: {
633
+ kind: 'object',
634
+ key: 'size',
635
+ default: null,
636
+ meta: {},
637
+ settings: {
638
+ required: true,
639
+ },
640
+ shape: {
641
+ size: {
642
+ kind: 'plain',
643
+ key: 'number',
644
+ default: null,
645
+ meta: {},
646
+ settings: {
647
+ required: true,
648
+ },
649
+ },
650
+ unit: {
651
+ kind: 'plain',
652
+ key: 'string',
653
+ default: null,
654
+ meta: {},
655
+ settings: {
656
+ enum: [ 'px', 'em', 'rem', '%', 'vh', 'vw', 'vmin', 'vmax' ],
657
+ required: true,
658
+ },
659
+ },
660
+ },
661
+ },
662
+ spread: {
663
+ kind: 'object',
664
+ key: 'size',
665
+ default: null,
666
+ meta: {},
667
+ settings: {
668
+ required: true,
669
+ },
670
+ shape: {
671
+ size: {
672
+ kind: 'plain',
673
+ key: 'number',
674
+ default: null,
675
+ meta: {},
676
+ settings: {
677
+ required: true,
678
+ },
679
+ },
680
+ unit: {
681
+ kind: 'plain',
682
+ key: 'string',
683
+ default: null,
684
+ meta: {},
685
+ settings: {
686
+ enum: [ 'px', 'em', 'rem', '%', 'vh', 'vw', 'vmin', 'vmax' ],
687
+ required: true,
688
+ },
689
+ },
690
+ },
691
+ },
692
+ color: {
693
+ kind: 'plain',
694
+ key: 'color',
695
+ default: null,
696
+ meta: {},
697
+ settings: {
698
+ required: true,
699
+ },
700
+ },
701
+ position: {
702
+ kind: 'plain',
703
+ key: 'string',
704
+ default: null,
705
+ meta: {},
706
+ settings: {
707
+ enum: [ 'inset' ],
708
+ },
709
+ },
710
+ },
711
+ },
712
+ },
713
+ gap: {
714
+ kind: 'object',
715
+ key: 'gap',
716
+ default: null,
717
+ meta: {},
718
+ settings: {},
719
+ shape: {
720
+ isLinked: {
721
+ kind: 'plain',
722
+ key: 'boolean',
723
+ default: null,
724
+ meta: {},
725
+ settings: {},
726
+ },
727
+ column: {
728
+ kind: 'object',
729
+ key: 'size',
730
+ default: null,
731
+ meta: {},
732
+ settings: {},
733
+ shape: {
734
+ size: {
735
+ kind: 'plain',
736
+ key: 'number',
737
+ default: null,
738
+ meta: {},
739
+ settings: {
740
+ required: true,
741
+ },
742
+ },
743
+ unit: {
744
+ kind: 'plain',
745
+ key: 'string',
746
+ default: null,
747
+ meta: {},
748
+ settings: {
749
+ enum: [ 'px', 'em', 'rem', '%', 'vh', 'vw', 'vmin', 'vmax' ],
750
+ required: true,
751
+ },
752
+ },
753
+ },
754
+ },
755
+ row: {
756
+ kind: 'object',
757
+ key: 'size',
758
+ default: null,
759
+ meta: {},
760
+ settings: {},
761
+ shape: {
762
+ size: {
763
+ kind: 'plain',
764
+ key: 'number',
765
+ default: null,
766
+ meta: {},
767
+ settings: {
768
+ required: true,
769
+ },
770
+ },
771
+ unit: {
772
+ kind: 'plain',
773
+ key: 'string',
774
+ default: null,
775
+ meta: {},
776
+ settings: {
777
+ enum: [ 'px', 'em', 'rem', '%', 'vh', 'vw', 'vmin', 'vmax' ],
778
+ required: true,
779
+ },
780
+ },
781
+ },
782
+ },
783
+ },
784
+ },
785
+ } satisfies PropsSchema;