@exponential_app/eui 0.2.1 → 0.4.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 (452) hide show
  1. package/catalog/a11y.json +25 -1
  2. package/catalog/core.catalog.json +426 -6
  3. package/catalog/core.schema.json +634 -4
  4. package/catalog/host.json +10 -0
  5. package/catalog/layout.json +3 -2
  6. package/catalog/limits.json +10 -1
  7. package/catalog/macros.json +542 -1
  8. package/catalog/recipes.json +4 -2
  9. package/catalog/strings.json +14 -2
  10. package/catalog/style.json +21 -0
  11. package/catalog/theme.schema.json +3950 -1337
  12. package/conformance/manifest.json +5 -5
  13. package/conformance/motion/build-corpus.ts +232 -0
  14. package/conformance/motion/corpus/SOURCES.md +117 -0
  15. package/conformance/motion/corpus/images/footage_0.json +1 -0
  16. package/conformance/motion/corpus/images/img_0.jpg +0 -0
  17. package/conformance/motion/corpus/images/img_1.jpg +0 -0
  18. package/conformance/motion/corpus/images/triangle.png +0 -0
  19. package/conformance/motion/corpus/skottie-3d-parenting-nocamera.json +367 -0
  20. package/conformance/motion/corpus/skottie-auto-orient-2.json +292 -0
  21. package/conformance/motion/corpus/skottie-auto-orient.json +717 -0
  22. package/conformance/motion/corpus/skottie-bezier-extranormal.json +199 -0
  23. package/conformance/motion/corpus/skottie-blendmode-hardmix.json +558 -0
  24. package/conformance/motion/corpus/skottie-chained-mattes.json +259 -0
  25. package/conformance/motion/corpus/skottie-dropshadow-ramp.json +852 -0
  26. package/conformance/motion/corpus/skottie-dropshadow-style.json +278 -0
  27. package/conformance/motion/corpus/skottie-effects-transform.json +385 -0
  28. package/conformance/motion/corpus/skottie-fill-effect.json +358 -0
  29. package/conformance/motion/corpus/skottie-fill-rule.json +457 -0
  30. package/conformance/motion/corpus/skottie-gaussian-blur.json +670 -0
  31. package/conformance/motion/corpus/skottie-gradient-opacity.json +451 -0
  32. package/conformance/motion/corpus/skottie-gradient-radial-highlight.json +581 -0
  33. package/conformance/motion/corpus/skottie-hidden-shapes-layers.json +381 -0
  34. package/conformance/motion/corpus/skottie-huesaturation-effect.json +1117 -0
  35. package/conformance/motion/corpus/skottie-invert-effect.json +665 -0
  36. package/conformance/motion/corpus/skottie-luma-matte.json +239 -0
  37. package/conformance/motion/corpus/skottie-mask-feather.json +892 -0
  38. package/conformance/motion/corpus/skottie-masking-opaque.json +2376 -0
  39. package/conformance/motion/corpus/skottie-masking-translucent.json +2376 -0
  40. package/conformance/motion/corpus/skottie-matte-blendmode.json +196 -0
  41. package/conformance/motion/corpus/skottie-matte-nonsequential.json +722 -0
  42. package/conformance/motion/corpus/skottie-matte-visible.json +666 -0
  43. package/conformance/motion/corpus/skottie-mergepaths-effect.json +722 -0
  44. package/conformance/motion/corpus/skottie-motion-blur-mask.json +120 -0
  45. package/conformance/motion/corpus/skottie-nested-animation.json +253 -0
  46. package/conformance/motion/corpus/skottie-offsetpaths-effect.json +525 -0
  47. package/conformance/motion/corpus/skottie-phonehub-connecting.json +947 -0
  48. package/conformance/motion/corpus/skottie-puckerbloat-effect.json +339 -0
  49. package/conformance/motion/corpus/skottie-repeater.json +234 -0
  50. package/conformance/motion/corpus/skottie-sample-1.json +168 -0
  51. package/conformance/motion/corpus/skottie-sample-search.json +329 -0
  52. package/conformance/motion/corpus/skottie-spatial-supernormal.json +898 -0
  53. package/conformance/motion/corpus/skottie-text-animator-1.json +1286 -0
  54. package/conformance/motion/corpus/skottie-text-fill-over-stroke.json +1014 -0
  55. package/conformance/motion/corpus/skottie-text-tracking.json +950 -0
  56. package/conformance/motion/corpus/skottie-text-valign.json +484 -0
  57. package/conformance/motion/corpus/skottie-time-reverse.json +297 -0
  58. package/conformance/motion/corpus/skottie-transform-skew.json +290 -0
  59. package/conformance/motion/corpus/skottie-trimpath-fill.json +933 -0
  60. package/conformance/motion/corpus/skottie-trimpath-modes.json +266 -0
  61. package/conformance/motion/corpus/skottie-tritone-effect.json +379 -0
  62. package/conformance/motion/corpus/spec-blend-mode.json +531 -0
  63. package/conformance/motion/corpus/spec-ellipse.json +142 -0
  64. package/conformance/motion/corpus/spec-fill.json +193 -0
  65. package/conformance/motion/corpus/spec-gradient-stroke.json +1263 -0
  66. package/conformance/motion/corpus/spec-gradient.json +1255 -0
  67. package/conformance/motion/corpus/spec-mask.json +773 -0
  68. package/conformance/motion/corpus/spec-masks.json +676 -0
  69. package/conformance/motion/corpus/spec-matte.json +390 -0
  70. package/conformance/motion/corpus/spec-metadata.json +1 -0
  71. package/conformance/motion/corpus/spec-path.json +177 -0
  72. package/conformance/motion/corpus/spec-pucker-bloat.json +179 -0
  73. package/conformance/motion/corpus/spec-rectangle.json +145 -0
  74. package/conformance/motion/corpus/spec-rounded-corners.json +187 -0
  75. package/conformance/motion/corpus/spec-slots.json +325 -0
  76. package/conformance/motion/corpus/spec-star.json +159 -0
  77. package/conformance/motion/corpus/spec-stroke.json +156 -0
  78. package/conformance/motion/corpus/spec-test-ellipse-xy-pos.json +141 -0
  79. package/conformance/motion/corpus/spec-test-gradient-fill.json +1 -0
  80. package/conformance/motion/corpus/spec-test-gradient-stroke.json +229 -0
  81. package/conformance/motion/corpus/spec-test-unknown-shape.json +63 -0
  82. package/conformance/motion/corpus/spec-time-remap.json +1090 -0
  83. package/conformance/motion/corpus/spec-time-stretch.json +594 -0
  84. package/conformance/motion/corpus/spec-transform.json +273 -0
  85. package/conformance/motion/corpus/spec-trim-path.json +209 -0
  86. package/conformance/motion/corpus/web-adrock.json +1 -0
  87. package/conformance/motion/corpus/web-bacon.json +1 -0
  88. package/conformance/motion/corpus/web-banner.json +1 -0
  89. package/conformance/motion/corpus/web-bodymovin.json +1 -0
  90. package/conformance/motion/corpus/web-dalek.json +1 -0
  91. package/conformance/motion/corpus/web-footage-data.json +1 -0
  92. package/conformance/motion/corpus/web-lights.json +1 -0
  93. package/conformance/motion/corpus/web-ripple.json +1 -0
  94. package/conformance/motion/corpus/web-starfish.json +1 -0
  95. package/conformance/motion/known-gaps.json +35 -0
  96. package/conformance/motion/parity/group-transforms-parenting@0.png +0 -0
  97. package/conformance/motion/parity/group-transforms-parenting@10.png +0 -0
  98. package/conformance/motion/parity/hidden-unknown-inactive@0.png +0 -0
  99. package/conformance/motion/parity/keyframes-transform@0.png +0 -0
  100. package/conformance/motion/parity/keyframes-transform@10.png +0 -0
  101. package/conformance/motion/parity/keyframes-transform@15.png +0 -0
  102. package/conformance/motion/parity/keyframes-transform@5.png +0 -0
  103. package/conformance/motion/parity/layer-opacity-blend@0.png +0 -0
  104. package/conformance/motion/parity/linear-gradient@0.png +0 -0
  105. package/conformance/motion/parity/masks-modes@0.png +0 -0
  106. package/conformance/motion/parity/matte-alpha@0.png +0 -0
  107. package/conformance/motion/parity/matte-luma@0.png +0 -0
  108. package/conformance/motion/parity/matte-parent-tp@0.png +0 -0
  109. package/conformance/motion/parity/path-evenodd@0.png +0 -0
  110. package/conformance/motion/parity/precomp-clip-offset@0.png +0 -0
  111. package/conformance/motion/parity/precomp-clip-offset@15.png +0 -0
  112. package/conformance/motion/parity/precomp-clip-offset@5.png +0 -0
  113. package/conformance/motion/parity/radial-gradient-highlight@0.png +0 -0
  114. package/conformance/motion/parity/rect-solid-fill@0.png +0 -0
  115. package/conformance/motion/parity/repeater@0.png +0 -0
  116. package/conformance/motion/parity/rounded-rect-ellipse@0.png +0 -0
  117. package/conformance/motion/parity/solid-and-image@0.png +0 -0
  118. package/conformance/motion/parity/split-position-skew@0.png +0 -0
  119. package/conformance/motion/parity/split-position-skew@10.png +0 -0
  120. package/conformance/motion/parity/star-polygon@0.png +0 -0
  121. package/conformance/motion/parity/stroke-caps-joins@0.png +0 -0
  122. package/conformance/motion/parity/stroke-dashes@0.png +0 -0
  123. package/conformance/motion/parity/stroke-dashes@10.png +0 -0
  124. package/conformance/motion/parity/time-remap@0.png +0 -0
  125. package/conformance/motion/parity/time-remap@10.png +0 -0
  126. package/conformance/motion/parity/time-remap@19.png +0 -0
  127. package/conformance/motion/parity/time-stretch@0.png +0 -0
  128. package/conformance/motion/parity/time-stretch@10.png +0 -0
  129. package/conformance/motion/parity/trim-individually@0.png +0 -0
  130. package/conformance/motion/parity/trim-path@0.png +0 -0
  131. package/conformance/motion/parity/trim-path@10.png +0 -0
  132. package/conformance/motion/refs/index.json +688 -0
  133. package/conformance/motion/refs/skottie-3d-parenting-nocamera@0.png +0 -0
  134. package/conformance/motion/refs/skottie-3d-parenting-nocamera@150.png +0 -0
  135. package/conformance/motion/refs/skottie-3d-parenting-nocamera@270.png +0 -0
  136. package/conformance/motion/refs/skottie-auto-orient-2@0.png +0 -0
  137. package/conformance/motion/refs/skottie-auto-orient-2@210.png +0 -0
  138. package/conformance/motion/refs/skottie-auto-orient-2@378.png +0 -0
  139. package/conformance/motion/refs/skottie-auto-orient@0.png +0 -0
  140. package/conformance/motion/refs/skottie-auto-orient@300.png +0 -0
  141. package/conformance/motion/refs/skottie-auto-orient@540.png +0 -0
  142. package/conformance/motion/refs/skottie-bezier-extranormal@0.png +0 -0
  143. package/conformance/motion/refs/skottie-bezier-extranormal@150.png +0 -0
  144. package/conformance/motion/refs/skottie-bezier-extranormal@270.png +0 -0
  145. package/conformance/motion/refs/skottie-blendmode-hardmix@0.png +0 -0
  146. package/conformance/motion/refs/skottie-blendmode-hardmix@150.png +0 -0
  147. package/conformance/motion/refs/skottie-blendmode-hardmix@270.png +0 -0
  148. package/conformance/motion/refs/skottie-chained-mattes@0.png +0 -0
  149. package/conformance/motion/refs/skottie-chained-mattes@300.png +0 -0
  150. package/conformance/motion/refs/skottie-chained-mattes@540.png +0 -0
  151. package/conformance/motion/refs/skottie-dropshadow-ramp@0.png +0 -0
  152. package/conformance/motion/refs/skottie-dropshadow-ramp@135.png +0 -0
  153. package/conformance/motion/refs/skottie-dropshadow-ramp@75.png +0 -0
  154. package/conformance/motion/refs/skottie-dropshadow-style@0.png +0 -0
  155. package/conformance/motion/refs/skottie-dropshadow-style@300.png +0 -0
  156. package/conformance/motion/refs/skottie-dropshadow-style@540.png +0 -0
  157. package/conformance/motion/refs/skottie-effects-transform@0.png +0 -0
  158. package/conformance/motion/refs/skottie-effects-transform@450.png +0 -0
  159. package/conformance/motion/refs/skottie-effects-transform@810.png +0 -0
  160. package/conformance/motion/refs/skottie-fill-effect@0.png +0 -0
  161. package/conformance/motion/refs/skottie-fill-effect@300.png +0 -0
  162. package/conformance/motion/refs/skottie-fill-effect@540.png +0 -0
  163. package/conformance/motion/refs/skottie-fill-rule@0.png +0 -0
  164. package/conformance/motion/refs/skottie-fill-rule@150.png +0 -0
  165. package/conformance/motion/refs/skottie-fill-rule@270.png +0 -0
  166. package/conformance/motion/refs/skottie-gaussian-blur@0.png +0 -0
  167. package/conformance/motion/refs/skottie-gaussian-blur@150.png +0 -0
  168. package/conformance/motion/refs/skottie-gaussian-blur@270.png +0 -0
  169. package/conformance/motion/refs/skottie-gradient-opacity@0.png +0 -0
  170. package/conformance/motion/refs/skottie-gradient-opacity@150.png +0 -0
  171. package/conformance/motion/refs/skottie-gradient-opacity@270.png +0 -0
  172. package/conformance/motion/refs/skottie-gradient-radial-highlight@0.png +0 -0
  173. package/conformance/motion/refs/skottie-gradient-radial-highlight@135.png +0 -0
  174. package/conformance/motion/refs/skottie-gradient-radial-highlight@75.png +0 -0
  175. package/conformance/motion/refs/skottie-hidden-shapes-layers@0.png +0 -0
  176. package/conformance/motion/refs/skottie-hidden-shapes-layers@150.png +0 -0
  177. package/conformance/motion/refs/skottie-hidden-shapes-layers@270.png +0 -0
  178. package/conformance/motion/refs/skottie-huesaturation-effect@0.png +0 -0
  179. package/conformance/motion/refs/skottie-huesaturation-effect@30.png +0 -0
  180. package/conformance/motion/refs/skottie-huesaturation-effect@54.png +0 -0
  181. package/conformance/motion/refs/skottie-invert-effect@0.png +0 -0
  182. package/conformance/motion/refs/skottie-invert-effect@300.png +0 -0
  183. package/conformance/motion/refs/skottie-invert-effect@540.png +0 -0
  184. package/conformance/motion/refs/skottie-luma-matte@0.png +0 -0
  185. package/conformance/motion/refs/skottie-luma-matte@150.png +0 -0
  186. package/conformance/motion/refs/skottie-luma-matte@270.png +0 -0
  187. package/conformance/motion/refs/skottie-mask-feather@0.png +0 -0
  188. package/conformance/motion/refs/skottie-mask-feather@150.png +0 -0
  189. package/conformance/motion/refs/skottie-mask-feather@270.png +0 -0
  190. package/conformance/motion/refs/skottie-masking-opaque@0.png +0 -0
  191. package/conformance/motion/refs/skottie-masking-opaque@135.png +0 -0
  192. package/conformance/motion/refs/skottie-masking-opaque@75.png +0 -0
  193. package/conformance/motion/refs/skottie-masking-translucent@0.png +0 -0
  194. package/conformance/motion/refs/skottie-masking-translucent@135.png +0 -0
  195. package/conformance/motion/refs/skottie-masking-translucent@75.png +0 -0
  196. package/conformance/motion/refs/skottie-matte-blendmode@0.png +0 -0
  197. package/conformance/motion/refs/skottie-matte-blendmode@150.png +0 -0
  198. package/conformance/motion/refs/skottie-matte-blendmode@270.png +0 -0
  199. package/conformance/motion/refs/skottie-matte-nonsequential@0.png +0 -0
  200. package/conformance/motion/refs/skottie-matte-nonsequential@150.png +0 -0
  201. package/conformance/motion/refs/skottie-matte-nonsequential@270.png +0 -0
  202. package/conformance/motion/refs/skottie-matte-visible@0.png +0 -0
  203. package/conformance/motion/refs/skottie-matte-visible@150.png +0 -0
  204. package/conformance/motion/refs/skottie-matte-visible@270.png +0 -0
  205. package/conformance/motion/refs/skottie-mergepaths-effect@0.png +0 -0
  206. package/conformance/motion/refs/skottie-mergepaths-effect@210.png +0 -0
  207. package/conformance/motion/refs/skottie-mergepaths-effect@378.png +0 -0
  208. package/conformance/motion/refs/skottie-motion-blur-mask@0.png +0 -0
  209. package/conformance/motion/refs/skottie-motion-blur-mask@150.png +0 -0
  210. package/conformance/motion/refs/skottie-motion-blur-mask@270.png +0 -0
  211. package/conformance/motion/refs/skottie-nested-animation@0.png +0 -0
  212. package/conformance/motion/refs/skottie-nested-animation@300.png +0 -0
  213. package/conformance/motion/refs/skottie-nested-animation@540.png +0 -0
  214. package/conformance/motion/refs/skottie-offsetpaths-effect@0.png +0 -0
  215. package/conformance/motion/refs/skottie-offsetpaths-effect@150.png +0 -0
  216. package/conformance/motion/refs/skottie-offsetpaths-effect@270.png +0 -0
  217. package/conformance/motion/refs/skottie-phonehub-connecting@0.png +0 -0
  218. package/conformance/motion/refs/skottie-puckerbloat-effect@0.png +0 -0
  219. package/conformance/motion/refs/skottie-puckerbloat-effect@210.png +0 -0
  220. package/conformance/motion/refs/skottie-puckerbloat-effect@378.png +0 -0
  221. package/conformance/motion/refs/skottie-repeater@0.png +0 -0
  222. package/conformance/motion/refs/skottie-repeater@300.png +0 -0
  223. package/conformance/motion/refs/skottie-repeater@540.png +0 -0
  224. package/conformance/motion/refs/skottie-sample-1@0.png +0 -0
  225. package/conformance/motion/refs/skottie-sample-1@100.png +0 -0
  226. package/conformance/motion/refs/skottie-sample-1@180.png +0 -0
  227. package/conformance/motion/refs/skottie-sample-search@0.png +0 -0
  228. package/conformance/motion/refs/skottie-sample-search@27.png +0 -0
  229. package/conformance/motion/refs/skottie-sample-search@48.png +0 -0
  230. package/conformance/motion/refs/skottie-spatial-supernormal@0.png +0 -0
  231. package/conformance/motion/refs/skottie-spatial-supernormal@200.png +0 -0
  232. package/conformance/motion/refs/skottie-spatial-supernormal@360.png +0 -0
  233. package/conformance/motion/refs/skottie-text-animator-1@0.png +0 -0
  234. package/conformance/motion/refs/skottie-text-animator-1@150.png +0 -0
  235. package/conformance/motion/refs/skottie-text-animator-1@270.png +0 -0
  236. package/conformance/motion/refs/skottie-text-fill-over-stroke@0.png +0 -0
  237. package/conformance/motion/refs/skottie-text-fill-over-stroke@210.png +0 -0
  238. package/conformance/motion/refs/skottie-text-fill-over-stroke@378.png +0 -0
  239. package/conformance/motion/refs/skottie-text-tracking@0.png +0 -0
  240. package/conformance/motion/refs/skottie-text-tracking@108.png +0 -0
  241. package/conformance/motion/refs/skottie-text-tracking@60.png +0 -0
  242. package/conformance/motion/refs/skottie-text-valign@0.png +0 -0
  243. package/conformance/motion/refs/skottie-text-valign@150.png +0 -0
  244. package/conformance/motion/refs/skottie-text-valign@270.png +0 -0
  245. package/conformance/motion/refs/skottie-time-reverse@0.png +0 -0
  246. package/conformance/motion/refs/skottie-time-reverse@300.png +0 -0
  247. package/conformance/motion/refs/skottie-time-reverse@540.png +0 -0
  248. package/conformance/motion/refs/skottie-transform-skew@0.png +0 -0
  249. package/conformance/motion/refs/skottie-transform-skew@300.png +0 -0
  250. package/conformance/motion/refs/skottie-transform-skew@540.png +0 -0
  251. package/conformance/motion/refs/skottie-trimpath-fill@0.png +0 -0
  252. package/conformance/motion/refs/skottie-trimpath-fill@300.png +0 -0
  253. package/conformance/motion/refs/skottie-trimpath-fill@540.png +0 -0
  254. package/conformance/motion/refs/skottie-trimpath-modes@0.png +0 -0
  255. package/conformance/motion/refs/skottie-trimpath-modes@300.png +0 -0
  256. package/conformance/motion/refs/skottie-trimpath-modes@540.png +0 -0
  257. package/conformance/motion/refs/skottie-tritone-effect@0.png +0 -0
  258. package/conformance/motion/refs/skottie-tritone-effect@300.png +0 -0
  259. package/conformance/motion/refs/skottie-tritone-effect@540.png +0 -0
  260. package/conformance/motion/refs/spec-blend-mode@0.png +0 -0
  261. package/conformance/motion/refs/spec-blend-mode@162.png +0 -0
  262. package/conformance/motion/refs/spec-blend-mode@90.png +0 -0
  263. package/conformance/motion/refs/spec-ellipse@0.png +0 -0
  264. package/conformance/motion/refs/spec-ellipse@162.png +0 -0
  265. package/conformance/motion/refs/spec-ellipse@90.png +0 -0
  266. package/conformance/motion/refs/spec-fill@0.png +0 -0
  267. package/conformance/motion/refs/spec-fill@162.png +0 -0
  268. package/conformance/motion/refs/spec-fill@90.png +0 -0
  269. package/conformance/motion/refs/spec-gradient-stroke@0.png +0 -0
  270. package/conformance/motion/refs/spec-gradient-stroke@162.png +0 -0
  271. package/conformance/motion/refs/spec-gradient-stroke@90.png +0 -0
  272. package/conformance/motion/refs/spec-gradient@0.png +0 -0
  273. package/conformance/motion/refs/spec-gradient@162.png +0 -0
  274. package/conformance/motion/refs/spec-gradient@90.png +0 -0
  275. package/conformance/motion/refs/spec-mask@0.png +0 -0
  276. package/conformance/motion/refs/spec-mask@300.png +0 -0
  277. package/conformance/motion/refs/spec-mask@540.png +0 -0
  278. package/conformance/motion/refs/spec-masks@0.png +0 -0
  279. package/conformance/motion/refs/spec-masks@135.png +0 -0
  280. package/conformance/motion/refs/spec-masks@75.png +0 -0
  281. package/conformance/motion/refs/spec-matte@0.png +0 -0
  282. package/conformance/motion/refs/spec-matte@162.png +0 -0
  283. package/conformance/motion/refs/spec-matte@90.png +0 -0
  284. package/conformance/motion/refs/spec-metadata@0.png +0 -0
  285. package/conformance/motion/refs/spec-metadata@162.png +0 -0
  286. package/conformance/motion/refs/spec-metadata@90.png +0 -0
  287. package/conformance/motion/refs/spec-path@0.png +0 -0
  288. package/conformance/motion/refs/spec-path@162.png +0 -0
  289. package/conformance/motion/refs/spec-path@90.png +0 -0
  290. package/conformance/motion/refs/spec-pucker-bloat@0.png +0 -0
  291. package/conformance/motion/refs/spec-pucker-bloat@162.png +0 -0
  292. package/conformance/motion/refs/spec-pucker-bloat@90.png +0 -0
  293. package/conformance/motion/refs/spec-rectangle@0.png +0 -0
  294. package/conformance/motion/refs/spec-rectangle@162.png +0 -0
  295. package/conformance/motion/refs/spec-rectangle@90.png +0 -0
  296. package/conformance/motion/refs/spec-rounded-corners@0.png +0 -0
  297. package/conformance/motion/refs/spec-rounded-corners@162.png +0 -0
  298. package/conformance/motion/refs/spec-rounded-corners@90.png +0 -0
  299. package/conformance/motion/refs/spec-slots@0.png +0 -0
  300. package/conformance/motion/refs/spec-slots@450.png +0 -0
  301. package/conformance/motion/refs/spec-slots@810.png +0 -0
  302. package/conformance/motion/refs/spec-star@0.png +0 -0
  303. package/conformance/motion/refs/spec-star@162.png +0 -0
  304. package/conformance/motion/refs/spec-star@90.png +0 -0
  305. package/conformance/motion/refs/spec-stroke@0.png +0 -0
  306. package/conformance/motion/refs/spec-stroke@162.png +0 -0
  307. package/conformance/motion/refs/spec-stroke@90.png +0 -0
  308. package/conformance/motion/refs/spec-test-ellipse-xy-pos@0.png +0 -0
  309. package/conformance/motion/refs/spec-test-ellipse-xy-pos@162.png +0 -0
  310. package/conformance/motion/refs/spec-test-ellipse-xy-pos@90.png +0 -0
  311. package/conformance/motion/refs/spec-test-gradient-fill@0.png +0 -0
  312. package/conformance/motion/refs/spec-test-gradient-fill@30.png +0 -0
  313. package/conformance/motion/refs/spec-test-gradient-fill@54.png +0 -0
  314. package/conformance/motion/refs/spec-test-gradient-stroke@0.png +0 -0
  315. package/conformance/motion/refs/spec-test-gradient-stroke@30.png +0 -0
  316. package/conformance/motion/refs/spec-test-gradient-stroke@54.png +0 -0
  317. package/conformance/motion/refs/spec-test-unknown-shape@0.png +0 -0
  318. package/conformance/motion/refs/spec-test-unknown-shape@162.png +0 -0
  319. package/conformance/motion/refs/spec-test-unknown-shape@90.png +0 -0
  320. package/conformance/motion/refs/spec-time-remap@0.png +0 -0
  321. package/conformance/motion/refs/spec-time-remap@300.png +0 -0
  322. package/conformance/motion/refs/spec-time-remap@540.png +0 -0
  323. package/conformance/motion/refs/spec-time-stretch@0.png +0 -0
  324. package/conformance/motion/refs/spec-time-stretch@300.png +0 -0
  325. package/conformance/motion/refs/spec-time-stretch@540.png +0 -0
  326. package/conformance/motion/refs/spec-transform@0.png +0 -0
  327. package/conformance/motion/refs/spec-transform@162.png +0 -0
  328. package/conformance/motion/refs/spec-transform@90.png +0 -0
  329. package/conformance/motion/refs/spec-trim-path@0.png +0 -0
  330. package/conformance/motion/refs/spec-trim-path@162.png +0 -0
  331. package/conformance/motion/refs/spec-trim-path@90.png +0 -0
  332. package/conformance/motion/refs/web-adrock@0.png +0 -0
  333. package/conformance/motion/refs/web-adrock@10.png +0 -0
  334. package/conformance/motion/refs/web-adrock@18.png +0 -0
  335. package/conformance/motion/refs/web-bacon@0.png +0 -0
  336. package/conformance/motion/refs/web-bacon@126.png +0 -0
  337. package/conformance/motion/refs/web-bacon@70.png +0 -0
  338. package/conformance/motion/refs/web-banner@0.png +0 -0
  339. package/conformance/motion/refs/web-banner@301.png +0 -0
  340. package/conformance/motion/refs/web-banner@542.png +0 -0
  341. package/conformance/motion/refs/web-bodymovin@0.png +0 -0
  342. package/conformance/motion/refs/web-bodymovin@51.png +0 -0
  343. package/conformance/motion/refs/web-bodymovin@92.png +0 -0
  344. package/conformance/motion/refs/web-dalek@0.png +0 -0
  345. package/conformance/motion/refs/web-dalek@145.png +0 -0
  346. package/conformance/motion/refs/web-dalek@261.png +0 -0
  347. package/conformance/motion/refs/web-footage-data@0.png +0 -0
  348. package/conformance/motion/refs/web-footage-data@180.png +0 -0
  349. package/conformance/motion/refs/web-footage-data@324.png +0 -0
  350. package/conformance/motion/refs/web-lights@0.png +0 -0
  351. package/conformance/motion/refs/web-lights@150.png +0 -0
  352. package/conformance/motion/refs/web-lights@270.png +0 -0
  353. package/conformance/motion/refs/web-ripple@0.png +0 -0
  354. package/conformance/motion/refs/web-ripple@180.png +0 -0
  355. package/conformance/motion/refs/web-ripple@324.png +0 -0
  356. package/conformance/motion/refs/web-starfish@0.png +0 -0
  357. package/conformance/motion/refs/web-starfish@150.png +0 -0
  358. package/conformance/motion/refs/web-starfish@270.png +0 -0
  359. package/conformance/motion/render-refs.ts +126 -0
  360. package/conformance/motion/report.json +1367 -0
  361. package/conformance/motion/web-parity-gaps.json +12 -0
  362. package/conformance/motion-parity-entry.ts +3 -0
  363. package/conformance/motion-parity.ts +101 -0
  364. package/dist/chunks/{index-gtk2gwsb.js → index-4xczxey5.js} +187 -40
  365. package/dist/chunks/{index-gtk2gwsb.js.map → index-4xczxey5.js.map} +7 -6
  366. package/dist/chunks/{index-62yzr94z.js → index-5sjj5p84.js} +270 -8
  367. package/dist/chunks/{index-62yzr94z.js.map → index-5sjj5p84.js.map} +2 -2
  368. package/dist/chunks/{index-fy7y2nz8.js → index-cvf7bbs5.js} +23 -2
  369. package/dist/chunks/{index-fy7y2nz8.js.map → index-cvf7bbs5.js.map} +1 -1
  370. package/dist/chunks/index-dgkf6yw5.js +48 -0
  371. package/dist/chunks/index-dgkf6yw5.js.map +10 -0
  372. package/dist/chunks/{index-5fmaa0xq.js → index-f9wkb6aq.js} +851 -36
  373. package/dist/chunks/{index-5fmaa0xq.js.map → index-f9wkb6aq.js.map} +2 -2
  374. package/dist/chunks/index-t2mwfbb6.js +1515 -0
  375. package/dist/chunks/index-t2mwfbb6.js.map +15 -0
  376. package/dist/chunks/{index-bg2jsgjq.js → index-vkn82srs.js} +479 -10
  377. package/dist/chunks/{index-bg2jsgjq.js.map → index-vkn82srs.js.map} +2 -2
  378. package/dist/chunks/wasm-ctcc3cma.js +424 -0
  379. package/dist/chunks/wasm-ctcc3cma.js.map +11 -0
  380. package/dist/conformance.js +10941 -563
  381. package/dist/conformance.js.map +2 -2
  382. package/dist/entries/prompt.js +2 -2
  383. package/dist/entries/schema.js +3 -3
  384. package/dist/host/index.js +20 -4
  385. package/dist/host/index.js.map +1 -1
  386. package/dist/index.js +364 -99
  387. package/dist/index.js.map +4 -4
  388. package/dist/types/src/catalog.generated.d.ts +71 -5
  389. package/dist/types/src/host/contract.d.ts +17 -0
  390. package/dist/types/src/host/exposes.d.ts +68 -0
  391. package/dist/types/src/host/index.d.ts +1 -0
  392. package/dist/types/src/host/package.d.ts +8 -0
  393. package/dist/types/src/index.d.ts +2 -0
  394. package/dist/types/src/layout.d.ts +2 -0
  395. package/dist/types/src/limits.d.ts +1 -0
  396. package/dist/types/src/motion/index.d.ts +1 -0
  397. package/dist/types/src/motion/server.d.ts +9 -0
  398. package/dist/types/src/motion/wasm.d.ts +11 -0
  399. package/dist/types/src/web/coerce.d.ts +3 -0
  400. package/dist/types/src/web/focus.d.ts +8 -0
  401. package/dist/types/src/web/index.d.ts +5 -2
  402. package/dist/types/src/web/primitives/carousel.d.ts +17 -0
  403. package/dist/types/src/web/primitives/dock.d.ts +5 -2
  404. package/dist/types/src/web/primitives/index.d.ts +5 -0
  405. package/dist/types/src/web/primitives/mosaic.d.ts +30 -0
  406. package/dist/types/src/web/primitives/motion-paint.d.ts +36 -0
  407. package/dist/types/src/web/primitives/motion.d.ts +162 -0
  408. package/dist/types/src/web/primitives/outline.d.ts +22 -0
  409. package/dist/types/src/web/primitives/zoomable-image.d.ts +158 -0
  410. package/dist/types/src/web/table.d.ts +8 -0
  411. package/dist/types/src/zoom.d.ts +128 -0
  412. package/dist/types/wasm/motion/bytes.d.ts +1 -0
  413. package/dist/web/index.js +171 -230
  414. package/dist/web/index.js.map +9 -10
  415. package/dist/web/primitives/index.js +641 -6
  416. package/dist/web/primitives/index.js.map +9 -5
  417. package/docs/components.generated.json +542 -5
  418. package/docs/package-format.md +56 -1
  419. package/docs/round-6-contract.md +110 -0
  420. package/docs/themes.generated.json +66 -2
  421. package/fixtures/bind-time.json +1468 -0
  422. package/fixtures/catalog-components.json +1026 -16
  423. package/fixtures/catalog-macros.json +1279 -157
  424. package/fixtures/conformance-baseline.json +48893 -47200
  425. package/fixtures/conformance-known.json +140 -134
  426. package/fixtures/host-router.json +539 -1
  427. package/fixtures/kitchen-sink.expanded.json +686 -1
  428. package/fixtures/kitchen-sink.json +102 -1
  429. package/fixtures/layout-geometry-round1.json +42 -42
  430. package/fixtures/motion-frames.json +2618 -0
  431. package/fixtures/motion-playback.json +528 -0
  432. package/fixtures/motion-state.json +722 -0
  433. package/fixtures/motion-validate.json +138 -0
  434. package/fixtures/primitive-specimens.json +4 -0
  435. package/fixtures/prompt-budget.json +16 -16
  436. package/fixtures/specimens.json +839 -21
  437. package/fixtures/theme-recipes.json +32808 -28396
  438. package/fixtures/theme-resolved.json +2114 -286
  439. package/fixtures/zoom.json +1382 -0
  440. package/generated/ExponentialUICatalog.generated.kt +21 -21
  441. package/generated/ExponentialUICatalog.generated.swift +21 -21
  442. package/generated/ExponentialUIThemes.generated.kt +7 -7
  443. package/generated/ExponentialUIThemes.generated.swift +7 -7
  444. package/generated/catalog.descriptions.generated.rs +1 -1
  445. package/generated/catalog.generated.rs +30 -30
  446. package/generated/catalog.themes.generated.rs +8 -8
  447. package/generated/core.descriptions.json +267 -5
  448. package/generated/core.runtime.json +275 -1
  449. package/package.json +1 -1
  450. package/themes/neutral.theme.json +460 -3
  451. package/dist/chunks/index-t6qz1770.js +0 -95
  452. package/dist/chunks/index-t6qz1770.js.map +0 -11
@@ -9,7 +9,7 @@
9
9
  "fixtures/catalog-components.json"
10
10
  ],
11
11
  "unit": "case",
12
- "cases": 579,
12
+ "cases": 605,
13
13
  "check": "Reduce the case's nested node with the core catalog: no issues. Paint it under the default theme: no crash, no Unknown placeholder, every visible node painted."
14
14
  },
15
15
  {
@@ -18,7 +18,7 @@
18
18
  "fixtures/catalog-macros.json"
19
19
  ],
20
20
  "unit": "case",
21
- "cases": 312,
21
+ "cases": 315,
22
22
  "check": "Expand the case: the tree equals `expanded` (JSON-equal, recipes included)."
23
23
  },
24
24
  {
@@ -54,7 +54,7 @@
54
54
  "fixtures/theme-recipes.json"
55
55
  ],
56
56
  "unit": "case",
57
- "cases": 456,
57
+ "cases": 481,
58
58
  "check": "Resolve the part's recipe for the case's theme, props, mode and states: the visual equals the fixture."
59
59
  },
60
60
  {
@@ -136,7 +136,7 @@
136
136
  "fixtures/host-router.json"
137
137
  ],
138
138
  "unit": "package or flow",
139
- "cases": 26,
139
+ "cases": 29,
140
140
  "check": "Validate each package; validate each record against its kind's schema; for each flow build ONE router with `extensionIds`, install `packages` (issues = `installIssues`), route every step: the ops equal `expected`."
141
141
  },
142
142
  {
@@ -145,7 +145,7 @@
145
145
  "fixtures/bind-time.json"
146
146
  ],
147
147
  "unit": "case",
148
- "cases": 71,
148
+ "cases": 72,
149
149
  "check": "Expand the input; for every dataset run the bind pass: the bound tree, every `set` press and the per-row slot cells equal the fixture (reducer `issues` too for `extra`)."
150
150
  },
151
151
  {
@@ -0,0 +1,232 @@
1
+ // EXP-1602: assembles the eui-motion conformance corpus (corpus/*.json +
2
+ // corpus/images/) from upstream checkouts and writes corpus/SOURCES.md.
3
+ //
4
+ // bun run conformance/motion/build-corpus.ts <lottie-spec> <lottie-web> <skia>
5
+ //
6
+ // <lottie-spec> = a checkout of github.com/lottie/lottie-spec, <lottie-web> =
7
+ // github.com/airbnb/lottie-web, <skia> = skia.googlesource.com/skia (sparse:
8
+ // resources/skottie). Files carrying expressions (`"x"` strings on animated
9
+ // properties) are STRIPPED of them (the engine refuses expressions by design;
10
+ // the references are rendered from the same stripped file). Files > 2 MB are
11
+ // skipped. Rerun render-refs.ts afterwards.
12
+
13
+ import { copyFileSync, existsSync, mkdirSync, readFileSync, rmSync, statSync, writeFileSync } from "node:fs"
14
+ import { execFileSync } from "node:child_process"
15
+ import { join } from "node:path"
16
+
17
+ const [specRoot, webRoot, skiaRoot] = process.argv.slice(2)
18
+ if (!specRoot || !webRoot || !skiaRoot) throw new Error(`usage: build-corpus.ts <lottie-spec> <lottie-web> <skia>`)
19
+
20
+ type Source = `spec` | `web` | `skia`
21
+ interface Pick {
22
+ source: Source
23
+ /** Path inside the source checkout. */
24
+ path: string
25
+ /** The corpus name (without `.json`). */
26
+ name: string
27
+ /** What the file exercises. */
28
+ covers: string
29
+ /** Text layers: `glyphs` (ships `chars`: comparable), `fonts` (system fonts: not comparable). */
30
+ text?: `glyphs` | `fonts`
31
+ }
32
+
33
+ const spec = (file: string, covers: string): Pick => ({ source: `spec`, path: `docs/static/examples/${file}.json`, name: `spec-${file.replace(/_/g, `-`)}`, covers })
34
+ const skia = (file: string, covers: string, text?: Pick[`text`]): Pick => ({ source: `skia`, path: `resources/skottie/${file}.json`, name: file.replace(/^skottie[-_]/, `skottie-`).replace(/_/g, `-`), covers, ...(text ? { text } : {}) })
35
+ const web = (file: string, covers: string, text?: Pick[`text`]): Pick => ({ source: `web`, path: `test/animations/${file}.json`, name: `web-${file.replace(/[/_]/g, `-`)}`, covers, ...(text ? { text } : {}) })
36
+
37
+ const PICKS: Pick[] = [
38
+ spec(`blend-mode`, `blend modes, star, ellipse, rect`),
39
+ spec(`ellipse`, `ellipse, stroke`),
40
+ spec(`fill`, `path, fill opacity`),
41
+ spec(`gradient`, `linear + radial gradient fills, animated stops`),
42
+ spec(`gradient-stroke`, `gradient strokes, dashes`),
43
+ spec(`mask`, `additive mask, dashes`),
44
+ spec(`masks`, `mask on a solid layer, dashes`),
45
+ spec(`matte`, `alpha matte`),
46
+ spec(`metadata`, `rect, stroke`),
47
+ spec(`path`, `animated path`),
48
+ spec(`pucker_bloat`, `pucker/bloat modifier`),
49
+ spec(`rectangle`, `rounded rect`),
50
+ spec(`rounded_corners`, `round corners modifier`),
51
+ spec(`slots`, `slots (sid) with their defaults`),
52
+ spec(`star`, `star / polygon`),
53
+ spec(`stroke`, `stroke caps, joins, dashes, trim`),
54
+ spec(`time_remap`, `layer time remap, precomp`),
55
+ spec(`time_stretch`, `time stretch, precomp`),
56
+ spec(`transform`, `transform (anchor, position, scale, rotation, skew, opacity)`),
57
+ spec(`trim_path`, `trim path`),
58
+ { source: `spec`, path: `tests/animations/valid/gradient-stroke.json`, name: `spec-test-gradient-stroke`, covers: `gradient stroke` },
59
+ { source: `spec`, path: `tests/animations/valid/gradient-fill.json`, name: `spec-test-gradient-fill`, covers: `gradient fill (expression stripped)` },
60
+ { source: `spec`, path: `tests/animations/valid/ellipse-xy-pos.json`, name: `spec-test-ellipse-xy-pos`, covers: `split position (x/y)` },
61
+ { source: `spec`, path: `tests/animations/valid/unknown-shape.json`, name: `spec-test-unknown-shape`, covers: `unknown shape type is skipped` },
62
+ web(`adrock`, `real world: legacy keyframes, merge paths, masks, parenting, precomps`),
63
+ web(`bacon`, `real world: legacy keyframes, merge paths, parenting`),
64
+ web(`banner`, `real world: text (glyphs), masks, trim, dashes`, `glyphs`),
65
+ web(`dalek`, `real world: masks, solids, nulls, parenting`),
66
+ web(`lights`, `slider effects, parenting (expressions stripped)`),
67
+ web(`ripple`, `gradient strokes, time remap (expressions stripped)`),
68
+ web(`starfish`, `masks, time remap (expressions stripped)`),
69
+ web(`bodymovin`, `real world, 1 MB: masks, merge paths, trim`),
70
+ web(`footage/data`, `image layers (external), text (glyphs), data footage (expressions stripped)`, `glyphs`),
71
+ skia(`skottie-auto-orient`, `auto-orient along a motion path`),
72
+ skia(`skottie-auto-orient-2`, `auto-orient, parenting`),
73
+ skia(`skottie-bezier-extranormal`, `spatial bezier tangents`),
74
+ skia(`skottie-spatial-supernormal`, `spatial bezier tangents, trim`),
75
+ skia(`skottie-transform-skew`, `skew`),
76
+ skia(`skottie-hidden-shapes-layers`, `hidden shapes and layers (hd)`),
77
+ skia(`skottie_fill_rule`, `even-odd fill rule`),
78
+ skia(`skottie-gradient-opacity`, `gradient stops with opacity`),
79
+ skia(`skottie-gradient-radial-highlight`, `radial gradient highlight (focal point)`),
80
+ skia(`skottie-repeater`, `repeater`),
81
+ skia(`skottie-mergepaths-effect`, `merge paths modes`),
82
+ skia(`skottie-offsetpaths-effect`, `offset path modifier`),
83
+ skia(`skottie-puckerbloat-effect`, `pucker/bloat`),
84
+ skia(`skottie-trimpath-modes`, `trim simultaneous / individual`),
85
+ skia(`skottie-trimpath-fill`, `trim applied to fills, dashes`),
86
+ skia(`skottie-masking-opaque`, `masks: add, subtract, intersect, lighten, darken, difference, inverted`),
87
+ skia(`skottie-masking-translucent`, `masks of every mode with opacity`),
88
+ skia(`skottie-mask-feather`, `mask feather`),
89
+ skia(`skottie-motion-blur-mask`, `mask feather on a solid`),
90
+ skia(`skottie-luma-matte`, `luma matte`),
91
+ skia(`skottie-chained-mattes`, `inverted alpha + inverted luma mattes, chained`),
92
+ skia(`skottie-matte-blendmode`, `matte with a multiply layer`),
93
+ skia(`skottie-matte-nonsequential`, `mattes with tp (non-adjacent matte source)`),
94
+ skia(`skottie-matte-visible`, `visible matte source`),
95
+ skia(`skottie-blendmode-hardmix`, `blend mode 17 (hard mix, not W3C)`),
96
+ skia(`skottie-nested-animation`, `nested precomps`),
97
+ skia(`skottie-time-reverse`, `negative time stretch`),
98
+ skia(`skottie-fill-effect`, `fill effect (ef 21)`),
99
+ skia(`skottie-tritone-effect`, `tritone effect (ef 23)`),
100
+ skia(`skottie-dropshadow-ramp`, `drop shadow effect (ef 25)`),
101
+ skia(`skottie-gaussian-blur`, `gaussian blur (ef 29), text (system font)`, `fonts`),
102
+ skia(`skottie-invert-effect`, `invert effect`),
103
+ skia(`skottie-huesaturation-effect`, `hue/saturation effect`),
104
+ skia(`skottie-dropshadow-style`, `drop shadow layer style`),
105
+ skia(`skottie-effects-transform`, `transform effect, image layer`),
106
+ skia(`skottie_sample_1`, `real world strokes`),
107
+ skia(`skottie_sample_search`, `real world: trim, strokes`),
108
+ skia(`skottie-phonehub-connecting`, `real world: Chrome OS Phone Hub`),
109
+ skia(`skottie-text-fill-over-stroke`, `text: fill over stroke (glyphs)`, `glyphs`),
110
+ skia(`skottie-text-animator-1`, `text animators (glyphs)`, `glyphs`),
111
+ skia(`skottie-text-tracking`, `text tracking (system font)`, `fonts`),
112
+ skia(`skottie-text-valign`, `text paragraph box, alignment (system font)`, `fonts`),
113
+ skia(`skottie-3d-parenting-nocamera`, `3D layers without a camera`),
114
+ ]
115
+
116
+ const LICENCE: Record<Source, string> = {
117
+ spec: `Community Specification License 1.0 (lottie-spec; §1.1 grants reproduction and distribution, §1.2 requires attribution: see the header)`,
118
+ web: `MIT (lottie-web, Copyright (c) 2015 Bodymovin)`,
119
+ skia: `BSD-3-Clause (Skia, Copyright (c) 2011 Google Inc.)`,
120
+ }
121
+ const ROOT: Record<Source, string> = { spec: specRoot, web: webRoot, skia: skiaRoot }
122
+ const URL: Record<Source, string> = {
123
+ spec: `https://github.com/lottie/lottie-spec`,
124
+ web: `https://github.com/airbnb/lottie-web`,
125
+ skia: `https://skia.googlesource.com/skia`,
126
+ }
127
+
128
+ const rev = (dir: string): string => {
129
+ try {
130
+ return execFileSync(`git`, [`-C`, dir, `rev-parse`, `HEAD`], { encoding: `utf8` }).trim()
131
+ } catch {
132
+ return `unknown`
133
+ }
134
+ }
135
+
136
+ /** Drop `"x"` (expression) strings from animated properties; returns the count. */
137
+ function stripExpressions(v: unknown): number {
138
+ let n = 0
139
+ if (Array.isArray(v)) for (const x of v) n += stripExpressions(x)
140
+ else if (v && typeof v === `object`) {
141
+ const o = v as Record<string, unknown>
142
+ if (`k` in o && typeof o.x === `string`) {
143
+ delete o.x
144
+ n++
145
+ }
146
+ for (const k of Object.keys(o)) n += stripExpressions(o[k])
147
+ }
148
+ return n
149
+ }
150
+
151
+ const here = import.meta.dir
152
+ const corpus = join(here, `corpus`)
153
+ rmSync(corpus, { recursive: true, force: true })
154
+ mkdirSync(join(corpus, `images`), { recursive: true })
155
+
156
+ const rows: string[] = []
157
+ for (const p of PICKS) {
158
+ const src = join(ROOT[p.source], p.path)
159
+ if (statSync(src).size > 2 * 1024 * 1024) throw new Error(`${p.path}: over 2 MB`)
160
+ const text = readFileSync(src, `utf8`)
161
+ const json = JSON.parse(text)
162
+ const stripped = stripExpressions(json)
163
+ // lottie-web needs `v` (it compares versions to upgrade old files); the
164
+ // spec makes it optional. Files without one get "5.7.0".
165
+ // Likewise layers without `st` (spec default 0) are never shown by lottie-web.
166
+ let versioned = typeof json.v !== `string`
167
+ if (versioned) json.v = `5.7.0`
168
+ for (const list of [json.layers ?? [], ...(json.assets ?? []).map((a: { layers?: unknown[] }) => a.layers ?? [])])
169
+ for (const l of list as Record<string, unknown>[])
170
+ if (l.st === undefined) {
171
+ l.st = 0
172
+ versioned = true
173
+ }
174
+ writeFileSync(join(corpus, `${p.name}.json`), stripped || versioned ? JSON.stringify(json) : text)
175
+ // External images: copied next to the file (`u` + `p`, relative).
176
+ for (const a of json.assets ?? []) {
177
+ if (a.layers || !a.p || a.e === 1 || String(a.p).startsWith(`data:`)) continue
178
+ const from = join(ROOT[p.source], p.path, `..`, a.u ?? ``, a.p)
179
+ if (!existsSync(from)) {
180
+ console.warn(`${p.name}: missing image ${from}`)
181
+ continue
182
+ }
183
+ mkdirSync(join(corpus, a.u ?? ``), { recursive: true })
184
+ copyFileSync(from, join(corpus, a.u ?? ``, a.p))
185
+ }
186
+ const notes = [p.covers, stripped ? `**${stripped} expression(s) stripped**` : ``, versioned ? `**lottie-web defaults added** (\`"v"\`, layer \`"st": 0\`)` : ``, p.text === `fonts` ? `text with system fonts: NOT comparable` : p.text === `glyphs` ? `text ships glyphs (chars): comparable` : ``].filter(Boolean).join(`; `)
187
+ rows.push(`| \`${p.name}.json\` | ${p.source} \`${p.path}\` | ${p.source === `spec` ? `CSL-1.0` : p.source === `web` ? `MIT` : `BSD-3-Clause`} | ${notes} |`)
188
+ }
189
+
190
+ const md = `# eui-motion conformance corpus: sources
191
+
192
+ Generated by \`build-corpus.ts\` (do not edit by hand). Every file is redistributed
193
+ under its upstream licence:
194
+
195
+ | source | revision | licence |
196
+ |---|---|---|
197
+ ${(Object.keys(ROOT) as Source[]).map((s) => `| ${s}: ${URL[s]} | \`${rev(ROOT[s])}\` | ${LICENCE[s]} |`).join(`\n`)}
198
+
199
+ **Attribution (Community Specification License 1.0 §1.2):** the \`spec-*\` files are
200
+ examples and test animations of the *Lottie Animation Format* specification,
201
+ version 1.0, by the Lottie Animation Community (LAC) Working Group, retrieved from
202
+ https://github.com/lottie/lottie-spec (\`docs/static/examples\`, \`tests/animations\`)
203
+ at the revision above. The licence's §1.1 grants everyone a copyright licence "to
204
+ reproduce, prepare derivative works of, publicly display, publicly perform, and
205
+ distribute" the materials; the stripped variants below are such derivative works.
206
+
207
+ **MIT (lottie-web):** Copyright (c) 2015 Bodymovin. Permission is hereby granted,
208
+ free of charge, to any person obtaining a copy of this software and associated
209
+ documentation files, to deal in the Software without restriction (full text:
210
+ https://github.com/airbnb/lottie-web/blob/master/LICENSE.md).
211
+
212
+ **BSD-3-Clause (Skia):** Copyright (c) 2011 Google Inc. All rights reserved.
213
+ Redistribution and use in source and binary forms, with or without modification,
214
+ are permitted provided the copyright notice, the conditions and the disclaimer
215
+ are retained (full text: https://skia.googlesource.com/skia/+/main/LICENSE).
216
+ \`images/triangle.png\` is Skia's (\`resources/skottie/images\`); \`images/img_*.jpg\`
217
+ and \`images/footage_0.json\` are lottie-web's (\`test/animations/footage/images\`).
218
+
219
+ Two edits, both applied before rendering the references, so both sides see
220
+ the same file: the spec's defaults lottie-web does not apply are written out
221
+ (\`"v": "5.7.0"\` where the version is missing, \`"st": 0\` on layers without a
222
+ start time; lottie-web hides such layers), and expressions are removed. Expressions: the engine refuses them by design, so files that carried
223
+ \`"x"\` expression strings are stored with those strings removed (marked below);
224
+ the references are rendered from the stored (stripped) file, so both sides
225
+ see the same animation.
226
+
227
+ | file | from | licence | covers / notes |
228
+ |---|---|---|---|
229
+ ${rows.join(`\n`)}
230
+ `
231
+ writeFileSync(join(corpus, `SOURCES.md`), md)
232
+ console.log(`${PICKS.length} files`)
@@ -0,0 +1,117 @@
1
+ # eui-motion conformance corpus: sources
2
+
3
+ Generated by `build-corpus.ts` (do not edit by hand). Every file is redistributed
4
+ under its upstream licence:
5
+
6
+ | source | revision | licence |
7
+ |---|---|---|
8
+ | spec: https://github.com/lottie/lottie-spec | `4b55957472f8718e34e9c1298f0e8f021b6c597f` | Community Specification License 1.0 (lottie-spec; §1.1 grants reproduction and distribution, §1.2 requires attribution: see the header) |
9
+ | web: https://github.com/airbnb/lottie-web | `bede03d25d232826e0c9dca1733d542d8a7754fb` | MIT (lottie-web, Copyright (c) 2015 Bodymovin) |
10
+ | skia: https://skia.googlesource.com/skia | `e43478a2f9f8c7f68d6c7e2ca79441dac7df9b75` | BSD-3-Clause (Skia, Copyright (c) 2011 Google Inc.) |
11
+
12
+ **Attribution (Community Specification License 1.0 §1.2):** the `spec-*` files are
13
+ examples and test animations of the *Lottie Animation Format* specification,
14
+ version 1.0, by the Lottie Animation Community (LAC) Working Group, retrieved from
15
+ https://github.com/lottie/lottie-spec (`docs/static/examples`, `tests/animations`)
16
+ at the revision above. The licence's §1.1 grants everyone a copyright licence "to
17
+ reproduce, prepare derivative works of, publicly display, publicly perform, and
18
+ distribute" the materials; the stripped variants below are such derivative works.
19
+
20
+ **MIT (lottie-web):** Copyright (c) 2015 Bodymovin. Permission is hereby granted,
21
+ free of charge, to any person obtaining a copy of this software and associated
22
+ documentation files, to deal in the Software without restriction (full text:
23
+ https://github.com/airbnb/lottie-web/blob/master/LICENSE.md).
24
+
25
+ **BSD-3-Clause (Skia):** Copyright (c) 2011 Google Inc. All rights reserved.
26
+ Redistribution and use in source and binary forms, with or without modification,
27
+ are permitted provided the copyright notice, the conditions and the disclaimer
28
+ are retained (full text: https://skia.googlesource.com/skia/+/main/LICENSE).
29
+ `images/triangle.png` is Skia's (`resources/skottie/images`); `images/img_*.jpg`
30
+ and `images/footage_0.json` are lottie-web's (`test/animations/footage/images`).
31
+
32
+ Two edits, both applied before rendering the references, so both sides see
33
+ the same file: the spec's defaults lottie-web does not apply are written out
34
+ (`"v": "5.7.0"` where the version is missing, `"st": 0` on layers without a
35
+ start time; lottie-web hides such layers), and expressions are removed. Expressions: the engine refuses them by design, so files that carried
36
+ `"x"` expression strings are stored with those strings removed (marked below);
37
+ the references are rendered from the stored (stripped) file, so both sides
38
+ see the same animation.
39
+
40
+ | file | from | licence | covers / notes |
41
+ |---|---|---|---|
42
+ | `spec-blend-mode.json` | spec `docs/static/examples/blend-mode.json` | CSL-1.0 | blend modes, star, ellipse, rect |
43
+ | `spec-ellipse.json` | spec `docs/static/examples/ellipse.json` | CSL-1.0 | ellipse, stroke |
44
+ | `spec-fill.json` | spec `docs/static/examples/fill.json` | CSL-1.0 | path, fill opacity |
45
+ | `spec-gradient.json` | spec `docs/static/examples/gradient.json` | CSL-1.0 | linear + radial gradient fills, animated stops |
46
+ | `spec-gradient-stroke.json` | spec `docs/static/examples/gradient-stroke.json` | CSL-1.0 | gradient strokes, dashes |
47
+ | `spec-mask.json` | spec `docs/static/examples/mask.json` | CSL-1.0 | additive mask, dashes |
48
+ | `spec-masks.json` | spec `docs/static/examples/masks.json` | CSL-1.0 | mask on a solid layer, dashes |
49
+ | `spec-matte.json` | spec `docs/static/examples/matte.json` | CSL-1.0 | alpha matte |
50
+ | `spec-metadata.json` | spec `docs/static/examples/metadata.json` | CSL-1.0 | rect, stroke; **lottie-web defaults added** (`"v"`, layer `"st": 0`) |
51
+ | `spec-path.json` | spec `docs/static/examples/path.json` | CSL-1.0 | animated path |
52
+ | `spec-pucker-bloat.json` | spec `docs/static/examples/pucker_bloat.json` | CSL-1.0 | pucker/bloat modifier |
53
+ | `spec-rectangle.json` | spec `docs/static/examples/rectangle.json` | CSL-1.0 | rounded rect |
54
+ | `spec-rounded-corners.json` | spec `docs/static/examples/rounded_corners.json` | CSL-1.0 | round corners modifier |
55
+ | `spec-slots.json` | spec `docs/static/examples/slots.json` | CSL-1.0 | slots (sid) with their defaults |
56
+ | `spec-star.json` | spec `docs/static/examples/star.json` | CSL-1.0 | star / polygon |
57
+ | `spec-stroke.json` | spec `docs/static/examples/stroke.json` | CSL-1.0 | stroke caps, joins, dashes, trim |
58
+ | `spec-time-remap.json` | spec `docs/static/examples/time_remap.json` | CSL-1.0 | layer time remap, precomp |
59
+ | `spec-time-stretch.json` | spec `docs/static/examples/time_stretch.json` | CSL-1.0 | time stretch, precomp |
60
+ | `spec-transform.json` | spec `docs/static/examples/transform.json` | CSL-1.0 | transform (anchor, position, scale, rotation, skew, opacity) |
61
+ | `spec-trim-path.json` | spec `docs/static/examples/trim_path.json` | CSL-1.0 | trim path |
62
+ | `spec-test-gradient-stroke.json` | spec `tests/animations/valid/gradient-stroke.json` | CSL-1.0 | gradient stroke |
63
+ | `spec-test-gradient-fill.json` | spec `tests/animations/valid/gradient-fill.json` | CSL-1.0 | gradient fill (expression stripped); **1 expression(s) stripped** |
64
+ | `spec-test-ellipse-xy-pos.json` | spec `tests/animations/valid/ellipse-xy-pos.json` | CSL-1.0 | split position (x/y) |
65
+ | `spec-test-unknown-shape.json` | spec `tests/animations/valid/unknown-shape.json` | CSL-1.0 | unknown shape type is skipped |
66
+ | `web-adrock.json` | web `test/animations/adrock.json` | MIT | real world: legacy keyframes, merge paths, masks, parenting, precomps |
67
+ | `web-bacon.json` | web `test/animations/bacon.json` | MIT | real world: legacy keyframes, merge paths, parenting |
68
+ | `web-banner.json` | web `test/animations/banner.json` | MIT | real world: text (glyphs), masks, trim, dashes; text ships glyphs (chars): comparable |
69
+ | `web-dalek.json` | web `test/animations/dalek.json` | MIT | real world: masks, solids, nulls, parenting |
70
+ | `web-lights.json` | web `test/animations/lights.json` | MIT | slider effects, parenting (expressions stripped); **20 expression(s) stripped** |
71
+ | `web-ripple.json` | web `test/animations/ripple.json` | MIT | gradient strokes, time remap (expressions stripped); **6 expression(s) stripped** |
72
+ | `web-starfish.json` | web `test/animations/starfish.json` | MIT | masks, time remap (expressions stripped); **26 expression(s) stripped** |
73
+ | `web-bodymovin.json` | web `test/animations/bodymovin.json` | MIT | real world, 1 MB: masks, merge paths, trim |
74
+ | `web-footage-data.json` | web `test/animations/footage/data.json` | MIT | image layers (external), text (glyphs), data footage (expressions stripped); **3 expression(s) stripped**; text ships glyphs (chars): comparable |
75
+ | `skottie-auto-orient.json` | skia `resources/skottie/skottie-auto-orient.json` | BSD-3-Clause | auto-orient along a motion path |
76
+ | `skottie-auto-orient-2.json` | skia `resources/skottie/skottie-auto-orient-2.json` | BSD-3-Clause | auto-orient, parenting |
77
+ | `skottie-bezier-extranormal.json` | skia `resources/skottie/skottie-bezier-extranormal.json` | BSD-3-Clause | spatial bezier tangents |
78
+ | `skottie-spatial-supernormal.json` | skia `resources/skottie/skottie-spatial-supernormal.json` | BSD-3-Clause | spatial bezier tangents, trim |
79
+ | `skottie-transform-skew.json` | skia `resources/skottie/skottie-transform-skew.json` | BSD-3-Clause | skew |
80
+ | `skottie-hidden-shapes-layers.json` | skia `resources/skottie/skottie-hidden-shapes-layers.json` | BSD-3-Clause | hidden shapes and layers (hd) |
81
+ | `skottie-fill-rule.json` | skia `resources/skottie/skottie_fill_rule.json` | BSD-3-Clause | even-odd fill rule |
82
+ | `skottie-gradient-opacity.json` | skia `resources/skottie/skottie-gradient-opacity.json` | BSD-3-Clause | gradient stops with opacity |
83
+ | `skottie-gradient-radial-highlight.json` | skia `resources/skottie/skottie-gradient-radial-highlight.json` | BSD-3-Clause | radial gradient highlight (focal point) |
84
+ | `skottie-repeater.json` | skia `resources/skottie/skottie-repeater.json` | BSD-3-Clause | repeater |
85
+ | `skottie-mergepaths-effect.json` | skia `resources/skottie/skottie-mergepaths-effect.json` | BSD-3-Clause | merge paths modes |
86
+ | `skottie-offsetpaths-effect.json` | skia `resources/skottie/skottie-offsetpaths-effect.json` | BSD-3-Clause | offset path modifier |
87
+ | `skottie-puckerbloat-effect.json` | skia `resources/skottie/skottie-puckerbloat-effect.json` | BSD-3-Clause | pucker/bloat |
88
+ | `skottie-trimpath-modes.json` | skia `resources/skottie/skottie-trimpath-modes.json` | BSD-3-Clause | trim simultaneous / individual |
89
+ | `skottie-trimpath-fill.json` | skia `resources/skottie/skottie-trimpath-fill.json` | BSD-3-Clause | trim applied to fills, dashes |
90
+ | `skottie-masking-opaque.json` | skia `resources/skottie/skottie-masking-opaque.json` | BSD-3-Clause | masks: add, subtract, intersect, lighten, darken, difference, inverted |
91
+ | `skottie-masking-translucent.json` | skia `resources/skottie/skottie-masking-translucent.json` | BSD-3-Clause | masks of every mode with opacity |
92
+ | `skottie-mask-feather.json` | skia `resources/skottie/skottie-mask-feather.json` | BSD-3-Clause | mask feather |
93
+ | `skottie-motion-blur-mask.json` | skia `resources/skottie/skottie-motion-blur-mask.json` | BSD-3-Clause | mask feather on a solid |
94
+ | `skottie-luma-matte.json` | skia `resources/skottie/skottie-luma-matte.json` | BSD-3-Clause | luma matte |
95
+ | `skottie-chained-mattes.json` | skia `resources/skottie/skottie-chained-mattes.json` | BSD-3-Clause | inverted alpha + inverted luma mattes, chained |
96
+ | `skottie-matte-blendmode.json` | skia `resources/skottie/skottie-matte-blendmode.json` | BSD-3-Clause | matte with a multiply layer |
97
+ | `skottie-matte-nonsequential.json` | skia `resources/skottie/skottie-matte-nonsequential.json` | BSD-3-Clause | mattes with tp (non-adjacent matte source) |
98
+ | `skottie-matte-visible.json` | skia `resources/skottie/skottie-matte-visible.json` | BSD-3-Clause | visible matte source |
99
+ | `skottie-blendmode-hardmix.json` | skia `resources/skottie/skottie-blendmode-hardmix.json` | BSD-3-Clause | blend mode 17 (hard mix, not W3C) |
100
+ | `skottie-nested-animation.json` | skia `resources/skottie/skottie-nested-animation.json` | BSD-3-Clause | nested precomps |
101
+ | `skottie-time-reverse.json` | skia `resources/skottie/skottie-time-reverse.json` | BSD-3-Clause | negative time stretch |
102
+ | `skottie-fill-effect.json` | skia `resources/skottie/skottie-fill-effect.json` | BSD-3-Clause | fill effect (ef 21) |
103
+ | `skottie-tritone-effect.json` | skia `resources/skottie/skottie-tritone-effect.json` | BSD-3-Clause | tritone effect (ef 23) |
104
+ | `skottie-dropshadow-ramp.json` | skia `resources/skottie/skottie-dropshadow-ramp.json` | BSD-3-Clause | drop shadow effect (ef 25) |
105
+ | `skottie-gaussian-blur.json` | skia `resources/skottie/skottie-gaussian-blur.json` | BSD-3-Clause | gaussian blur (ef 29), text (system font); text with system fonts: NOT comparable |
106
+ | `skottie-invert-effect.json` | skia `resources/skottie/skottie-invert-effect.json` | BSD-3-Clause | invert effect |
107
+ | `skottie-huesaturation-effect.json` | skia `resources/skottie/skottie-huesaturation-effect.json` | BSD-3-Clause | hue/saturation effect |
108
+ | `skottie-dropshadow-style.json` | skia `resources/skottie/skottie-dropshadow-style.json` | BSD-3-Clause | drop shadow layer style |
109
+ | `skottie-effects-transform.json` | skia `resources/skottie/skottie-effects-transform.json` | BSD-3-Clause | transform effect, image layer |
110
+ | `skottie-sample-1.json` | skia `resources/skottie/skottie_sample_1.json` | BSD-3-Clause | real world strokes |
111
+ | `skottie-sample-search.json` | skia `resources/skottie/skottie_sample_search.json` | BSD-3-Clause | real world: trim, strokes |
112
+ | `skottie-phonehub-connecting.json` | skia `resources/skottie/skottie-phonehub-connecting.json` | BSD-3-Clause | real world: Chrome OS Phone Hub |
113
+ | `skottie-text-fill-over-stroke.json` | skia `resources/skottie/skottie-text-fill-over-stroke.json` | BSD-3-Clause | text: fill over stroke (glyphs); text ships glyphs (chars): comparable |
114
+ | `skottie-text-animator-1.json` | skia `resources/skottie/skottie-text-animator-1.json` | BSD-3-Clause | text animators (glyphs); text ships glyphs (chars): comparable |
115
+ | `skottie-text-tracking.json` | skia `resources/skottie/skottie-text-tracking.json` | BSD-3-Clause | text tracking (system font); text with system fonts: NOT comparable |
116
+ | `skottie-text-valign.json` | skia `resources/skottie/skottie-text-valign.json` | BSD-3-Clause | text paragraph box, alignment (system font); text with system fonts: NOT comparable |
117
+ | `skottie-3d-parenting-nocamera.json` | skia `resources/skottie/skottie-3d-parenting-nocamera.json` | BSD-3-Clause | 3D layers without a camera |
@@ -0,0 +1 @@
1
+ {"lat":33.4418,"lon":-94.0377,"timezone":"America/Chicago","timezone_offset":-18000,"current":{"dt":1616783932,"sunrise":1616760679,"sunset":1616805115,"temp":294.73,"feels_like":291.14,"pressure":1017,"humidity":43,"dew_point":281.63,"uvi":7.02,"clouds":1,"visibility":10000,"wind_speed":4.63,"wind_deg":120,"weather":[{"id":800,"main":"Clear","description":"clear sky","icon":"01d"}]},"minutely":[{"dt":1616783940,"precipitation":0},{"dt":1616784000,"precipitation":0},{"dt":1616784060,"precipitation":0},{"dt":1616784120,"precipitation":0},{"dt":1616784180,"precipitation":0},{"dt":1616784240,"precipitation":0},{"dt":1616784300,"precipitation":0},{"dt":1616784360,"precipitation":0},{"dt":1616784420,"precipitation":0},{"dt":1616784480,"precipitation":0},{"dt":1616784540,"precipitation":0},{"dt":1616784600,"precipitation":0},{"dt":1616784660,"precipitation":0},{"dt":1616784720,"precipitation":0},{"dt":1616784780,"precipitation":0},{"dt":1616784840,"precipitation":0},{"dt":1616784900,"precipitation":0},{"dt":1616784960,"precipitation":0},{"dt":1616785020,"precipitation":0},{"dt":1616785080,"precipitation":0},{"dt":1616785140,"precipitation":0},{"dt":1616785200,"precipitation":0},{"dt":1616785260,"precipitation":0},{"dt":1616785320,"precipitation":0},{"dt":1616785380,"precipitation":0},{"dt":1616785440,"precipitation":0},{"dt":1616785500,"precipitation":0},{"dt":1616785560,"precipitation":0},{"dt":1616785620,"precipitation":0},{"dt":1616785680,"precipitation":0},{"dt":1616785740,"precipitation":0},{"dt":1616785800,"precipitation":0},{"dt":1616785860,"precipitation":0},{"dt":1616785920,"precipitation":0},{"dt":1616785980,"precipitation":0},{"dt":1616786040,"precipitation":0},{"dt":1616786100,"precipitation":0},{"dt":1616786160,"precipitation":0},{"dt":1616786220,"precipitation":0},{"dt":1616786280,"precipitation":0},{"dt":1616786340,"precipitation":0},{"dt":1616786400,"precipitation":0},{"dt":1616786460,"precipitation":0},{"dt":1616786520,"precipitation":0},{"dt":1616786580,"precipitation":0},{"dt":1616786640,"precipitation":0},{"dt":1616786700,"precipitation":0},{"dt":1616786760,"precipitation":0},{"dt":1616786820,"precipitation":0},{"dt":1616786880,"precipitation":0},{"dt":1616786940,"precipitation":0},{"dt":1616787000,"precipitation":0},{"dt":1616787060,"precipitation":0},{"dt":1616787120,"precipitation":0},{"dt":1616787180,"precipitation":0},{"dt":1616787240,"precipitation":0},{"dt":1616787300,"precipitation":0},{"dt":1616787360,"precipitation":0},{"dt":1616787420,"precipitation":0},{"dt":1616787480,"precipitation":0},{"dt":1616787540,"precipitation":0}]}