@oim-media/spec 1.27.8 → 1.27.10

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 (64) hide show
  1. package/BINARY_SPEC.md +190 -186
  2. package/CANONICAL_SPEC.md +409 -409
  3. package/LICENSE +55 -55
  4. package/NOTICE +6 -6
  5. package/README.md +458 -444
  6. package/action-cases.json +13 -13
  7. package/artistic-text-cases.json +690 -690
  8. package/canonical-cases.json +6 -0
  9. package/keyframe-cases.json +32 -32
  10. package/keys.json +22 -22
  11. package/marks-cases.json +34 -34
  12. package/package.json +2 -1
  13. package/pattern-cases.json +552 -552
  14. package/schema/oim.schema.json +2920 -2920
  15. package/schema/oim2.schema.json +2763 -0
  16. package/schema/ovm.schema.json +2701 -2701
  17. package/text-effect-cases.json +835 -835
  18. package/tools/parity-core.mjs +122 -122
  19. package/tools/parity.mjs +86 -86
  20. package/vectors/README.md +105 -103
  21. package/vectors/accessibility.expected.json +67 -67
  22. package/vectors/artistic-text.expected.json +84 -84
  23. package/vectors/asymmetric-borders.expected.json +29 -29
  24. package/vectors/background-pattern-order.expected.json +95 -95
  25. package/vectors/basic-text.expected.json +29 -29
  26. package/vectors/color-blending-opacity.expected.json +47 -47
  27. package/vectors/crop.expected.json +32 -32
  28. package/vectors/embedded-font-woff.expected.json +57 -57
  29. package/vectors/extreme-aspect-ratios.expected.json +29 -29
  30. package/vectors/filter-effects.expected.json +33 -33
  31. package/vectors/flip.expected.json +47 -47
  32. package/vectors/frame-shapes.expected.json +73 -73
  33. package/vectors/full-monty-composite.expected.json +96 -96
  34. package/vectors/golden/exceptions.json +3 -3
  35. package/vectors/golden/mask-window.web.png +0 -0
  36. package/vectors/golden/zone-group.web.png +0 -0
  37. package/vectors/groups-and-parallax.expected.json +90 -90
  38. package/vectors/image-fill.expected.json +54 -54
  39. package/vectors/interactive-chained-actions.expected.json +77 -77
  40. package/vectors/interactive-hover.expected.json +36 -36
  41. package/vectors/interactive.expected.json +121 -121
  42. package/vectors/layer-blur.expected.json +48 -48
  43. package/vectors/layer-grain.expected.json +52 -52
  44. package/vectors/layer-ordering-zindex.expected.json +62 -62
  45. package/vectors/legacy-text-chunk.expected.json +29 -29
  46. package/vectors/mask-window.expected.json +45 -0
  47. package/vectors/mask-window.oim.png +0 -0
  48. package/vectors/media-filters.expected.json +50 -50
  49. package/vectors/multi-container-layout.expected.json +45 -45
  50. package/vectors/multilang-cjk-rtl.expected.json +30 -30
  51. package/vectors/nested-groups.expected.json +68 -68
  52. package/vectors/palettes.expected.json +57 -57
  53. package/vectors/parallax-infinite.expected.json +39 -39
  54. package/vectors/pattern-color-roles.expected.json +68 -68
  55. package/vectors/reedit-english.expected.json +45 -45
  56. package/vectors/reveal-and-play.expected.json +107 -107
  57. package/vectors/shadow-effects.expected.json +34 -34
  58. package/vectors/shape-shadows.expected.json +62 -62
  59. package/vectors/strokes-and-borders.expected.json +31 -31
  60. package/vectors/text-runs-precalculated.expected.json +46 -46
  61. package/vectors/transparent-background.expected.json +30 -30
  62. package/vectors/typography-styling.expected.json +34 -34
  63. package/vectors/zone-group.expected.json +46 -0
  64. package/vectors/zone-group.oim.png +0 -0
@@ -1,50 +1,50 @@
1
- {
2
- "description": "Media filters (contract 1.18.0): a black-and-white photo and a circular frame with blur and stroke; the filter touches only the photo.",
3
- "canvas": {
4
- "natural_height": 600,
5
- "natural_width": 800
6
- },
7
- "signed": true,
8
- "key_version": "v1",
9
- "slots": [
10
- {
11
- "id": "foto-bn",
12
- "type": "image",
13
- "position": [
14
- 10,
15
- 25
16
- ],
17
- "name": "Foto en blanco y negro",
18
- "content": {
19
- "*": "https://cdn.oim.media/demos/crop.png"
20
- },
21
- "style": {
22
- "width": "37.5cqw",
23
- "height": "25.0cqw",
24
- "filterPreset": "grayscale"
25
- }
26
- },
27
- {
28
- "id": "marco-blur",
29
- "type": "geo",
30
- "position": [
31
- 55,
32
- 25
33
- ],
34
- "name": "Marco con desenfoque",
35
- "content": {
36
- "es": ""
37
- },
38
- "style": {
39
- "width": "35.0cqw",
40
- "height": "35.0cqw",
41
- "fillColor": "#d4d4d8",
42
- "borderWidth": 4,
43
- "borderColor": "#111111",
44
- "filterBlur": 6,
45
- "fillImage": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAIAAAAmkwkpAAAAEElEQVR4nGN4nh8IRwzEcQC5Ehpxr683xgAAAABJRU5ErkJggg==",
46
- "fillType": "image"
47
- }
48
- }
49
- ]
50
- }
1
+ {
2
+ "description": "Media filters (contract 1.18.0): a black-and-white photo and a circular frame with blur and stroke; the filter touches only the photo.",
3
+ "canvas": {
4
+ "natural_height": 600,
5
+ "natural_width": 800
6
+ },
7
+ "signed": true,
8
+ "key_version": "v1",
9
+ "slots": [
10
+ {
11
+ "id": "foto-bn",
12
+ "type": "image",
13
+ "position": [
14
+ 10,
15
+ 25
16
+ ],
17
+ "name": "Foto en blanco y negro",
18
+ "content": {
19
+ "*": "https://cdn.oim.media/demos/crop.png"
20
+ },
21
+ "style": {
22
+ "width": "37.5cqw",
23
+ "height": "25.0cqw",
24
+ "filterPreset": "grayscale"
25
+ }
26
+ },
27
+ {
28
+ "id": "marco-blur",
29
+ "type": "geo",
30
+ "position": [
31
+ 55,
32
+ 25
33
+ ],
34
+ "name": "Marco con desenfoque",
35
+ "content": {
36
+ "es": ""
37
+ },
38
+ "style": {
39
+ "width": "35.0cqw",
40
+ "height": "35.0cqw",
41
+ "fillColor": "#d4d4d8",
42
+ "borderWidth": 4,
43
+ "borderColor": "#111111",
44
+ "filterBlur": 6,
45
+ "fillImage": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAIAAAAmkwkpAAAAEElEQVR4nGN4nh8IRwzEcQC5Ehpxr683xgAAAABJRU5ErkJggg==",
46
+ "fillType": "image"
47
+ }
48
+ }
49
+ ]
50
+ }
@@ -1,45 +1,45 @@
1
- {
2
- "description": "Layout with container-type slots organising the canvas space.",
3
- "canvas": {
4
- "natural_height": 600,
5
- "natural_width": 800
6
- },
7
- "signed": true,
8
- "key_version": "v1",
9
- "slots": [
10
- {
11
- "id": "sidebar",
12
- "type": "container",
13
- "position": [
14
- 0,
15
- 0
16
- ],
17
- "name": "Sidebar",
18
- "content": {
19
- "es": ""
20
- },
21
- "style": {
22
- "width": "30.0cqw",
23
- "height": "75.0cqw",
24
- "fillColor": "#1e293b"
25
- }
26
- },
27
- {
28
- "id": "contenido_principal",
29
- "type": "container",
30
- "position": [
31
- 31.25,
32
- 3.3333
33
- ],
34
- "name": "Área Principal",
35
- "content": {
36
- "es": ""
37
- },
38
- "style": {
39
- "width": "66.25cqw",
40
- "height": "70.0cqw",
41
- "fillColor": "#f8fafc"
42
- }
43
- }
44
- ]
45
- }
1
+ {
2
+ "description": "Layout with container-type slots organising the canvas space.",
3
+ "canvas": {
4
+ "natural_height": 600,
5
+ "natural_width": 800
6
+ },
7
+ "signed": true,
8
+ "key_version": "v1",
9
+ "slots": [
10
+ {
11
+ "id": "sidebar",
12
+ "type": "container",
13
+ "position": [
14
+ 0,
15
+ 0
16
+ ],
17
+ "name": "Sidebar",
18
+ "content": {
19
+ "es": ""
20
+ },
21
+ "style": {
22
+ "width": "30.0cqw",
23
+ "height": "75.0cqw",
24
+ "fillColor": "#1e293b"
25
+ }
26
+ },
27
+ {
28
+ "id": "contenido_principal",
29
+ "type": "container",
30
+ "position": [
31
+ 31.25,
32
+ 3.3333
33
+ ],
34
+ "name": "Área Principal",
35
+ "content": {
36
+ "es": ""
37
+ },
38
+ "style": {
39
+ "width": "66.25cqw",
40
+ "height": "70.0cqw",
41
+ "fillColor": "#f8fafc"
42
+ }
43
+ }
44
+ ]
45
+ }
@@ -1,30 +1,30 @@
1
- {
2
- "description": "CJK and RTL multilingual support with Spanish, Japanese and Arabic.",
3
- "canvas": {
4
- "natural_height": 600,
5
- "natural_width": 800
6
- },
7
- "signed": true,
8
- "key_version": "v1",
9
- "slots": [
10
- {
11
- "id": "texto_internacional",
12
- "type": "text",
13
- "position": [
14
- 6.25,
15
- 8.3333
16
- ],
17
- "name": "Texto Multilingüe",
18
- "content": {
19
- "ar": "مرحبا بالعالم",
20
- "es": "Hola mundo",
21
- "ja": "こんにちは世界"
22
- },
23
- "style": {
24
- "width": "50.0cqw",
25
- "height": "12.5cqw",
26
- "fontSize": "4.0cqw"
27
- }
28
- }
29
- ]
30
- }
1
+ {
2
+ "description": "CJK and RTL multilingual support with Spanish, Japanese and Arabic.",
3
+ "canvas": {
4
+ "natural_height": 600,
5
+ "natural_width": 800
6
+ },
7
+ "signed": true,
8
+ "key_version": "v1",
9
+ "slots": [
10
+ {
11
+ "id": "texto_internacional",
12
+ "type": "text",
13
+ "position": [
14
+ 6.25,
15
+ 8.3333
16
+ ],
17
+ "name": "Texto Multilingüe",
18
+ "content": {
19
+ "ar": "مرحبا بالعالم",
20
+ "es": "Hola mundo",
21
+ "ja": "こんにちは世界"
22
+ },
23
+ "style": {
24
+ "width": "50.0cqw",
25
+ "height": "12.5cqw",
26
+ "fontSize": "4.0cqw"
27
+ }
28
+ }
29
+ ]
30
+ }
@@ -1,68 +1,68 @@
1
- {
2
- "description": "Multi-level hierarchy: a root group containing a subgroup with child elements.",
3
- "canvas": {
4
- "natural_height": 600,
5
- "natural_width": 800
6
- },
7
- "signed": true,
8
- "key_version": "v1",
9
- "slots": [
10
- {
11
- "id": "grupo_padre",
12
- "type": "group",
13
- "position": [
14
- 2.5,
15
- 3.3333
16
- ],
17
- "name": "Grupo Padre",
18
- "content": {
19
- "es": ""
20
- },
21
- "style": {
22
- "width": "50.0cqw",
23
- "height": "37.5cqw",
24
- "childIds": [
25
- "subgrupo"
26
- ]
27
- }
28
- },
29
- {
30
- "id": "subgrupo",
31
- "type": "group",
32
- "position": [
33
- 3.75,
34
- 5
35
- ],
36
- "name": "Subgrupo Hijo",
37
- "content": {
38
- "es": ""
39
- },
40
- "style": {
41
- "width": "43.75cqw",
42
- "height": "31.25cqw",
43
- "groupId": "grupo_padre",
44
- "childIds": [
45
- "item_1"
46
- ]
47
- }
48
- },
49
- {
50
- "id": "item_1",
51
- "type": "geo",
52
- "position": [
53
- 5,
54
- 6.6667
55
- ],
56
- "name": "Elemento Anidado",
57
- "content": {
58
- "es": ""
59
- },
60
- "style": {
61
- "width": "15.0cqw",
62
- "height": "10.0cqw",
63
- "fillColor": "#10b981",
64
- "groupId": "subgrupo"
65
- }
66
- }
67
- ]
68
- }
1
+ {
2
+ "description": "Multi-level hierarchy: a root group containing a subgroup with child elements.",
3
+ "canvas": {
4
+ "natural_height": 600,
5
+ "natural_width": 800
6
+ },
7
+ "signed": true,
8
+ "key_version": "v1",
9
+ "slots": [
10
+ {
11
+ "id": "grupo_padre",
12
+ "type": "group",
13
+ "position": [
14
+ 2.5,
15
+ 3.3333
16
+ ],
17
+ "name": "Grupo Padre",
18
+ "content": {
19
+ "es": ""
20
+ },
21
+ "style": {
22
+ "width": "50.0cqw",
23
+ "height": "37.5cqw",
24
+ "childIds": [
25
+ "subgrupo"
26
+ ]
27
+ }
28
+ },
29
+ {
30
+ "id": "subgrupo",
31
+ "type": "group",
32
+ "position": [
33
+ 3.75,
34
+ 5
35
+ ],
36
+ "name": "Subgrupo Hijo",
37
+ "content": {
38
+ "es": ""
39
+ },
40
+ "style": {
41
+ "width": "43.75cqw",
42
+ "height": "31.25cqw",
43
+ "groupId": "grupo_padre",
44
+ "childIds": [
45
+ "item_1"
46
+ ]
47
+ }
48
+ },
49
+ {
50
+ "id": "item_1",
51
+ "type": "geo",
52
+ "position": [
53
+ 5,
54
+ 6.6667
55
+ ],
56
+ "name": "Elemento Anidado",
57
+ "content": {
58
+ "es": ""
59
+ },
60
+ "style": {
61
+ "width": "15.0cqw",
62
+ "height": "10.0cqw",
63
+ "fillColor": "#10b981",
64
+ "groupId": "subgrupo"
65
+ }
66
+ }
67
+ ]
68
+ }
@@ -1,57 +1,57 @@
1
- {
2
- "description": "Named palettes (contract 1.20.0): dark and light, defaultPalette=dark, a text layer with text-primary and a surface with surface.",
3
- "canvas": {
4
- "natural_height": 600,
5
- "natural_width": 800
6
- },
7
- "signed": true,
8
- "key_version": "v1",
9
- "palettes": {
10
- "dark": {
11
- "surface": "#18181b",
12
- "text-primary": "#f4f4f5"
13
- },
14
- "light": {
15
- "surface": "#fafafa",
16
- "text-primary": "#18181b"
17
- }
18
- },
19
- "defaultPalette": "dark",
20
- "slots": [
21
- {
22
- "id": "superficie",
23
- "type": "geo",
24
- "position": [
25
- 5,
26
- 6.6667
27
- ],
28
- "name": "Superficie",
29
- "content": {
30
- "es": ""
31
- },
32
- "style": {
33
- "width": "90.0cqw",
34
- "height": "65.0cqw",
35
- "fillColor": "#71717a"
36
- }
37
- },
38
- {
39
- "id": "titular",
40
- "type": "text",
41
- "position": [
42
- 10,
43
- 33.3333
44
- ],
45
- "name": "Titular",
46
- "content": {
47
- "es": "Paleta"
48
- },
49
- "style": {
50
- "width": "80.0cqw",
51
- "height": "15.0cqw",
52
- "fontSize": "8.0cqw",
53
- "fillColor": "#3f3f46"
54
- }
55
- }
56
- ]
57
- }
1
+ {
2
+ "description": "Named palettes (contract 1.20.0): dark and light, defaultPalette=dark, a text layer with text-primary and a surface with surface.",
3
+ "canvas": {
4
+ "natural_height": 600,
5
+ "natural_width": 800
6
+ },
7
+ "signed": true,
8
+ "key_version": "v1",
9
+ "palettes": {
10
+ "dark": {
11
+ "surface": "#18181b",
12
+ "text-primary": "#f4f4f5"
13
+ },
14
+ "light": {
15
+ "surface": "#fafafa",
16
+ "text-primary": "#18181b"
17
+ }
18
+ },
19
+ "defaultPalette": "dark",
20
+ "slots": [
21
+ {
22
+ "id": "superficie",
23
+ "type": "geo",
24
+ "position": [
25
+ 5,
26
+ 6.6667
27
+ ],
28
+ "name": "Superficie",
29
+ "content": {
30
+ "es": ""
31
+ },
32
+ "style": {
33
+ "width": "90.0cqw",
34
+ "height": "65.0cqw",
35
+ "fillColor": "#71717a"
36
+ }
37
+ },
38
+ {
39
+ "id": "titular",
40
+ "type": "text",
41
+ "position": [
42
+ 10,
43
+ 33.3333
44
+ ],
45
+ "name": "Titular",
46
+ "content": {
47
+ "es": "Paleta"
48
+ },
49
+ "style": {
50
+ "width": "80.0cqw",
51
+ "height": "15.0cqw",
52
+ "fontSize": "8.0cqw",
53
+ "fillColor": "#3f3f46"
54
+ }
55
+ }
56
+ ]
57
+ }
@@ -1,39 +1,39 @@
1
- {
2
- "description": "Continuous parallax in an infinite horizontal loop.",
3
- "canvas": {
4
- "natural_height": 600,
5
- "natural_width": 800
6
- },
7
- "signed": true,
8
- "key_version": "v1",
9
- "slots": [
10
- {
11
- "id": "cinta_infinita",
12
- "type": "geo",
13
- "position": [
14
- 0,
15
- 66.6667
16
- ],
17
- "name": "Cinta Infinita",
18
- "content": {
19
- "es": ""
20
- },
21
- "style": {
22
- "width": "100.0cqw",
23
- "height": "15.0cqw",
24
- "fillColor": "#0f172a",
25
- "parallax": {
26
- "axis": "both",
27
- "depth": 0.5,
28
- "enabled": true,
29
- "infinite": {
30
- "direction": "right_to_left",
31
- "enabled": true,
32
- "speed_px_sec": 35
33
- },
34
- "mode": "infinite_horizontal"
35
- }
36
- }
37
- }
38
- ]
39
- }
1
+ {
2
+ "description": "Continuous parallax in an infinite horizontal loop.",
3
+ "canvas": {
4
+ "natural_height": 600,
5
+ "natural_width": 800
6
+ },
7
+ "signed": true,
8
+ "key_version": "v1",
9
+ "slots": [
10
+ {
11
+ "id": "cinta_infinita",
12
+ "type": "geo",
13
+ "position": [
14
+ 0,
15
+ 66.6667
16
+ ],
17
+ "name": "Cinta Infinita",
18
+ "content": {
19
+ "es": ""
20
+ },
21
+ "style": {
22
+ "width": "100.0cqw",
23
+ "height": "15.0cqw",
24
+ "fillColor": "#0f172a",
25
+ "parallax": {
26
+ "axis": "both",
27
+ "depth": 0.5,
28
+ "enabled": true,
29
+ "infinite": {
30
+ "direction": "right_to_left",
31
+ "enabled": true,
32
+ "speed_px_sec": 35
33
+ },
34
+ "mode": "infinite_horizontal"
35
+ }
36
+ }
37
+ }
38
+ ]
39
+ }