animl-cli 0.0.0-stage → 0.1.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 (1181) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE +34 -0
  3. package/README.md +21 -2
  4. package/docs/AUTHORING.md +1530 -0
  5. package/docs/CLI.md +627 -0
  6. package/docs/parity/inventory.json +34570 -0
  7. package/examples/bell.ani +359 -0
  8. package/examples/bell.animl +114 -0
  9. package/examples/composite.ani +110 -0
  10. package/examples/composite.animl +21 -0
  11. package/examples/feather.ani +56 -0
  12. package/examples/feather.animl +20 -0
  13. package/examples/image-paints.ani +32 -0
  14. package/examples/image-paints.animl +8 -0
  15. package/examples/lib/cards.animl +9 -0
  16. package/examples/lib/shared.animl +10 -0
  17. package/examples/lib/ui.animl +8 -0
  18. package/examples/moon-toggle.png +0 -0
  19. package/examples/moon.ani +250 -0
  20. package/examples/moon.animl +55 -0
  21. package/examples/motion.ani +94 -0
  22. package/examples/motion.animl +24 -0
  23. package/examples/paint.ani +91 -0
  24. package/examples/paint.animl +21 -0
  25. package/examples/photo.ani +29 -0
  26. package/examples/photo.animl +6 -0
  27. package/examples/progress.ani +43 -0
  28. package/examples/progress.animl +6 -0
  29. package/examples/shapes.ani +109 -0
  30. package/examples/shapes.animl +16 -0
  31. package/examples/slice.ani +32 -0
  32. package/examples/slice.animl +9 -0
  33. package/examples/switch.ani +91 -0
  34. package/examples/switch.animl +22 -0
  35. package/examples/toolbar.ani +480 -0
  36. package/examples/toolbar.animl +115 -0
  37. package/examples/trash-ring.png +0 -0
  38. package/examples/trash.ani +357 -0
  39. package/examples/trash.animl +88 -0
  40. package/examples/web/index.html +520 -0
  41. package/examples/web/template.html +162 -0
  42. package/fixtures/bell/rive-reference/frames/00-rest.png +0 -0
  43. package/fixtures/bell/rive-reference/frames/01-hover.png +0 -0
  44. package/fixtures/bell/rive-reference/frames/02-ring-f3.png +0 -0
  45. package/fixtures/bell/rive-reference/frames/03-ring-f7.png +0 -0
  46. package/fixtures/bell/rive-reference/frames/04-ring-f17.png +0 -0
  47. package/fixtures/bell/rive-reference/frames/05-ring-f27.png +0 -0
  48. package/fixtures/bell/rive-reference/frames/06-ring-f57.png +0 -0
  49. package/fixtures/bell/rive-reference/frames/07-rested.png +0 -0
  50. package/fixtures/bell/rive-reference/frames/08-out.png +0 -0
  51. package/fixtures/bell/rive-reference/frames/commands.txt +24 -0
  52. package/llms.txt +30 -0
  53. package/modules/a11y/AUTHORING.md +108 -0
  54. package/modules/a11y/SPEC.md +304 -0
  55. package/modules/a11y/capabilities/a11y-focus-condition/example.ani +69 -0
  56. package/modules/a11y/capabilities/a11y-focus-condition/example.animl +17 -0
  57. package/modules/a11y/capabilities/a11y-inferred-text/example.ani +47 -0
  58. package/modules/a11y/capabilities/a11y-inferred-text/example.animl +13 -0
  59. package/modules/a11y/capabilities/a11y-property-heading-level/example.ani +26 -0
  60. package/modules/a11y/capabilities/a11y-property-heading-level/example.animl +6 -0
  61. package/modules/a11y/capabilities/a11y-tree-bounds/example.ani +88 -0
  62. package/modules/a11y/capabilities/a11y-tree-bounds/example.animl +18 -0
  63. package/modules/a11y/capabilities/a11y-tree-visibility/example.ani +16 -0
  64. package/modules/a11y/capabilities/a11y-tree-visibility/example.animl +4 -0
  65. package/modules/a11y/core/commands.source +135 -0
  66. package/modules/a11y/examples/contract.ani +74 -0
  67. package/modules/a11y/examples/contract.animl +15 -0
  68. package/modules/a11y/examples/focus-ancestor-policy.ani +72 -0
  69. package/modules/a11y/examples/focus-ancestor-policy.animl +16 -0
  70. package/modules/a11y/examples/painted-extents.ani +331 -0
  71. package/modules/a11y/examples/painted-extents.animl +62 -0
  72. package/modules/a11y/examples/painted-groups.ani +88 -0
  73. package/modules/a11y/examples/painted-groups.animl +18 -0
  74. package/modules/a11y/examples/slider-value-text.ani +53 -0
  75. package/modules/a11y/examples/slider-value-text.animl +11 -0
  76. package/modules/a11y/manifest.source +49 -0
  77. package/modules/a11y-actions/manifest.source +22 -0
  78. package/modules/a11y-dom/AUTHORING.md +35 -0
  79. package/modules/a11y-dom/SPEC.md +165 -0
  80. package/modules/a11y-dom/examples/mute.ani +28 -0
  81. package/modules/a11y-dom/examples/mute.animl +6 -0
  82. package/modules/a11y-dom/examples/navigation.ani +152 -0
  83. package/modules/a11y-dom/examples/navigation.animl +35 -0
  84. package/modules/a11y-dom/manifest.source +22 -0
  85. package/modules/assetio/SPEC.md +16 -0
  86. package/modules/assetio/manifest.source +12 -0
  87. package/modules/assets/SPEC.md +23 -0
  88. package/modules/assets/capabilities/assets-audio/example.ani +60 -0
  89. package/modules/assets/capabilities/assets-audio/example.animl +16 -0
  90. package/modules/assets/capabilities/assets-audio-clip/example.ani +62 -0
  91. package/modules/assets/capabilities/assets-audio-clip/example.animl +17 -0
  92. package/modules/assets/capabilities/assets-audio-export-source/example.ani +60 -0
  93. package/modules/assets/capabilities/assets-audio-export-source/example.animl +16 -0
  94. package/modules/assets/capabilities/assets-audio-import-flac/example.ani +63 -0
  95. package/modules/assets/capabilities/assets-audio-import-flac/example.animl +17 -0
  96. package/modules/assets/capabilities/assets-audio-import-mp3/example.ani +63 -0
  97. package/modules/assets/capabilities/assets-audio-import-mp3/example.animl +17 -0
  98. package/modules/assets/capabilities/assets-audio-import-wav/example.ani +60 -0
  99. package/modules/assets/capabilities/assets-audio-import-wav/example.animl +16 -0
  100. package/modules/assets/capabilities/assets-blob/example.ani +52 -0
  101. package/modules/assets/capabilities/assets-blob/example.animl +13 -0
  102. package/modules/assets/capabilities/assets-cdn-disable/example.ani +48 -0
  103. package/modules/assets/capabilities/assets-cdn-disable/example.animl +12 -0
  104. package/modules/assets/capabilities/assets-exclude-export/example.ani +49 -0
  105. package/modules/assets/capabilities/assets-exclude-export/example.animl +12 -0
  106. package/modules/assets/capabilities/assets-host-decode-audio/example.ani +60 -0
  107. package/modules/assets/capabilities/assets-host-decode-audio/example.animl +16 -0
  108. package/modules/assets/capabilities/assets-image-encoding-jpeg/example.ani +50 -0
  109. package/modules/assets/capabilities/assets-image-encoding-jpeg/example.animl +12 -0
  110. package/modules/assets/capabilities/assets-image-encoding-png/example.ani +50 -0
  111. package/modules/assets/capabilities/assets-image-encoding-png/example.animl +12 -0
  112. package/modules/assets/capabilities/assets-image-encoding-webp/example.ani +50 -0
  113. package/modules/assets/capabilities/assets-image-encoding-webp/example.animl +12 -0
  114. package/modules/assets/capabilities/assets-image-export-controls/example.ani +49 -0
  115. package/modules/assets/capabilities/assets-image-export-controls/example.animl +12 -0
  116. package/modules/assets/capabilities/assets-image-filter-bilinear/example.ani +49 -0
  117. package/modules/assets/capabilities/assets-image-filter-bilinear/example.animl +12 -0
  118. package/modules/assets/capabilities/assets-image-filter-nearest/example.ani +49 -0
  119. package/modules/assets/capabilities/assets-image-filter-nearest/example.animl +12 -0
  120. package/modules/assets/capabilities/assets-image-import-jpeg/example.ani +49 -0
  121. package/modules/assets/capabilities/assets-image-import-jpeg/example.animl +12 -0
  122. package/modules/assets/capabilities/assets-image-import-jpg/example.ani +49 -0
  123. package/modules/assets/capabilities/assets-image-import-jpg/example.animl +12 -0
  124. package/modules/assets/capabilities/assets-image-import-png/example.ani +49 -0
  125. package/modules/assets/capabilities/assets-image-import-png/example.animl +12 -0
  126. package/modules/assets/capabilities/assets-image-import-webp/example.ani +49 -0
  127. package/modules/assets/capabilities/assets-image-import-webp/example.animl +12 -0
  128. package/modules/assets/capabilities/assets-image-wrap-x-clamp/example.ani +50 -0
  129. package/modules/assets/capabilities/assets-image-wrap-x-clamp/example.animl +12 -0
  130. package/modules/assets/capabilities/assets-image-wrap-x-mirror/example.ani +50 -0
  131. package/modules/assets/capabilities/assets-image-wrap-x-mirror/example.animl +12 -0
  132. package/modules/assets/capabilities/assets-image-wrap-x-repeat/example.ani +50 -0
  133. package/modules/assets/capabilities/assets-image-wrap-x-repeat/example.animl +12 -0
  134. package/modules/assets/capabilities/assets-image-wrap-y-clamp/example.ani +50 -0
  135. package/modules/assets/capabilities/assets-image-wrap-y-clamp/example.animl +12 -0
  136. package/modules/assets/capabilities/assets-image-wrap-y-mirror/example.ani +50 -0
  137. package/modules/assets/capabilities/assets-image-wrap-y-mirror/example.animl +12 -0
  138. package/modules/assets/capabilities/assets-image-wrap-y-repeat/example.ani +50 -0
  139. package/modules/assets/capabilities/assets-image-wrap-y-repeat/example.animl +12 -0
  140. package/modules/assets/capabilities/assets-lottie-import/example.ani +58 -0
  141. package/modules/assets/capabilities/assets-lottie-import/example.animl +20 -0
  142. package/modules/assets/capabilities/assets-metadata/example.ani +53 -0
  143. package/modules/assets/capabilities/assets-metadata/example.animl +12 -0
  144. package/modules/assets/capabilities/assets-replacement-scope-image/example.ani +48 -0
  145. package/modules/assets/capabilities/assets-replacement-scope-image/example.animl +12 -0
  146. package/modules/assets/capabilities/assets-svg-import/example.ani +52 -0
  147. package/modules/assets/capabilities/assets-svg-import/example.animl +11 -0
  148. package/modules/assets/capabilities/host-api-asset-cdn-policy/example.ani +48 -0
  149. package/modules/assets/capabilities/host-api-asset-cdn-policy/example.animl +12 -0
  150. package/modules/assets/capabilities/host-api-asset-loader/example.ani +48 -0
  151. package/modules/assets/capabilities/host-api-asset-loader/example.animl +12 -0
  152. package/modules/assets/capabilities/host-api-asset-metadata/example.ani +53 -0
  153. package/modules/assets/capabilities/host-api-asset-metadata/example.animl +12 -0
  154. package/modules/assets/manifest.source +79 -0
  155. package/modules/bind/AUTHORING.md +49 -0
  156. package/modules/bind/capabilities/data-bind-listener-actions/example.ani +30 -0
  157. package/modules/bind/capabilities/data-bind-listener-actions/example.animl +5 -0
  158. package/modules/bind/core/expression.source +224 -0
  159. package/modules/bind/examples/filtering-list.ani +122 -0
  160. package/modules/bind/examples/filtering-list.animl +29 -0
  161. package/modules/bind/manifest.source +58 -0
  162. package/modules/canvas/capabilities/host-api-device-pixel-ratio/example.ani +16 -0
  163. package/modules/canvas/capabilities/host-api-device-pixel-ratio/example.animl +3 -0
  164. package/modules/canvas/capabilities/host-api-resize-backing-surface/example.ani +16 -0
  165. package/modules/canvas/capabilities/host-api-resize-backing-surface/example.animl +3 -0
  166. package/modules/canvas/capabilities/platforms-web-canvas/example.ani +16 -0
  167. package/modules/canvas/capabilities/platforms-web-canvas/example.animl +3 -0
  168. package/modules/canvas/manifest.source +16 -0
  169. package/modules/colormix/examples/switch.ani +51 -0
  170. package/modules/colormix/examples/switch.animl +13 -0
  171. package/modules/colormix/manifest.source +39 -0
  172. package/modules/componentpaint/capabilities/drawing-paint-paint-artboard/example.ani +72 -0
  173. package/modules/componentpaint/capabilities/drawing-paint-paint-artboard/example.animl +13 -0
  174. package/modules/componentpaint/examples/live.ani +72 -0
  175. package/modules/componentpaint/examples/live.animl +13 -0
  176. package/modules/componentpaint/manifest.source +29 -0
  177. package/modules/components/manifest.source +61 -0
  178. package/modules/composite/manifest.source +49 -0
  179. package/modules/contour/capabilities/drawing-paint-asymmetric-vertex/example.ani +32 -0
  180. package/modules/contour/capabilities/drawing-paint-asymmetric-vertex/example.animl +5 -0
  181. package/modules/contour/capabilities/drawing-paint-detached-vertex/example.ani +32 -0
  182. package/modules/contour/capabilities/drawing-paint-detached-vertex/example.animl +5 -0
  183. package/modules/contour/capabilities/drawing-paint-effect-order/example.ani +28 -0
  184. package/modules/contour/capabilities/drawing-paint-effect-order/example.animl +3 -0
  185. package/modules/contour/capabilities/drawing-paint-fill-rule-clockwise/example.ani +17 -0
  186. package/modules/contour/capabilities/drawing-paint-fill-rule-clockwise/example.animl +3 -0
  187. package/modules/contour/capabilities/drawing-paint-geometry-origin/example.ani +35 -0
  188. package/modules/contour/capabilities/drawing-paint-geometry-origin/example.animl +5 -0
  189. package/modules/contour/capabilities/drawing-paint-mirrored-vertex/example.ani +31 -0
  190. package/modules/contour/capabilities/drawing-paint-mirrored-vertex/example.animl +5 -0
  191. package/modules/contour/capabilities/drawing-paint-rounded-vertex/example.ani +31 -0
  192. package/modules/contour/capabilities/drawing-paint-rounded-vertex/example.animl +5 -0
  193. package/modules/contour/capabilities/drawing-paint-shared-effects/example.ani +26 -0
  194. package/modules/contour/capabilities/drawing-paint-shared-effects/example.animl +3 -0
  195. package/modules/contour/capabilities/drawing-paint-straight-vertex/example.ani +30 -0
  196. package/modules/contour/capabilities/drawing-paint-straight-vertex/example.animl +5 -0
  197. package/modules/contour/capabilities/drawing-paint-trim-sequential/example.ani +22 -0
  198. package/modules/contour/capabilities/drawing-paint-trim-sequential/example.animl +3 -0
  199. package/modules/contour/capabilities/drawing-paint-trim-synchronized/example.ani +22 -0
  200. package/modules/contour/capabilities/drawing-paint-trim-synchronized/example.animl +3 -0
  201. package/modules/contour/manifest.source +47 -0
  202. package/modules/convert/SPEC.md +140 -0
  203. package/modules/convert/capabilities/data-converter-color-formatting/example.ani +44 -0
  204. package/modules/convert/capabilities/data-converter-color-formatting/example.animl +8 -0
  205. package/modules/convert/capabilities/data-converter-trigger/example.ani +78 -0
  206. package/modules/convert/capabilities/data-converter-trigger/example.animl +22 -0
  207. package/modules/convert/core/math.source +126 -0
  208. package/modules/convert/examples/score.ani +60 -0
  209. package/modules/convert/examples/score.animl +12 -0
  210. package/modules/convert/examples/travelling-indicator.ani +41 -0
  211. package/modules/convert/examples/travelling-indicator.animl +8 -0
  212. package/modules/convert/manifest.source +53 -0
  213. package/modules/corners/examples/switch.ani +20 -0
  214. package/modules/corners/examples/switch.animl +3 -0
  215. package/modules/corners/manifest.source +25 -0
  216. package/modules/data/SPEC.md +216 -0
  217. package/modules/data/capabilities/data-bind-conditions/example.ani +52 -0
  218. package/modules/data/capabilities/data-bind-conditions/example.animl +17 -0
  219. package/modules/data/capabilities/data-bind-converter-options/example.ani +16 -0
  220. package/modules/data/capabilities/data-bind-converter-options/example.animl +4 -0
  221. package/modules/data/capabilities/data-bind-instance-values/example.ani +66 -0
  222. package/modules/data/capabilities/data-bind-instance-values/example.animl +17 -0
  223. package/modules/data/capabilities/data-bind-keyframes/example.ani +16 -0
  224. package/modules/data/capabilities/data-bind-keyframes/example.animl +4 -0
  225. package/modules/data/capabilities/data-bind-script-inputs/example.ani +16 -0
  226. package/modules/data/capabilities/data-bind-script-inputs/example.animl +4 -0
  227. package/modules/data/capabilities/data-bind-text/example.ani +16 -0
  228. package/modules/data/capabilities/data-bind-text/example.animl +4 -0
  229. package/modules/data/capabilities/data-binding-absolute/example.ani +43 -0
  230. package/modules/data/capabilities/data-binding-absolute/example.animl +13 -0
  231. package/modules/data/capabilities/data-binding-once/example.ani +58 -0
  232. package/modules/data/capabilities/data-binding-once/example.animl +20 -0
  233. package/modules/data/capabilities/data-binding-relative/example.ani +16 -0
  234. package/modules/data/capabilities/data-binding-relative/example.animl +4 -0
  235. package/modules/data/capabilities/data-binding-to-source/example.ani +58 -0
  236. package/modules/data/capabilities/data-binding-to-source/example.animl +20 -0
  237. package/modules/data/capabilities/data-binding-two-way-prefer-source/example.ani +59 -0
  238. package/modules/data/capabilities/data-binding-two-way-prefer-source/example.animl +20 -0
  239. package/modules/data/capabilities/data-binding-two-way-prefer-target/example.ani +59 -0
  240. package/modules/data/capabilities/data-binding-two-way-prefer-target/example.animl +20 -0
  241. package/modules/data/capabilities/data-component-public-data/example.ani +66 -0
  242. package/modules/data/capabilities/data-component-public-data/example.animl +17 -0
  243. package/modules/data/capabilities/data-custom-property-boolean/example.ani +35 -0
  244. package/modules/data/capabilities/data-custom-property-boolean/example.animl +9 -0
  245. package/modules/data/capabilities/data-custom-property-color/example.ani +38 -0
  246. package/modules/data/capabilities/data-custom-property-color/example.animl +9 -0
  247. package/modules/data/capabilities/data-custom-property-enum/example.ani +40 -0
  248. package/modules/data/capabilities/data-custom-property-enum/example.animl +9 -0
  249. package/modules/data/capabilities/data-custom-property-number/example.ani +35 -0
  250. package/modules/data/capabilities/data-custom-property-number/example.animl +9 -0
  251. package/modules/data/capabilities/data-custom-property-string/example.ani +35 -0
  252. package/modules/data/capabilities/data-custom-property-string/example.animl +9 -0
  253. package/modules/data/capabilities/data-custom-property-trigger/example.ani +52 -0
  254. package/modules/data/capabilities/data-custom-property-trigger/example.animl +15 -0
  255. package/modules/data/capabilities/data-default-instance/example.ani +43 -0
  256. package/modules/data/capabilities/data-default-instance/example.animl +13 -0
  257. package/modules/data/capabilities/data-editor-preview-instance/example.ani +16 -0
  258. package/modules/data/capabilities/data-editor-preview-instance/example.animl +4 -0
  259. package/modules/data/capabilities/data-enum-members/example.ani +41 -0
  260. package/modules/data/capabilities/data-enum-members/example.animl +8 -0
  261. package/modules/data/capabilities/data-global-model/example.ani +64 -0
  262. package/modules/data/capabilities/data-global-model/example.animl +17 -0
  263. package/modules/data/capabilities/data-instance-export/example.ani +41 -0
  264. package/modules/data/capabilities/data-instance-export/example.animl +8 -0
  265. package/modules/data/capabilities/data-list-items/example.ani +55 -0
  266. package/modules/data/capabilities/data-list-items/example.animl +16 -0
  267. package/modules/data/capabilities/data-model-definition/example.ani +43 -0
  268. package/modules/data/capabilities/data-model-definition/example.animl +13 -0
  269. package/modules/data/capabilities/data-named-instances/example.ani +43 -0
  270. package/modules/data/capabilities/data-named-instances/example.animl +13 -0
  271. package/modules/data/capabilities/data-operation-operand-view-model/example.ani +32 -0
  272. package/modules/data/capabilities/data-operation-operand-view-model/example.animl +9 -0
  273. package/modules/data/capabilities/data-property-artboard/example.ani +16 -0
  274. package/modules/data/capabilities/data-property-artboard/example.animl +4 -0
  275. package/modules/data/capabilities/data-property-asset-blob/example.ani +40 -0
  276. package/modules/data/capabilities/data-property-asset-blob/example.animl +10 -0
  277. package/modules/data/capabilities/data-property-asset-font/example.ani +40 -0
  278. package/modules/data/capabilities/data-property-asset-font/example.animl +10 -0
  279. package/modules/data/capabilities/data-property-asset-image/example.ani +40 -0
  280. package/modules/data/capabilities/data-property-asset-image/example.animl +12 -0
  281. package/modules/data/capabilities/data-property-boolean/example.ani +28 -0
  282. package/modules/data/capabilities/data-property-boolean/example.animl +7 -0
  283. package/modules/data/capabilities/data-property-color/example.ani +29 -0
  284. package/modules/data/capabilities/data-property-color/example.animl +7 -0
  285. package/modules/data/capabilities/data-property-enum-custom/example.ani +29 -0
  286. package/modules/data/capabilities/data-property-enum-custom/example.animl +7 -0
  287. package/modules/data/capabilities/data-property-enum-system/example.ani +29 -0
  288. package/modules/data/capabilities/data-property-enum-system/example.animl +7 -0
  289. package/modules/data/capabilities/data-property-list/example.ani +55 -0
  290. package/modules/data/capabilities/data-property-list/example.animl +16 -0
  291. package/modules/data/capabilities/data-property-number/example.ani +29 -0
  292. package/modules/data/capabilities/data-property-number/example.animl +7 -0
  293. package/modules/data/capabilities/data-property-string/example.ani +29 -0
  294. package/modules/data/capabilities/data-property-string/example.animl +7 -0
  295. package/modules/data/capabilities/data-property-symbol-list-index/example.ani +16 -0
  296. package/modules/data/capabilities/data-property-symbol-list-index/example.animl +4 -0
  297. package/modules/data/capabilities/data-property-text-style/example.ani +16 -0
  298. package/modules/data/capabilities/data-property-text-style/example.animl +4 -0
  299. package/modules/data/capabilities/data-property-trigger/example.ani +51 -0
  300. package/modules/data/capabilities/data-property-trigger/example.animl +17 -0
  301. package/modules/data/capabilities/data-property-view-model/example.ani +55 -0
  302. package/modules/data/capabilities/data-property-view-model/example.animl +16 -0
  303. package/modules/data/capabilities/data-script-model-api/example.ani +16 -0
  304. package/modules/data/capabilities/data-script-model-api/example.animl +4 -0
  305. package/modules/data/capabilities/data-scripted-converter/example.ani +16 -0
  306. package/modules/data/capabilities/data-scripted-converter/example.animl +4 -0
  307. package/modules/data/capabilities/data-state-action-trigger/example.ani +51 -0
  308. package/modules/data/capabilities/data-state-action-trigger/example.animl +17 -0
  309. package/modules/data/capabilities/data-system-enum-horizontal-text-align/example.ani +29 -0
  310. package/modules/data/capabilities/data-system-enum-horizontal-text-align/example.animl +7 -0
  311. package/modules/data/capabilities/data-system-enum-layout-alignment/example.ani +29 -0
  312. package/modules/data/capabilities/data-system-enum-layout-alignment/example.animl +7 -0
  313. package/modules/data/capabilities/data-system-enum-layout-direction/example.ani +29 -0
  314. package/modules/data/capabilities/data-system-enum-layout-direction/example.animl +7 -0
  315. package/modules/data/capabilities/data-system-enum-layout-display/example.ani +29 -0
  316. package/modules/data/capabilities/data-system-enum-layout-display/example.animl +7 -0
  317. package/modules/data/capabilities/data-system-enum-layout-flex-direction/example.ani +29 -0
  318. package/modules/data/capabilities/data-system-enum-layout-flex-direction/example.animl +7 -0
  319. package/modules/data/capabilities/data-system-enum-layout-position/example.ani +29 -0
  320. package/modules/data/capabilities/data-system-enum-layout-position/example.animl +7 -0
  321. package/modules/data/capabilities/data-system-enum-layout-position-units/example.ani +29 -0
  322. package/modules/data/capabilities/data-system-enum-layout-position-units/example.animl +7 -0
  323. package/modules/data/capabilities/data-system-enum-layout-scale-type/example.ani +29 -0
  324. package/modules/data/capabilities/data-system-enum-layout-scale-type/example.animl +7 -0
  325. package/modules/data/capabilities/data-system-enum-layout-wrap/example.ani +29 -0
  326. package/modules/data/capabilities/data-system-enum-layout-wrap/example.animl +7 -0
  327. package/modules/data/capabilities/data-system-enum-scroll-direction/example.ani +29 -0
  328. package/modules/data/capabilities/data-system-enum-scroll-direction/example.animl +7 -0
  329. package/modules/data/capabilities/data-system-enum-semantic-check-state/example.ani +29 -0
  330. package/modules/data/capabilities/data-system-enum-semantic-check-state/example.animl +7 -0
  331. package/modules/data/capabilities/data-system-enum-text-box/example.ani +29 -0
  332. package/modules/data/capabilities/data-system-enum-text-box/example.animl +7 -0
  333. package/modules/data/capabilities/data-system-enum-text-overflow/example.ani +29 -0
  334. package/modules/data/capabilities/data-system-enum-text-overflow/example.animl +7 -0
  335. package/modules/data/capabilities/data-system-enum-text-trim-bottom/example.ani +29 -0
  336. package/modules/data/capabilities/data-system-enum-text-trim-bottom/example.animl +7 -0
  337. package/modules/data/capabilities/data-system-enum-text-trim-top/example.ani +29 -0
  338. package/modules/data/capabilities/data-system-enum-text-trim-top/example.animl +7 -0
  339. package/modules/data/capabilities/data-system-enum-vertical-text-align/example.ani +29 -0
  340. package/modules/data/capabilities/data-system-enum-vertical-text-align/example.animl +7 -0
  341. package/modules/data/capabilities/data-system-enum-word-wrap/example.ani +29 -0
  342. package/modules/data/capabilities/data-system-enum-word-wrap/example.animl +7 -0
  343. package/modules/data/capabilities/drawing-paint-gradient-channel-binding/example.ani +46 -0
  344. package/modules/data/capabilities/drawing-paint-gradient-channel-binding/example.animl +14 -0
  345. package/modules/data/capabilities/input-data-listener/example.ani +41 -0
  346. package/modules/data/capabilities/input-data-listener/example.animl +10 -0
  347. package/modules/data/capabilities/input-write-data-constant/example.ani +41 -0
  348. package/modules/data/capabilities/input-write-data-constant/example.animl +10 -0
  349. package/modules/data/capabilities/input-write-data-copy/example.ani +39 -0
  350. package/modules/data/capabilities/input-write-data-copy/example.animl +10 -0
  351. package/modules/data/capabilities/input-write-focused/example.ani +39 -0
  352. package/modules/data/capabilities/input-write-focused/example.animl +11 -0
  353. package/modules/data/capabilities/input-write-gamepad-axis/example.ani +38 -0
  354. package/modules/data/capabilities/input-write-gamepad-axis/example.animl +9 -0
  355. package/modules/data/capabilities/input-write-gamepad-button-pressed/example.ani +38 -0
  356. package/modules/data/capabilities/input-write-gamepad-button-pressed/example.animl +9 -0
  357. package/modules/data/capabilities/input-write-gamepad-button-value/example.ani +38 -0
  358. package/modules/data/capabilities/input-write-gamepad-button-value/example.animl +9 -0
  359. package/modules/data/capabilities/input-write-gamepad-changed-value/example.ani +38 -0
  360. package/modules/data/capabilities/input-write-gamepad-changed-value/example.animl +9 -0
  361. package/modules/data/examples/data-extras.ani +109 -0
  362. package/modules/data/examples/data-extras.animl +28 -0
  363. package/modules/data/examples/scoreboard.ani +74 -0
  364. package/modules/data/examples/scoreboard.animl +18 -0
  365. package/modules/data/manifest.source +111 -0
  366. package/modules/data-artboard/SPEC.md +94 -0
  367. package/modules/data-artboard/capabilities/components-host-artboard-reference/example.ani +16 -0
  368. package/modules/data-artboard/capabilities/components-host-artboard-reference/example.animl +26 -0
  369. package/modules/data-artboard/capabilities/data-host-artboard/example.ani +16 -0
  370. package/modules/data-artboard/capabilities/data-host-artboard/example.animl +18 -0
  371. package/modules/data-artboard/capabilities/host-api-bindable-artboards/example.ani +16 -0
  372. package/modules/data-artboard/capabilities/host-api-bindable-artboards/example.animl +34 -0
  373. package/modules/data-artboard/capabilities/host-api-data-artboard/example.ani +16 -0
  374. package/modules/data-artboard/capabilities/host-api-data-artboard/example.animl +18 -0
  375. package/modules/data-artboard/manifest.source +41 -0
  376. package/modules/data-host/SPEC.md +50 -0
  377. package/modules/data-host/examples/nested.ani +82 -0
  378. package/modules/data-host/examples/nested.animl +21 -0
  379. package/modules/data-host/manifest.source +26 -0
  380. package/modules/derive/SPEC.md +66 -0
  381. package/modules/derive/examples/scoreboard.ani +121 -0
  382. package/modules/derive/examples/scoreboard.animl +27 -0
  383. package/modules/derive/manifest.source +24 -0
  384. package/modules/devtools/SPEC.md +25 -0
  385. package/modules/devtools/capabilities/host-api-deprecation-policy/example.ani +16 -0
  386. package/modules/devtools/capabilities/host-api-deprecation-policy/example.animl +3 -0
  387. package/modules/devtools/capabilities/host-api-fps-counter/example.ani +16 -0
  388. package/modules/devtools/capabilities/host-api-fps-counter/example.animl +9 -0
  389. package/modules/devtools/capabilities/host-api-performance-marks/example.ani +16 -0
  390. package/modules/devtools/capabilities/host-api-performance-marks/example.animl +3 -0
  391. package/modules/devtools/capabilities/host-api-stop/example.ani +16 -0
  392. package/modules/devtools/capabilities/host-api-stop/example.animl +3 -0
  393. package/modules/devtools/manifest.source +13 -0
  394. package/modules/events/examples/events.ani +75 -0
  395. package/modules/events/examples/events.animl +23 -0
  396. package/modules/events/examples/share-evidence/README.md +48 -0
  397. package/modules/events/examples/share-evidence/clicks.jsonl +51 -0
  398. package/modules/events/examples/share-evidence/clicks.script +102 -0
  399. package/modules/events/examples/share-evidence/interrupt.jsonl +3 -0
  400. package/modules/events/examples/share-evidence/interrupt.script +7 -0
  401. package/modules/events/examples/share-evidence/perf.txt +4 -0
  402. package/modules/events/examples/share-evidence/pulse.jsonl +10 -0
  403. package/modules/events/examples/share-evidence/pulse.script +20 -0
  404. package/modules/events/examples/share-evidence/rest-diff.txt +1 -0
  405. package/modules/events/examples/share-evidence/size.txt +18 -0
  406. package/modules/events/examples/share-evidence/verify.py +48 -0
  407. package/modules/events/examples/share-tone.wav +0 -0
  408. package/modules/events/examples/share.ani +186 -0
  409. package/modules/events/examples/share.animl +40 -0
  410. package/modules/events/manifest.source +74 -0
  411. package/modules/focus/capabilities/input-focus-clear/example.ani +116 -0
  412. package/modules/focus/capabilities/input-focus-clear/example.animl +28 -0
  413. package/modules/focus/capabilities/input-focus-down/example.ani +116 -0
  414. package/modules/focus/capabilities/input-focus-down/example.animl +28 -0
  415. package/modules/focus/capabilities/input-focus-edge-closed-loop/example.ani +116 -0
  416. package/modules/focus/capabilities/input-focus-edge-closed-loop/example.animl +28 -0
  417. package/modules/focus/capabilities/input-focus-edge-parent-scope/example.ani +116 -0
  418. package/modules/focus/capabilities/input-focus-edge-parent-scope/example.animl +28 -0
  419. package/modules/focus/capabilities/input-focus-edge-stop/example.ani +116 -0
  420. package/modules/focus/capabilities/input-focus-edge-stop/example.animl +28 -0
  421. package/modules/focus/capabilities/input-focus-enabled/example.ani +116 -0
  422. package/modules/focus/capabilities/input-focus-enabled/example.animl +28 -0
  423. package/modules/focus/capabilities/input-focus-left/example.ani +116 -0
  424. package/modules/focus/capabilities/input-focus-left/example.animl +28 -0
  425. package/modules/focus/capabilities/input-focus-next/example.ani +116 -0
  426. package/modules/focus/capabilities/input-focus-next/example.animl +28 -0
  427. package/modules/focus/capabilities/input-focus-pointer/example.ani +116 -0
  428. package/modules/focus/capabilities/input-focus-pointer/example.animl +28 -0
  429. package/modules/focus/capabilities/input-focus-previous/example.ani +116 -0
  430. package/modules/focus/capabilities/input-focus-previous/example.animl +28 -0
  431. package/modules/focus/capabilities/input-focus-right/example.ani +116 -0
  432. package/modules/focus/capabilities/input-focus-right/example.animl +28 -0
  433. package/modules/focus/capabilities/input-focus-target/example.ani +116 -0
  434. package/modules/focus/capabilities/input-focus-target/example.animl +28 -0
  435. package/modules/focus/capabilities/input-focus-traverse/example.ani +116 -0
  436. package/modules/focus/capabilities/input-focus-traverse/example.animl +28 -0
  437. package/modules/focus/capabilities/input-focus-up/example.ani +116 -0
  438. package/modules/focus/capabilities/input-focus-up/example.animl +28 -0
  439. package/modules/focus/capabilities/input-listen-blur/example.ani +116 -0
  440. package/modules/focus/capabilities/input-listen-blur/example.animl +28 -0
  441. package/modules/focus/capabilities/input-listen-focus/example.ani +116 -0
  442. package/modules/focus/capabilities/input-listen-focus/example.animl +28 -0
  443. package/modules/focus/examples/README.md +10 -0
  444. package/modules/focus/examples/traversal.ani +70 -0
  445. package/modules/focus/examples/traversal.animl +16 -0
  446. package/modules/focus/manifest.source +48 -0
  447. package/modules/fonts/SPEC.md +92 -0
  448. package/modules/fonts/capabilities/assets-font/example.ani +23 -0
  449. package/modules/fonts/capabilities/assets-font/example.animl +5 -0
  450. package/modules/fonts/capabilities/assets-host-decode-font/example.ani +23 -0
  451. package/modules/fonts/capabilities/assets-host-decode-font/example.animl +5 -0
  452. package/modules/fonts/capabilities/assets-replacement-scope-font/example.ani +23 -0
  453. package/modules/fonts/capabilities/assets-replacement-scope-font/example.animl +5 -0
  454. package/modules/fonts/capabilities/data-host-font/example.ani +23 -0
  455. package/modules/fonts/capabilities/data-host-font/example.animl +5 -0
  456. package/modules/fonts/capabilities/host-api-data-font/example.ani +23 -0
  457. package/modules/fonts/capabilities/host-api-data-font/example.animl +5 -0
  458. package/modules/fonts/capabilities/host-api-font-fallback/example.ani +23 -0
  459. package/modules/fonts/capabilities/host-api-font-fallback/example.animl +5 -0
  460. package/modules/fonts/capabilities/text-font-assets/example.ani +23 -0
  461. package/modules/fonts/capabilities/text-font-assets/example.animl +5 -0
  462. package/modules/fonts/capabilities/text-font-decoding/example.ani +43 -0
  463. package/modules/fonts/capabilities/text-font-decoding/example.animl +9 -0
  464. package/modules/fonts/capabilities/text-font-fallback/example.ani +23 -0
  465. package/modules/fonts/capabilities/text-font-fallback/example.animl +5 -0
  466. package/modules/fonts/capabilities/text-font-metrics/example.ani +40 -0
  467. package/modules/fonts/capabilities/text-font-metrics/example.animl +9 -0
  468. package/modules/fonts/capabilities/text-opentype-features/example.ani +23 -0
  469. package/modules/fonts/capabilities/text-opentype-features/example.animl +7 -0
  470. package/modules/fonts/capabilities/text-variable-axes/example.ani +23 -0
  471. package/modules/fonts/capabilities/text-variable-axes/example.animl +9 -0
  472. package/modules/fonts/manifest.source +57 -0
  473. package/modules/host/AUTHORING.md +33 -0
  474. package/modules/host/SPEC.md +76 -0
  475. package/modules/host/examples/page.html +23 -0
  476. package/modules/host/examples/score.ani +48 -0
  477. package/modules/host/examples/score.animl +10 -0
  478. package/modules/host/manifest.source +19 -0
  479. package/modules/host-edit/AUTHORING.md +66 -0
  480. package/modules/host-edit/SPEC.md +96 -0
  481. package/modules/host-edit/examples/board.ani +72 -0
  482. package/modules/host-edit/examples/board.animl +17 -0
  483. package/modules/host-edit/examples/page.html +34 -0
  484. package/modules/host-edit/manifest.source +21 -0
  485. package/modules/host-fit/capabilities/host-api-fit-layout/example.ani +55 -0
  486. package/modules/host-fit/capabilities/host-api-fit-layout/example.animl +11 -0
  487. package/modules/host-fit/examples/tile.ani +19 -0
  488. package/modules/host-fit/examples/tile.animl +3 -0
  489. package/modules/host-fit/manifest.source +22 -0
  490. package/modules/host-values/SPEC.md +9 -0
  491. package/modules/host-values/manifest.source +22 -0
  492. package/modules/ik/capabilities/rigging-ik/example.ani +16 -0
  493. package/modules/ik/capabilities/rigging-ik/example.animl +11 -0
  494. package/modules/ik/capabilities/rigging-ik-bend/example.ani +16 -0
  495. package/modules/ik/capabilities/rigging-ik-bend/example.animl +11 -0
  496. package/modules/ik/examples/reach.ani +100 -0
  497. package/modules/ik/examples/reach.animl +18 -0
  498. package/modules/ik/manifest.source +30 -0
  499. package/modules/input/SPEC.md +397 -0
  500. package/modules/input/capabilities/host-api-coordinate-mapping/example.ani +32 -0
  501. package/modules/input/capabilities/host-api-coordinate-mapping/example.animl +7 -0
  502. package/modules/input/capabilities/host-api-dom-listener-control/example.ani +32 -0
  503. package/modules/input/capabilities/host-api-dom-listener-control/example.animl +7 -0
  504. package/modules/input/capabilities/host-api-gamepad/example.ani +34 -0
  505. package/modules/input/capabilities/host-api-gamepad/example.animl +7 -0
  506. package/modules/input/capabilities/host-api-low-level-pointer/example.ani +32 -0
  507. package/modules/input/capabilities/host-api-low-level-pointer/example.animl +7 -0
  508. package/modules/input/capabilities/host-api-low-level-scroll/example.ani +32 -0
  509. package/modules/input/capabilities/host-api-low-level-scroll/example.animl +7 -0
  510. package/modules/input/capabilities/host-api-manual-gamepad-batch/example.ani +34 -0
  511. package/modules/input/capabilities/host-api-manual-gamepad-batch/example.animl +7 -0
  512. package/modules/input/capabilities/host-api-multitouch/example.ani +32 -0
  513. package/modules/input/capabilities/host-api-multitouch/example.animl +7 -0
  514. package/modules/input/capabilities/host-api-pointer-exit/example.ani +31 -0
  515. package/modules/input/capabilities/host-api-pointer-exit/example.animl +7 -0
  516. package/modules/input/capabilities/host-api-scroll-hit-policy/example.ani +32 -0
  517. package/modules/input/capabilities/host-api-scroll-hit-policy/example.animl +7 -0
  518. package/modules/input/capabilities/host-api-scroll-latching/example.ani +32 -0
  519. package/modules/input/capabilities/host-api-scroll-latching/example.animl +7 -0
  520. package/modules/input/capabilities/input-align-preserve/example.ani +43 -0
  521. package/modules/input/capabilities/input-align-preserve/example.animl +9 -0
  522. package/modules/input/capabilities/input-align-snap/example.ani +43 -0
  523. package/modules/input/capabilities/input-align-snap/example.animl +9 -0
  524. package/modules/input/capabilities/input-bounded-hit-tests/example.ani +32 -0
  525. package/modules/input/capabilities/input-bounded-hit-tests/example.animl +7 -0
  526. package/modules/input/capabilities/input-button-middle/example.ani +33 -0
  527. package/modules/input/capabilities/input-button-middle/example.animl +7 -0
  528. package/modules/input/capabilities/input-button-secondary/example.ani +33 -0
  529. package/modules/input/capabilities/input-button-secondary/example.animl +7 -0
  530. package/modules/input/capabilities/input-capture-phase/example.ani +60 -0
  531. package/modules/input/capabilities/input-capture-phase/example.animl +11 -0
  532. package/modules/input/capabilities/input-cursor-arrow/example.ani +33 -0
  533. package/modules/input/capabilities/input-cursor-arrow/example.animl +7 -0
  534. package/modules/input/capabilities/input-cursor-hidden/example.ani +33 -0
  535. package/modules/input/capabilities/input-cursor-hidden/example.animl +7 -0
  536. package/modules/input/capabilities/input-cursor-intent/example.ani +33 -0
  537. package/modules/input/capabilities/input-cursor-intent/example.animl +7 -0
  538. package/modules/input/capabilities/input-cursor-pointer/example.ani +33 -0
  539. package/modules/input/capabilities/input-cursor-pointer/example.animl +7 -0
  540. package/modules/input/capabilities/input-cursor-resize-horizontal/example.ani +33 -0
  541. package/modules/input/capabilities/input-cursor-resize-horizontal/example.animl +7 -0
  542. package/modules/input/capabilities/input-cursor-resize-vertical/example.ani +33 -0
  543. package/modules/input/capabilities/input-cursor-resize-vertical/example.animl +7 -0
  544. package/modules/input/capabilities/input-cursor-text/example.ani +33 -0
  545. package/modules/input/capabilities/input-cursor-text/example.animl +7 -0
  546. package/modules/input/capabilities/input-disable-listeners/example.ani +32 -0
  547. package/modules/input/capabilities/input-disable-listeners/example.animl +7 -0
  548. package/modules/input/capabilities/input-gamepad-axis/example.ani +34 -0
  549. package/modules/input/capabilities/input-gamepad-axis/example.animl +7 -0
  550. package/modules/input/capabilities/input-gamepad-button/example.ani +32 -0
  551. package/modules/input/capabilities/input-gamepad-button/example.animl +7 -0
  552. package/modules/input/capabilities/input-gamepad-button-phases/example.ani +33 -0
  553. package/modules/input/capabilities/input-gamepad-button-phases/example.animl +7 -0
  554. package/modules/input/capabilities/input-gamepad-connected/example.ani +31 -0
  555. package/modules/input/capabilities/input-gamepad-connected/example.animl +7 -0
  556. package/modules/input/capabilities/input-gamepad-disconnected/example.ani +31 -0
  557. package/modules/input/capabilities/input-gamepad-disconnected/example.animl +7 -0
  558. package/modules/input/capabilities/input-gamepad-host/example.ani +34 -0
  559. package/modules/input/capabilities/input-gamepad-host/example.animl +7 -0
  560. package/modules/input/capabilities/input-gamepad-index-mapping/example.ani +34 -0
  561. package/modules/input/capabilities/input-gamepad-index-mapping/example.animl +7 -0
  562. package/modules/input/capabilities/input-hit-occlusion-query/example.ani +42 -0
  563. package/modules/input/capabilities/input-hit-occlusion-query/example.animl +8 -0
  564. package/modules/input/capabilities/input-hit-parent-chain/example.ani +39 -0
  565. package/modules/input/capabilities/input-hit-parent-chain/example.animl +9 -0
  566. package/modules/input/capabilities/input-hit-shape-geometry/example.ani +32 -0
  567. package/modules/input/capabilities/input-hit-shape-geometry/example.animl +7 -0
  568. package/modules/input/capabilities/input-hit-test-host/example.ani +32 -0
  569. package/modules/input/capabilities/input-hit-test-host/example.animl +7 -0
  570. package/modules/input/capabilities/input-key-down/example.ani +32 -0
  571. package/modules/input/capabilities/input-key-down/example.animl +7 -0
  572. package/modules/input/capabilities/input-key-filter/example.ani +32 -0
  573. package/modules/input/capabilities/input-key-filter/example.animl +7 -0
  574. package/modules/input/capabilities/input-key-modifiers/example.ani +33 -0
  575. package/modules/input/capabilities/input-key-modifiers/example.animl +7 -0
  576. package/modules/input/capabilities/input-key-repeat/example.ani +32 -0
  577. package/modules/input/capabilities/input-key-repeat/example.animl +7 -0
  578. package/modules/input/capabilities/input-key-up/example.ani +32 -0
  579. package/modules/input/capabilities/input-key-up/example.animl +7 -0
  580. package/modules/input/capabilities/input-keyboard-bubbling/example.ani +45 -0
  581. package/modules/input/capabilities/input-keyboard-bubbling/example.animl +10 -0
  582. package/modules/input/capabilities/input-multi-touch/example.ani +32 -0
  583. package/modules/input/capabilities/input-multi-touch/example.animl +7 -0
  584. package/modules/input/capabilities/input-multi-trigger-listener/example.ani +32 -0
  585. package/modules/input/capabilities/input-multi-trigger-listener/example.animl +7 -0
  586. package/modules/input/capabilities/input-opaque-targets/example.ani +42 -0
  587. package/modules/input/capabilities/input-opaque-targets/example.animl +8 -0
  588. package/modules/input/capabilities/input-pointer-cancel/example.ani +31 -0
  589. package/modules/input/capabilities/input-pointer-cancel/example.animl +7 -0
  590. package/modules/input/capabilities/input-pointer-drag/example.ani +58 -0
  591. package/modules/input/capabilities/input-pointer-drag/example.animl +17 -0
  592. package/modules/input/capabilities/input-pointer-drag-end/example.ani +58 -0
  593. package/modules/input/capabilities/input-pointer-drag-end/example.animl +17 -0
  594. package/modules/input/capabilities/input-pointer-drag-start/example.ani +58 -0
  595. package/modules/input/capabilities/input-pointer-drag-start/example.animl +17 -0
  596. package/modules/input/capabilities/input-pointer-enable/example.ani +32 -0
  597. package/modules/input/capabilities/input-pointer-enable/example.animl +7 -0
  598. package/modules/input/capabilities/input-touch-page-scroll/example.ani +32 -0
  599. package/modules/input/capabilities/input-touch-page-scroll/example.animl +7 -0
  600. package/modules/input/capabilities/input-trackpad-scroll/example.ani +32 -0
  601. package/modules/input/capabilities/input-trackpad-scroll/example.animl +7 -0
  602. package/modules/input/capabilities/input-wheel-scroll/example.ani +32 -0
  603. package/modules/input/capabilities/input-wheel-scroll/example.animl +7 -0
  604. package/modules/input/capabilities/input-write-key-pressed/example.ani +39 -0
  605. package/modules/input/capabilities/input-write-key-pressed/example.animl +7 -0
  606. package/modules/input/capabilities/input-write-pointer-delta-x/example.ani +39 -0
  607. package/modules/input/capabilities/input-write-pointer-delta-x/example.animl +7 -0
  608. package/modules/input/capabilities/input-write-pointer-delta-y/example.ani +39 -0
  609. package/modules/input/capabilities/input-write-pointer-delta-y/example.animl +7 -0
  610. package/modules/input/capabilities/input-write-pointer-x/example.ani +39 -0
  611. package/modules/input/capabilities/input-write-pointer-x/example.animl +7 -0
  612. package/modules/input/capabilities/input-write-pointer-y/example.ani +39 -0
  613. package/modules/input/capabilities/input-write-pointer-y/example.animl +7 -0
  614. package/modules/input/capabilities/transforms-collapse/example.ani +39 -0
  615. package/modules/input/capabilities/transforms-collapse/example.animl +9 -0
  616. package/modules/input/capabilities/transforms-solo/example.ani +48 -0
  617. package/modules/input/capabilities/transforms-solo/example.animl +10 -0
  618. package/modules/input/core/commands.source +64 -0
  619. package/modules/input/core/types.source +97 -0
  620. package/modules/input/examples/README.md +9 -0
  621. package/modules/input/examples/drag-slider.ani +50 -0
  622. package/modules/input/examples/drag-slider.animl +11 -0
  623. package/modules/input/manifest.source +98 -0
  624. package/modules/layout/SPEC.md +210 -0
  625. package/modules/layout/capabilities/data-bind-layout/example.ani +60 -0
  626. package/modules/layout/capabilities/data-bind-layout/example.animl +10 -0
  627. package/modules/layout/capabilities/layout-alignment/example.ani +44 -0
  628. package/modules/layout/capabilities/layout-alignment/example.animl +6 -0
  629. package/modules/layout/capabilities/layout-animated-reflow/example.ani +62 -0
  630. package/modules/layout/capabilities/layout-animated-reflow/example.animl +12 -0
  631. package/modules/layout/capabilities/layout-containers/example.ani +62 -0
  632. package/modules/layout/capabilities/layout-containers/example.animl +9 -0
  633. package/modules/layout/capabilities/layout-fill-sizing/example.ani +45 -0
  634. package/modules/layout/capabilities/layout-fill-sizing/example.animl +6 -0
  635. package/modules/layout/capabilities/layout-fixed-sizing/example.ani +46 -0
  636. package/modules/layout/capabilities/layout-fixed-sizing/example.animl +6 -0
  637. package/modules/layout/capabilities/layout-flex-align-items/example.ani +43 -0
  638. package/modules/layout/capabilities/layout-flex-align-items/example.animl +6 -0
  639. package/modules/layout/capabilities/layout-flex-direction/example.ani +43 -0
  640. package/modules/layout/capabilities/layout-flex-direction/example.animl +6 -0
  641. package/modules/layout/capabilities/layout-flex-justify/example.ani +42 -0
  642. package/modules/layout/capabilities/layout-flex-justify/example.animl +6 -0
  643. package/modules/layout/capabilities/layout-hug-sizing/example.ani +42 -0
  644. package/modules/layout/capabilities/layout-hug-sizing/example.animl +6 -0
  645. package/modules/layout/capabilities/layout-intrinsic/example.ani +40 -0
  646. package/modules/layout/capabilities/layout-intrinsic/example.animl +6 -0
  647. package/modules/layout/capabilities/layout-paint/example.ani +60 -0
  648. package/modules/layout/capabilities/layout-paint/example.animl +8 -0
  649. package/modules/layout/capabilities/layout-participants/example.ani +40 -0
  650. package/modules/layout/capabilities/layout-participants/example.animl +6 -0
  651. package/modules/layout/capabilities/layout-self-alignment/example.ani +45 -0
  652. package/modules/layout/capabilities/layout-self-alignment/example.animl +6 -0
  653. package/modules/layout/capabilities/layout-size-bounds/example.ani +49 -0
  654. package/modules/layout/capabilities/layout-size-bounds/example.animl +6 -0
  655. package/modules/layout/capabilities/layout-spacing/example.ani +45 -0
  656. package/modules/layout/capabilities/layout-spacing/example.animl +6 -0
  657. package/modules/layout/capabilities/layout-visibility/example.ani +56 -0
  658. package/modules/layout/capabilities/layout-visibility/example.animl +7 -0
  659. package/modules/layout/examples/button.ani +61 -0
  660. package/modules/layout/examples/button.animl +12 -0
  661. package/modules/layout/examples/reflow.ani +62 -0
  662. package/modules/layout/examples/reflow.animl +12 -0
  663. package/modules/layout/examples/wrapped.ani +55 -0
  664. package/modules/layout/examples/wrapped.animl +11 -0
  665. package/modules/layout/manifest.source +73 -0
  666. package/modules/lists/SPEC.md +44 -0
  667. package/modules/lists/capabilities/components-explicit-context/example.ani +81 -0
  668. package/modules/lists/capabilities/components-explicit-context/example.animl +22 -0
  669. package/modules/lists/capabilities/components-inherited-context/example.ani +99 -0
  670. package/modules/lists/capabilities/components-inherited-context/example.animl +24 -0
  671. package/modules/lists/capabilities/components-list/example.ani +77 -0
  672. package/modules/lists/capabilities/components-list/example.animl +19 -0
  673. package/modules/lists/capabilities/components-list-map/example.ani +116 -0
  674. package/modules/lists/capabilities/components-list-map/example.animl +29 -0
  675. package/modules/lists/capabilities/components-list-size-override/example.ani +83 -0
  676. package/modules/lists/capabilities/components-list-size-override/example.animl +20 -0
  677. package/modules/lists/capabilities/data-binding-relative/example.ani +77 -0
  678. package/modules/lists/capabilities/data-binding-relative/example.animl +19 -0
  679. package/modules/lists/capabilities/data-converter-number-to-list/example.ani +109 -0
  680. package/modules/lists/capabilities/data-converter-number-to-list/example.animl +29 -0
  681. package/modules/lists/capabilities/data-property-symbol-list-index/example.ani +77 -0
  682. package/modules/lists/capabilities/data-property-symbol-list-index/example.animl +19 -0
  683. package/modules/lists/examples/players.ani +77 -0
  684. package/modules/lists/examples/players.animl +19 -0
  685. package/modules/lists/manifest.source +43 -0
  686. package/modules/machine/capabilities/state-machine-any-state/example.ani +62 -0
  687. package/modules/machine/capabilities/state-machine-any-state/example.animl +22 -0
  688. package/modules/machine/capabilities/state-machine-blend-1d-data/example.ani +74 -0
  689. package/modules/machine/capabilities/state-machine-blend-1d-data/example.animl +23 -0
  690. package/modules/machine/capabilities/state-machine-blend-1d-input/example.ani +70 -0
  691. package/modules/machine/capabilities/state-machine-blend-1d-input/example.animl +23 -0
  692. package/modules/machine/capabilities/state-machine-blend-additive/example.ani +69 -0
  693. package/modules/machine/capabilities/state-machine-blend-additive/example.animl +23 -0
  694. package/modules/machine/capabilities/state-machine-blend-direct/example.ani +64 -0
  695. package/modules/machine/capabilities/state-machine-blend-direct/example.animl +21 -0
  696. package/modules/machine/capabilities/state-machine-blend-exit-clock/example.ani +72 -0
  697. package/modules/machine/capabilities/state-machine-blend-exit-clock/example.animl +25 -0
  698. package/modules/machine/capabilities/state-machine-blend-weight-constant/example.ani +64 -0
  699. package/modules/machine/capabilities/state-machine-blend-weight-constant/example.animl +21 -0
  700. package/modules/machine/capabilities/state-machine-blend-weight-data/example.ani +71 -0
  701. package/modules/machine/capabilities/state-machine-blend-weight-data/example.animl +23 -0
  702. package/modules/machine/capabilities/state-machine-blend-weight-input/example.ani +69 -0
  703. package/modules/machine/capabilities/state-machine-blend-weight-input/example.animl +23 -0
  704. package/modules/machine/capabilities/state-machine-condition-artboard/example.ani +50 -0
  705. package/modules/machine/capabilities/state-machine-condition-artboard/example.animl +13 -0
  706. package/modules/machine/capabilities/state-machine-condition-component/example.ani +76 -0
  707. package/modules/machine/capabilities/state-machine-condition-component/example.animl +19 -0
  708. package/modules/machine/capabilities/state-machine-condition-data/example.ani +54 -0
  709. package/modules/machine/capabilities/state-machine-condition-data/example.animl +15 -0
  710. package/modules/machine/capabilities/state-machine-condition-focus/example.ani +49 -0
  711. package/modules/machine/capabilities/state-machine-condition-focus/example.animl +13 -0
  712. package/modules/machine/capabilities/state-machine-continue-on-exit/example.ani +58 -0
  713. package/modules/machine/capabilities/state-machine-continue-on-exit/example.animl +21 -0
  714. package/modules/machine/capabilities/state-machine-entry-state/example.ani +56 -0
  715. package/modules/machine/capabilities/state-machine-entry-state/example.animl +19 -0
  716. package/modules/machine/capabilities/state-machine-exit-state/example.ani +46 -0
  717. package/modules/machine/capabilities/state-machine-exit-state/example.animl +15 -0
  718. package/modules/machine/capabilities/state-machine-exit-time-relative/example.ani +52 -0
  719. package/modules/machine/capabilities/state-machine-exit-time-relative/example.animl +19 -0
  720. package/modules/machine/capabilities/state-machine-literal-asset/example.ani +62 -0
  721. package/modules/machine/capabilities/state-machine-literal-asset/example.animl +18 -0
  722. package/modules/machine/capabilities/state-machine-literal-boolean/example.ani +53 -0
  723. package/modules/machine/capabilities/state-machine-literal-boolean/example.animl +15 -0
  724. package/modules/machine/capabilities/state-machine-literal-color/example.ani +54 -0
  725. package/modules/machine/capabilities/state-machine-literal-color/example.animl +15 -0
  726. package/modules/machine/capabilities/state-machine-literal-enum/example.ani +54 -0
  727. package/modules/machine/capabilities/state-machine-literal-enum/example.animl +15 -0
  728. package/modules/machine/capabilities/state-machine-literal-string/example.ani +54 -0
  729. package/modules/machine/capabilities/state-machine-literal-string/example.animl +15 -0
  730. package/modules/machine/capabilities/state-machine-literal-trigger/example.ani +53 -0
  731. package/modules/machine/capabilities/state-machine-literal-trigger/example.animl +15 -0
  732. package/modules/machine/capabilities/state-machine-state-entry-actions/example.ani +56 -0
  733. package/modules/machine/capabilities/state-machine-state-entry-actions/example.animl +16 -0
  734. package/modules/machine/capabilities/state-machine-state-exit-actions/example.ani +56 -0
  735. package/modules/machine/capabilities/state-machine-state-exit-actions/example.animl +16 -0
  736. package/modules/machine/capabilities/state-machine-state-random/example.ani +53 -0
  737. package/modules/machine/capabilities/state-machine-state-random/example.animl +17 -0
  738. package/modules/machine/capabilities/state-machine-state-reset/example.ani +52 -0
  739. package/modules/machine/capabilities/state-machine-state-reset/example.animl +18 -0
  740. package/modules/machine/capabilities/state-machine-transition-actions/example.ani +56 -0
  741. package/modules/machine/capabilities/state-machine-transition-actions/example.animl +16 -0
  742. package/modules/machine/capabilities/state-machine-transition-disabled/example.ani +57 -0
  743. package/modules/machine/capabilities/state-machine-transition-disabled/example.animl +19 -0
  744. package/modules/machine/capabilities/state-machine-transition-duration-relative/example.ani +57 -0
  745. package/modules/machine/capabilities/state-machine-transition-duration-relative/example.animl +21 -0
  746. package/modules/machine/capabilities/state-machine-transition-end-actions/example.ani +56 -0
  747. package/modules/machine/capabilities/state-machine-transition-end-actions/example.animl +16 -0
  748. package/modules/machine/capabilities/state-machine-transition-random-weight/example.ani +53 -0
  749. package/modules/machine/capabilities/state-machine-transition-random-weight/example.animl +17 -0
  750. package/modules/machine/examples/README.md +12 -0
  751. package/modules/machine/examples/blend-pulse.ani +115 -0
  752. package/modules/machine/examples/blend-pulse.animl +32 -0
  753. package/modules/machine/manifest.source +73 -0
  754. package/modules/markup/manifest.source +26 -0
  755. package/modules/markup-animation/manifest.source +23 -0
  756. package/modules/markup-hooks/manifest.source +13 -0
  757. package/modules/markup-libraries/SPEC.md +56 -0
  758. package/modules/markup-libraries/capabilities/components-library-export/example.ani +45 -0
  759. package/modules/markup-libraries/capabilities/components-library-export/example.animl +4 -0
  760. package/modules/markup-libraries/capabilities/components-library-models/example.ani +45 -0
  761. package/modules/markup-libraries/capabilities/components-library-models/example.animl +4 -0
  762. package/modules/markup-libraries/capabilities/components-library-update/example.ani +45 -0
  763. package/modules/markup-libraries/capabilities/components-library-update/example.animl +4 -0
  764. package/modules/markup-libraries/manifest.source +38 -0
  765. package/modules/media/manifest.source +21 -0
  766. package/modules/mesh/capabilities/rigging-mesh/example.ani +50 -0
  767. package/modules/mesh/capabilities/rigging-mesh/example.animl +9 -0
  768. package/modules/mesh/capabilities/rigging-mesh-animation/example.ani +65 -0
  769. package/modules/mesh/capabilities/rigging-mesh-animation/example.animl +15 -0
  770. package/modules/mesh/examples/flag.ani +108 -0
  771. package/modules/mesh/examples/flag.animl +23 -0
  772. package/modules/mesh/manifest.source +37 -0
  773. package/modules/mix/capabilities/drawing-paint-additive-strength/example.ani +34 -0
  774. package/modules/mix/capabilities/drawing-paint-additive-strength/example.animl +4 -0
  775. package/modules/mix/capabilities/drawing-paint-blend-additive/example.ani +33 -0
  776. package/modules/mix/capabilities/drawing-paint-blend-additive/example.animl +4 -0
  777. package/modules/mix/capabilities/drawing-paint-paint-blend-override/example.ani +37 -0
  778. package/modules/mix/capabilities/drawing-paint-paint-blend-override/example.animl +4 -0
  779. package/modules/mix/capabilities/host-api-factory/example.ani +16 -0
  780. package/modules/mix/capabilities/host-api-factory/example.animl +3 -0
  781. package/modules/mix/capabilities/host-api-renderer/example.ani +16 -0
  782. package/modules/mix/capabilities/host-api-renderer/example.animl +3 -0
  783. package/modules/mix/manifest.source +36 -0
  784. package/modules/motion/capabilities/animation-cubic-value/example.ani +40 -0
  785. package/modules/motion/capabilities/animation-cubic-value/example.animl +9 -0
  786. package/modules/motion/capabilities/animation-elastic-in/example.ani +40 -0
  787. package/modules/motion/capabilities/animation-elastic-in/example.animl +9 -0
  788. package/modules/motion/capabilities/animation-elastic-in-out/example.ani +40 -0
  789. package/modules/motion/capabilities/animation-elastic-in-out/example.animl +9 -0
  790. package/modules/motion/capabilities/animation-host-loop-override/example.ani +28 -0
  791. package/modules/motion/capabilities/animation-host-loop-override/example.animl +6 -0
  792. package/modules/motion/capabilities/animation-host-play-pause-stop/example.ani +28 -0
  793. package/modules/motion/capabilities/animation-host-play-pause-stop/example.animl +6 -0
  794. package/modules/motion/capabilities/animation-keys-reference/example.ani +55 -0
  795. package/modules/motion/capabilities/animation-keys-reference/example.animl +12 -0
  796. package/modules/motion/capabilities/animation-keys-signed-integer/example.ani +46 -0
  797. package/modules/motion/capabilities/animation-keys-signed-integer/example.animl +11 -0
  798. package/modules/motion/capabilities/animation-keys-string/example.ani +46 -0
  799. package/modules/motion/capabilities/animation-keys-string/example.animl +11 -0
  800. package/modules/motion/capabilities/animation-keys-unsigned-integer/example.ani +46 -0
  801. package/modules/motion/capabilities/animation-keys-unsigned-integer/example.animl +11 -0
  802. package/modules/motion/capabilities/animation-mix-discrete/example.ani +38 -0
  803. package/modules/motion/capabilities/animation-mix-discrete/example.animl +9 -0
  804. package/modules/motion/capabilities/animation-mix-numeric/example.ani +42 -0
  805. package/modules/motion/capabilities/animation-mix-numeric/example.animl +11 -0
  806. package/modules/motion/capabilities/animation-quantized-playback/example.ani +41 -0
  807. package/modules/motion/capabilities/animation-quantized-playback/example.animl +9 -0
  808. package/modules/motion/capabilities/animation-reverse/example.ani +47 -0
  809. package/modules/motion/capabilities/animation-reverse/example.animl +12 -0
  810. package/modules/motion/capabilities/animation-seek/example.ani +28 -0
  811. package/modules/motion/capabilities/animation-seek/example.animl +6 -0
  812. package/modules/motion/capabilities/animation-work-area/example.ani +42 -0
  813. package/modules/motion/capabilities/animation-work-area/example.animl +9 -0
  814. package/modules/motion/capabilities/data-bind-keyframes/example.ani +52 -0
  815. package/modules/motion/capabilities/data-bind-keyframes/example.animl +15 -0
  816. package/modules/motion/capabilities/host-api-animation-metadata/example.ani +31 -0
  817. package/modules/motion/capabilities/host-api-animation-metadata/example.animl +6 -0
  818. package/modules/motion/capabilities/host-api-low-level-animation/example.ani +28 -0
  819. package/modules/motion/capabilities/host-api-low-level-animation/example.animl +6 -0
  820. package/modules/motion/capabilities/host-api-low-level-scene-query/example.ani +41 -0
  821. package/modules/motion/capabilities/host-api-low-level-scene-query/example.animl +9 -0
  822. package/modules/motion/capabilities/host-api-multi-state-machine/example.ani +62 -0
  823. package/modules/motion/capabilities/host-api-multi-state-machine/example.animl +22 -0
  824. package/modules/motion/capabilities/host-api-scrub/example.ani +29 -0
  825. package/modules/motion/capabilities/host-api-scrub/example.animl +6 -0
  826. package/modules/motion/capabilities/state-machine-exit-time-seconds/example.ani +60 -0
  827. package/modules/motion/capabilities/state-machine-exit-time-seconds/example.animl +15 -0
  828. package/modules/motion/capabilities/transforms-origin-animation/example.ani +45 -0
  829. package/modules/motion/capabilities/transforms-origin-animation/example.animl +10 -0
  830. package/modules/motion/examples/README.md +42 -0
  831. package/modules/motion/examples/data-keys.ani +52 -0
  832. package/modules/motion/examples/data-keys.animl +15 -0
  833. package/modules/motion/examples/evidence/hover.jsonl +8 -0
  834. package/modules/motion/examples/evidence/phase.jsonl +9 -0
  835. package/modules/motion/examples/evidence/reduced.jsonl +6 -0
  836. package/modules/motion/examples/evidence/rest.jsonl +1 -0
  837. package/modules/motion/examples/evidence/spin.jsonl +6 -0
  838. package/modules/motion/examples/evidence/stop.jsonl +10 -0
  839. package/modules/motion/examples/evidence/sweep.jsonl +26 -0
  840. package/modules/motion/examples/scripts/hover.txt +21 -0
  841. package/modules/motion/examples/scripts/phase.txt +28 -0
  842. package/modules/motion/examples/scripts/reduced.txt +16 -0
  843. package/modules/motion/examples/scripts/rest.txt +2 -0
  844. package/modules/motion/examples/scripts/spin.txt +14 -0
  845. package/modules/motion/examples/scripts/stop.txt +26 -0
  846. package/modules/motion/examples/scripts/sweep.txt +71 -0
  847. package/modules/motion/examples/sync.ani +272 -0
  848. package/modules/motion/examples/sync.animl +64 -0
  849. package/modules/motion/examples/verify.py +71 -0
  850. package/modules/motion/manifest.source +67 -0
  851. package/modules/nested/SPEC.md +79 -0
  852. package/modules/nested/capabilities/components-leaf-fit/example.ani +50 -0
  853. package/modules/nested/capabilities/components-leaf-fit/example.animl +9 -0
  854. package/modules/nested/capabilities/components-nested-quantize/example.ani +65 -0
  855. package/modules/nested/capabilities/components-nested-quantize/example.animl +15 -0
  856. package/modules/nested/capabilities/components-nested-remap/example.ani +65 -0
  857. package/modules/nested/capabilities/components-nested-remap/example.animl +15 -0
  858. package/modules/nested/capabilities/components-stateful-output/example.ani +51 -0
  859. package/modules/nested/capabilities/components-stateful-output/example.animl +12 -0
  860. package/modules/nested/capabilities/data-property-artboard/example.ani +63 -0
  861. package/modules/nested/capabilities/data-property-artboard/example.animl +14 -0
  862. package/modules/nested/capabilities/state-machine-literal-artboard/example.ani +76 -0
  863. package/modules/nested/capabilities/state-machine-literal-artboard/example.animl +19 -0
  864. package/modules/nested/examples/component-guard.ani +76 -0
  865. package/modules/nested/examples/component-guard.animl +19 -0
  866. package/modules/nested/examples/controls.ani +100 -0
  867. package/modules/nested/examples/controls.animl +21 -0
  868. package/modules/nested/manifest.source +39 -0
  869. package/modules/paint/capabilities/drawing-paint-gradient-angular/example.ani +33 -0
  870. package/modules/paint/capabilities/drawing-paint-gradient-angular/example.animl +8 -0
  871. package/modules/paint/capabilities/drawing-paint-gradient-transform/example.ani +34 -0
  872. package/modules/paint/capabilities/drawing-paint-gradient-transform/example.animl +8 -0
  873. package/modules/paint/capabilities/drawing-paint-image-fit-resize/example.ani +49 -0
  874. package/modules/paint/capabilities/drawing-paint-image-fit-resize/example.animl +12 -0
  875. package/modules/paint/capabilities/drawing-paint-image-wrap-clamp/example.ani +50 -0
  876. package/modules/paint/capabilities/drawing-paint-image-wrap-clamp/example.animl +12 -0
  877. package/modules/paint/capabilities/drawing-paint-image-wrap-mirror/example.ani +50 -0
  878. package/modules/paint/capabilities/drawing-paint-image-wrap-mirror/example.animl +12 -0
  879. package/modules/paint/capabilities/drawing-paint-image-wrap-repeat/example.ani +50 -0
  880. package/modules/paint/capabilities/drawing-paint-image-wrap-repeat/example.animl +12 -0
  881. package/modules/paint/manifest.source +77 -0
  882. package/modules/pathfollow/capabilities/rigging-follow-path/example.ani +16 -0
  883. package/modules/pathfollow/capabilities/rigging-follow-path/example.animl +7 -0
  884. package/modules/pathfollow/capabilities/rigging-list-follow-path/example.ani +16 -0
  885. package/modules/pathfollow/capabilities/rigging-list-follow-path/example.animl +9 -0
  886. package/modules/pathfollow/examples/orbit.ani +130 -0
  887. package/modules/pathfollow/examples/orbit.animl +17 -0
  888. package/modules/pathfollow/manifest.source +35 -0
  889. package/modules/posepad/examples/look.ani +124 -0
  890. package/modules/posepad/examples/look.animl +22 -0
  891. package/modules/posepad/manifest.source +43 -0
  892. package/modules/rig/AUTHORING.md +24 -0
  893. package/modules/rig/capabilities/rigging-bone-chains/example.ani +61 -0
  894. package/modules/rig/capabilities/rigging-bone-chains/example.animl +22 -0
  895. package/modules/rig/capabilities/rigging-constraint-order/example.ani +123 -0
  896. package/modules/rig/capabilities/rigging-constraint-order/example.animl +33 -0
  897. package/modules/rig/capabilities/rigging-constraint-strength/example.ani +105 -0
  898. package/modules/rig/capabilities/rigging-constraint-strength/example.animl +28 -0
  899. package/modules/rig/capabilities/rigging-distance-closer/example.ani +160 -0
  900. package/modules/rig/capabilities/rigging-distance-closer/example.animl +44 -0
  901. package/modules/rig/capabilities/rigging-distance-exact/example.ani +160 -0
  902. package/modules/rig/capabilities/rigging-distance-exact/example.animl +44 -0
  903. package/modules/rig/capabilities/rigging-distance-further/example.ani +160 -0
  904. package/modules/rig/capabilities/rigging-distance-further/example.animl +44 -0
  905. package/modules/rig/capabilities/rigging-root-bones/example.ani +63 -0
  906. package/modules/rig/capabilities/rigging-root-bones/example.animl +22 -0
  907. package/modules/rig/capabilities/rigging-rotation/example.ani +143 -0
  908. package/modules/rig/capabilities/rigging-rotation/example.animl +32 -0
  909. package/modules/rig/capabilities/rigging-scale/example.ani +144 -0
  910. package/modules/rig/capabilities/rigging-scale/example.animl +32 -0
  911. package/modules/rig/capabilities/rigging-transform/example.ani +132 -0
  912. package/modules/rig/capabilities/rigging-transform/example.animl +30 -0
  913. package/modules/rig/capabilities/rigging-translation/example.ani +248 -0
  914. package/modules/rig/capabilities/rigging-translation/example.animl +54 -0
  915. package/modules/rig/examples/arm.ani +120 -0
  916. package/modules/rig/examples/arm.animl +29 -0
  917. package/modules/rig/manifest.source +55 -0
  918. package/modules/scroll/capabilities/rigging-scroll/example.ani +16 -0
  919. package/modules/scroll/capabilities/rigging-scroll/example.animl +11 -0
  920. package/modules/scroll/examples/list.ani +115 -0
  921. package/modules/scroll/examples/list.animl +15 -0
  922. package/modules/scroll/manifest.source +31 -0
  923. package/modules/skin/capabilities/rigging-cubic-weights/example.ani +66 -0
  924. package/modules/skin/capabilities/rigging-cubic-weights/example.animl +17 -0
  925. package/modules/skin/capabilities/rigging-skin/example.ani +165 -0
  926. package/modules/skin/capabilities/rigging-skin/example.animl +33 -0
  927. package/modules/skin/capabilities/rigging-weights/example.ani +147 -0
  928. package/modules/skin/capabilities/rigging-weights/example.animl +37 -0
  929. package/modules/skin/examples/sleeve.ani +91 -0
  930. package/modules/skin/examples/sleeve.animl +14 -0
  931. package/modules/skin/manifest.source +41 -0
  932. package/modules/surface/manifest.source +52 -0
  933. package/modules/text/SPEC.md +269 -0
  934. package/modules/text/capabilities/data-bind-text/example.ani +63 -0
  935. package/modules/text/capabilities/data-bind-text/example.animl +8 -0
  936. package/modules/text/capabilities/data-property-text-style/example.ani +63 -0
  937. package/modules/text/capabilities/data-property-text-style/example.animl +8 -0
  938. package/modules/text/capabilities/host-api-nested-text-run/example.ani +44 -0
  939. package/modules/text/capabilities/host-api-nested-text-run/example.animl +10 -0
  940. package/modules/text/capabilities/host-api-text-run/example.ani +27 -0
  941. package/modules/text/capabilities/host-api-text-run/example.animl +6 -0
  942. package/modules/text/capabilities/text-fit-baseline/example.ani +30 -0
  943. package/modules/text/capabilities/text-fit-baseline/example.animl +6 -0
  944. package/modules/text/capabilities/text-fit-layout-measure/example.ani +30 -0
  945. package/modules/text/capabilities/text-fit-layout-measure/example.animl +6 -0
  946. package/modules/text/capabilities/text-flatten/example.ani +16 -0
  947. package/modules/text/capabilities/text-flatten/example.animl +6 -0
  948. package/modules/text/capabilities/text-font-size/example.ani +59 -0
  949. package/modules/text/capabilities/text-font-size/example.animl +15 -0
  950. package/modules/text/capabilities/text-horizontal-alignment/example.ani +28 -0
  951. package/modules/text/capabilities/text-horizontal-alignment/example.animl +6 -0
  952. package/modules/text/capabilities/text-line-spacing/example.ani +28 -0
  953. package/modules/text/capabilities/text-line-spacing/example.animl +6 -0
  954. package/modules/text/capabilities/text-origin/example.ani +32 -0
  955. package/modules/text/capabilities/text-origin/example.animl +6 -0
  956. package/modules/text/capabilities/text-overflow-clipped/example.ani +29 -0
  957. package/modules/text/capabilities/text-overflow-clipped/example.animl +6 -0
  958. package/modules/text/capabilities/text-overflow-ellipsis/example.ani +29 -0
  959. package/modules/text/capabilities/text-overflow-ellipsis/example.animl +6 -0
  960. package/modules/text/capabilities/text-overflow-fit/example.ani +29 -0
  961. package/modules/text/capabilities/text-overflow-fit/example.animl +6 -0
  962. package/modules/text/capabilities/text-overflow-fit-font-size/example.ani +29 -0
  963. package/modules/text/capabilities/text-overflow-fit-font-size/example.animl +6 -0
  964. package/modules/text/capabilities/text-overflow-hidden/example.ani +29 -0
  965. package/modules/text/capabilities/text-overflow-hidden/example.animl +7 -0
  966. package/modules/text/capabilities/text-overflow-visible/example.ani +29 -0
  967. package/modules/text/capabilities/text-overflow-visible/example.animl +6 -0
  968. package/modules/text/capabilities/text-paint/example.ani +30 -0
  969. package/modules/text/capabilities/text-paint/example.animl +6 -0
  970. package/modules/text/capabilities/text-paragraph-spacing/example.ani +28 -0
  971. package/modules/text/capabilities/text-paragraph-spacing/example.animl +7 -0
  972. package/modules/text/capabilities/text-rich-runs/example.ani +34 -0
  973. package/modules/text/capabilities/text-rich-runs/example.animl +8 -0
  974. package/modules/text/capabilities/text-run-list/example.ani +59 -0
  975. package/modules/text/capabilities/text-run-list/example.animl +7 -0
  976. package/modules/text/capabilities/text-script-hit-testing/example.ani +47 -0
  977. package/modules/text/capabilities/text-script-hit-testing/example.animl +10 -0
  978. package/modules/text/capabilities/text-sizing-auto-height/example.ani +28 -0
  979. package/modules/text/capabilities/text-sizing-auto-height/example.animl +6 -0
  980. package/modules/text/capabilities/text-sizing-auto-width/example.ani +27 -0
  981. package/modules/text/capabilities/text-sizing-auto-width/example.animl +6 -0
  982. package/modules/text/capabilities/text-sizing-fixed/example.ani +26 -0
  983. package/modules/text/capabilities/text-sizing-fixed/example.animl +6 -0
  984. package/modules/text/capabilities/text-style-reference/example.ani +31 -0
  985. package/modules/text/capabilities/text-style-reference/example.animl +7 -0
  986. package/modules/text/capabilities/text-tracking/example.ani +28 -0
  987. package/modules/text/capabilities/text-tracking/example.animl +6 -0
  988. package/modules/text/capabilities/text-vertical-alignment/example.ani +28 -0
  989. package/modules/text/capabilities/text-vertical-alignment/example.animl +6 -0
  990. package/modules/text/capabilities/text-vertical-trim/example.ani +29 -0
  991. package/modules/text/capabilities/text-vertical-trim/example.animl +6 -0
  992. package/modules/text/capabilities/text-word-break/example.ani +28 -0
  993. package/modules/text/capabilities/text-word-break/example.animl +6 -0
  994. package/modules/text/capabilities/text-wrap/example.ani +28 -0
  995. package/modules/text/capabilities/text-wrap/example.animl +6 -0
  996. package/modules/text/manifest.source +92 -0
  997. package/modules/text-effects/SPEC.md +134 -0
  998. package/modules/text-effects/capabilities/text-background/example.ani +32 -0
  999. package/modules/text-effects/capabilities/text-background/example.animl +7 -0
  1000. package/modules/text-effects/capabilities/text-modifier-follow-path/example.ani +34 -0
  1001. package/modules/text-effects/capabilities/text-modifier-follow-path/example.animl +8 -0
  1002. package/modules/text-effects/capabilities/text-modifier-opacity/example.ani +34 -0
  1003. package/modules/text-effects/capabilities/text-modifier-opacity/example.animl +8 -0
  1004. package/modules/text-effects/capabilities/text-modifier-origin/example.ani +36 -0
  1005. package/modules/text-effects/capabilities/text-modifier-origin/example.animl +8 -0
  1006. package/modules/text-effects/capabilities/text-modifier-rotation/example.ani +34 -0
  1007. package/modules/text-effects/capabilities/text-modifier-rotation/example.animl +8 -0
  1008. package/modules/text-effects/capabilities/text-modifier-scale/example.ani +35 -0
  1009. package/modules/text-effects/capabilities/text-modifier-scale/example.animl +8 -0
  1010. package/modules/text-effects/capabilities/text-modifier-translation/example.ani +35 -0
  1011. package/modules/text-effects/capabilities/text-modifier-translation/example.animl +8 -0
  1012. package/modules/text-effects/capabilities/text-modifier-variation/example.ani +36 -0
  1013. package/modules/text-effects/capabilities/text-modifier-variation/example.animl +8 -0
  1014. package/modules/text-effects/capabilities/text-range-combine/example.ani +47 -0
  1015. package/modules/text-effects/capabilities/text-range-combine/example.animl +11 -0
  1016. package/modules/text-effects/capabilities/text-range-easing/example.ani +38 -0
  1017. package/modules/text-effects/capabilities/text-range-easing/example.animl +8 -0
  1018. package/modules/text-effects/capabilities/text-range-falloff/example.ani +37 -0
  1019. package/modules/text-effects/capabilities/text-range-falloff/example.animl +8 -0
  1020. package/modules/text-effects/capabilities/text-range-run/example.ani +37 -0
  1021. package/modules/text-effects/capabilities/text-range-run/example.animl +8 -0
  1022. package/modules/text-effects/capabilities/text-range-units/example.ani +37 -0
  1023. package/modules/text-effects/capabilities/text-range-units/example.animl +8 -0
  1024. package/modules/text-effects/capabilities/text-script-direction/example.ani +30 -0
  1025. package/modules/text-effects/capabilities/text-script-direction/example.animl +7 -0
  1026. package/modules/text-effects/examples/title-wave.ani +68 -0
  1027. package/modules/text-effects/examples/title-wave.animl +15 -0
  1028. package/modules/text-effects/manifest.source +58 -0
  1029. package/modules/text-input/SPEC.md +189 -0
  1030. package/modules/text-input/capabilities/text-input-placeholder/example.ani +16 -0
  1031. package/modules/text-input/capabilities/text-input-placeholder/example.animl +13 -0
  1032. package/modules/text-input/capabilities/text-input-selection/example.ani +66 -0
  1033. package/modules/text-input/capabilities/text-input-selection/example.animl +13 -0
  1034. package/modules/text-input/examples/search-card.ani +195 -0
  1035. package/modules/text-input/examples/search-card.animl +49 -0
  1036. package/modules/text-input/examples/search.txt +6 -0
  1037. package/modules/text-input/manifest.source +79 -0
  1038. package/modules/tooling/capabilities/tooling-benchmark/example.ani +16 -0
  1039. package/modules/tooling/capabilities/tooling-benchmark/example.animl +13 -0
  1040. package/modules/tooling/capabilities/tooling-data-breakpoints/example.ani +75 -0
  1041. package/modules/tooling/capabilities/tooling-data-breakpoints/example.animl +13 -0
  1042. package/modules/tooling/capabilities/tooling-data-debugger/example.ani +16 -0
  1043. package/modules/tooling/capabilities/tooling-data-debugger/example.animl +13 -0
  1044. package/modules/tooling/capabilities/tooling-headless-command-session/example.ani +16 -0
  1045. package/modules/tooling/capabilities/tooling-headless-command-session/example.animl +13 -0
  1046. package/modules/tooling/capabilities/tooling-headless-data/example.ani +16 -0
  1047. package/modules/tooling/capabilities/tooling-headless-data/example.animl +13 -0
  1048. package/modules/tooling/capabilities/tooling-headless-data-dump/example.ani +16 -0
  1049. package/modules/tooling/capabilities/tooling-headless-data-dump/example.animl +13 -0
  1050. package/modules/tooling/capabilities/tooling-headless-data-filter/example.ani +16 -0
  1051. package/modules/tooling/capabilities/tooling-headless-data-filter/example.animl +13 -0
  1052. package/modules/tooling/capabilities/tooling-headless-data-stream/example.ani +16 -0
  1053. package/modules/tooling/capabilities/tooling-headless-data-stream/example.animl +13 -0
  1054. package/modules/tooling/capabilities/tooling-headless-gamepad/example.ani +16 -0
  1055. package/modules/tooling/capabilities/tooling-headless-gamepad/example.animl +13 -0
  1056. package/modules/tooling/capabilities/tooling-headless-key/example.ani +16 -0
  1057. package/modules/tooling/capabilities/tooling-headless-key/example.animl +13 -0
  1058. package/modules/tooling/capabilities/tooling-headless-pointer/example.ani +16 -0
  1059. package/modules/tooling/capabilities/tooling-headless-pointer/example.animl +13 -0
  1060. package/modules/tooling/capabilities/tooling-headless-touch/example.ani +16 -0
  1061. package/modules/tooling/capabilities/tooling-headless-touch/example.animl +13 -0
  1062. package/modules/tooling/capabilities/tooling-headless-wheel/example.ani +16 -0
  1063. package/modules/tooling/capabilities/tooling-headless-wheel/example.animl +13 -0
  1064. package/modules/tooling/capabilities/tooling-seed/example.ani +76 -0
  1065. package/modules/tooling/capabilities/tooling-seed/example.animl +21 -0
  1066. package/modules/tooling/capabilities/tooling-test-assertions/example.ani +16 -0
  1067. package/modules/tooling/capabilities/tooling-test-assertions/example.animl +13 -0
  1068. package/modules/tooling/examples/agent-tools.ani +75 -0
  1069. package/modules/tooling/examples/agent-tools.animl +13 -0
  1070. package/modules/tooling/manifest.source +15 -0
  1071. package/package.json +57 -4
  1072. package/packages/cli/package.json +4 -0
  1073. package/packages/cli/src/asset-info.d.ts +8 -0
  1074. package/packages/cli/src/asset-info.js +122 -0
  1075. package/packages/cli/src/assets.d.ts +8 -0
  1076. package/packages/cli/src/assets.js +66 -0
  1077. package/packages/cli/src/audio.d.ts +3 -0
  1078. package/packages/cli/src/audio.js +77 -0
  1079. package/packages/cli/src/bench.d.ts +32 -0
  1080. package/packages/cli/src/bench.js +46 -0
  1081. package/packages/cli/src/build-assets.d.ts +10 -0
  1082. package/packages/cli/src/build-assets.js +139 -0
  1083. package/packages/cli/src/bundle.d.ts +7 -0
  1084. package/packages/cli/src/bundle.js +53 -0
  1085. package/packages/cli/src/cli.d.ts +19 -0
  1086. package/packages/cli/src/cli.js +1532 -0
  1087. package/packages/cli/src/commands.d.ts +47 -0
  1088. package/packages/cli/src/commands.js +608 -0
  1089. package/packages/cli/src/compare-png.d.ts +21 -0
  1090. package/packages/cli/src/compare-png.js +39 -0
  1091. package/packages/cli/src/compare.d.ts +7 -0
  1092. package/packages/cli/src/compare.js +84 -0
  1093. package/packages/cli/src/completion.d.ts +2 -0
  1094. package/packages/cli/src/completion.js +153 -0
  1095. package/packages/cli/src/discover/api.d.ts +55 -0
  1096. package/packages/cli/src/discover/api.js +185 -0
  1097. package/packages/cli/src/discover/build.d.ts +14 -0
  1098. package/packages/cli/src/discover/build.js +590 -0
  1099. package/packages/cli/src/discover/synonyms.d.ts +1 -0
  1100. package/packages/cli/src/discover/synonyms.js +68 -0
  1101. package/packages/cli/src/docs-view.d.ts +4 -0
  1102. package/packages/cli/src/docs-view.js +279 -0
  1103. package/packages/cli/src/doctor.d.ts +11 -0
  1104. package/packages/cli/src/doctor.js +151 -0
  1105. package/packages/cli/src/encode.d.ts +9 -0
  1106. package/packages/cli/src/encode.js +100 -0
  1107. package/packages/cli/src/font/README.md +45 -0
  1108. package/packages/cli/src/font/binary.d.ts +8 -0
  1109. package/packages/cli/src/font/binary.js +54 -0
  1110. package/packages/cli/src/font/browser.d.ts +4 -0
  1111. package/packages/cli/src/font/browser.js +54 -0
  1112. package/packages/cli/src/font/cff.d.ts +6 -0
  1113. package/packages/cli/src/font/cff.js +154 -0
  1114. package/packages/cli/src/font/container.d.ts +5 -0
  1115. package/packages/cli/src/font/container.js +97 -0
  1116. package/packages/cli/src/font/document.d.ts +28 -0
  1117. package/packages/cli/src/font/document.js +143 -0
  1118. package/packages/cli/src/font/features.d.ts +1 -0
  1119. package/packages/cli/src/font/features.js +1 -0
  1120. package/packages/cli/src/font/flatten.d.ts +5 -0
  1121. package/packages/cli/src/font/flatten.js +146 -0
  1122. package/packages/cli/src/font/import.d.ts +12 -0
  1123. package/packages/cli/src/font/import.js +92 -0
  1124. package/packages/cli/src/font/index.d.ts +8 -0
  1125. package/packages/cli/src/font/index.js +27 -0
  1126. package/packages/cli/src/font/measure.d.ts +37 -0
  1127. package/packages/cli/src/font/measure.js +131 -0
  1128. package/packages/cli/src/font/reader.d.ts +13 -0
  1129. package/packages/cli/src/font/reader.js +26 -0
  1130. package/packages/cli/src/font/subset.d.ts +6 -0
  1131. package/packages/cli/src/font/subset.js +87 -0
  1132. package/packages/cli/src/font/svg.d.ts +3 -0
  1133. package/packages/cli/src/font/svg.js +109 -0
  1134. package/packages/cli/src/font/truetype.d.ts +3 -0
  1135. package/packages/cli/src/font/truetype.js +38 -0
  1136. package/packages/cli/src/font/variation.d.ts +1 -0
  1137. package/packages/cli/src/font/variation.js +1 -0
  1138. package/packages/cli/src/font/woff2.d.ts +3 -0
  1139. package/packages/cli/src/font/woff2.js +166 -0
  1140. package/packages/cli/src/glyphs.d.ts +5 -0
  1141. package/packages/cli/src/glyphs.js +59 -0
  1142. package/packages/cli/src/help.d.ts +5 -0
  1143. package/packages/cli/src/help.js +149 -0
  1144. package/packages/cli/src/html.d.ts +5 -0
  1145. package/packages/cli/src/html.js +119 -0
  1146. package/packages/cli/src/import-lottie.d.ts +2 -0
  1147. package/packages/cli/src/import-lottie.js +274 -0
  1148. package/packages/cli/src/import-svg.d.ts +8 -0
  1149. package/packages/cli/src/import-svg.js +300 -0
  1150. package/packages/cli/src/index.d.ts +1 -0
  1151. package/packages/cli/src/index.js +4 -0
  1152. package/packages/cli/src/inspect-summary.d.ts +7 -0
  1153. package/packages/cli/src/inspect-summary.js +158 -0
  1154. package/packages/cli/src/library.d.ts +6 -0
  1155. package/packages/cli/src/library.js +67 -0
  1156. package/packages/cli/src/locate.d.ts +13 -0
  1157. package/packages/cli/src/locate.js +118 -0
  1158. package/packages/cli/src/main.d.ts +2 -0
  1159. package/packages/cli/src/main.js +13 -0
  1160. package/packages/cli/src/playground.d.ts +11 -0
  1161. package/packages/cli/src/playground.js +169 -0
  1162. package/packages/cli/src/project.d.ts +15 -0
  1163. package/packages/cli/src/project.js +160 -0
  1164. package/packages/cli/src/render-options.d.ts +6 -0
  1165. package/packages/cli/src/render-options.js +40 -0
  1166. package/packages/cli/src/render.d.ts +30 -0
  1167. package/packages/cli/src/render.js +90 -0
  1168. package/packages/cli/src/scaffold.d.ts +17 -0
  1169. package/packages/cli/src/scaffold.js +96 -0
  1170. package/packages/cli/src/schema-view.d.ts +9 -0
  1171. package/packages/cli/src/schema-view.js +493 -0
  1172. package/packages/cli/src/session.d.ts +8 -0
  1173. package/packages/cli/src/session.js +96 -0
  1174. package/packages/cli/src/suggest.d.ts +3 -0
  1175. package/packages/cli/src/suggest.js +62 -0
  1176. package/packages/cli/src/video.d.ts +2 -0
  1177. package/packages/cli/src/video.js +73 -0
  1178. package/packages/core/src/script.source +897 -0
  1179. package/spec/ANIML.md +598 -0
  1180. package/spec/MODULES.md +406 -0
  1181. package/spec/SPEC.md +4083 -0
@@ -0,0 +1,100 @@
1
+ {
2
+ "anima": "0.1",
3
+ "name": "ik-reach",
4
+ "grid": 40,
5
+ "requires": ["rig", "ik", "input", "bind"],
6
+ "inputs": {
7
+ "aimX": {
8
+ "type": "number",
9
+ "default": 30
10
+ },
11
+ "aimY": {
12
+ "type": "number",
13
+ "default": 10
14
+ }
15
+ },
16
+ "nodes": [
17
+ {
18
+ "id": "upper",
19
+ "type": "bone",
20
+ "x": 8,
21
+ "y": 20,
22
+ "children": [
23
+ {
24
+ "id": "upperArt",
25
+ "type": "rect",
26
+ "x0": 8,
27
+ "y0": 19.5,
28
+ "w": 9,
29
+ "h": 1,
30
+ "fill": {
31
+ "color": "#d97757"
32
+ }
33
+ },
34
+ {
35
+ "id": "fore",
36
+ "type": "bone",
37
+ "children": [
38
+ {
39
+ "id": "foreArt",
40
+ "type": "rect",
41
+ "x0": 17,
42
+ "y0": 19.5,
43
+ "w": 8,
44
+ "h": 1,
45
+ "fill": {
46
+ "color": "#d97757"
47
+ }
48
+ },
49
+ {
50
+ "id": "hand",
51
+ "type": "circle",
52
+ "center": [25, 20],
53
+ "r": 1.2,
54
+ "fill": {
55
+ "color": "#141413"
56
+ }
57
+ }
58
+ ],
59
+ "length": 8,
60
+ "constraints": [
61
+ {
62
+ "kind": "ik",
63
+ "target": "aim",
64
+ "bones": 2,
65
+ "bend": "cw"
66
+ }
67
+ ]
68
+ }
69
+ ],
70
+ "length": 9
71
+ },
72
+ {
73
+ "id": "aim",
74
+ "type": "circle",
75
+ "center": [0, 0],
76
+ "r": 1.1,
77
+ "pivot": [0, 0],
78
+ "stroke": {
79
+ "color": "#4263eb",
80
+ "width": 0.5
81
+ }
82
+ }
83
+ ],
84
+ "listeners": [
85
+ {
86
+ "on": "drag-start|drag|drag-end",
87
+ "target": "aim",
88
+ "set": {},
89
+ "write": {
90
+ "x": "aimX",
91
+ "y": "aimY"
92
+ },
93
+ "align": "preserve"
94
+ }
95
+ ],
96
+ "bind": {
97
+ "aim.x": "aimX",
98
+ "aim.y": "aimY"
99
+ }
100
+ }
@@ -0,0 +1,18 @@
1
+ <anima version="0.1" name="ik-reach" grid="40" requires="rig ik input bind">
2
+ <number name="aimX" default="30"/>
3
+ <number name="aimY" default="10"/>
4
+
5
+ <bone id="upper" length="9" x="8" y="20">
6
+ <rect id="upperArt" x0="8" y0="19.5" width="9" height="1" fill="#d97757"/>
7
+ <bone id="fore" length="8">
8
+ <ik target="aim" bones="2" bend="cw"/>
9
+ <rect id="foreArt" x0="17" y0="19.5" width="8" height="1" fill="#d97757"/>
10
+ <circle id="hand" cx="25" cy="20" r="1.2" fill="#141413"/>
11
+ </bone>
12
+ </bone>
13
+
14
+ <circle id="aim" cx="0" cy="0" r="1.1" pivot="0 0" stroke="#4263eb" stroke-width="0.5"/>
15
+ <bind target="aim.x" value="aimX"/>
16
+ <bind target="aim.y" value="aimY"/>
17
+ <listener on="drag-start|drag|drag-end" target="aim" write="{&quot;x&quot;:&quot;aimX&quot;,&quot;y&quot;:&quot;aimY&quot;}" align="preserve"/>
18
+ </anima>
@@ -0,0 +1,30 @@
1
+ export const after: string[] = ['rig'];
2
+ export default {
3
+ ...{
4
+ name: 'ik',
5
+ summary:
6
+ 'Inverse kinematics: bend a bone chain so its tip reaches a target (one, two or more bones, bend side, strength).',
7
+ after: [],
8
+ core: { entry: 'core/index.ts', export: 'ik', svg: 'core/svg.ts', svgExport: 'ikSVG' },
9
+ web: [{ name: 'ik', budget: 896, heavy: true, over: 'rig' }],
10
+ adapters: {
11
+ 'packages/core/src/modules/ik/index.ts': 'core/index.ts',
12
+ 'packages/core/src/modules/ik/svg.ts': 'core/svg.ts',
13
+ 'packages/markup/src/ik.ts': 'markup/index.ts',
14
+ 'packages/web/src/ik.ts': 'web/index.ts',
15
+ },
16
+ exports: {
17
+ 'core:./ik': 'packages/core/src/modules/ik/index.ts',
18
+ 'markup:./ik': 'packages/markup/src/ik.ts',
19
+ 'web:./ik': 'packages/web/src/ik.ts',
20
+ },
21
+ tests: [
22
+ 'modules/ik/test/**/*.test.ts',
23
+ 'packages/markup/test/corpus.test.ts',
24
+ 'packages/markup/test/names.test.ts',
25
+ ],
26
+ conformance: ['rigging-ik', 'rigging-ik-bend'],
27
+ docs: ['spec/SPEC.md'],
28
+ },
29
+ after,
30
+ };
@@ -0,0 +1,397 @@
1
+ # Input contract
2
+
3
+ This document supplements SPEC §9–10 and the components pointer model. A document declares
4
+ `requires: ["input"]`; importing the module never changes the legacy 0.1 pointer path. Core code
5
+ owns deterministic input routing and has no DOM dependencies. The optional web entry owns DOM
6
+ listeners, coordinates, cursors and gamepad polling. The separation follows
7
+ [web runtime research](../../docs/research/rive-web-runtime.md) (host teardown and input mapping)
8
+ and [animation research](../../docs/research/rive-animation-and-state.md) (explicit input order).
9
+ No Rive implementation is used.
10
+
11
+ ## Listener extensions
12
+
13
+ `on` accepts the six legacy names plus `cancel`, `drag-start`, `drag`, `drag-end`, `key-down`,
14
+ `key-repeat`, `key-up`, `scroll`, `gamepad-axis`, `gamepad-button`, `gamepad-connected`, and
15
+ `gamepad-disconnected`. Join names with `|` for one action shared by several input families.
16
+ A dotted component event remains owned by components. An extended name or a `|` list requires
17
+ `input`, including a list containing only old names. All ordinary action keys retain §9 order.
18
+
19
+ New listener JSON keys and AniML attributes use identical spelling:
20
+
21
+ | Key | Meaning |
22
+ | --- | --- |
23
+ | `button` | DOM numbering: 0 primary (default), 1 middle, 2 secondary. Applies to down/up/click/drag phases. |
24
+ | `capture` | Run outermost to innermost before normal target/ancestor handling. Default false. |
25
+ | `consume` | Stop remaining delivery for this event, including inner capture and normal listeners, after this listener's actions. Default false. |
26
+ | `propagate` | Normal keyboard listener passes the key to remaining listeners/ancestors when true. Default false; `consume` takes precedence. No effect on pointer/gamepad events or capture listeners. |
27
+ | `key` | Exact DOM `KeyboardEvent.key`, or `*`/omitted for any key. |
28
+ | `modifiers` | Exact held modifier set, in `shift+control+alt+meta` order; omit unheld tokens. Empty means none. Omission means any modifier set. |
29
+ | `index` | Exact nonnegative gamepad slot, omitted for any. |
30
+ | `control` | Exact nonnegative axis/button index, omitted for any. |
31
+ | `mapping` | `standard` requires W3C mapping; `raw` or omitted uses supplied indices without remapping. |
32
+ | `phase` | Gamepad button `press`, `release`, or `both` (default). Analog changes also dispatch with `both`. |
33
+ | `write` | Map from event-value names to declared numeric/bool inputs, applied after ordinary listener actions. |
34
+ | `align` | `snap` or `preserve`; modifies the `x` and `y` event values in the target's parent coordinates. |
35
+
36
+ `write` fields are `x`, `y`, `dx`, `dy`, `startX`, `startY`, `pointerId`, `button`, `deltaX`,
37
+ `deltaY`, `value`, `pressed`, `index`, and `control`. Only `pressed` is boolean; the others are
38
+ numbers. Missing event fields do not overwrite inputs. Writes are queued until the next step,
39
+ so ordinary `bind` expressions can move a target. Write-only listeners are actions; the loader
40
+ normalizes them with an empty `set` map for the existing action compiler. Decompilation preserves that normalization. AniML uses a JSON-valued `write` attribute,
41
+ for example `write='{"x":"dragX"}'`, derived from the generic listener registry. `align=preserve` stores the target's initial x/y minus
42
+ the initial grab point in parent space; `snap` uses no offset. Singular parents produce no
43
+ coordinate writes. Capture ordering is outermost ancestor (including the icon) down to the target, then authored order at equal depth; a consuming ancestor prevents inner listeners from running. Normal capture listeners do not implicitly consume. Normal delivery uses depth, then authored order; normal delivery bubbles
44
+ from deepest to shallowest, retaining authored order within a scope.
45
+
46
+ ## Contacts and hit policy
47
+
48
+ `Player.input()` returns one controller per player and rejects a document lacking `input`.
49
+ `pointer(kind,x,y,{id=0,button=0})` receives grid coordinates and a nonnegative integer contact ID.
50
+ IDs are independent; repeated downs replace that ID's press. This controller tracks one pressed
51
+ button per contact, not several simultaneously pressed mouse buttons on the same contact ID.
52
+ The legacy `Player.pointer` delegates to it using ID 0 when input is declared.
53
+
54
+ Each event first leaves old targets and enters new targets, then dispatches its phase. A down
55
+ records its targets and initial point. Motion of at least 0.5 grid units starts a drag once,
56
+ then dispatches drag for each move, even outside the target. Smaller motion does not start a drag.
57
+ Up ends a drag once; otherwise it clicks targets shared with down if maximum travel stayed below
58
+ 0.5. Cancel uses the contact's last position, emits cancel on its pressed targets, ends a live
59
+ drag, leaves hovered targets and removes the contact. Explicit leave exits and cancels the press
60
+ without a cancel phase. `enablePointer(id,false)` cancels that contact before suppressing further
61
+ input; re-enabling starts cleanly. `cancel()` cancels every contact and the scroll latch.
62
+
63
+ Hit geometry is the existing transformed painted contour test, including fill rule and stroke,
64
+ not a bounding rectangle. Visibility and collapse propagate through ancestors. A group queries
65
+ eligible descendants. `pointerEnabled=false` suppresses pointer hits on that node and descendants.
66
+ `hitTest(x,y,{bounded?,scroll?})` returns unique interactive target IDs, foremost first, with
67
+ `@icon` for whole-icon listeners. `bounded` additionally clips to the document viewBox. Cursor-only
68
+ and opaque nodes are interactive targets even without actions. An `opaque=true` target removes
69
+ lower painted nodes from the hit traversal, retaining its ancestor chain and higher targets.
70
+ Foremost means latest painted: targets, cursor selection and opaque comparisons use composite's
71
+ `Player.paintRank` when present (a pre-order walk with resolved `drawOrder` sibling lists),
72
+ otherwise the authored node index. Reordering a group moves its whole subtree for this purpose.
73
+ Nested players retain their own local paint order inside their host instance's paint rank.
74
+ For models using `drawOrder`, normal pointer delivery at equal depth uses this same foremost-first
75
+ key before listener authored order; capture, keyboard and gamepad delivery keep their existing
76
+ ordering. A consuming pointer listener therefore claims an overlapping painted-top target first.
77
+ `occludes(x,y)` detects an opaque target; `{scroll:true}` additionally requires a scroll listener
78
+ on the blocker. Geometry follows the flattened-contour accuracy contract in §9; no separate
79
+ approximate rectangle-only hit implementation is introduced.
80
+
81
+ Pointer routing into component children preserves IDs/buttons and inversely maps coordinates
82
+ through the current instance world matrix. Invisible, collapsed, disabled, singular or occluded
83
+ instances cancel the child contact. The module uses the components extension's `players` map;
84
+ without that seam only legacy primary-pointer forwarding is available. Child input actions are
85
+ committed by the ordinary parent step. Keyboard delivery follows the logical focus path into component children, then bubbles through
86
+ the outer instance ancestors. Gamepad batches remain scene-wide; they do not select a descendant
87
+ by keyboard focus. Explicit `target` overrides `keyTarget`, which overrides logical focus.
88
+
89
+ ## Keyboard, scroll, gamepads
90
+
91
+ `key(down|up,key,{repeat?,shift?,control?,alt?,meta?,target?})` produces exactly one phase:
92
+ repeat replaces down, never adds a second down. Target is a node ID (including a dotted component descendant), default logical focus or whole icon. Explicit
93
+ options override the controller's optional `keyTarget`. Delivery follows target then ancestors,
94
+ with capture and consume as above. A matching normal keyboard listener handles the key and stops further delivery by default; `propagate: true` (AniML `propagate="true"`) opts into passing it on. Unmatched listeners never stop delivery. This applies to down, repeat and up, including component boundaries. Capture listeners retain explicit `consume` semantics. Logical focus arrow/opted-in Tab navigation runs after authored key delivery, even when consumed; modifiers still suppress navigation. Pointer enablement does not exclude keyboard/gamepad delivery.
95
+ Native Enter/Space activation remains the host's §10 behavior alongside authored key listeners.
96
+
97
+ `scroll(x,y,deltaX,deltaY,{phase?,time?})` uses finite positions/deltas and a logical timestamp in
98
+ seconds (default player time). Deltas retain their supplied units. `start` reselects a target;
99
+ `move`/omission retains the previous hit target even when the pointer leaves. A gap strictly greater
100
+ than 0.15 s, or decreasing time, expires the latch. `end` dispatches then releases; `cancel` only
101
+ releases. `cancelScroll()` releases explicitly. `wantsScroll(x,y,time=player.time)` checks whether
102
+ there is a live latch or eligible scroll listener; callers using their own clock pass the same
103
+ clock on queries and events. Hosts prevent native wheel scrolling only after a handled scroll.
104
+
105
+ `gamepads(batch)` takes `{index,connected,mapping?,axes?,buttons?:[{value,pressed}]}` records.
106
+ Validate the whole batch before changing anything: unique nonnegative integer indices, bool
107
+ connection/press flags, finite axes in [-1,1] and values in [0,1]. First connection emits connected;
108
+ disconnection of an existing pad emits disconnected. Changed axes/buttons emit in index order,
109
+ with missing previous values treated as zero/unpressed. Inputs repeat neither a connection nor
110
+ an unchanged button. Stored records copy caller arrays. Omitted pad indices are unchanged; hosts
111
+ send an explicit disconnected record. This operation queues actions and requires a step to commit.
112
+
113
+ ## Collapse and Solo
114
+
115
+ Every node accepts animatable `collapsed` (bool, false) and `pointerEnabled` (bool, true), and
116
+ static `opaque` (bool) and `cursor` (`arrow`, `hidden`, `pointer`, `resize-horizontal`,
117
+ `resize-vertical`, `text`). A group may explicitly author animatable `solo`: zero-based selected
118
+ direct-child index, with -1 selecting none. Omission leaves every child active. Inactive siblings
119
+ collapse with their descendants for rendering and hits. Input adds ancestor draw dependencies,
120
+ so animating a selection updates descendants in both retained SVG and canvas. Collapse does not
121
+ pause child clocks or remove state; it changes draw/hit eligibility.
122
+
123
+ ## Diagnostics and script integration
124
+
125
+ Structural errors retain registry diagnostics. `input-index`, `input-modifiers`, `input-write`,
126
+ and `input-solo` report code, JSON pointer, message and corrective hint; their executable fixtures
127
+ are in `test/core/runtime.test.ts`. Unknown event names remain registry `bad-value` diagnostics.
128
+ Components validates scene events against the composed event-kind registry; unknown dotted
129
+ component events remain errors.
130
+
131
+ `core/commands.ts` implements `contact <phase> <id> [x y [button]]`,
132
+ `key <down|up|repeat> <key|Space> [modifiers|-] [target]`,
133
+ `scroll <x> <y> <dx> <dy> [phase] [seconds]`, `gamepads <JSON batch>`,
134
+ `pointer-enable <id> <true|false>`, and `scroll-cancel`. Commands queue actions; the common script
135
+ runner must step(0) after each successful command. These commands use the tooling-only shared dispatcher delegation. Extended listener attributes
136
+ use the generic registry path with JSON-valued compound attributes, without hand hooks.
137
+
138
+ ## Focus integration
139
+
140
+ With `focus` declared, a key is dispatched to the focus owner and its ancestors before
141
+ `focusKey(key,down,shift)` navigates once. Control/Alt/Meta combinations do not navigate. Key up
142
+ does not move focus. Arrows select a spatial neighbor; opt-in inner Tab traversal moves once,
143
+ and an unhandled edge leaves the native browser Tab exit available. Without input, the focus
144
+ web adapter calls the same method. Enter/Space activation stays in the base host.
145
+
146
+ Pointer downs call focus before ordinary down actions and preserve pointer capture. Input's
147
+ pointer-enabled and opaque hit policy gates focus selection; keyboard eligibility is independent
148
+ of pointer enablement. Collapsed/inactive Solo branches are excluded from focus eligibility.
149
+ The DOM adapter prevents the down default from displacing the selected internal focus target.
150
+ Focus supplies `machineFocus(nodeId)` and calls `onChange` when ownership changes, so guards
151
+ wake a settled machine. The pure reader remains false when there is no focus owner.
152
+ See `spec/conformance/input-focus-machine-integration` and the independently bundled browser
153
+ integration tests, in both registration orders and both engines.
154
+
155
+ ## Capability contracts
156
+
157
+ ### host-api-coordinate-mapping
158
+
159
+ Compute fit/alignment transforms and map input coordinates through matrices. The corresponding contract above defines the Anima API and limitations.
160
+ Executable evidence: `spec/conformance/host-api-coordinate-mapping` plus the row-indexed API/browser tests.
161
+ ### host-api-dom-listener-control
162
+
163
+ Enable or remove automatic DOM interaction listeners for authored state machines. The corresponding contract above defines the Anima API and limitations.
164
+ Executable evidence: `spec/conformance/host-api-dom-listener-control` plus the row-indexed API/browser tests.
165
+ ### host-api-gamepad
166
+
167
+ Poll gamepads and route buttons and axes to the graphic; optionally require DOM focus. The corresponding contract above defines the Anima API and limitations.
168
+ Executable evidence: `spec/conformance/host-api-gamepad` plus the row-indexed API/browser tests.
169
+ ### host-api-low-level-pointer
170
+
171
+ Pass pointer down, move, up and exit in artboard coordinates with pointer IDs. The corresponding contract above defines the Anima API and limitations.
172
+ Executable evidence: `spec/conformance/host-api-low-level-pointer` plus the row-indexed API/browser tests.
173
+ ### host-api-low-level-scroll
174
+
175
+ Send indirect wheel/trackpad scrolling separately from direct touch pointer gestures. The corresponding contract above defines the Anima API and limitations.
176
+ Executable evidence: `spec/conformance/host-api-low-level-scroll` plus the row-indexed API/browser tests.
177
+ ### host-api-manual-gamepad-batch
178
+
179
+ Submit a validated batch of controller connection and input records to the focused scene. The corresponding contract above defines the Anima API and limitations.
180
+ Executable evidence: `spec/conformance/host-api-manual-gamepad-batch` plus the row-indexed API/browser tests.
181
+ ### host-api-multitouch
182
+
183
+ Forward multiple touch IDs to authored listeners when enabled. The corresponding contract above defines the Anima API and limitations.
184
+ Executable evidence: `spec/conformance/host-api-multitouch` plus the row-indexed API/browser tests.
185
+ ### host-api-pointer-exit
186
+
187
+ Control dispatch of pointer exit when the pointer leaves the graphic. The corresponding contract above defines the Anima API and limitations.
188
+ Executable evidence: `spec/conformance/host-api-pointer-exit` plus the row-indexed API/browser tests.
189
+ ### host-api-scroll-hit-policy
190
+
191
+ Test whether content wants a scroll or has a wheel target before deciding whether to prevent browser scrolling. The corresponding contract above defines the Anima API and limitations.
192
+ Executable evidence: `spec/conformance/host-api-scroll-hit-policy` plus the row-indexed API/browser tests.
193
+ ### host-api-scroll-latching
194
+
195
+ Track the target latched for a gesture and explicitly cancel it; wheel gestures expire after inactivity. The corresponding contract above defines the Anima API and limitations.
196
+ Executable evidence: `spec/conformance/host-api-scroll-latching` plus the row-indexed API/browser tests.
197
+ ### input-align-preserve
198
+
199
+ Move a target while retaining the offset between its origin and initial grab point. The corresponding contract above defines the Anima API and limitations.
200
+ Executable evidence: `spec/conformance/input-align-preserve` plus the row-indexed API/browser tests.
201
+ ### input-align-snap
202
+
203
+ Move a chosen target's origin to the pointer in its parent's coordinate space. The corresponding contract above defines the Anima API and limitations.
204
+ Executable evidence: `spec/conformance/input-align-snap` plus the row-indexed API/browser tests.
205
+ ### input-bounded-hit-tests
206
+
207
+ Offer a bounded hit-test query that restricts scripted layouts to their declared box. The corresponding contract above defines the Anima API and limitations.
208
+ Executable evidence: `spec/conformance/input-bounded-hit-tests` plus the row-indexed API/browser tests.
209
+ ### input-button-middle
210
+
211
+ Filter down, up, click, and drag input to the middle button. The corresponding contract above defines the Anima API and limitations.
212
+ Executable evidence: `spec/conformance/input-button-middle` plus the row-indexed API/browser tests.
213
+ ### input-button-secondary
214
+
215
+ Filter down, up, click, and drag input to the secondary button. The corresponding contract above defines the Anima API and limitations.
216
+ Executable evidence: `spec/conformance/input-button-secondary` plus the row-indexed API/browser tests.
217
+ ### input-capture-phase
218
+
219
+ Run listeners from outer scopes inward before normal target handling; supported capture handlers can claim input. The corresponding contract above defines the Anima API and limitations.
220
+ Executable evidence: `spec/conformance/input-capture-phase` plus the row-indexed API/browser tests.
221
+ ### input-cursor-arrow
222
+
223
+ Restore the default arrow cursor. The corresponding contract above defines the Anima API and limitations.
224
+ Executable evidence: `spec/conformance/input-cursor-arrow` plus the row-indexed API/browser tests.
225
+ ### input-cursor-hidden
226
+
227
+ Hide the native pointer. The corresponding contract above defines the Anima API and limitations.
228
+ Executable evidence: `spec/conformance/input-cursor-hidden` plus the row-indexed API/browser tests.
229
+ ### input-cursor-intent
230
+
231
+ Have scene data request an arrow, hand, horizontal or vertical resize, text, or hidden cursor; the CLI host currently applies this only on macOS and Linux. The corresponding contract above defines the Anima API and limitations.
232
+ Executable evidence: `spec/conformance/input-cursor-intent` plus the row-indexed API/browser tests.
233
+ ### input-cursor-pointer
234
+
235
+ Request the native pointing-hand cursor. The corresponding contract above defines the Anima API and limitations.
236
+ Executable evidence: `spec/conformance/input-cursor-pointer` plus the row-indexed API/browser tests.
237
+ ### input-cursor-resize-horizontal
238
+
239
+ Request a horizontal resize cursor. The corresponding contract above defines the Anima API and limitations.
240
+ Executable evidence: `spec/conformance/input-cursor-resize-horizontal` plus the row-indexed API/browser tests.
241
+ ### input-cursor-resize-vertical
242
+
243
+ Request a vertical resize cursor. The corresponding contract above defines the Anima API and limitations.
244
+ Executable evidence: `spec/conformance/input-cursor-resize-vertical` plus the row-indexed API/browser tests.
245
+ ### input-cursor-text
246
+
247
+ Request a text-editing I-beam cursor. The corresponding contract above defines the Anima API and limitations.
248
+ Executable evidence: `spec/conformance/input-cursor-text` plus the row-indexed API/browser tests.
249
+ ### input-disable-listeners
250
+
251
+ Let the embed disable installation of DOM interaction handlers. The corresponding contract above defines the Anima API and limitations.
252
+ Executable evidence: `spec/conformance/input-disable-listeners` plus the row-indexed API/browser tests.
253
+ ### input-gamepad-axis
254
+
255
+ React to controller axis events with an authored input filter. The corresponding contract above defines the Anima API and limitations.
256
+ Executable evidence: `spec/conformance/input-gamepad-axis` plus the row-indexed API/browser tests.
257
+ ### input-gamepad-button
258
+
259
+ React to controller button events with an authored input filter. The corresponding contract above defines the Anima API and limitations.
260
+ Executable evidence: `spec/conformance/input-gamepad-button` plus the row-indexed API/browser tests.
261
+ ### input-gamepad-button-phases
262
+
263
+ Filter a controller button to press, release, or both. The corresponding contract above defines the Anima API and limitations.
264
+ Executable evidence: `spec/conformance/input-gamepad-button-phases` plus the row-indexed API/browser tests.
265
+ ### input-gamepad-connected
266
+
267
+ React to controller connected events with an authored input filter. The corresponding contract above defines the Anima API and limitations.
268
+ Executable evidence: `spec/conformance/input-gamepad-connected` plus the row-indexed API/browser tests.
269
+ ### input-gamepad-disconnected
270
+
271
+ React to controller disconnected events with an authored input filter. The corresponding contract above defines the Anima API and limitations.
272
+ Executable evidence: `spec/conformance/input-gamepad-disconnected` plus the row-indexed API/browser tests.
273
+ ### input-gamepad-host
274
+
275
+ Poll browser controllers and feed batched events into the focused scene, optionally requiring canvas focus. The corresponding contract above defines the Anima API and limitations.
276
+ Executable evidence: `spec/conformance/input-gamepad-host` plus the row-indexed API/browser tests.
277
+ ### input-gamepad-index-mapping
278
+
279
+ Address either W3C standard button/axis slots or raw controller indices. The corresponding contract above defines the Anima API and limitations.
280
+ Executable evidence: `spec/conformance/input-gamepad-index-mapping` plus the row-indexed API/browser tests.
281
+ ### input-hit-occlusion-query
282
+
283
+ Ask whether an opaque target blocks interaction at a point, including whether it blocks scrolling. The corresponding contract above defines the Anima API and limitations.
284
+ Executable evidence: `spec/conformance/input-hit-occlusion-query` plus the row-indexed API/browser tests.
285
+ ### input-hit-parent-chain
286
+
287
+ Walk the component ancestry as part of a target's hit eligibility. The corresponding contract above defines the Anima API and limitations.
288
+ Executable evidence: `spec/conformance/input-hit-parent-chain` plus the row-indexed API/browser tests.
289
+ ### input-hit-shape-geometry
290
+
291
+ Use world bounds as a broad-phase check and transformed contour geometry for the precise shape test. The corresponding contract above defines the Anima API and limitations.
292
+ Executable evidence: `spec/conformance/input-hit-shape-geometry` plus the row-indexed API/browser tests.
293
+ ### input-hit-test-host
294
+
295
+ Ask whether a point hits the machine's interactive scene. The corresponding contract above defines the Anima API and limitations.
296
+ Executable evidence: `spec/conformance/input-hit-test-host` plus the row-indexed API/browser tests.
297
+ ### input-key-down
298
+
299
+ Select the down phase of a keystroke using a phase mask. The corresponding contract above defines the Anima API and limitations.
300
+ Executable evidence: `spec/conformance/input-key-down` plus the row-indexed API/browser tests.
301
+ ### input-key-filter
302
+
303
+ Match a specific keyboard key or a wildcard across printable, navigation, function, and keypad keys. The corresponding contract above defines the Anima API and limitations.
304
+ Executable evidence: `spec/conformance/input-key-filter` plus the row-indexed API/browser tests.
305
+ ### input-key-modifiers
306
+
307
+ Match the exact held combination of Shift, Control, Alt, and Meta. The corresponding contract above defines the Anima API and limitations.
308
+ Executable evidence: `spec/conformance/input-key-modifiers` plus the row-indexed API/browser tests.
309
+ ### input-key-repeat
310
+
311
+ Select the repeat phase of a keystroke using a phase mask. The corresponding contract above defines the Anima API and limitations.
312
+ Executable evidence: `spec/conformance/input-key-repeat` plus the row-indexed API/browser tests.
313
+ ### input-key-up
314
+
315
+ Select the up phase of a keystroke using a phase mask. The corresponding contract above defines the Anima API and limitations.
316
+ Executable evidence: `spec/conformance/input-key-up` plus the row-indexed API/browser tests.
317
+ ### input-keyboard-bubbling
318
+
319
+ Offer key events to the focused node and then its ancestors until consumed. The corresponding contract above defines the Anima API and limitations.
320
+ Executable evidence: `spec/conformance/input-keyboard-bubbling` plus the row-indexed API/browser tests.
321
+ ### input-multi-touch
322
+
323
+ Route multiple concurrent contacts by pointer ID rather than treating every contact as one pointer. The corresponding contract above defines the Anima API and limitations.
324
+ Executable evidence: `spec/conformance/input-multi-touch` plus the row-indexed API/browser tests.
325
+ ### input-multi-trigger-listener
326
+
327
+ Attach several input-type children so one action responds to multiple trigger families. The corresponding contract above defines the Anima API and limitations.
328
+ Executable evidence: `spec/conformance/input-multi-trigger-listener` plus the row-indexed API/browser tests.
329
+ ### input-opaque-targets
330
+
331
+ Stop pointer hit traversal at an opaque target instead of activating lower objects. The corresponding contract above defines the Anima API and limitations.
332
+ Executable evidence: `spec/conformance/input-opaque-targets` plus the row-indexed API/browser tests.
333
+ ### input-pointer-cancel
334
+
335
+ Release and exit cancelled contacts using their last known positions. The corresponding contract above defines the Anima API and limitations.
336
+ Executable evidence: `spec/conformance/input-pointer-cancel` plus the row-indexed API/browser tests.
337
+ ### input-pointer-drag
338
+
339
+ React continuously while a pressed pointer drags a target, including outside its initial bounds. The corresponding contract above defines the Anima API and limitations.
340
+ Executable evidence: `spec/conformance/input-pointer-drag` plus the row-indexed API/browser tests.
341
+ ### input-pointer-drag-end
342
+
343
+ React when an active drag ends. The corresponding contract above defines the Anima API and limitations.
344
+ Executable evidence: `spec/conformance/input-pointer-drag-end` plus the row-indexed API/browser tests.
345
+ ### input-pointer-drag-start
346
+
347
+ React once a target's drag begins. The corresponding contract above defines the Anima API and limitations.
348
+ Executable evidence: `spec/conformance/input-pointer-drag-start` plus the row-indexed API/browser tests.
349
+ ### input-pointer-enable
350
+
351
+ Disable or re-enable pointer delivery per pointer identifier. The corresponding contract above defines the Anima API and limitations.
352
+ Executable evidence: `spec/conformance/input-pointer-enable` plus the row-indexed API/browser tests.
353
+ ### input-touch-page-scroll
354
+
355
+ Let the embed choose whether touch gestures also scroll the surrounding page. The corresponding contract above defines the Anima API and limitations.
356
+ Executable evidence: `spec/conformance/input-touch-page-scroll` plus the row-indexed API/browser tests.
357
+ ### input-trackpad-scroll
358
+
359
+ Pass precise scroll deltas and gesture phase so trackpad scrolling can settle or fling appropriately. The corresponding contract above defines the Anima API and limitations.
360
+ Executable evidence: `spec/conformance/input-trackpad-scroll` plus the row-indexed API/browser tests.
361
+ ### input-wheel-scroll
362
+
363
+ Forward wheel deltas to scrollable scene content and consume the DOM wheel only when the scene handles it. The corresponding contract above defines the Anima API and limitations.
364
+ Executable evidence: `spec/conformance/input-wheel-scroll` plus the row-indexed API/browser tests.
365
+ ### transforms-collapse
366
+
367
+ Propagate collapsed state through inactive Solo branches to suppress descendants. The corresponding contract above defines the Anima API and limitations.
368
+ Executable evidence: `spec/conformance/transforms-collapse` plus the row-indexed API/browser tests.
369
+ ### transforms-solo
370
+
371
+ Render one selected direct child while collapsing the others. The corresponding contract above defines the Anima API and limitations.
372
+ Executable evidence: `spec/conformance/transforms-solo` plus the row-indexed API/browser tests.
373
+
374
+ ## Data event writes (P3b)
375
+
376
+ `write="$path" value="pointer-x|pointer-y|pointer-delta-x|pointer-delta-y|key-pressed"`
377
+ uses one selected source (the bars here denote alternatives, not a literal value). JSON uses
378
+ `write: "$path", value: "pointer-x"`. The existing map form also accepts all five source keys.
379
+ The pointer values use root grid coordinates before optional drag alignment; deltas compare the
380
+ previous event of the same pointer and are zero initially or on cancellation. `key-pressed` is
381
+ the key name string, including on a selected repeat/up event. It does not mean a boolean pressed
382
+ flag (`pressed` already supplies that). Targets must be writable number/string inputs or data
383
+ paths. Wrong types, read-only targets and unknown sources are `input-write`, with a JSON pointer,
384
+ message and hint. Writes follow the existing next-step FIFO. Native headless pointer captures
385
+ match exactly; key-name payload has an evidenced CLI synthesis limit (oracle skip).
386
+
387
+ ## Repeated-player input configuration (BF-4)
388
+
389
+ Input listener configuration follows the compiled input-table identity, retained when lists
390
+ creates a renderer-local Model clone. Each player still owns its controller, contacts and queued
391
+ writes. Pointer and keyboard routing include live repeated items as well as component instances;
392
+ repeat spacing participates in the pointer matrix, and `rows.index.child` names the key target.
393
+ Missing/removed rows are not retained input targets. This restores ordinary listener set/copy and
394
+ `write` data paths in scenes using lists, without changing data storage or scoping rules.
395
+ The regression fixture uses explicit data contexts through two component levels; implicit context
396
+ propagation is owned by BF-1. The model/runtime separation follows the graph research in
397
+ `docs/research/rive-format-and-graph.md`; no external runtime algorithm is ported.
@@ -0,0 +1,32 @@
1
+ {
2
+ "anima": "0.1",
3
+ "name": "host-api-coordinate-mapping",
4
+ "grid": 20,
5
+ "requires": ["input"],
6
+ "inputs": {
7
+ "n": {
8
+ "type": "number"
9
+ }
10
+ },
11
+ "nodes": [
12
+ {
13
+ "id": "disc",
14
+ "type": "circle",
15
+ "center": [10, 10],
16
+ "r": 5,
17
+ "fill": {
18
+ "color": "#000"
19
+ }
20
+ }
21
+ ],
22
+ "listeners": [
23
+ {
24
+ "on": "down",
25
+ "target": "disc",
26
+ "set": {},
27
+ "write": {
28
+ "pointerId": "n"
29
+ }
30
+ }
31
+ ]
32
+ }
@@ -0,0 +1,7 @@
1
+ <anima version="0.1" name="host-api-coordinate-mapping" grid="20" requires="input">
2
+ <number name="n"/>
3
+
4
+ <circle id="disc" cx="10" cy="10" r="5" fill="#000"/>
5
+
6
+ <listener on="down" target="disc" write="{&quot;pointerId&quot;:&quot;n&quot;}"/>
7
+ </anima>
@@ -0,0 +1,32 @@
1
+ {
2
+ "anima": "0.1",
3
+ "name": "host-api-dom-listener-control",
4
+ "grid": 20,
5
+ "requires": ["input"],
6
+ "inputs": {
7
+ "n": {
8
+ "type": "number"
9
+ }
10
+ },
11
+ "nodes": [
12
+ {
13
+ "id": "disc",
14
+ "type": "circle",
15
+ "center": [10, 10],
16
+ "r": 5,
17
+ "fill": {
18
+ "color": "#000"
19
+ }
20
+ }
21
+ ],
22
+ "listeners": [
23
+ {
24
+ "on": "down",
25
+ "target": "disc",
26
+ "set": {},
27
+ "write": {
28
+ "pointerId": "n"
29
+ }
30
+ }
31
+ ]
32
+ }
@@ -0,0 +1,7 @@
1
+ <anima version="0.1" name="host-api-dom-listener-control" grid="20" requires="input">
2
+ <number name="n"/>
3
+
4
+ <circle id="disc" cx="10" cy="10" r="5" fill="#000"/>
5
+
6
+ <listener on="down" target="disc" write="{&quot;pointerId&quot;:&quot;n&quot;}"/>
7
+ </anima>