@prestyj/cli 5.27.0 → 5.28.1

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 (741) hide show
  1. package/README.md +9 -7
  2. package/assets/motion/BRAG-LICENSE +21 -0
  3. package/assets/motion/HYPERFRAMES-LICENSE +190 -0
  4. package/assets/motion/THIRD-PARTY.md +52 -0
  5. package/assets/motion/assets/music/README.md +20 -0
  6. package/assets/motion/assets/music/cues/happy-beats-business-moves-vol-1-by-ende-dot-app.music-cues.json +3846 -0
  7. package/assets/motion/assets/music/cues/happy-beats-business-moves-vol-1-by-ende-dot-app.music-cues.md +35 -0
  8. package/assets/motion/assets/music/cues/happy-beats-business-moves-vol-10-by-ende-dot-app.music-cues.json +1826 -0
  9. package/assets/motion/assets/music/cues/happy-beats-business-moves-vol-10-by-ende-dot-app.music-cues.md +35 -0
  10. package/assets/motion/assets/music/cues/happy-beats-business-moves-vol-11-by-ende-dot-app.music-cues.json +2266 -0
  11. package/assets/motion/assets/music/cues/happy-beats-business-moves-vol-11-by-ende-dot-app.music-cues.md +35 -0
  12. package/assets/motion/assets/music/cues/happy-beats-business-moves-vol-12-by-ende-dot-app.music-cues.json +2806 -0
  13. package/assets/motion/assets/music/cues/happy-beats-business-moves-vol-12-by-ende-dot-app.music-cues.md +35 -0
  14. package/assets/motion/assets/music/cues/happy-beats-business-moves-vol-9-by-ende-dot-app.music-cues.json +2796 -0
  15. package/assets/motion/assets/music/cues/happy-beats-business-moves-vol-9-by-ende-dot-app.music-cues.md +35 -0
  16. package/assets/motion/assets/music/happy-beats-business-moves-vol-1-by-ende-dot-app.mp3 +0 -0
  17. package/assets/motion/assets/music/happy-beats-business-moves-vol-10-by-ende-dot-app.mp3 +0 -0
  18. package/assets/motion/assets/music/happy-beats-business-moves-vol-11-by-ende-dot-app.mp3 +0 -0
  19. package/assets/motion/assets/music/happy-beats-business-moves-vol-12-by-ende-dot-app.mp3 +0 -0
  20. package/assets/motion/assets/music/happy-beats-business-moves-vol-9-by-ende-dot-app.mp3 +0 -0
  21. package/assets/motion/assets/sfx/casino/card-fan-1.ogg +0 -0
  22. package/assets/motion/assets/sfx/casino/card-fan-2.ogg +0 -0
  23. package/assets/motion/assets/sfx/casino/card-place-1.ogg +0 -0
  24. package/assets/motion/assets/sfx/casino/card-place-2.ogg +0 -0
  25. package/assets/motion/assets/sfx/casino/card-place-3.ogg +0 -0
  26. package/assets/motion/assets/sfx/casino/card-place-4.ogg +0 -0
  27. package/assets/motion/assets/sfx/casino/card-shove-1.ogg +0 -0
  28. package/assets/motion/assets/sfx/casino/card-shove-2.ogg +0 -0
  29. package/assets/motion/assets/sfx/casino/card-shove-3.ogg +0 -0
  30. package/assets/motion/assets/sfx/casino/card-shove-4.ogg +0 -0
  31. package/assets/motion/assets/sfx/casino/card-shuffle.ogg +0 -0
  32. package/assets/motion/assets/sfx/casino/card-slide-1.ogg +0 -0
  33. package/assets/motion/assets/sfx/casino/card-slide-2.ogg +0 -0
  34. package/assets/motion/assets/sfx/casino/card-slide-3.ogg +0 -0
  35. package/assets/motion/assets/sfx/casino/card-slide-4.ogg +0 -0
  36. package/assets/motion/assets/sfx/casino/card-slide-5.ogg +0 -0
  37. package/assets/motion/assets/sfx/casino/card-slide-6.ogg +0 -0
  38. package/assets/motion/assets/sfx/casino/card-slide-7.ogg +0 -0
  39. package/assets/motion/assets/sfx/casino/card-slide-8.ogg +0 -0
  40. package/assets/motion/assets/sfx/casino/cards-pack-open-1.ogg +0 -0
  41. package/assets/motion/assets/sfx/casino/cards-pack-open-2.ogg +0 -0
  42. package/assets/motion/assets/sfx/casino/chip-lay-1.ogg +0 -0
  43. package/assets/motion/assets/sfx/casino/chip-lay-2.ogg +0 -0
  44. package/assets/motion/assets/sfx/casino/chip-lay-3.ogg +0 -0
  45. package/assets/motion/assets/sfx/casino/chips-collide-1.ogg +0 -0
  46. package/assets/motion/assets/sfx/casino/chips-collide-2.ogg +0 -0
  47. package/assets/motion/assets/sfx/casino/chips-collide-3.ogg +0 -0
  48. package/assets/motion/assets/sfx/casino/chips-collide-4.ogg +0 -0
  49. package/assets/motion/assets/sfx/casino/chips-handle-1.ogg +0 -0
  50. package/assets/motion/assets/sfx/casino/chips-handle-2.ogg +0 -0
  51. package/assets/motion/assets/sfx/casino/chips-handle-3.ogg +0 -0
  52. package/assets/motion/assets/sfx/casino/chips-handle-4.ogg +0 -0
  53. package/assets/motion/assets/sfx/casino/chips-handle-6.ogg +0 -0
  54. package/assets/motion/assets/sfx/casino/chips-stack-1.ogg +0 -0
  55. package/assets/motion/assets/sfx/casino/chips-stack-2.ogg +0 -0
  56. package/assets/motion/assets/sfx/casino/chips-stack-3.ogg +0 -0
  57. package/assets/motion/assets/sfx/casino/chips-stack-4.ogg +0 -0
  58. package/assets/motion/assets/sfx/casino/chips-stack-5.ogg +0 -0
  59. package/assets/motion/assets/sfx/casino/chips-stack-6.ogg +0 -0
  60. package/assets/motion/assets/sfx/casino/dice-grab-1.ogg +0 -0
  61. package/assets/motion/assets/sfx/casino/dice-grab-2.ogg +0 -0
  62. package/assets/motion/assets/sfx/casino/dice-shake-1.ogg +0 -0
  63. package/assets/motion/assets/sfx/casino/dice-shake-2.ogg +0 -0
  64. package/assets/motion/assets/sfx/casino/dice-shake-3.ogg +0 -0
  65. package/assets/motion/assets/sfx/casino/dice-throw-1.ogg +0 -0
  66. package/assets/motion/assets/sfx/casino/dice-throw-2.ogg +0 -0
  67. package/assets/motion/assets/sfx/casino/dice-throw-3.ogg +0 -0
  68. package/assets/motion/assets/sfx/casino/die-throw-1.ogg +0 -0
  69. package/assets/motion/assets/sfx/casino/die-throw-2.ogg +0 -0
  70. package/assets/motion/assets/sfx/casino/die-throw-3.ogg +0 -0
  71. package/assets/motion/assets/sfx/casino/die-throw-4.ogg +0 -0
  72. package/assets/motion/assets/sfx/impact/footstep_carpet_000.ogg +0 -0
  73. package/assets/motion/assets/sfx/impact/footstep_carpet_003.ogg +0 -0
  74. package/assets/motion/assets/sfx/impact/footstep_carpet_004.ogg +0 -0
  75. package/assets/motion/assets/sfx/impact/footstep_concrete_000.ogg +0 -0
  76. package/assets/motion/assets/sfx/impact/footstep_concrete_001.ogg +0 -0
  77. package/assets/motion/assets/sfx/impact/footstep_concrete_002.ogg +0 -0
  78. package/assets/motion/assets/sfx/impact/footstep_concrete_003.ogg +0 -0
  79. package/assets/motion/assets/sfx/impact/footstep_concrete_004.ogg +0 -0
  80. package/assets/motion/assets/sfx/impact/footstep_grass_000.ogg +0 -0
  81. package/assets/motion/assets/sfx/impact/footstep_grass_001.ogg +0 -0
  82. package/assets/motion/assets/sfx/impact/footstep_grass_002.ogg +0 -0
  83. package/assets/motion/assets/sfx/impact/footstep_grass_003.ogg +0 -0
  84. package/assets/motion/assets/sfx/impact/footstep_grass_004.ogg +0 -0
  85. package/assets/motion/assets/sfx/impact/footstep_snow_000.ogg +0 -0
  86. package/assets/motion/assets/sfx/impact/footstep_snow_001.ogg +0 -0
  87. package/assets/motion/assets/sfx/impact/footstep_snow_002.ogg +0 -0
  88. package/assets/motion/assets/sfx/impact/footstep_snow_003.ogg +0 -0
  89. package/assets/motion/assets/sfx/impact/footstep_snow_004.ogg +0 -0
  90. package/assets/motion/assets/sfx/impact/footstep_wood_000.ogg +0 -0
  91. package/assets/motion/assets/sfx/impact/footstep_wood_001.ogg +0 -0
  92. package/assets/motion/assets/sfx/impact/footstep_wood_002.ogg +0 -0
  93. package/assets/motion/assets/sfx/impact/footstep_wood_003.ogg +0 -0
  94. package/assets/motion/assets/sfx/impact/footstep_wood_004.ogg +0 -0
  95. package/assets/motion/assets/sfx/impact/impactBell_heavy_000.ogg +0 -0
  96. package/assets/motion/assets/sfx/impact/impactBell_heavy_003.ogg +0 -0
  97. package/assets/motion/assets/sfx/impact/impactBell_heavy_004.ogg +0 -0
  98. package/assets/motion/assets/sfx/impact/impactGeneric_light_000.ogg +0 -0
  99. package/assets/motion/assets/sfx/impact/impactGeneric_light_001.ogg +0 -0
  100. package/assets/motion/assets/sfx/impact/impactGeneric_light_002.ogg +0 -0
  101. package/assets/motion/assets/sfx/impact/impactGeneric_light_003.ogg +0 -0
  102. package/assets/motion/assets/sfx/impact/impactGeneric_light_004.ogg +0 -0
  103. package/assets/motion/assets/sfx/impact/impactGlass_heavy_002.ogg +0 -0
  104. package/assets/motion/assets/sfx/impact/impactGlass_light_001.ogg +0 -0
  105. package/assets/motion/assets/sfx/impact/impactGlass_light_002.ogg +0 -0
  106. package/assets/motion/assets/sfx/impact/impactGlass_light_003.ogg +0 -0
  107. package/assets/motion/assets/sfx/impact/impactGlass_medium_000.ogg +0 -0
  108. package/assets/motion/assets/sfx/impact/impactGlass_medium_002.ogg +0 -0
  109. package/assets/motion/assets/sfx/impact/impactGlass_medium_004.ogg +0 -0
  110. package/assets/motion/assets/sfx/impact/impactMetal_heavy_000.ogg +0 -0
  111. package/assets/motion/assets/sfx/impact/impactMetal_heavy_002.ogg +0 -0
  112. package/assets/motion/assets/sfx/impact/impactMetal_heavy_004.ogg +0 -0
  113. package/assets/motion/assets/sfx/impact/impactMetal_light_002.ogg +0 -0
  114. package/assets/motion/assets/sfx/impact/impactMetal_light_003.ogg +0 -0
  115. package/assets/motion/assets/sfx/impact/impactMetal_medium_000.ogg +0 -0
  116. package/assets/motion/assets/sfx/impact/impactMetal_medium_001.ogg +0 -0
  117. package/assets/motion/assets/sfx/impact/impactMetal_medium_002.ogg +0 -0
  118. package/assets/motion/assets/sfx/impact/impactMetal_medium_003.ogg +0 -0
  119. package/assets/motion/assets/sfx/impact/impactMetal_medium_004.ogg +0 -0
  120. package/assets/motion/assets/sfx/impact/impactMining_001.ogg +0 -0
  121. package/assets/motion/assets/sfx/impact/impactPlank_medium_000.ogg +0 -0
  122. package/assets/motion/assets/sfx/impact/impactPlank_medium_001.ogg +0 -0
  123. package/assets/motion/assets/sfx/impact/impactPlank_medium_002.ogg +0 -0
  124. package/assets/motion/assets/sfx/impact/impactPlank_medium_003.ogg +0 -0
  125. package/assets/motion/assets/sfx/impact/impactPlank_medium_004.ogg +0 -0
  126. package/assets/motion/assets/sfx/impact/impactPlate_heavy_000.ogg +0 -0
  127. package/assets/motion/assets/sfx/impact/impactPlate_heavy_001.ogg +0 -0
  128. package/assets/motion/assets/sfx/impact/impactPlate_heavy_002.ogg +0 -0
  129. package/assets/motion/assets/sfx/impact/impactPlate_heavy_003.ogg +0 -0
  130. package/assets/motion/assets/sfx/impact/impactPlate_heavy_004.ogg +0 -0
  131. package/assets/motion/assets/sfx/impact/impactPlate_light_000.ogg +0 -0
  132. package/assets/motion/assets/sfx/impact/impactPlate_light_001.ogg +0 -0
  133. package/assets/motion/assets/sfx/impact/impactPlate_light_002.ogg +0 -0
  134. package/assets/motion/assets/sfx/impact/impactPlate_light_003.ogg +0 -0
  135. package/assets/motion/assets/sfx/impact/impactPlate_light_004.ogg +0 -0
  136. package/assets/motion/assets/sfx/impact/impactPlate_medium_000.ogg +0 -0
  137. package/assets/motion/assets/sfx/impact/impactPlate_medium_001.ogg +0 -0
  138. package/assets/motion/assets/sfx/impact/impactPlate_medium_002.ogg +0 -0
  139. package/assets/motion/assets/sfx/impact/impactPlate_medium_003.ogg +0 -0
  140. package/assets/motion/assets/sfx/impact/impactPlate_medium_004.ogg +0 -0
  141. package/assets/motion/assets/sfx/impact/impactPunch_heavy_000.ogg +0 -0
  142. package/assets/motion/assets/sfx/impact/impactPunch_heavy_001.ogg +0 -0
  143. package/assets/motion/assets/sfx/impact/impactPunch_heavy_002.ogg +0 -0
  144. package/assets/motion/assets/sfx/impact/impactPunch_heavy_003.ogg +0 -0
  145. package/assets/motion/assets/sfx/impact/impactPunch_heavy_004.ogg +0 -0
  146. package/assets/motion/assets/sfx/impact/impactPunch_medium_000.ogg +0 -0
  147. package/assets/motion/assets/sfx/impact/impactPunch_medium_001.ogg +0 -0
  148. package/assets/motion/assets/sfx/impact/impactPunch_medium_002.ogg +0 -0
  149. package/assets/motion/assets/sfx/impact/impactPunch_medium_003.ogg +0 -0
  150. package/assets/motion/assets/sfx/impact/impactPunch_medium_004.ogg +0 -0
  151. package/assets/motion/assets/sfx/impact/impactSoft_heavy_000.ogg +0 -0
  152. package/assets/motion/assets/sfx/impact/impactSoft_heavy_001.ogg +0 -0
  153. package/assets/motion/assets/sfx/impact/impactSoft_heavy_002.ogg +0 -0
  154. package/assets/motion/assets/sfx/impact/impactSoft_heavy_003.ogg +0 -0
  155. package/assets/motion/assets/sfx/impact/impactSoft_heavy_004.ogg +0 -0
  156. package/assets/motion/assets/sfx/impact/impactSoft_medium_000.ogg +0 -0
  157. package/assets/motion/assets/sfx/impact/impactSoft_medium_001.ogg +0 -0
  158. package/assets/motion/assets/sfx/impact/impactSoft_medium_002.ogg +0 -0
  159. package/assets/motion/assets/sfx/impact/impactSoft_medium_003.ogg +0 -0
  160. package/assets/motion/assets/sfx/impact/impactSoft_medium_004.ogg +0 -0
  161. package/assets/motion/assets/sfx/impact/impactTin_medium_000.ogg +0 -0
  162. package/assets/motion/assets/sfx/impact/impactTin_medium_001.ogg +0 -0
  163. package/assets/motion/assets/sfx/impact/impactTin_medium_002.ogg +0 -0
  164. package/assets/motion/assets/sfx/impact/impactTin_medium_003.ogg +0 -0
  165. package/assets/motion/assets/sfx/impact/impactTin_medium_004.ogg +0 -0
  166. package/assets/motion/assets/sfx/impact/impactWood_heavy_000.ogg +0 -0
  167. package/assets/motion/assets/sfx/impact/impactWood_heavy_001.ogg +0 -0
  168. package/assets/motion/assets/sfx/impact/impactWood_heavy_002.ogg +0 -0
  169. package/assets/motion/assets/sfx/impact/impactWood_heavy_003.ogg +0 -0
  170. package/assets/motion/assets/sfx/impact/impactWood_heavy_004.ogg +0 -0
  171. package/assets/motion/assets/sfx/impact/impactWood_light_000.ogg +0 -0
  172. package/assets/motion/assets/sfx/impact/impactWood_light_001.ogg +0 -0
  173. package/assets/motion/assets/sfx/impact/impactWood_light_002.ogg +0 -0
  174. package/assets/motion/assets/sfx/impact/impactWood_light_003.ogg +0 -0
  175. package/assets/motion/assets/sfx/impact/impactWood_light_004.ogg +0 -0
  176. package/assets/motion/assets/sfx/impact/impactWood_medium_000.ogg +0 -0
  177. package/assets/motion/assets/sfx/impact/impactWood_medium_001.ogg +0 -0
  178. package/assets/motion/assets/sfx/impact/impactWood_medium_002.ogg +0 -0
  179. package/assets/motion/assets/sfx/impact/impactWood_medium_003.ogg +0 -0
  180. package/assets/motion/assets/sfx/impact/impactWood_medium_004.ogg +0 -0
  181. package/assets/motion/assets/sfx/interface/bong_001.ogg +0 -0
  182. package/assets/motion/assets/sfx/interface/click_001.ogg +0 -0
  183. package/assets/motion/assets/sfx/interface/click_002.ogg +0 -0
  184. package/assets/motion/assets/sfx/interface/click_003.ogg +0 -0
  185. package/assets/motion/assets/sfx/interface/click_004.ogg +0 -0
  186. package/assets/motion/assets/sfx/interface/click_005.ogg +0 -0
  187. package/assets/motion/assets/sfx/interface/drop_001.ogg +0 -0
  188. package/assets/motion/assets/sfx/interface/drop_002.ogg +0 -0
  189. package/assets/motion/assets/sfx/interface/drop_003.ogg +0 -0
  190. package/assets/motion/assets/sfx/interface/error_005.ogg +0 -0
  191. package/assets/motion/assets/sfx/interface/error_006.ogg +0 -0
  192. package/assets/motion/assets/sfx/interface/glitch_002.ogg +0 -0
  193. package/assets/motion/assets/sfx/interface/glitch_004.ogg +0 -0
  194. package/assets/motion/assets/sfx/interface/select_008.ogg +0 -0
  195. package/assets/motion/assets/sfx/interface/switch_001.ogg +0 -0
  196. package/assets/motion/assets/sfx/interface/switch_002.ogg +0 -0
  197. package/assets/motion/assets/sfx/interface/switch_004.ogg +0 -0
  198. package/assets/motion/assets/sfx/interface/switch_005.ogg +0 -0
  199. package/assets/motion/assets/sfx/interface/switch_006.ogg +0 -0
  200. package/assets/motion/assets/sfx/interface/switch_007.ogg +0 -0
  201. package/assets/motion/assets/sfx/keyboard/keypress-001.wav +0 -0
  202. package/assets/motion/assets/sfx/keyboard/keypress-002.wav +0 -0
  203. package/assets/motion/assets/sfx/keyboard/keypress-003.wav +0 -0
  204. package/assets/motion/assets/sfx/keyboard/keypress-004.wav +0 -0
  205. package/assets/motion/assets/sfx/keyboard/keypress-005.wav +0 -0
  206. package/assets/motion/assets/sfx/keyboard/keypress-006.wav +0 -0
  207. package/assets/motion/assets/sfx/keyboard/keypress-007.wav +0 -0
  208. package/assets/motion/assets/sfx/keyboard/keypress-008.wav +0 -0
  209. package/assets/motion/assets/sfx/keyboard/keypress-009.wav +0 -0
  210. package/assets/motion/assets/sfx/keyboard/keypress-010.wav +0 -0
  211. package/assets/motion/assets/sfx/keyboard/keypress-011.wav +0 -0
  212. package/assets/motion/assets/sfx/keyboard/keypress-012.wav +0 -0
  213. package/assets/motion/assets/sfx/keyboard/keypress-013.wav +0 -0
  214. package/assets/motion/assets/sfx/keyboard/keypress-014.wav +0 -0
  215. package/assets/motion/assets/sfx/keyboard/keypress-015.wav +0 -0
  216. package/assets/motion/assets/sfx/keyboard/keypress-016.wav +0 -0
  217. package/assets/motion/assets/sfx/keyboard/keypress-017.wav +0 -0
  218. package/assets/motion/assets/sfx/keyboard/keypress-018.wav +0 -0
  219. package/assets/motion/assets/sfx/keyboard/keypress-019.wav +0 -0
  220. package/assets/motion/assets/sfx/keyboard/keypress-020.wav +0 -0
  221. package/assets/motion/assets/sfx/keyboard/keypress-021.wav +0 -0
  222. package/assets/motion/assets/sfx/keyboard/keypress-022.wav +0 -0
  223. package/assets/motion/assets/sfx/keyboard/keypress-023.wav +0 -0
  224. package/assets/motion/assets/sfx/keyboard/keypress-024.wav +0 -0
  225. package/assets/motion/assets/sfx/keyboard/keypress-025.wav +0 -0
  226. package/assets/motion/assets/sfx/keyboard/keypress-026.wav +0 -0
  227. package/assets/motion/assets/sfx/keyboard/keypress-027.wav +0 -0
  228. package/assets/motion/assets/sfx/keyboard/keypress-028.wav +0 -0
  229. package/assets/motion/assets/sfx/keyboard/keypress-029.wav +0 -0
  230. package/assets/motion/assets/sfx/keyboard/keypress-030.wav +0 -0
  231. package/assets/motion/assets/sfx/keyboard/keypress-031.wav +0 -0
  232. package/assets/motion/assets/sfx/keyboard/keypress-032.wav +0 -0
  233. package/assets/motion/assets/sfx/sfx-analysis.json +15584 -0
  234. package/assets/motion/assets/sfx/sfx-analysis.md +75 -0
  235. package/assets/motion/assets/sfx/ui/click1.ogg +0 -0
  236. package/assets/motion/assets/sfx/ui/click2.ogg +0 -0
  237. package/assets/motion/assets/sfx/ui/click3.ogg +0 -0
  238. package/assets/motion/assets/sfx/ui/click4.ogg +0 -0
  239. package/assets/motion/assets/sfx/ui/click5.ogg +0 -0
  240. package/assets/motion/assets/sfx/ui/mouseclick1.ogg +0 -0
  241. package/assets/motion/assets/sfx/ui/rollover1.ogg +0 -0
  242. package/assets/motion/assets/sfx/ui/rollover2.ogg +0 -0
  243. package/assets/motion/assets/sfx/ui/rollover4.ogg +0 -0
  244. package/assets/motion/assets/sfx/ui/rollover5.ogg +0 -0
  245. package/assets/motion/assets/sfx/ui/switch1.ogg +0 -0
  246. package/assets/motion/assets/sfx/ui/switch10.ogg +0 -0
  247. package/assets/motion/assets/sfx/ui/switch11.ogg +0 -0
  248. package/assets/motion/assets/sfx/ui/switch12.ogg +0 -0
  249. package/assets/motion/assets/sfx/ui/switch13.ogg +0 -0
  250. package/assets/motion/assets/sfx/ui/switch14.ogg +0 -0
  251. package/assets/motion/assets/sfx/ui/switch15.ogg +0 -0
  252. package/assets/motion/assets/sfx/ui/switch16.ogg +0 -0
  253. package/assets/motion/assets/sfx/ui/switch17.ogg +0 -0
  254. package/assets/motion/assets/sfx/ui/switch18.ogg +0 -0
  255. package/assets/motion/assets/sfx/ui/switch19.ogg +0 -0
  256. package/assets/motion/assets/sfx/ui/switch2.ogg +0 -0
  257. package/assets/motion/assets/sfx/ui/switch20.ogg +0 -0
  258. package/assets/motion/assets/sfx/ui/switch21.ogg +0 -0
  259. package/assets/motion/assets/sfx/ui/switch22.ogg +0 -0
  260. package/assets/motion/assets/sfx/ui/switch23.ogg +0 -0
  261. package/assets/motion/assets/sfx/ui/switch24.ogg +0 -0
  262. package/assets/motion/assets/sfx/ui/switch25.ogg +0 -0
  263. package/assets/motion/assets/sfx/ui/switch26.ogg +0 -0
  264. package/assets/motion/assets/sfx/ui/switch27.ogg +0 -0
  265. package/assets/motion/assets/sfx/ui/switch28.ogg +0 -0
  266. package/assets/motion/assets/sfx/ui/switch29.ogg +0 -0
  267. package/assets/motion/assets/sfx/ui/switch3.ogg +0 -0
  268. package/assets/motion/assets/sfx/ui/switch30.ogg +0 -0
  269. package/assets/motion/assets/sfx/ui/switch31.ogg +0 -0
  270. package/assets/motion/assets/sfx/ui/switch32.ogg +0 -0
  271. package/assets/motion/assets/sfx/ui/switch33.ogg +0 -0
  272. package/assets/motion/assets/sfx/ui/switch34.ogg +0 -0
  273. package/assets/motion/assets/sfx/ui/switch35.ogg +0 -0
  274. package/assets/motion/assets/sfx/ui/switch36.ogg +0 -0
  275. package/assets/motion/assets/sfx/ui/switch37.ogg +0 -0
  276. package/assets/motion/assets/sfx/ui/switch38.ogg +0 -0
  277. package/assets/motion/assets/sfx/ui/switch4.ogg +0 -0
  278. package/assets/motion/assets/sfx/ui/switch5.ogg +0 -0
  279. package/assets/motion/assets/sfx/ui/switch6.ogg +0 -0
  280. package/assets/motion/assets/sfx/ui/switch7.ogg +0 -0
  281. package/assets/motion/assets/sfx/ui/switch8.ogg +0 -0
  282. package/assets/motion/assets/sfx/ui/switch9.ogg +0 -0
  283. package/assets/motion/bin/contact-sheet.mjs +87 -0
  284. package/assets/motion/bin/flash-check.mjs +314 -0
  285. package/assets/motion/bin/fonts.mjs +111 -0
  286. package/assets/motion/bin/hyperframes.mjs +122 -0
  287. package/assets/motion/bin/library.mjs +210 -0
  288. package/assets/motion/bin/media-binaries.mjs +49 -0
  289. package/assets/motion/bin/motion-check.mjs +256 -0
  290. package/assets/motion/bin/pdf-extract.mjs +133 -0
  291. package/assets/motion/bin/reveal.mjs +76 -0
  292. package/assets/motion/bin/review-frames.mjs +328 -0
  293. package/assets/motion/bin/score-synth.mjs +486 -0
  294. package/assets/motion/bin/three.mjs +55 -0
  295. package/assets/motion/fonts/anybody/OFL.txt +93 -0
  296. package/assets/motion/fonts/anybody/anybody-normal.woff2 +0 -0
  297. package/assets/motion/fonts/archivo/OFL.txt +93 -0
  298. package/assets/motion/fonts/archivo/archivo-normal.woff2 +0 -0
  299. package/assets/motion/fonts/big-shoulders/OFL.txt +93 -0
  300. package/assets/motion/fonts/big-shoulders/big-shoulders-normal.woff2 +0 -0
  301. package/assets/motion/fonts/bricolage-grotesque/OFL.txt +93 -0
  302. package/assets/motion/fonts/bricolage-grotesque/bricolage-grotesque-normal.woff2 +0 -0
  303. package/assets/motion/fonts/doto/OFL.txt +93 -0
  304. package/assets/motion/fonts/doto/doto-normal.woff2 +0 -0
  305. package/assets/motion/fonts/finger-paint/OFL.txt +93 -0
  306. package/assets/motion/fonts/finger-paint/finger-paint-normal.woff2 +0 -0
  307. package/assets/motion/fonts/fonts.json +265 -0
  308. package/assets/motion/fonts/fraunces/OFL.txt +93 -0
  309. package/assets/motion/fonts/fraunces/fraunces-italic.woff2 +0 -0
  310. package/assets/motion/fonts/fraunces/fraunces-normal.woff2 +0 -0
  311. package/assets/motion/fonts/funnel-display/OFL.txt +93 -0
  312. package/assets/motion/fonts/funnel-display/funnel-display-normal.woff2 +0 -0
  313. package/assets/motion/fonts/gloock/OFL.txt +93 -0
  314. package/assets/motion/fonts/gloock/gloock-normal.woff2 +0 -0
  315. package/assets/motion/fonts/host-grotesk/OFL.txt +93 -0
  316. package/assets/motion/fonts/host-grotesk/host-grotesk-normal.woff2 +0 -0
  317. package/assets/motion/fonts/hubot-sans/OFL.txt +93 -0
  318. package/assets/motion/fonts/hubot-sans/hubot-sans-normal.woff2 +0 -0
  319. package/assets/motion/fonts/martian-mono/OFL.txt +93 -0
  320. package/assets/motion/fonts/martian-mono/martian-mono-normal.woff2 +0 -0
  321. package/assets/motion/fonts/mona-sans/OFL.txt +93 -0
  322. package/assets/motion/fonts/mona-sans/mona-sans-normal.woff2 +0 -0
  323. package/assets/motion/fonts/newsreader/OFL.txt +93 -0
  324. package/assets/motion/fonts/newsreader/newsreader-italic.woff2 +0 -0
  325. package/assets/motion/fonts/newsreader/newsreader-normal.woff2 +0 -0
  326. package/assets/motion/fonts/schibsted-grotesk/OFL.txt +93 -0
  327. package/assets/motion/fonts/schibsted-grotesk/schibsted-grotesk-normal.woff2 +0 -0
  328. package/assets/motion/fonts/short-stack/OFL.txt +94 -0
  329. package/assets/motion/fonts/short-stack/short-stack-normal.woff2 +0 -0
  330. package/assets/motion/fonts/sora/OFL.txt +93 -0
  331. package/assets/motion/fonts/sora/sora-normal.woff2 +0 -0
  332. package/assets/motion/fonts/specimen.jpg +0 -0
  333. package/assets/motion/fonts/unbounded/OFL.txt +93 -0
  334. package/assets/motion/fonts/unbounded/unbounded-normal.woff2 +0 -0
  335. package/assets/motion/fonts/young-serif/OFL.txt +93 -0
  336. package/assets/motion/fonts/young-serif/young-serif-normal.woff2 +0 -0
  337. package/assets/motion/library/README.md +106 -0
  338. package/assets/motion/library/library.json +1384 -0
  339. package/assets/motion/library/looks/acid-poster/look.md +82 -0
  340. package/assets/motion/library/looks/acid-poster/meta.json +11 -0
  341. package/assets/motion/library/looks/acid-poster/preview.jpg +0 -0
  342. package/assets/motion/library/looks/acid-poster/sample.html +177 -0
  343. package/assets/motion/library/looks/acid-poster/tokens.css +16 -0
  344. package/assets/motion/library/looks/blueprint/look.md +22 -0
  345. package/assets/motion/library/looks/blueprint/meta.json +11 -0
  346. package/assets/motion/library/looks/blueprint/preview.jpg +0 -0
  347. package/assets/motion/library/looks/blueprint/sample.html +301 -0
  348. package/assets/motion/library/looks/blueprint/tokens.css +16 -0
  349. package/assets/motion/library/looks/dark-studio/look.md +85 -0
  350. package/assets/motion/library/looks/dark-studio/meta.json +11 -0
  351. package/assets/motion/library/looks/dark-studio/preview.jpg +0 -0
  352. package/assets/motion/library/looks/dark-studio/sample.html +324 -0
  353. package/assets/motion/library/looks/dark-studio/tokens.css +16 -0
  354. package/assets/motion/library/looks/data-desk/look.md +19 -0
  355. package/assets/motion/library/looks/data-desk/meta.json +9 -0
  356. package/assets/motion/library/looks/data-desk/preview.jpg +0 -0
  357. package/assets/motion/library/looks/data-desk/sample.html +17 -0
  358. package/assets/motion/library/looks/data-desk/tokens.css +15 -0
  359. package/assets/motion/library/looks/duotone-broadcast/look.md +53 -0
  360. package/assets/motion/library/looks/duotone-broadcast/meta.json +11 -0
  361. package/assets/motion/library/looks/duotone-broadcast/preview.jpg +0 -0
  362. package/assets/motion/library/looks/duotone-broadcast/sample.html +45 -0
  363. package/assets/motion/library/looks/duotone-broadcast/tokens.css +16 -0
  364. package/assets/motion/library/looks/editorial-ink/look.md +80 -0
  365. package/assets/motion/library/looks/editorial-ink/meta.json +11 -0
  366. package/assets/motion/library/looks/editorial-ink/preview.jpg +0 -0
  367. package/assets/motion/library/looks/editorial-ink/sample.html +203 -0
  368. package/assets/motion/library/looks/editorial-ink/tokens.css +16 -0
  369. package/assets/motion/library/looks/mono-luxe/look.md +19 -0
  370. package/assets/motion/library/looks/mono-luxe/meta.json +9 -0
  371. package/assets/motion/library/looks/mono-luxe/preview.jpg +0 -0
  372. package/assets/motion/library/looks/mono-luxe/sample.html +12 -0
  373. package/assets/motion/library/looks/mono-luxe/tokens.css +15 -0
  374. package/assets/motion/library/looks/soft-light-ad/look.md +63 -0
  375. package/assets/motion/library/looks/soft-light-ad/meta.json +39 -0
  376. package/assets/motion/library/looks/soft-light-ad/preview.jpg +0 -0
  377. package/assets/motion/library/looks/soft-light-ad/sample.html +44 -0
  378. package/assets/motion/library/looks/soft-light-ad/tokens.css +17 -0
  379. package/assets/motion/library/looks/sunlit-consumer/look.md +19 -0
  380. package/assets/motion/library/looks/sunlit-consumer/meta.json +9 -0
  381. package/assets/motion/library/looks/sunlit-consumer/preview.jpg +0 -0
  382. package/assets/motion/library/looks/sunlit-consumer/sample.html +12 -0
  383. package/assets/motion/library/looks/sunlit-consumer/tokens.css +15 -0
  384. package/assets/motion/library/looks/swiss-grid/look.md +81 -0
  385. package/assets/motion/library/looks/swiss-grid/meta.json +11 -0
  386. package/assets/motion/library/looks/swiss-grid/preview.jpg +0 -0
  387. package/assets/motion/library/looks/swiss-grid/sample.html +209 -0
  388. package/assets/motion/library/looks/swiss-grid/tokens.css +16 -0
  389. package/assets/motion/library/looks/terminal-phosphor/look.md +77 -0
  390. package/assets/motion/library/looks/terminal-phosphor/meta.json +11 -0
  391. package/assets/motion/library/looks/terminal-phosphor/preview.jpg +0 -0
  392. package/assets/motion/library/looks/terminal-phosphor/sample.html +182 -0
  393. package/assets/motion/library/looks/terminal-phosphor/tokens.css +16 -0
  394. package/assets/motion/library/pieces/animated-beam/LICENSE +21 -0
  395. package/assets/motion/library/pieces/animated-beam/meta.json +16 -0
  396. package/assets/motion/library/pieces/animated-beam/piece.html +273 -0
  397. package/assets/motion/library/pieces/animated-beam/preview.jpg +0 -0
  398. package/assets/motion/library/pieces/animated-list/LICENSE +21 -0
  399. package/assets/motion/library/pieces/animated-list/meta.json +16 -0
  400. package/assets/motion/library/pieces/animated-list/piece.html +189 -0
  401. package/assets/motion/library/pieces/animated-list/preview.jpg +0 -0
  402. package/assets/motion/library/pieces/before-after-split/meta.json +12 -0
  403. package/assets/motion/library/pieces/before-after-split/piece.html +262 -0
  404. package/assets/motion/library/pieces/before-after-split/preview.jpg +0 -0
  405. package/assets/motion/library/pieces/blueprint-grid/meta.json +12 -0
  406. package/assets/motion/library/pieces/blueprint-grid/piece.html +209 -0
  407. package/assets/motion/library/pieces/blueprint-grid/preview.jpg +0 -0
  408. package/assets/motion/library/pieces/broadcast-frame/meta.json +12 -0
  409. package/assets/motion/library/pieces/broadcast-frame/piece.html +100 -0
  410. package/assets/motion/library/pieces/broadcast-frame/preview.jpg +0 -0
  411. package/assets/motion/library/pieces/browser-window/meta.json +12 -0
  412. package/assets/motion/library/pieces/browser-window/piece.html +331 -0
  413. package/assets/motion/library/pieces/browser-window/preview.jpg +0 -0
  414. package/assets/motion/library/pieces/chapter-card/meta.json +6 -0
  415. package/assets/motion/library/pieces/chapter-card/piece.html +12 -0
  416. package/assets/motion/library/pieces/chapter-card/preview.jpg +0 -0
  417. package/assets/motion/library/pieces/chat-thread/meta.json +12 -0
  418. package/assets/motion/library/pieces/chat-thread/piece.html +272 -0
  419. package/assets/motion/library/pieces/chat-thread/preview.jpg +0 -0
  420. package/assets/motion/library/pieces/clay-drop-3d/meta.json +13 -0
  421. package/assets/motion/library/pieces/clay-drop-3d/piece.html +224 -0
  422. package/assets/motion/library/pieces/clay-drop-3d/preview.jpg +0 -0
  423. package/assets/motion/library/pieces/color-flip-field/meta.json +12 -0
  424. package/assets/motion/library/pieces/color-flip-field/piece.html +81 -0
  425. package/assets/motion/library/pieces/color-flip-field/preview.jpg +0 -0
  426. package/assets/motion/library/pieces/color-wipe/meta.json +6 -0
  427. package/assets/motion/library/pieces/color-wipe/piece.html +10 -0
  428. package/assets/motion/library/pieces/color-wipe/preview.jpg +0 -0
  429. package/assets/motion/library/pieces/command-palette/meta.json +12 -0
  430. package/assets/motion/library/pieces/command-palette/piece.html +339 -0
  431. package/assets/motion/library/pieces/command-palette/preview.jpg +0 -0
  432. package/assets/motion/library/pieces/comparison-bars/meta.json +12 -0
  433. package/assets/motion/library/pieces/comparison-bars/piece.html +191 -0
  434. package/assets/motion/library/pieces/comparison-bars/preview.jpg +0 -0
  435. package/assets/motion/library/pieces/counter-number/meta.json +12 -0
  436. package/assets/motion/library/pieces/counter-number/piece.html +131 -0
  437. package/assets/motion/library/pieces/counter-number/preview.jpg +0 -0
  438. package/assets/motion/library/pieces/cursor-click/meta.json +12 -0
  439. package/assets/motion/library/pieces/cursor-click/piece.html +242 -0
  440. package/assets/motion/library/pieces/cursor-click/preview.jpg +0 -0
  441. package/assets/motion/library/pieces/dock-magnify/LICENSE +21 -0
  442. package/assets/motion/library/pieces/dock-magnify/meta.json +16 -0
  443. package/assets/motion/library/pieces/dock-magnify/piece.html +234 -0
  444. package/assets/motion/library/pieces/dock-magnify/preview.jpg +0 -0
  445. package/assets/motion/library/pieces/donut-fill/meta.json +12 -0
  446. package/assets/motion/library/pieces/donut-fill/piece.html +156 -0
  447. package/assets/motion/library/pieces/donut-fill/preview.jpg +0 -0
  448. package/assets/motion/library/pieces/dot-grid-field/meta.json +12 -0
  449. package/assets/motion/library/pieces/dot-grid-field/piece.html +61 -0
  450. package/assets/motion/library/pieces/dot-grid-field/preview.jpg +0 -0
  451. package/assets/motion/library/pieces/ease-curve/meta.json +12 -0
  452. package/assets/motion/library/pieces/ease-curve/piece.html +103 -0
  453. package/assets/motion/library/pieces/ease-curve/preview.jpg +0 -0
  454. package/assets/motion/library/pieces/end-card/meta.json +6 -0
  455. package/assets/motion/library/pieces/end-card/piece.html +11 -0
  456. package/assets/motion/library/pieces/end-card/preview.jpg +0 -0
  457. package/assets/motion/library/pieces/film-grain/meta.json +12 -0
  458. package/assets/motion/library/pieces/film-grain/piece.html +93 -0
  459. package/assets/motion/library/pieces/film-grain/preview.jpg +0 -0
  460. package/assets/motion/library/pieces/flickering-grid/LICENSE +21 -0
  461. package/assets/motion/library/pieces/flickering-grid/meta.json +16 -0
  462. package/assets/motion/library/pieces/flickering-grid/piece.html +112 -0
  463. package/assets/motion/library/pieces/flickering-grid/preview.jpg +0 -0
  464. package/assets/motion/library/pieces/flow-nodes/meta.json +12 -0
  465. package/assets/motion/library/pieces/flow-nodes/piece.html +230 -0
  466. package/assets/motion/library/pieces/flow-nodes/preview.jpg +0 -0
  467. package/assets/motion/library/pieces/highlight-sweep/meta.json +12 -0
  468. package/assets/motion/library/pieces/highlight-sweep/piece.html +132 -0
  469. package/assets/motion/library/pieces/highlight-sweep/preview.jpg +0 -0
  470. package/assets/motion/library/pieces/iris-circle/meta.json +6 -0
  471. package/assets/motion/library/pieces/iris-circle/piece.html +6 -0
  472. package/assets/motion/library/pieces/iris-circle/preview.jpg +0 -0
  473. package/assets/motion/library/pieces/kinetic-letters/meta.json +12 -0
  474. package/assets/motion/library/pieces/kinetic-letters/piece.html +103 -0
  475. package/assets/motion/library/pieces/kinetic-letters/preview.jpg +0 -0
  476. package/assets/motion/library/pieces/light-leak-soft/meta.json +12 -0
  477. package/assets/motion/library/pieces/light-leak-soft/piece.html +102 -0
  478. package/assets/motion/library/pieces/light-leak-soft/preview.jpg +0 -0
  479. package/assets/motion/library/pieces/line-stack-reveal/meta.json +12 -0
  480. package/assets/motion/library/pieces/line-stack-reveal/piece.html +98 -0
  481. package/assets/motion/library/pieces/line-stack-reveal/preview.jpg +0 -0
  482. package/assets/motion/library/pieces/lower-third/meta.json +6 -0
  483. package/assets/motion/library/pieces/lower-third/piece.html +11 -0
  484. package/assets/motion/library/pieces/lower-third/preview.jpg +0 -0
  485. package/assets/motion/library/pieces/marquee-strip/meta.json +12 -0
  486. package/assets/motion/library/pieces/marquee-strip/piece.html +132 -0
  487. package/assets/motion/library/pieces/marquee-strip/preview.jpg +0 -0
  488. package/assets/motion/library/pieces/mesh-gradient/meta.json +12 -0
  489. package/assets/motion/library/pieces/mesh-gradient/piece.html +131 -0
  490. package/assets/motion/library/pieces/mesh-gradient/preview.jpg +0 -0
  491. package/assets/motion/library/pieces/orbiting-circles/LICENSE +21 -0
  492. package/assets/motion/library/pieces/orbiting-circles/meta.json +16 -0
  493. package/assets/motion/library/pieces/orbiting-circles/piece.html +185 -0
  494. package/assets/motion/library/pieces/orbiting-circles/preview.jpg +0 -0
  495. package/assets/motion/library/pieces/phone-frame/meta.json +12 -0
  496. package/assets/motion/library/pieces/phone-frame/piece.html +252 -0
  497. package/assets/motion/library/pieces/phone-frame/preview.jpg +0 -0
  498. package/assets/motion/library/pieces/pricing-toggle/meta.json +6 -0
  499. package/assets/motion/library/pieces/pricing-toggle/piece.html +18 -0
  500. package/assets/motion/library/pieces/pricing-toggle/preview.jpg +0 -0
  501. package/assets/motion/library/pieces/retro-grid/LICENSE +21 -0
  502. package/assets/motion/library/pieces/retro-grid/meta.json +16 -0
  503. package/assets/motion/library/pieces/retro-grid/piece.html +139 -0
  504. package/assets/motion/library/pieces/retro-grid/preview.jpg +0 -0
  505. package/assets/motion/library/pieces/scale-through-word/meta.json +12 -0
  506. package/assets/motion/library/pieces/scale-through-word/piece.html +139 -0
  507. package/assets/motion/library/pieces/scale-through-word/preview.jpg +0 -0
  508. package/assets/motion/library/pieces/serif-quote/meta.json +12 -0
  509. package/assets/motion/library/pieces/serif-quote/piece.html +145 -0
  510. package/assets/motion/library/pieces/serif-quote/preview.jpg +0 -0
  511. package/assets/motion/library/pieces/slam-word/meta.json +12 -0
  512. package/assets/motion/library/pieces/slam-word/piece.html +72 -0
  513. package/assets/motion/library/pieces/slam-word/preview.jpg +0 -0
  514. package/assets/motion/library/pieces/soft-light-field/meta.json +12 -0
  515. package/assets/motion/library/pieces/soft-light-field/piece.html +83 -0
  516. package/assets/motion/library/pieces/soft-light-field/preview.jpg +0 -0
  517. package/assets/motion/library/pieces/sparkline-draw/meta.json +12 -0
  518. package/assets/motion/library/pieces/sparkline-draw/piece.html +204 -0
  519. package/assets/motion/library/pieces/sparkline-draw/preview.jpg +0 -0
  520. package/assets/motion/library/pieces/stack-layers/meta.json +12 -0
  521. package/assets/motion/library/pieces/stack-layers/piece.html +239 -0
  522. package/assets/motion/library/pieces/stack-layers/preview.jpg +0 -0
  523. package/assets/motion/library/pieces/stat-grid/meta.json +12 -0
  524. package/assets/motion/library/pieces/stat-grid/piece.html +200 -0
  525. package/assets/motion/library/pieces/stat-grid/preview.jpg +0 -0
  526. package/assets/motion/library/pieces/studio-backdrop/meta.json +12 -0
  527. package/assets/motion/library/pieces/studio-backdrop/piece.html +83 -0
  528. package/assets/motion/library/pieces/studio-backdrop/preview.jpg +0 -0
  529. package/assets/motion/library/pieces/tile-flip/meta.json +6 -0
  530. package/assets/motion/library/pieces/tile-flip/piece.html +6 -0
  531. package/assets/motion/library/pieces/tile-flip/preview.jpg +0 -0
  532. package/assets/motion/library/pieces/timeline-track/meta.json +12 -0
  533. package/assets/motion/library/pieces/timeline-track/piece.html +227 -0
  534. package/assets/motion/library/pieces/timeline-track/preview.jpg +0 -0
  535. package/assets/motion/library/pieces/toast-stack/meta.json +12 -0
  536. package/assets/motion/library/pieces/toast-stack/piece.html +185 -0
  537. package/assets/motion/library/pieces/toast-stack/preview.jpg +0 -0
  538. package/assets/motion/library/pieces/typewriter-caption/meta.json +12 -0
  539. package/assets/motion/library/pieces/typewriter-caption/piece.html +112 -0
  540. package/assets/motion/library/pieces/typewriter-caption/preview.jpg +0 -0
  541. package/assets/motion/library/pieces/ui-stack-3d/meta.json +12 -0
  542. package/assets/motion/library/pieces/ui-stack-3d/piece.html +236 -0
  543. package/assets/motion/library/pieces/ui-stack-3d/preview.jpg +0 -0
  544. package/assets/motion/library/pieces/vignette/meta.json +12 -0
  545. package/assets/motion/library/pieces/vignette/piece.html +85 -0
  546. package/assets/motion/library/pieces/vignette/preview.jpg +0 -0
  547. package/assets/motion/library/pieces/word-swap/meta.json +12 -0
  548. package/assets/motion/library/pieces/word-swap/piece.html +122 -0
  549. package/assets/motion/library/pieces/word-swap/preview.jpg +0 -0
  550. package/assets/motion/library/sheets/3d.jpg +0 -0
  551. package/assets/motion/library/sheets/background.jpg +0 -0
  552. package/assets/motion/library/sheets/data.jpg +0 -0
  553. package/assets/motion/library/sheets/diagram.jpg +0 -0
  554. package/assets/motion/library/sheets/frame.jpg +0 -0
  555. package/assets/motion/library/sheets/looks.jpg +0 -0
  556. package/assets/motion/library/sheets/texture.jpg +0 -0
  557. package/assets/motion/library/sheets/transition.jpg +0 -0
  558. package/assets/motion/library/sheets/type.jpg +0 -0
  559. package/assets/motion/library/sheets/ui.jpg +0 -0
  560. package/assets/motion/plugin.json +5 -0
  561. package/assets/motion/references/README.md +20 -0
  562. package/assets/motion/references/index.json +25 -0
  563. package/assets/motion/references/motion-language.md +128 -0
  564. package/assets/motion/references/runtime/data-attributes.md +78 -0
  565. package/assets/motion/references/runtime/determinism-rules.md +53 -0
  566. package/assets/motion/references/runtime/doctor-browser.md +57 -0
  567. package/assets/motion/references/runtime/gsap-easing-and-stagger.md +199 -0
  568. package/assets/motion/references/runtime/gsap-timeline-and-labels.md +96 -0
  569. package/assets/motion/references/runtime/gsap-transforms-and-perf.md +129 -0
  570. package/assets/motion/references/runtime/gsap.md +105 -0
  571. package/assets/motion/references/runtime/inputs-and-assets.md +62 -0
  572. package/assets/motion/references/runtime/lint-validate-inspect.md +131 -0
  573. package/assets/motion/references/runtime/minimal-composition.md +75 -0
  574. package/assets/motion/references/runtime/preview-render.md +156 -0
  575. package/assets/motion/references/runtime/sub-compositions.md +176 -0
  576. package/assets/motion/references/runtime/tracks-and-clips.md +87 -0
  577. package/assets/motion/references/runtime/variables-and-media.md +107 -0
  578. package/assets/motion/references/signal-study.html +39 -0
  579. package/assets/motion/references/signal-temporal.jpg +0 -0
  580. package/assets/motion/references/type-temporal.jpg +0 -0
  581. package/assets/motion/skills/brand-kit/SKILL.md +71 -0
  582. package/assets/motion/skills/motion/SKILL.md +178 -0
  583. package/assets/motion/skills/source-ingest/SKILL.md +45 -0
  584. package/assets/motion/skills/video-qa/SKILL.md +89 -0
  585. package/assets/motion/vendor/three/LICENSE +21 -0
  586. package/assets/motion/vendor/three/addons/environments/RoomEnvironment.js +182 -0
  587. package/assets/motion/vendor/three/addons/geometries/RoundedBoxGeometry.js +216 -0
  588. package/assets/motion/vendor/three/addons/geometries/TextGeometry.js +84 -0
  589. package/assets/motion/vendor/three/addons/lights/RectAreaLightTexturesLib.js +127 -0
  590. package/assets/motion/vendor/three/addons/lights/RectAreaLightUniformsLib.js +40 -0
  591. package/assets/motion/vendor/three/addons/loaders/FontLoader.js +260 -0
  592. package/assets/motion/vendor/three/addons/loaders/GLTFLoader.js +4892 -0
  593. package/assets/motion/vendor/three/addons/loaders/HDRLoader.js +486 -0
  594. package/assets/motion/vendor/three/addons/loaders/SVGLoader.js +3267 -0
  595. package/assets/motion/vendor/three/addons/math/SimplexNoise.js +470 -0
  596. package/assets/motion/vendor/three/addons/objects/Reflector.js +338 -0
  597. package/assets/motion/vendor/three/addons/postprocessing/BokehPass.js +218 -0
  598. package/assets/motion/vendor/three/addons/postprocessing/EffectComposer.js +363 -0
  599. package/assets/motion/vendor/three/addons/postprocessing/FilmPass.js +113 -0
  600. package/assets/motion/vendor/three/addons/postprocessing/MaskPass.js +195 -0
  601. package/assets/motion/vendor/three/addons/postprocessing/OutputPass.js +139 -0
  602. package/assets/motion/vendor/three/addons/postprocessing/Pass.js +191 -0
  603. package/assets/motion/vendor/three/addons/postprocessing/RenderPass.js +183 -0
  604. package/assets/motion/vendor/three/addons/postprocessing/ShaderPass.js +135 -0
  605. package/assets/motion/vendor/three/addons/postprocessing/UnrealBloomPass.js +494 -0
  606. package/assets/motion/vendor/three/addons/renderers/CSS3DRenderer.js +454 -0
  607. package/assets/motion/vendor/three/addons/shaders/BokehShader.js +151 -0
  608. package/assets/motion/vendor/three/addons/shaders/CopyShader.js +52 -0
  609. package/assets/motion/vendor/three/addons/shaders/FilmShader.js +72 -0
  610. package/assets/motion/vendor/three/addons/shaders/LuminosityHighPassShader.js +68 -0
  611. package/assets/motion/vendor/three/addons/shaders/OutputShader.js +103 -0
  612. package/assets/motion/vendor/three/addons/utils/BufferGeometryUtils.js +1435 -0
  613. package/assets/motion/vendor/three/build/three.core.min.js +6 -0
  614. package/assets/motion/vendor/three/build/three.module.min.js +6 -0
  615. package/assets/motion/vendor/three/three.json +54 -0
  616. package/dist/app-sidecar-sessions.js +5 -0
  617. package/dist/app-sidecar-sessions.js.map +1 -1
  618. package/dist/app-sidecar.js +52 -16
  619. package/dist/app-sidecar.js.map +1 -1
  620. package/dist/cli.js +5 -4
  621. package/dist/cli.js.map +1 -1
  622. package/dist/core/agent-session.d.ts +39 -3
  623. package/dist/core/agent-session.js +148 -12
  624. package/dist/core/agent-session.js.map +1 -1
  625. package/dist/core/agents.js +12 -3
  626. package/dist/core/agents.js.map +1 -1
  627. package/dist/core/auth-providers.js +6 -6
  628. package/dist/core/auth-providers.js.map +1 -1
  629. package/dist/core/autopilot-verdict.d.ts +5 -1
  630. package/dist/core/autopilot-verdict.js +30 -13
  631. package/dist/core/autopilot-verdict.js.map +1 -1
  632. package/dist/core/completion-review.d.ts +24 -0
  633. package/dist/core/completion-review.js +2 -0
  634. package/dist/core/completion-review.js.map +1 -0
  635. package/dist/core/context-limits.d.ts +6 -0
  636. package/dist/core/context-limits.js +8 -0
  637. package/dist/core/context-limits.js.map +1 -1
  638. package/dist/core/fast-apply-benchmark.d.ts +1 -1
  639. package/dist/core/fast-apply-benchmark.js +2 -2
  640. package/dist/core/fast-apply-benchmark.js.map +1 -1
  641. package/dist/core/ideal-review-subagent.d.ts +16 -2
  642. package/dist/core/ideal-review-subagent.js +19 -2
  643. package/dist/core/ideal-review-subagent.js.map +1 -1
  644. package/dist/core/lsp/pool.d.ts +2 -0
  645. package/dist/core/lsp/pool.js +4 -0
  646. package/dist/core/lsp/pool.js.map +1 -1
  647. package/dist/core/network-guard.d.ts +2 -0
  648. package/dist/core/network-guard.js +37 -0
  649. package/dist/core/network-guard.js.map +1 -1
  650. package/dist/core/nolan-context.d.ts +7 -5
  651. package/dist/core/nolan-context.js +106 -16
  652. package/dist/core/nolan-context.js.map +1 -1
  653. package/dist/core/nolan-prompt.js +24 -21
  654. package/dist/core/nolan-prompt.js.map +1 -1
  655. package/dist/core/project-discovery.js +80 -26
  656. package/dist/core/project-discovery.js.map +1 -1
  657. package/dist/core/semantic-search-benchmark.d.ts +1 -1
  658. package/dist/core/semantic-search-benchmark.js +2 -2
  659. package/dist/core/semantic-search-benchmark.js.map +1 -1
  660. package/dist/core/session-export.d.ts +2 -2
  661. package/dist/core/session-export.js +6 -2
  662. package/dist/core/session-export.js.map +1 -1
  663. package/dist/core/skills.d.ts +15 -0
  664. package/dist/core/skills.js +48 -4
  665. package/dist/core/skills.js.map +1 -1
  666. package/dist/core/subagent-manager.d.ts +3 -1
  667. package/dist/core/subagent-manager.js +3 -1
  668. package/dist/core/subagent-manager.js.map +1 -1
  669. package/dist/core/subagent-policy.js +1 -1
  670. package/dist/core/subagent-policy.js.map +1 -1
  671. package/dist/core/verification-evidence.js +7 -2
  672. package/dist/core/verification-evidence.js.map +1 -1
  673. package/dist/core/worktree-setup.d.ts +23 -0
  674. package/dist/core/worktree-setup.js +128 -9
  675. package/dist/core/worktree-setup.js.map +1 -1
  676. package/dist/core/worktree.d.ts +20 -2
  677. package/dist/core/worktree.js +74 -31
  678. package/dist/core/worktree.js.map +1 -1
  679. package/dist/modes/json-mode.js +11 -2
  680. package/dist/modes/json-mode.js.map +1 -1
  681. package/dist/modes/subagent-worker-mode.d.ts +36 -1
  682. package/dist/modes/subagent-worker-mode.js +68 -38
  683. package/dist/modes/subagent-worker-mode.js.map +1 -1
  684. package/dist/motion-agent/motion-agent.d.ts +35 -0
  685. package/dist/motion-agent/motion-agent.js +117 -0
  686. package/dist/motion-agent/motion-agent.js.map +1 -0
  687. package/dist/motion-agent/motion-check-tool.d.ts +35 -0
  688. package/dist/motion-agent/motion-check-tool.js +514 -0
  689. package/dist/motion-agent/motion-check-tool.js.map +1 -0
  690. package/dist/motion-agent/motion-prompt.d.ts +2 -0
  691. package/dist/motion-agent/motion-prompt.js +44 -0
  692. package/dist/motion-agent/motion-prompt.js.map +1 -0
  693. package/dist/motion-agent/motion-review-coverage.d.ts +12 -0
  694. package/dist/motion-agent/motion-review-coverage.js +33 -0
  695. package/dist/motion-agent/motion-review-coverage.js.map +1 -0
  696. package/dist/motion-agent/motion-review-gate.d.ts +48 -0
  697. package/dist/motion-agent/motion-review-gate.js +88 -0
  698. package/dist/motion-agent/motion-review-gate.js.map +1 -0
  699. package/dist/motion-agent/motion-review-session.d.ts +65 -0
  700. package/dist/motion-agent/motion-review-session.js +418 -0
  701. package/dist/motion-agent/motion-review-session.js.map +1 -0
  702. package/dist/motion-agent/motion-review.d.ts +76 -0
  703. package/dist/motion-agent/motion-review.js +225 -0
  704. package/dist/motion-agent/motion-review.js.map +1 -0
  705. package/dist/motion-agent/motion-studio-context.d.ts +44 -0
  706. package/dist/motion-agent/motion-studio-context.js +65 -0
  707. package/dist/motion-agent/motion-studio-context.js.map +1 -0
  708. package/dist/system-prompt.d.ts +5 -1
  709. package/dist/system-prompt.js +17 -4
  710. package/dist/system-prompt.js.map +1 -1
  711. package/dist/tools/bash.js +66 -2
  712. package/dist/tools/bash.js.map +1 -1
  713. package/dist/tools/edit.js +1 -1
  714. package/dist/tools/edit.js.map +1 -1
  715. package/dist/tools/goals.d.ts +1 -1
  716. package/dist/tools/index.d.ts +6 -0
  717. package/dist/tools/index.js +2 -1
  718. package/dist/tools/index.js.map +1 -1
  719. package/dist/tools/read-tracker.d.ts +30 -2
  720. package/dist/tools/read-tracker.js +92 -5
  721. package/dist/tools/read-tracker.js.map +1 -1
  722. package/dist/tools/read.js +36 -5
  723. package/dist/tools/read.js.map +1 -1
  724. package/dist/tools/subagent-shared.d.ts +19 -0
  725. package/dist/tools/subagent-shared.js +30 -0
  726. package/dist/tools/subagent-shared.js.map +1 -1
  727. package/dist/tools/web-fetch.js +38 -32
  728. package/dist/tools/web-fetch.js.map +1 -1
  729. package/dist/tools/web-search.js +2 -2
  730. package/dist/tools/web-search.js.map +1 -1
  731. package/dist/tools/write.js +4 -3
  732. package/dist/tools/write.js.map +1 -1
  733. package/dist/ui/components/Footer.js +2 -3
  734. package/dist/ui/components/Footer.js.map +1 -1
  735. package/dist/ui/render.d.ts +2 -0
  736. package/dist/ui/render.js +3 -0
  737. package/dist/ui/render.js.map +1 -1
  738. package/dist/utils/text.d.ts +12 -0
  739. package/dist/utils/text.js +11 -0
  740. package/dist/utils/text.js.map +1 -1
  741. package/package.json +8 -5
@@ -0,0 +1,129 @@
1
+ # Transforms and Performance
2
+
3
+ ## Transform Aliases
4
+
5
+ Prefer GSAP's transform aliases over raw `transform` strings:
6
+
7
+ | GSAP property | Equivalent |
8
+ | --------------------------- | --------------------- |
9
+ | `x`, `y`, `z` | `translateX/Y/Z` (px) |
10
+ | `xPercent`, `yPercent` | `translateX/Y` in `%` |
11
+ | `scale`, `scaleX`, `scaleY` | `scale` |
12
+ | `rotation` | `rotate` (deg) |
13
+ | `rotationX`, `rotationY` | 3D rotate |
14
+ | `skewX`, `skewY` | `skew` |
15
+ | `transformOrigin` | `transform-origin` |
16
+
17
+ Aliases let GSAP track and interpolate each axis independently, which prevents accidental overwrites between separate tweens on the same element.
18
+
19
+ ## autoAlpha
20
+
21
+ Prefer `autoAlpha` over `opacity` for show/hide:
22
+
23
+ ```javascript
24
+ gsap.to(".panel", { autoAlpha: 0, duration: 0.4 });
25
+ ```
26
+
27
+ `autoAlpha: 0` sets both `opacity: 0` and `visibility: hidden`, which removes the element from hit-testing and accessibility tree at zero alpha — closer to "gone" than plain `opacity: 0`. The registered seekable timeline still interpolates only opacity; visibility changes at the hidden endpoint. Use `autoAlpha` only on non-clip elements or wrappers inside a clip; HyperFrames owns `.clip` visibility. Never duration-tween raw `visibility` or `display`.
28
+
29
+ ## clearProps
30
+
31
+ Removes inline styles set by GSAP when the tween completes:
32
+
33
+ ```javascript
34
+ gsap.to(".item", { x: 100, rotation: 45, clearProps: "all" });
35
+ gsap.to(".item", { x: 100, rotation: 45, clearProps: "rotation,x" });
36
+ ```
37
+
38
+ Useful at the end of an animation segment to hand the element back to CSS.
39
+
40
+ ## CSS Variables
41
+
42
+ ```javascript
43
+ gsap.to(".chart", { "--hue": 180, duration: 1 });
44
+ ```
45
+
46
+ Animate any custom property. Works for color, length, number — anything CSS will interpolate.
47
+
48
+ ## Relative and Directional Values
49
+
50
+ - Relative: `"+=20"`, `"-=10"`, `"*=2"`.
51
+ - Directional rotation: `"360_cw"`, `"-170_short"`, `"90_ccw"` — controls which way the angle takes when going between two values.
52
+
53
+ ## SVG Specifics
54
+
55
+ - `svgOrigin` sets transform origin in the SVG's global coordinate space (not the element's local box). **Do not** combine `svgOrigin` with `transformOrigin` on the same element — pick one.
56
+ - Animate SVG transform attributes via the same alias names (`x`, `y`, `rotation`) — GSAP handles the SVG-specific quirks.
57
+ - **Resolve SVG geometry before building center-based transforms.** `createElementNS` is supported, but a detached, hidden, or zero-size element may not expose usable geometry when GSAP resolves a percentage `transformOrigin`. Attach and size the SVG before constructing the timeline, use an explicit `svgOrigin` when you know the canvas coordinates, or draw animated geometry around local `(0,0)` inside a positioning `<g>` for a center pivot that does not depend on a measured bounding box.
58
+
59
+ ## Performance Rules
60
+
61
+ ### Animate transforms, not layout properties
62
+
63
+ Animate `x`, `y`, `scale`, `rotation`, `opacity`. Never animate `left`, `right`, `top`, `bottom`, `width`, `height`, `margin*`, the text-reflow props `letterSpacing` / `wordSpacing` / `fontSize` — and never `roundProps`.
64
+
65
+ This is a **render-correctness** rule in HyperFrames, not just a GPU-performance nicety. The renderer seeks frame-by-frame and screenshots each frame, and the browser compositor snaps layout properties to whole device pixels. On a fast tween the per-frame step is several pixels, so the snap is invisible; on a slow tween or a long ease-out tail the value moves less than a pixel per frame — it holds the same pixel for several frames, then jumps a whole one. The result is motion that looks smooth when fast but visibly stutters when slow. Transforms interpolate sub-pixel and stay smooth at any speed. `roundProps` forces the same integer snap onto a transform — don't use it.
66
+
67
+ "Layout property" is broader than position: anything that triggers **reflow** snaps the same way. `letterSpacing` / `fontSize` are the common trap — a slow "settle" that crawls one of them by a fraction of a pixel per frame dwells on a handful of discrete glyph layouts (visible micro-stutter). The faithful smooth fix depends on which property — **do not reach for `scale` reflexively**:
68
+
69
+ - **`fontSize`** → animate `scale`. Scaling text up/down is the same visual and stays sub-pixel smooth (no reflow).
70
+ - **`letterSpacing` / `wordSpacing`** → uniform `scale` is **not** the same effect (it resizes the glyphs; it does not change the gaps between them). To animate spacing smoothly, split the text into per-character (or per-word) elements and animate each one's `x` — the glyph spread is a transform, sub-pixel smooth and visually identical to a letter-spacing tween. GSAP's `SplitText` does the split. If the spacing change is a minor flourish, hold the final value statically instead.
71
+
72
+ Unlike positional props, reflow props snap during browser **layout** — upstream of the canvas raster — so they stutter even in html-in-canvas, and the exception below does **not** apply to them.
73
+
74
+ #### Fixing a flagged animation — preserve the intent
75
+
76
+ The lint rule tells you a property will stutter; it does **not** tell you the fix, and a fix that merely passes lint can silently change the look. Swapping a `letterSpacing` tighten for a uniform `scale` lints clean but animates a _different thing_ (it resizes the glyphs instead of closing the gaps). Two rules:
77
+
78
+ 1. **Reproduce the same visual** — same start/end state, same trajectory, only sub-pixel-smooth. Use the faithful equivalent (per-glyph `x` for spacing, `scale` for `fontSize`, `x`/`y` for position), not whichever transform is the least code.
79
+ 2. **Verify against the original, not against the linter.** Render the original and the fixed version and compare the motion at its key moments — the fix should differ only by the removed stutter, not by _where things end up_. Lint-clean-and-smooth is not the bar; faithful-and-smooth is.
80
+
81
+ If the faithful fix is non-trivial (a per-glyph split, a measured offset), build it or surface the tradeoff — never downgrade to a cheaper, different effect just to satisfy the linter.
82
+
83
+ **Convert a position animation to a transform** by leaving the element at its resting `left`/`top` in CSS and animating the _offset_ with `x`/`y`:
84
+
85
+ ```javascript
86
+ // CSS: #card { left: 1340px; top: 540px } ← resting position stays in CSS
87
+ tl.to("#card", { left: 1340, top: 540, duration: 1 }); // ✗ stutters
88
+ tl.fromTo("#card", { x: 640, y: 0 }, { x: 0, y: 0, duration: 1 }); // ✓ x/y = delta from CSS rest (640 = startLeft − 1340)
89
+ ```
90
+
91
+ For a parent-relative `left: "100%"` sweep, use `xPercent: 100` only when the element is the full width of its container; otherwise convert to pixels (`x: containerWidth`).
92
+
93
+ **The one exception:** elements drawn through the html-in-canvas API — those under a `<canvas layoutsubtree>` ancestor, e.g. the `liquid-glass-*` blocks. The canvas rasterizes from sub-pixel `getComputedStyle`, so layout props don't snap there and those elements keep `left`/`top`. Everything the browser lays out (plain DOM) follows the rule.
94
+
95
+ The `gsap_non_transform_motion` lint rule is the backstop, not the teacher — reach for transforms from the start instead of animating layout props and waiting for lint to reject them.
96
+
97
+ ### will-change (sparingly)
98
+
99
+ ```css
100
+ .title {
101
+ will-change: transform;
102
+ }
103
+ ```
104
+
105
+ Only on elements that _actually_ animate. Applied everywhere it becomes useless and burns memory.
106
+
107
+ ### gsap.quickTo for frequent updates (preview-only)
108
+
109
+ For high-frequency updates driven by **events** — pointer move, scroll, audio scrub — `quickTo` reuses the same tween instead of creating a new one each frame:
110
+
111
+ ```javascript
112
+ const xTo = gsap.quickTo("#cursor", "x", { duration: 0.4, ease: "power3" });
113
+ const yTo = gsap.quickTo("#cursor", "y", { duration: 0.4, ease: "power3" });
114
+
115
+ container.addEventListener("mousemove", (e) => {
116
+ xTo(e.pageX);
117
+ yTo(e.pageY);
118
+ });
119
+ ```
120
+
121
+ > **Render mode has no input events.** The renderer seeks frame-by-frame; `mousemove`, `scroll`, etc. never fire. `quickTo`'s main use case applies in **live preview** in the browser only. For audio-reactive motion in renders, pre-extract audio data and drive the timeline declaratively (see `../rules/gsap-effects.md`).
122
+
123
+ ### Stagger beats N tweens
124
+
125
+ One tween with `stagger` beats N tweens with manual delays for both readability and runtime cost.
126
+
127
+ ### Cleanup
128
+
129
+ In live preview, pause or `kill()` off-screen animations. Render mode is unaffected (the renderer drives time directly).
@@ -0,0 +1,105 @@
1
+ ---
2
+ name: hyperframes-gsap-adapter
3
+ description: GSAP animation API reference for HyperFrames. Use when writing seekable GSAP timelines in HyperFrames compositions, including gsap.to(), from(), fromTo(), set(), timeline position parameters, labels, easing, stagger, finite repeats, and transform performance.
4
+ ---
5
+
6
+ # HyperFrames GSAP
7
+
8
+ GSAP usage scoped to HyperFrames' seek-driven render model. This technical reference does not choose choreography. See `minimal-composition.md` and `determinism-rules.md` for the composition contract.
9
+
10
+ ## HyperFrames Contract
11
+
12
+ HyperFrames controls GSAP through its `gsap` runtime adapter. Create a paused timeline synchronously, register it on `window.__timelines` with the exact `data-composition-id`, and let HyperFrames seek it.
13
+
14
+ ```html
15
+ <script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script>
16
+ <script>
17
+ window.__timelines = window.__timelines || {};
18
+ const tl = gsap.timeline({ paused: true });
19
+
20
+ tl.from(".title", { y: 48, opacity: 0, duration: 0.6, ease: "power3.out" }, 0);
21
+ tl.to(".accent", { scaleX: 1, duration: 0.5, ease: "power2.out" }, 0.25);
22
+
23
+ window.__timelines["main"] = tl; // key must equal data-composition-id on the composition root
24
+ </script>
25
+ ```
26
+
27
+ - The registry key must match the composition root's `data-composition-id`.
28
+ - Bracket and dot syntax both register: `window.__timelines["main"] = tl` and `window.__timelines.main = tl` are equivalent (the linter recognizes both). Bracket form is required when the id isn't a valid identifier (e.g. contains `-`).
29
+ - Do not call `tl.play()` for render-critical motion.
30
+ - Building inside an async callback such as `document.fonts.ready` is supported and common. What breaks is **registering the key before the build finishes**: an empty timeline registered early is treated as ready and nested empty, so it renders blank (`lint`: `gsap_timeline_registered_before_async_build`, error). Assign `window.__timelines[id] = tl` at the end of the callback. Do not drive render-critical motion from timers or event handlers.
31
+ - Keep loops finite. HyperFrames renders finite video durations.
32
+ - **Render duration comes from `data-duration` on the composition root, not from GSAP timeline length.** Do not pad the timeline with empty tweens like `tl.set({}, {}, 283)` to "extend" it. (Some external docs show this trick; in HyperFrames it conflicts with the seek-driven duration model — set `data-duration` instead.)
33
+
34
+ ## Core Tween Methods
35
+
36
+ - **gsap.to(targets, vars)** — animate from current state to `vars`. Most common.
37
+ - **gsap.from(targets, vars)** — animate from `vars` to current state (entrances).
38
+ - **gsap.fromTo(targets, fromVars, toVars)** — explicit start and end.
39
+ - **gsap.set(targets, vars)** — apply immediately (duration 0).
40
+
41
+ Always use **camelCase** property names (e.g. `backgroundColor`, `rotationX`).
42
+
43
+ ## Common vars (cheatsheet)
44
+
45
+ - **duration** — seconds (default 0.5).
46
+ - **delay** — seconds before start.
47
+ - **ease** — `"power1.out"` (default), `"power3.inOut"`, `"back.out(1.7)"`, `"elastic.out(1, 0.3)"`, `"none"`. See `./gsap-easing-and-stagger.md`.
48
+ - **stagger** — number or object. See `./gsap-easing-and-stagger.md`.
49
+ - **repeat** — finite number; never `-1` in HyperFrames. Compute repeats from the visible duration.
50
+ - **yoyo** — alternates direction with repeat.
51
+ - **overwrite** — `false` (default), `true`, or `"auto"`.
52
+ - **immediateRender** — default `true` for from()/fromTo(). Set `false` on later tweens targeting the same property+element.
53
+ - **onComplete**, **onStart**, **onUpdate** — callbacks.
54
+
55
+ For transforms, autoAlpha, clearProps, and SVG specifics see `./gsap-transforms-and-perf.md`.
56
+
57
+ ## Animated properties
58
+
59
+ Prefer these efficient targets when they achieve the intended motion:
60
+
61
+ - **Compositor-cheap**: `opacity`, `x`, `y`, `scale`, `scaleX`, `scaleY`, `rotation`, `rotationX`, `rotationY`, `skewX`, `skewY`, `transformOrigin`
62
+ - **Visual fills**: `color`, `backgroundColor`, `borderColor`, `borderRadius`
63
+ - **CSS variables**: `"--hue": 180` etc.
64
+ - **Media `volume`** (on `<audio>` / `<video>`): do not tween it for fades or ducking; use the `data-automation` volume lane (see `data-attributes.md`). A lane wins over a tween on the same element.
65
+ - **DOM text `innerText`** (for numeric counters): tween it directly, e.g. `tl.to(el, { innerText: 100, snap: { innerText: 1 } })` — `snap` keeps it integer; the GSAP inspector recognizes it as a counter. Use a deterministic proxy value with `onUpdate` for locale formatting or suffix logic when the design needs it.
66
+
67
+ **Avoid** (use the transform alias instead):
68
+
69
+ - `width` / `height` / `top` / `left` / `right` / `bottom` / `margin*` / `padding*` — trigger layout reflows. Use `scaleX/Y` (with `transformOrigin`) or `x` / `y`.
70
+
71
+ **Forbidden** (breaks the renderer or the clip lifecycle):
72
+
73
+ - `display`, raw `visibility` **on a clip element**: never duration-tween these. HyperFrames owns a clip's visibility and `lint` rejects it. Use `autoAlpha` (opacity plus endpoint visibility) or a zero-duration timeline set at an explicit boundary. Animating a clip element's other visual properties is fine and the shipped catalog does it throughout; what is forbidden is taking over its visibility.
74
+ - Anything driven by `Math.random()`, `Date.now()`, `performance.now()`, or event handlers — animation state must be deterministic from time alone.
75
+
76
+ > **Note**: the list above is a **denylist**, not an allowlist. Properties outside it, including `width`, `height`, `filter`, `clipPath` and `strokeDashoffset`, are legitimate targets; prefer transforms and opacity where you have the choice, for performance rather than correctness. See `determinism-rules.md` for the full deterministic-render contract.
77
+
78
+ ## References
79
+
80
+ - `./gsap-timeline-and-labels.md` — timeline creation, position parameter (`+=`, `<`, `>`), labels, nesting, sub-comp `fromTo` preference, playback control.
81
+ - `./gsap-easing-and-stagger.md` — easing families, stagger objects, function-based values, `gsap.matchMedia()`, `gsap.defaults()`.
82
+ - `./gsap-transforms-and-perf.md` — transform aliases, autoAlpha, `quickTo`, `will-change`, performance rules.
83
+ - The video's plan defines effects and motion; these API examples are not additional creative instructions.
84
+
85
+ ## Best Practices
86
+
87
+ - Use camelCase property names; prefer transform aliases and autoAlpha.
88
+ - Prefer timelines over chained tweens with delays; use the position parameter.
89
+ - Add labels with `addLabel()` for readable sequencing.
90
+ - Pass defaults into the timeline constructor.
91
+ - Store the tween/timeline return value when controlling playback.
92
+
93
+ ## Do Not
94
+
95
+ - Animate layout properties (`width`/`height`/`top`/`left`) when transforms suffice.
96
+ - Use both `svgOrigin` and `transformOrigin` on the same SVG element.
97
+ - Chain animations with `delay` when a timeline can sequence them.
98
+ - Create tweens before the DOM exists.
99
+ - Use infinite `repeat: -1` in HyperFrames compositions — use finite repeat counts computed from the visible duration.
100
+
101
+ ## Credits And References
102
+
103
+ - HyperFrames adapter source: `packages/core/src/runtime/adapters/gsap.ts`.
104
+ - GSAP documentation: https://gsap.com/docs/v3/
105
+ - GSAP timeline pause and seek behavior: https://gsap.com/docs/v3/GSAP/Timeline/pause%28%29/
@@ -0,0 +1,62 @@
1
+ # GG runtime inputs and assets
2
+
3
+ This is implementation support, not a creative workflow. The video's plan in
4
+ `frame.md` sets the design. Bind approved text, fonts, colours, logos and media
5
+ without adding a second look-selection process.
6
+
7
+ `hf` in these references is shorthand for the exact bundled launcher command
8
+ in the system prompt; expand it, never run bare `hf` or `npx hyperframes`.
9
+ `<node>` and `<motion bin>` also come from that prompt. No self-updates,
10
+ package installs, cloud rendering or publishing without explicit permission.
11
+
12
+ ## Local inputs
13
+
14
+ - Keep original captures/uploads in `sources/`; use local `assets/` for the
15
+ files consumed by the composition. Never overwrite originals or finished renders.
16
+ - A reusable kit lives at `brand-kits/<slug>/Motion.md` in the Motion workspace.
17
+ Keep it read-only for ordinary video work. Record the selected kit and permitted
18
+ bindings in `frame.md`; preserve legacy briefs rather than duplicating plans.
19
+ - Record fit, crop and in-point choices in `frame.md`. A longer title or a
20
+ different aspect ratio calls for a deliberate layout adjustment, not a silent
21
+ crop.
22
+ - Root output duration is a static composition contract. If an input changes
23
+ the duration, update the authored root explicitly; a runtime variable cannot
24
+ silently change the compiled video length.
25
+
26
+ ## Existing helpers (only when needed)
27
+
28
+ ```sh
29
+ <node> "<motion bin>/fonts.mjs" list
30
+ <node> "<motion bin>/fonts.mjs" add <project> <Family>...
31
+ <node> "<motion bin>/pdf-extract.mjs" <file.pdf> <output-dir>
32
+ <node> "<motion bin>/three.mjs" add <project>
33
+ <node> "<motion bin>/library.mjs" list
34
+ <node> "<motion bin>/reveal.mjs" <delivered-file>
35
+ ```
36
+
37
+ Inspect helper help for less common operations; do not guess options. Fonts,
38
+ Three.js and library assets remain available offline, but their existence does
39
+ not require using them. Respect actual licenses and required brand typography.
40
+
41
+ `fonts.mjs add` returns `head`: a `<style>` block of `@font-face` rules with
42
+ paths from the project folder. Paste it into the composition `<head>`.
43
+ `hf check` only recognises fonts declared in the page, so linking
44
+ `assets/fonts/fonts.css` instead renders fine but is reported as missing fonts.
45
+
46
+ GSAP loads from the pinned CDN script in
47
+ [minimal-composition](minimal-composition.md). There is no local copy in the
48
+ bundle; do not search for one or copy one from another project.
49
+
50
+ Shared music and SFX are at `../../assets/music/` and `../../assets/sfx/` relative
51
+ to this document. Upstream metadata can retain historical `skills/brag/` paths;
52
+ resolve its filenames under these shared asset roots, not the removed skill.
53
+ Those provenance notes are not instructions to invoke an old workflow.
54
+ Preserve credits, cue maps and SFX analysis. Copy only used
55
+ assets into the video project. The plan or user determines whether
56
+ sound belongs in the video; do not automatically add music or hits.
57
+
58
+ Use `motion_check` once on the current render as specified by `video-qa`; it
59
+ runs the media helpers and returns images for this agent to inspect. Do not
60
+ repeat its checks as a separate checklist. Request permission before
61
+ installing missing FFmpeg/browser software; a detector setup failure does not
62
+ justify skipping validation. Never upload user files to resolve a local blocker.
@@ -0,0 +1,131 @@
1
+ # lint, check, snapshot
2
+
3
+ Motion's `motion_check` tool already runs `check`, including lint, runtime, layout and contrast, and returns rendered images. Do not run the commands below as additional delivery gates. Use them only for targeted debugging of a concrete failure. `snapshot` captures still frames and zoomed crops; `validate`, `inspect` and `layout` are deprecated because `check` covers them.
4
+
5
+ ## Discipline (motion-heavy work)
6
+
7
+ For a concrete problem during authoring or editing:
8
+
9
+ - Use `lint` for a static-code failure or `check --snapshots` for runtime/layout evidence, not both by default.
10
+ - Look at the returned images before changing the animation: a diagnostic must not become an alternative art direction.
11
+ - Treat layout errors as defects unless a snapshot proves the layering is intentional, in which case mark it with `data-layout-allow-overflow` / `data-layout-allow-overlap` / `data-layout-allow-occlusion` / `data-layout-allow-caption-zone` (caption band only).
12
+ - Existing meaningful motion assertions may remain, but GG does not require a new `*.motion.json` sidecar for every video. Use rendered-pixel checks and the `video-qa` evidence process for liveness, especially for canvas/WebGL. No detector or screenshot proves playback was watched.
13
+
14
+ ## lint
15
+
16
+ ```bash
17
+ hf lint # current directory
18
+ hf lint ./my-project # specific project
19
+ hf lint --verbose # info-level findings
20
+ hf lint --json # machine-readable
21
+ ```
22
+
23
+ Lints `index.html` and all files in `compositions/`. Reports errors (must fix), warnings (should fix), and info (with `--verbose`). Catches missing `data-composition-id`, overlapping tracks on the same `data-track-index`, unregistered timelines, and GSAP/CSS transform conflicts.
24
+
25
+ `<video>`/`<audio>` work at any nesting depth, including inside a `compositions/*.html` sub-composition or a wrapper `<div>`: the runtime discovers media with a flat DOM query and seeks/decodes it wherever it lives (`packages/core/src/runtime/{media,startResolver}.ts`). After a render, `snapshot` each scene that has a video and confirm the panel actually shows footage (a blank/black panel where a clip should play is a real bug, not a placeholder).
26
+
27
+ ## check
28
+
29
+ ```bash
30
+ hf check # current directory: the full browser gate
31
+ hf check ./my-project # specific project
32
+ hf check --json # agent-readable envelope {ok, lint, runtime, layout, motion, contrast, hdr, snapshots}
33
+ hf check --snapshots # also write overview frames (annotated) + per-finding crops
34
+ hf check --samples 15 # denser timeline sweep (default 9)
35
+ hf check --at 1.5,4,7.25 # explicit hero-frame timestamps
36
+ hf check --at-transitions # also sample every tween start/end boundary
37
+ hf check --tolerance 4 # allowed overflow px before reporting (default 2)
38
+ hf check --timeout 30000 # initial render-ready + navigation minimum in ms (defaults: 3000 / 10000)
39
+ hf check --no-contrast # skip the WCAG audit while iterating
40
+ hf check --strict # exit non-zero on warnings too (default: only errors)
41
+ ```
42
+
43
+ One command, one Chrome boot. `check` runs the linter first and skips the browser entirely when lint reports errors. Then it loads the bundled composition once, wires runtime listeners before navigation, and sweeps one seek grid running every audit per sample:
44
+
45
+ - **Runtime**: JavaScript console errors, unhandled exceptions, failed network requests (media-file `ERR_ABORTED` filtered out), HTTP 4xx/5xx.
46
+ - **Layout**: text extending outside its container or the canvas, text clipped by its own box, held text overlaps and occlusion (with an approximate covered fraction), children escaping clipping containers.
47
+ - **Motion**: `*.motion.json` sidecar assertions against the same seeked timeline (see below).
48
+ - **Contrast**: WCAG AA on visible text, sampled at 5 grid points. Failures are **errors** and each finding carries the sampled fg/bg colors, measured vs required ratio, and a suggested compliant color in the same palette direction, so most contrast fixes need no screenshot at all.
49
+
50
+ Every finding carries a selector, the element's `data-*` identity, the composition source file, a bbox, and the sample time: jump straight from the JSON to the HTML you must edit and re-run.
51
+
52
+ **Severity is persistence-aware.** A dynamic issue observed at a single grid sample (an entrance/exit transient) demotes to info and never gates. Issues held across samples gate the exit code, a held `content_overlap` is an error, and a held, partially-visible `canvas_overflow` breaching ≥5% of the canvas promotes to warning. Coordinate-frame findings (`escaped_container`, `panel_out_of_canvas`, `connector_detached`) flag geometry computed in one frame but rendered in another — an element far outside its offset parent, a painted panel stuck across the canvas edge, a connector line detached from every node. Text drawn into a `<canvas>` has no DOM box, so `canvas_overflow` cannot see it; `canvas_content_at_edge` warns when a canvas's pixels show sharp content (drawn text, hard shapes) along the frame edge — mark intentional full-bleed art (particles, photos) with `data-layout-allow-overflow`. If a 3s+ composition shows zero geometry change across every sample, `check` fails with `sweep_static`: a frozen timeline makes every green verdict unreliable, so it refuses to pass. The fingerprint includes per-element opacity, so opacity-only reveals (code typing, staggered fades) count as motion — but only while they're still in flight at the sampled times. The classic trap is a reveal that completes early and then holds a static frame for the rest of the duration: every sample lands on the settled state and the run fails. For a source-backed recipe, preserve that early reveal and reading hold. Diagnose with samples at its actual action times and the rendered-pixel result. Do not spread the reveal, add a blinking element or introduce drift to appease a heuristic. Report an unresolved detector conflict honestly rather than changing locked choreography or claiming a pass.
53
+
54
+ **Escape hatches** (mark intent in the HTML, then re-run):
55
+
56
+ - `data-layout-allow-overflow` — overflow is intentional (entrance/exit travel).
57
+ - `data-layout-allow-overlap` — deliberate text layering (e.g. a demo cursor label over a heading). Applies only to the marked text block; it is not inherited. Mark the specific layering participant, never a scene/root wrapper, so unrelated descendant collisions remain auditable.
58
+ - `data-layout-allow-occlusion` — an element is meant to cover text.
59
+ - `data-layout-allow-caption-zone` — intentional lower-third / caption-band copy under `--caption-zone`. Applies to the marked element and every descendant (`closest`); silences only `caption_zone_collision` (not overflow/overlap/occlusion). Prefer the narrowest wrapper that owns the intentional band copy.
60
+ - `data-layout-ignore` — decorative element that should never be audited.
61
+
62
+ **Opt-in pipeline gates** (used by orchestrators; off by default):
63
+
64
+ ```bash
65
+ hf check --caption-zone "x0=0;y0=.82;x1=1;y1=1;severity=error;seek=.25,1"
66
+ hf check --frame-check # media (img/svg/video/canvas) out-of-frame detection
67
+ ```
68
+
69
+ `--caption-zone` takes fractional band geometry (`x0/y0/x1/y1` required, 0-1 fractions of the composition's own canvas, portrait included) with optional `severity` and comma-separated `seek` fractions; it flags a text element's DOM box (`getBoundingClientRect`) that overlaps the band. Waive intentional lower-third copy with `data-layout-allow-caption-zone` on the element or its nearest wrapper (see Escape hatches). `--frame-check` reports media elements breaching the canvas beyond `max(120px, 6% of the min canvas dimension)`.
70
+
71
+ **Fixing contrast errors** — thresholds are 4.5:1 for normal text, 3:1 for large text (24px+, or 19px+ bold). The finding's `suggestedColor` already picks the nearest compliant color in the right direction (brighten on dark backgrounds, darken on light); apply an allowed correction, or resolve a conflict with locked source/brand colours before changing them. Recheck the changed output through `motion_check`; do not duplicate the full diagnostic checklist.
72
+
73
+ ## Motion verification (`*.motion.json` sidecar)
74
+
75
+ `check` verifies **motion intent** against the same seeked timeline the renderer uses — the closest automated proxy for "render the MP4 and watch it". It catches render-vs-preview bugs layout sampling can't: an entrance reveal the seek lands past, a broken stagger order, an element drifting off-frame mid-tween, a frozen shot.
76
+
77
+ Drop a `*.motion.json` sidecar next to the composition (matching the html basename when several compositions share a dir). `check` discovers it automatically — no flag, no authoring-framework changes. With no sidecar, `check` behaves exactly as before.
78
+
79
+ ```json
80
+ {
81
+ "duration": 6,
82
+ "assertions": [
83
+ { "kind": "appearsBy", "selector": "#headline", "bySec": 0.5 },
84
+ { "kind": "before", "a": "#headline", "b": "#cta" },
85
+ { "kind": "staysInFrame", "selector": ".card" },
86
+ { "kind": "keepsMoving", "withinSelector": ".scene" }
87
+ ]
88
+ }
89
+ ```
90
+
91
+ | Assertion | Fails (code) when |
92
+ | ------------------------------ | --------------------------------------------------------------------------- |
93
+ | `appearsBy(selector, bySec)` | not visible (opacity ≥ 0.5) by `bySec` — `motion_appears_late` |
94
+ | `before(a, b)` | `a` does not first appear strictly before `b` — `motion_out_of_order` |
95
+ | `staysInFrame(selector)` | once visible, its box leaves the canvas — `motion_off_frame` |
96
+ | `keepsMoving(withinSelector?)` | a fully-static window exceeds `maxStaticSec` (default 2s) — `motion_frozen` |
97
+
98
+ `duration`, `withinSelector`, and `maxStaticSec` are optional. Findings are **errors by default** and appear in the same human and `--json` output as layout findings. A selector that matches nothing is reported as `motion_selector_missing` rather than silently passing — a typo'd selector fails loudly. Use this in the feedback loop instead of eyeballing the render: assert what the motion is supposed to do, and let `check` tell you when the seek diverges from intent.
99
+
100
+ ## snapshot
101
+
102
+ ```bash
103
+ hf snapshot # 5 key frames as PNG
104
+ hf snapshot ./my-project # specific project
105
+ hf snapshot --frames 10 # evenly-spaced N frames
106
+ ```
107
+
108
+ Captures still PNGs from the composition for visual diffing, thumbnails, or attaching to a PR. Faster than rendering a video when you only need a few hero frames. Output lands in the project's snapshots directory. Not deprecated: it remains the standalone capture utility, while `check --snapshots` covers the gate's needs (overview frames annotated with labeled finding boxes, plus `finding-NN-<code>.png` crops for every error finding with a bbox).
109
+
110
+ ### Zooming into a reported finding
111
+
112
+ `hyperframes check --snapshots` already writes a `finding-NN-<code>.png` crop for every error finding that carries a bbox, but the same zoom is available standalone once you know what to look at:
113
+
114
+ ```bash
115
+ hf check --snapshots # reports a finding, e.g. content_overlap on "#cta"
116
+ hf snapshot --zoom "#cta" # crop the element to verify the defect, at 3x density
117
+ hf snapshot --zoom "100,50,400,300" --zoom-scale 2 # or an exact pixel region
118
+ # fix the composition HTML, then re-check:
119
+ hf check
120
+ ```
121
+
122
+ `--zoom` takes a CSS selector or an exact `x,y,w,h` pixel region and always produces a real high-density crop (a raised `deviceScaleFactor`, never CSS zoom or a viewport resize), so the composition's layout — and its render determinism — is untouched. A selector matching nothing is a loud error, not a silent full-frame fallback, and a frame where the target has no visible box (collapsed or animated off-canvas) is skipped with a note instead of written as a sliver.
123
+
124
+ ## Deprecated: validate, inspect, layout
125
+
126
+ All three keep working, print a deprecation notice on stderr, and mark `_meta.deprecated: true` in `--json`. Their functionality lives in `check`:
127
+
128
+ - `validate` (runtime errors + contrast) → `check` (contrast failures are now gating errors with fix payloads, not warnings).
129
+ - `inspect` / `layout` (layout sweep + motion sidecar) → `check` (same flags: `--samples`, `--at`, `--at-transitions`, `--tolerance`, `--strict`).
130
+
131
+ Migrate scripts by replacing the sequence with the single `check` invocation; scaffolded projects' `npm run check` already points there.
@@ -0,0 +1,75 @@
1
+ # Minimal Composition
2
+
3
+ The smallest renderable HyperFrames composition — a standalone (top-level) root with one clip and one tween:
4
+
5
+ ```html
6
+ <!doctype html>
7
+ <html lang="en">
8
+ <head>
9
+ <meta charset="UTF-8" />
10
+ <meta name="viewport" content="width=1920, height=1080" />
11
+ <title>Minimal HyperFrames Composition</title>
12
+ <script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script>
13
+ <style>
14
+ body {
15
+ margin: 0;
16
+ background: #0b0f14;
17
+ color: white;
18
+ font-family: Inter, system-ui, sans-serif;
19
+ }
20
+ #root {
21
+ position: relative;
22
+ width: 100%;
23
+ height: 100%;
24
+ overflow: hidden;
25
+ }
26
+ .clip {
27
+ position: absolute;
28
+ inset: 0;
29
+ display: grid;
30
+ place-items: center;
31
+ }
32
+ h1 {
33
+ margin: 0;
34
+ font-size: 96px;
35
+ }
36
+ </style>
37
+ </head>
38
+ <body>
39
+ <div
40
+ id="root"
41
+ data-composition-id="main"
42
+ data-start="0"
43
+ data-width="1920"
44
+ data-height="1080"
45
+ data-duration="5"
46
+ >
47
+ <section id="title-card" class="clip" data-start="0" data-duration="5">
48
+ <h1 id="title">Hello HyperFrames</h1>
49
+ </section>
50
+ </div>
51
+ <script>
52
+ const tl = gsap.timeline({ paused: true });
53
+ tl.from("#title", { y: 48, opacity: 0, duration: 0.6, ease: "power3.out" }, 0.2);
54
+ window.__timelines["main"] = tl;
55
+ </script>
56
+ </body>
57
+ </html>
58
+ ```
59
+
60
+ What the runtime actually requires:
61
+
62
+ - Root `<div>` with `data-composition-id`, `data-width`, `data-height`. Root `data-start="0"` is written above by convention and every shipped block has it, but the runtime stamps it when absent, so it is not required.
63
+ - A duration source: root `data-duration` (as above), or a GSAP timeline, or media, or an adapter that can infer one.
64
+ - Timed elements carry `data-start` plus a duration. That attribute alone is what makes an element a clip: `class="clip"` is a layout and tooling convention, and `data-track-index` is a Studio display lane. Neither is required, and a composition with no clips at all renders fine.
65
+ - A GSAP timeline created paused and registered on `window.__timelines["<composition-id>"]`.
66
+
67
+ Everything else in the skeleton is ordinary HTML and CSS: the `#root` box, `.clip` positioning, and fonts are yours to choose.
68
+
69
+ This pattern is **standalone** (top-level `index.html`) — no `<template>` wrapper around the root. For sub-compositions (files loaded by `data-composition-src`), see `sub-compositions.md`.
70
+
71
+ ## Vertical (9:16)
72
+
73
+ For phone-first video, set the viewport meta to `width=1080, height=1920`, give the root `data-width="1080"` and `data-height="1920"`, and render with the matching size (`--resolution portrait`). Everything else stays the same.
74
+
75
+ Size type against the frame's width, not its height: a 96 px headline that suits a 1920 px-wide frame takes over half the width of a 1080 px one, so check that the longest word fits. When the video will play in a feed (Reels, TikTok, Shorts), keep text, logos and key subjects out of the areas the app covers. Meta asks for the top 14%, the bottom 35% and 6% on each side to stay clear (about 270 px, 670 px and 65 px at 1080×1920); TikTok covers a similar band at the bottom and a column of buttons on the right.