@oim-media/spec 0.0.0-stage → 1.27.9

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 (131) hide show
  1. package/BINARY_SPEC.md +190 -0
  2. package/CANONICAL_SPEC.md +409 -0
  3. package/LICENSE +55 -0
  4. package/NOTICE +6 -0
  5. package/README.md +445 -2
  6. package/action-cases.json +13 -0
  7. package/artistic-text-cases.json +690 -0
  8. package/canonical-cases.json +6 -0
  9. package/keyframe-cases.json +32 -0
  10. package/keys.json +22 -0
  11. package/marks-cases.json +34 -0
  12. package/package.json +46 -3
  13. package/pattern-cases.json +552 -0
  14. package/schema/oim.schema.json +2920 -0
  15. package/schema/ovm.schema.json +2701 -0
  16. package/text-effect-cases.json +835 -0
  17. package/tools/parity-core.mjs +122 -0
  18. package/tools/parity.mjs +86 -0
  19. package/vectors/README.md +103 -0
  20. package/vectors/accessibility.expected.json +67 -0
  21. package/vectors/accessibility.oim.png +0 -0
  22. package/vectors/artistic-text.expected.json +84 -0
  23. package/vectors/artistic-text.oim.png +0 -0
  24. package/vectors/asymmetric-borders.expected.json +29 -0
  25. package/vectors/asymmetric-borders.oim.png +0 -0
  26. package/vectors/background-pattern-order.expected.json +95 -0
  27. package/vectors/background-pattern-order.oim.png +0 -0
  28. package/vectors/basic-text.expected.json +29 -0
  29. package/vectors/basic-text.oim.png +0 -0
  30. package/vectors/color-blending-opacity.expected.json +47 -0
  31. package/vectors/color-blending-opacity.oim.png +0 -0
  32. package/vectors/crop.expected.json +32 -0
  33. package/vectors/crop.oim.png +0 -0
  34. package/vectors/embedded-font-woff.expected.json +57 -0
  35. package/vectors/embedded-font-woff.oim.png +0 -0
  36. package/vectors/extreme-aspect-ratios.expected.json +29 -0
  37. package/vectors/extreme-aspect-ratios.oim.png +0 -0
  38. package/vectors/filter-effects.expected.json +33 -0
  39. package/vectors/filter-effects.oim.png +0 -0
  40. package/vectors/flip.expected.json +47 -0
  41. package/vectors/flip.oim.png +0 -0
  42. package/vectors/frame-shapes.expected.json +73 -0
  43. package/vectors/frame-shapes.oim.png +0 -0
  44. package/vectors/full-monty-composite.expected.json +96 -0
  45. package/vectors/full-monty-composite.oim.png +0 -0
  46. package/vectors/golden/accessibility.web.png +0 -0
  47. package/vectors/golden/artistic-text.web.png +0 -0
  48. package/vectors/golden/asymmetric-borders.web.png +0 -0
  49. package/vectors/golden/background-pattern-order.web.png +0 -0
  50. package/vectors/golden/basic-text.web.png +0 -0
  51. package/vectors/golden/color-blending-opacity.web.png +0 -0
  52. package/vectors/golden/crop.web.png +0 -0
  53. package/vectors/golden/embedded-font-woff.web.png +0 -0
  54. package/vectors/golden/exceptions.json +3 -0
  55. package/vectors/golden/extreme-aspect-ratios.web.png +0 -0
  56. package/vectors/golden/filter-effects.web.png +0 -0
  57. package/vectors/golden/flip.web.png +0 -0
  58. package/vectors/golden/frame-shapes.web.png +0 -0
  59. package/vectors/golden/full-monty-composite.web.png +0 -0
  60. package/vectors/golden/groups-and-parallax.web.png +0 -0
  61. package/vectors/golden/image-fill.web.png +0 -0
  62. package/vectors/golden/interactive-chained-actions.web.png +0 -0
  63. package/vectors/golden/interactive-hover.web.png +0 -0
  64. package/vectors/golden/interactive.web.png +0 -0
  65. package/vectors/golden/layer-blur.web.png +0 -0
  66. package/vectors/golden/layer-grain.web.png +0 -0
  67. package/vectors/golden/layer-ordering-zindex.web.png +0 -0
  68. package/vectors/golden/legacy-text-chunk.web.png +0 -0
  69. package/vectors/golden/media-filters.web.png +0 -0
  70. package/vectors/golden/multi-container-layout.web.png +0 -0
  71. package/vectors/golden/multilang-cjk-rtl.web.png +0 -0
  72. package/vectors/golden/nested-groups.web.png +0 -0
  73. package/vectors/golden/palettes.web.png +0 -0
  74. package/vectors/golden/parallax-infinite.web.png +0 -0
  75. package/vectors/golden/pattern-color-roles.web.png +0 -0
  76. package/vectors/golden/reedit-english.web.png +0 -0
  77. package/vectors/golden/reveal-and-play.web.png +0 -0
  78. package/vectors/golden/shadow-effects.web.png +0 -0
  79. package/vectors/golden/shape-shadows.web.png +0 -0
  80. package/vectors/golden/strokes-and-borders.web.png +0 -0
  81. package/vectors/golden/text-runs-precalculated.web.png +0 -0
  82. package/vectors/golden/transparent-background.web.png +0 -0
  83. package/vectors/golden/typography-styling.web.png +0 -0
  84. package/vectors/groups-and-parallax.expected.json +90 -0
  85. package/vectors/groups-and-parallax.oim.png +0 -0
  86. package/vectors/image-fill.expected.json +54 -0
  87. package/vectors/image-fill.oim.png +0 -0
  88. package/vectors/interactive-chained-actions.expected.json +77 -0
  89. package/vectors/interactive-chained-actions.oim.png +0 -0
  90. package/vectors/interactive-hover.expected.json +36 -0
  91. package/vectors/interactive-hover.oim.png +0 -0
  92. package/vectors/interactive.expected.json +121 -0
  93. package/vectors/interactive.oim.png +0 -0
  94. package/vectors/layer-blur.expected.json +48 -0
  95. package/vectors/layer-blur.oim.png +0 -0
  96. package/vectors/layer-grain.expected.json +52 -0
  97. package/vectors/layer-grain.oim.png +0 -0
  98. package/vectors/layer-ordering-zindex.expected.json +62 -0
  99. package/vectors/layer-ordering-zindex.oim.png +0 -0
  100. package/vectors/legacy-text-chunk.expected.json +29 -0
  101. package/vectors/legacy-text-chunk.oim.png +0 -0
  102. package/vectors/media-filters.expected.json +50 -0
  103. package/vectors/media-filters.oim.png +0 -0
  104. package/vectors/multi-container-layout.expected.json +45 -0
  105. package/vectors/multi-container-layout.oim.png +0 -0
  106. package/vectors/multilang-cjk-rtl.expected.json +30 -0
  107. package/vectors/multilang-cjk-rtl.oim.png +0 -0
  108. package/vectors/nested-groups.expected.json +68 -0
  109. package/vectors/nested-groups.oim.png +0 -0
  110. package/vectors/palettes.expected.json +57 -0
  111. package/vectors/palettes.oim.png +0 -0
  112. package/vectors/parallax-infinite.expected.json +39 -0
  113. package/vectors/parallax-infinite.oim.png +0 -0
  114. package/vectors/pattern-color-roles.expected.json +68 -0
  115. package/vectors/pattern-color-roles.oim.png +0 -0
  116. package/vectors/reedit-english.expected.json +45 -0
  117. package/vectors/reedit-english.oim.png +0 -0
  118. package/vectors/reveal-and-play.expected.json +107 -0
  119. package/vectors/reveal-and-play.oim.png +0 -0
  120. package/vectors/shadow-effects.expected.json +34 -0
  121. package/vectors/shadow-effects.oim.png +0 -0
  122. package/vectors/shape-shadows.expected.json +62 -0
  123. package/vectors/shape-shadows.oim.png +0 -0
  124. package/vectors/strokes-and-borders.expected.json +31 -0
  125. package/vectors/strokes-and-borders.oim.png +0 -0
  126. package/vectors/text-runs-precalculated.expected.json +46 -0
  127. package/vectors/text-runs-precalculated.oim.png +0 -0
  128. package/vectors/transparent-background.expected.json +30 -0
  129. package/vectors/transparent-background.oim.png +0 -0
  130. package/vectors/typography-styling.expected.json +34 -0
  131. package/vectors/typography-styling.oim.png +0 -0
@@ -0,0 +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
+ }
Binary file
@@ -0,0 +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
+ }
Binary file
@@ -0,0 +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
+ }
@@ -0,0 +1,68 @@
1
+ {
2
+ "description": "Colour roles in patterns (contract 1.21.0): a pattern background with accent and surface, a pattern layer with accent, and a shadow with accent at 30%.",
3
+ "canvas": {
4
+ "natural_height": 600,
5
+ "natural_width": 800
6
+ },
7
+ "signed": true,
8
+ "key_version": "v1",
9
+ "palettes": {
10
+ "dark": {
11
+ "accent": "#a3e635",
12
+ "surface": "#18181b"
13
+ },
14
+ "light": {
15
+ "accent": "#4d7c0f",
16
+ "surface": "#fafafa"
17
+ }
18
+ },
19
+ "defaultPalette": "dark",
20
+ "slots": [
21
+ {
22
+ "id": "background-pattern-slot",
23
+ "type": "geo",
24
+ "position": [
25
+ 0,
26
+ 0
27
+ ],
28
+ "name": "Fondo",
29
+ "content": {
30
+ "es": ""
31
+ },
32
+ "style": {
33
+ "width": "100.0cqw",
34
+ "height": "75.0cqw",
35
+ "backgroundType": "pattern",
36
+ "backgroundPatternType": "dots",
37
+ "backgroundPatternColor": "#a3e635",
38
+ "backgroundPatternColorRole": "accent",
39
+ "backgroundPatternBgColor": "#18181b",
40
+ "backgroundPatternBgColorRole": "surface"
41
+ }
42
+ },
43
+ {
44
+ "id": "patron",
45
+ "type": "pattern",
46
+ "position": [
47
+ 12.5,
48
+ 16.6667
49
+ ],
50
+ "name": "Patron",
51
+ "content": {
52
+ "es": ""
53
+ },
54
+ "style": {
55
+ "width": "37.5cqw",
56
+ "height": "37.5cqw",
57
+ "shadowEnabled": true,
58
+ "shadowColor": "#000000",
59
+ "shadowBlur": 12,
60
+ "shadowOpacity": 30,
61
+ "fillPatternType": "dots",
62
+ "fillPatternColor": "#a3e635",
63
+ "fillPatternColorRole": "accent",
64
+ "shadowColorRole": "accent"
65
+ }
66
+ }
67
+ ]
68
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "description": "Reedit in English (contract 1.23.0): a file that declares reedit \"public\" with the English key. Signed by the production service, so the signature covers the English key.",
3
+ "canvas": {
4
+ "natural_height": 600,
5
+ "natural_width": 800
6
+ },
7
+ "signed": true,
8
+ "key_version": "v1",
9
+ "languages": [
10
+ "es",
11
+ "en"
12
+ ],
13
+ "reedit": "public",
14
+ "fonts": [
15
+ {
16
+ "family": "Inter",
17
+ "name": "oim-341fdb19-Inter",
18
+ "weight": 400,
19
+ "style": "normal",
20
+ "format": "woff2"
21
+ }
22
+ ],
23
+ "slots": [
24
+ {
25
+ "id": "titulo",
26
+ "type": "text",
27
+ "position": [
28
+ 1.25,
29
+ 1.6667
30
+ ],
31
+ "name": "Title",
32
+ "content": {
33
+ "en": "Hello",
34
+ "es": "Hola"
35
+ },
36
+ "style": {
37
+ "fillColor": "#ffffff",
38
+ "fontFamily": "Inter",
39
+ "fontSize": "6.0cqw",
40
+ "height": "25.0cqw",
41
+ "width": "25.0cqw"
42
+ }
43
+ }
44
+ ]
45
+ }
Binary file
@@ -0,0 +1,107 @@
1
+ {
2
+ "description": "Per-layer reveal and the play action (contract 1.22.0): a hidden panel that slides up into view, an icon whose animation waits for an action, and a button that reveals one and plays the other.",
3
+ "canvas": {
4
+ "natural_height": 600,
5
+ "natural_width": 800
6
+ },
7
+ "signed": true,
8
+ "key_version": "v1",
9
+ "slots": [
10
+ {
11
+ "id": "panel",
12
+ "type": "geo",
13
+ "position": [
14
+ 10,
15
+ 13.3333
16
+ ],
17
+ "name": "Panel",
18
+ "content": {
19
+ "es": ""
20
+ },
21
+ "style": {
22
+ "width": "50.0cqw",
23
+ "height": "30.0cqw",
24
+ "fillColor": "#27272a",
25
+ "isVisible": false,
26
+ "reveal": {
27
+ "duration": 400,
28
+ "easing": [
29
+ 0.22,
30
+ 1,
31
+ 0.36,
32
+ 1
33
+ ],
34
+ "effect": "slide-up"
35
+ }
36
+ }
37
+ },
38
+ {
39
+ "id": "icon",
40
+ "type": "geo",
41
+ "position": [
42
+ 70,
43
+ 20
44
+ ],
45
+ "name": "Icono",
46
+ "content": {
47
+ "es": ""
48
+ },
49
+ "style": {
50
+ "width": "15.0cqw",
51
+ "height": "15.0cqw",
52
+ "fillColor": "#f4f4f5",
53
+ "animation": {
54
+ "duration": 0.6,
55
+ "keyframes": [
56
+ {
57
+ "s": 1,
58
+ "t": 0
59
+ },
60
+ {
61
+ "e": "ease-out",
62
+ "s": 1.2,
63
+ "t": 0.5
64
+ },
65
+ {
66
+ "s": 1,
67
+ "t": 1
68
+ }
69
+ ],
70
+ "trigger": "action"
71
+ }
72
+ }
73
+ },
74
+ {
75
+ "id": "btn",
76
+ "type": "text",
77
+ "position": [
78
+ 10,
79
+ 70
80
+ ],
81
+ "name": "Boton",
82
+ "content": {
83
+ "es": "Abrir"
84
+ },
85
+ "style": {
86
+ "width": "25.0cqw",
87
+ "height": "7.5cqw",
88
+ "fontSize": "3.0cqw",
89
+ "isInteractive": true,
90
+ "states": {
91
+ "active": {
92
+ "actions": [
93
+ {
94
+ "target": "panel",
95
+ "type": "show"
96
+ },
97
+ {
98
+ "target": "icon",
99
+ "type": "play"
100
+ }
101
+ ]
102
+ }
103
+ }
104
+ }
105
+ }
106
+ ]
107
+ }
Binary file
@@ -0,0 +1,34 @@
1
+ {
2
+ "description": "A layer with a shadow set by colour, blur, offset and opacity.",
3
+ "canvas": {
4
+ "natural_height": 600,
5
+ "natural_width": 800
6
+ },
7
+ "signed": true,
8
+ "key_version": "v1",
9
+ "slots": [
10
+ {
11
+ "id": "caja_sombra",
12
+ "type": "geo",
13
+ "position": [
14
+ 10,
15
+ 13.3333
16
+ ],
17
+ "name": "Caja con Sombra",
18
+ "content": {
19
+ "es": ""
20
+ },
21
+ "style": {
22
+ "width": "31.25cqw",
23
+ "height": "18.75cqw",
24
+ "fillColor": "#ffffff",
25
+ "shadowEnabled": true,
26
+ "shadowColor": "#000000",
27
+ "shadowBlur": 20,
28
+ "shadowOffsetX": 8,
29
+ "shadowOffsetY": 12,
30
+ "shadowOpacity": 45
31
+ }
32
+ }
33
+ ]
34
+ }
Binary file