@vysmo/transitions 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 (384) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +618 -0
  3. package/dist/index.d.ts +6 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +3 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/inputs/normalize.d.ts +2 -0
  8. package/dist/inputs/normalize.d.ts.map +1 -0
  9. package/dist/inputs/normalize.js +2 -0
  10. package/dist/inputs/normalize.js.map +1 -0
  11. package/dist/runner/gl.d.ts +7 -0
  12. package/dist/runner/gl.d.ts.map +1 -0
  13. package/dist/runner/gl.js +59 -0
  14. package/dist/runner/gl.js.map +1 -0
  15. package/dist/runner/mesh.d.ts +28 -0
  16. package/dist/runner/mesh.d.ts.map +1 -0
  17. package/dist/runner/mesh.js +96 -0
  18. package/dist/runner/mesh.js.map +1 -0
  19. package/dist/runner/runner.d.ts +107 -0
  20. package/dist/runner/runner.d.ts.map +1 -0
  21. package/dist/runner/runner.js +410 -0
  22. package/dist/runner/runner.js.map +1 -0
  23. package/dist/transitions/all.d.ts +9 -0
  24. package/dist/transitions/all.d.ts.map +1 -0
  25. package/dist/transitions/all.js +129 -0
  26. package/dist/transitions/all.js.map +1 -0
  27. package/dist/transitions/bloom-reveal.d.ts +27 -0
  28. package/dist/transitions/bloom-reveal.d.ts.map +1 -0
  29. package/dist/transitions/bloom-reveal.js +106 -0
  30. package/dist/transitions/bloom-reveal.js.map +1 -0
  31. package/dist/transitions/chromatic-pulse.d.ts +4 -0
  32. package/dist/transitions/chromatic-pulse.d.ts.map +1 -0
  33. package/dist/transitions/chromatic-pulse.js +40 -0
  34. package/dist/transitions/chromatic-pulse.js.map +1 -0
  35. package/dist/transitions/clock-wipe.d.ts +6 -0
  36. package/dist/transitions/clock-wipe.d.ts.map +1 -0
  37. package/dist/transitions/clock-wipe.js +33 -0
  38. package/dist/transitions/clock-wipe.js.map +1 -0
  39. package/dist/transitions/color-phase.d.ts +10 -0
  40. package/dist/transitions/color-phase.d.ts.map +1 -0
  41. package/dist/transitions/color-phase.js +24 -0
  42. package/dist/transitions/color-phase.js.map +1 -0
  43. package/dist/transitions/colour-distance.d.ts.map +1 -0
  44. package/dist/transitions/cross-warp.d.ts.map +1 -0
  45. package/dist/transitions/cross-zoom.d.ts +5 -0
  46. package/dist/transitions/cross-zoom.d.ts.map +1 -0
  47. package/dist/transitions/cross-zoom.js +59 -0
  48. package/dist/transitions/cross-zoom.js.map +1 -0
  49. package/dist/transitions/crosshatch.d.ts +12 -0
  50. package/dist/transitions/crosshatch.d.ts.map +1 -0
  51. package/dist/transitions/crosshatch.js +49 -0
  52. package/dist/transitions/crosshatch.js.map +1 -0
  53. package/dist/transitions/define.d.ts +35 -0
  54. package/dist/transitions/define.d.ts.map +1 -0
  55. package/dist/transitions/define.js +37 -0
  56. package/dist/transitions/define.js.map +1 -0
  57. package/dist/transitions/directional-burn.d.ts +14 -0
  58. package/dist/transitions/directional-burn.d.ts.map +1 -0
  59. package/dist/transitions/directional-burn.js +67 -0
  60. package/dist/transitions/directional-burn.js.map +1 -0
  61. package/dist/transitions/directional-warp.d.ts +12 -0
  62. package/dist/transitions/directional-warp.d.ts.map +1 -0
  63. package/dist/transitions/directional-warp.js +46 -0
  64. package/dist/transitions/directional-warp.js.map +1 -0
  65. package/dist/transitions/dissolve.d.ts +2 -0
  66. package/dist/transitions/dissolve.d.ts.map +1 -0
  67. package/dist/transitions/dissolve.js +16 -0
  68. package/dist/transitions/dissolve.js.map +1 -0
  69. package/dist/transitions/dreamy-zoom.d.ts +25 -0
  70. package/dist/transitions/dreamy-zoom.d.ts.map +1 -0
  71. package/dist/transitions/dreamy-zoom.js +66 -0
  72. package/dist/transitions/dreamy-zoom.js.map +1 -0
  73. package/dist/transitions/dreamy.d.ts +8 -0
  74. package/dist/transitions/dreamy.d.ts.map +1 -0
  75. package/dist/transitions/dreamy.js +26 -0
  76. package/dist/transitions/dreamy.js.map +1 -0
  77. package/dist/transitions/drip-wipe.d.ts +22 -0
  78. package/dist/transitions/drip-wipe.d.ts.map +1 -0
  79. package/dist/transitions/drip-wipe.js +109 -0
  80. package/dist/transitions/drip-wipe.js.map +1 -0
  81. package/dist/transitions/ember-scatter.d.ts +22 -0
  82. package/dist/transitions/ember-scatter.d.ts.map +1 -0
  83. package/dist/transitions/ember-scatter.js +94 -0
  84. package/dist/transitions/ember-scatter.js.map +1 -0
  85. package/dist/transitions/film-burn.d.ts +17 -0
  86. package/dist/transitions/film-burn.d.ts.map +1 -0
  87. package/dist/transitions/film-burn.js +101 -0
  88. package/dist/transitions/film-burn.js.map +1 -0
  89. package/dist/transitions/film-grain.d.ts +24 -0
  90. package/dist/transitions/film-grain.d.ts.map +1 -0
  91. package/dist/transitions/film-grain.js +78 -0
  92. package/dist/transitions/film-grain.js.map +1 -0
  93. package/dist/transitions/flow-warp.d.ts +20 -0
  94. package/dist/transitions/flow-warp.d.ts.map +1 -0
  95. package/dist/transitions/flow-warp.js +51 -0
  96. package/dist/transitions/flow-warp.js.map +1 -0
  97. package/dist/transitions/fluid-flow.d.ts +26 -0
  98. package/dist/transitions/fluid-flow.d.ts.map +1 -0
  99. package/dist/transitions/fluid-flow.js +94 -0
  100. package/dist/transitions/fluid-flow.js.map +1 -0
  101. package/dist/transitions/fly-eye.d.ts.map +1 -0
  102. package/dist/transitions/fly-eye.js +58 -0
  103. package/dist/transitions/fly-eye.js.map +1 -0
  104. package/dist/transitions/glass-shatter.d.ts +25 -0
  105. package/dist/transitions/glass-shatter.d.ts.map +1 -0
  106. package/dist/transitions/glass-shatter.js +86 -0
  107. package/dist/transitions/glass-shatter.js.map +1 -0
  108. package/dist/transitions/glitch.d.ts +6 -0
  109. package/dist/transitions/glitch.d.ts.map +1 -0
  110. package/dist/transitions/glitch.js +59 -0
  111. package/dist/transitions/glitch.js.map +1 -0
  112. package/dist/transitions/god-rays-reveal.d.ts +32 -0
  113. package/dist/transitions/god-rays-reveal.d.ts.map +1 -0
  114. package/dist/transitions/god-rays-reveal.js +110 -0
  115. package/dist/transitions/god-rays-reveal.js.map +1 -0
  116. package/dist/transitions/gravity-pull.d.ts +16 -0
  117. package/dist/transitions/gravity-pull.d.ts.map +1 -0
  118. package/dist/transitions/gravity-pull.js +65 -0
  119. package/dist/transitions/gravity-pull.js.map +1 -0
  120. package/dist/transitions/grid-reveal.d.ts +12 -0
  121. package/dist/transitions/grid-reveal.d.ts.map +1 -0
  122. package/dist/transitions/grid-reveal.js +53 -0
  123. package/dist/transitions/grid-reveal.js.map +1 -0
  124. package/dist/transitions/heat-haze.d.ts +13 -0
  125. package/dist/transitions/heat-haze.d.ts.map +1 -0
  126. package/dist/transitions/heat-haze.js +51 -0
  127. package/dist/transitions/heat-haze.js.map +1 -0
  128. package/dist/transitions/index.d.ts +64 -0
  129. package/dist/transitions/index.d.ts.map +1 -0
  130. package/dist/transitions/index.js +63 -0
  131. package/dist/transitions/index.js.map +1 -0
  132. package/dist/transitions/ink-bloom.d.ts +15 -0
  133. package/dist/transitions/ink-bloom.d.ts.map +1 -0
  134. package/dist/transitions/ink-bloom.js +76 -0
  135. package/dist/transitions/ink-bloom.js.map +1 -0
  136. package/dist/transitions/ink-diffuse.d.ts +26 -0
  137. package/dist/transitions/ink-diffuse.d.ts.map +1 -0
  138. package/dist/transitions/ink-diffuse.js +90 -0
  139. package/dist/transitions/ink-diffuse.js.map +1 -0
  140. package/dist/transitions/iris-zoom.d.ts +13 -0
  141. package/dist/transitions/iris-zoom.d.ts.map +1 -0
  142. package/dist/transitions/iris-zoom.js +67 -0
  143. package/dist/transitions/iris-zoom.js.map +1 -0
  144. package/dist/transitions/kinetic-bands.d.ts +7 -0
  145. package/dist/transitions/kinetic-bands.d.ts.map +1 -0
  146. package/dist/transitions/kinetic-bands.js +58 -0
  147. package/dist/transitions/kinetic-bands.js.map +1 -0
  148. package/dist/transitions/lenticular-flip.d.ts +22 -0
  149. package/dist/transitions/lenticular-flip.d.ts.map +1 -0
  150. package/dist/transitions/lenticular-flip.js +73 -0
  151. package/dist/transitions/lenticular-flip.js.map +1 -0
  152. package/dist/transitions/light-leak.d.ts +7 -0
  153. package/dist/transitions/light-leak.d.ts.map +1 -0
  154. package/dist/transitions/light-leak.js +43 -0
  155. package/dist/transitions/light-leak.js.map +1 -0
  156. package/dist/transitions/lightning-strike.d.ts +22 -0
  157. package/dist/transitions/lightning-strike.d.ts.map +1 -0
  158. package/dist/transitions/lightning-strike.js +90 -0
  159. package/dist/transitions/lightning-strike.js.map +1 -0
  160. package/dist/transitions/linear-blur.d.ts +11 -0
  161. package/dist/transitions/linear-blur.d.ts.map +1 -0
  162. package/dist/transitions/linear-blur.js +40 -0
  163. package/dist/transitions/linear-blur.js.map +1 -0
  164. package/dist/transitions/liquid-chrome.d.ts +22 -0
  165. package/dist/transitions/liquid-chrome.d.ts.map +1 -0
  166. package/dist/transitions/liquid-chrome.js +114 -0
  167. package/dist/transitions/liquid-chrome.js.map +1 -0
  168. package/dist/transitions/liquid-morph.d.ts +6 -0
  169. package/dist/transitions/liquid-morph.d.ts.map +1 -0
  170. package/dist/transitions/liquid-morph.js +50 -0
  171. package/dist/transitions/liquid-morph.js.map +1 -0
  172. package/dist/transitions/lumina-melt.d.ts +11 -0
  173. package/dist/transitions/lumina-melt.d.ts.map +1 -0
  174. package/dist/transitions/lumina-melt.js +36 -0
  175. package/dist/transitions/lumina-melt.js.map +1 -0
  176. package/dist/transitions/mosaic.d.ts +13 -0
  177. package/dist/transitions/mosaic.d.ts.map +1 -0
  178. package/dist/transitions/mosaic.js +58 -0
  179. package/dist/transitions/mosaic.js.map +1 -0
  180. package/dist/transitions/noise-dissolve.d.ts +5 -0
  181. package/dist/transitions/noise-dissolve.d.ts.map +1 -0
  182. package/dist/transitions/noise-dissolve.js +41 -0
  183. package/dist/transitions/noise-dissolve.js.map +1 -0
  184. package/dist/transitions/page-curl.d.ts +32 -0
  185. package/dist/transitions/page-curl.d.ts.map +1 -0
  186. package/dist/transitions/page-curl.js +165 -0
  187. package/dist/transitions/page-curl.js.map +1 -0
  188. package/dist/transitions/paint-bleed.d.ts +12 -0
  189. package/dist/transitions/paint-bleed.d.ts.map +1 -0
  190. package/dist/transitions/paint-bleed.js +59 -0
  191. package/dist/transitions/paint-bleed.js.map +1 -0
  192. package/dist/transitions/particle-assemble.d.ts +23 -0
  193. package/dist/transitions/particle-assemble.d.ts.map +1 -0
  194. package/dist/transitions/particle-assemble.js +65 -0
  195. package/dist/transitions/particle-assemble.js.map +1 -0
  196. package/dist/transitions/pinwheel.d.ts +11 -0
  197. package/dist/transitions/pinwheel.d.ts.map +1 -0
  198. package/dist/transitions/pinwheel.js +40 -0
  199. package/dist/transitions/pinwheel.js.map +1 -0
  200. package/dist/transitions/pixelate.d.ts +4 -0
  201. package/dist/transitions/pixelate.d.ts.map +1 -0
  202. package/dist/transitions/pixelate.js +26 -0
  203. package/dist/transitions/pixelate.js.map +1 -0
  204. package/dist/transitions/plasma-pulse.d.ts.map +1 -0
  205. package/dist/transitions/plasma-pulse.js +92 -0
  206. package/dist/transitions/plasma-pulse.js.map +1 -0
  207. package/dist/transitions/polka-dots-curtain.d.ts +13 -0
  208. package/dist/transitions/polka-dots-curtain.d.ts.map +1 -0
  209. package/dist/transitions/polka-dots-curtain.js +46 -0
  210. package/dist/transitions/polka-dots-curtain.js.map +1 -0
  211. package/dist/transitions/polygon-flip.d.ts +27 -0
  212. package/dist/transitions/polygon-flip.d.ts.map +1 -0
  213. package/dist/transitions/polygon-flip.js +97 -0
  214. package/dist/transitions/polygon-flip.js.map +1 -0
  215. package/dist/transitions/portal-dive.d.ts +18 -0
  216. package/dist/transitions/portal-dive.d.ts.map +1 -0
  217. package/dist/transitions/portal-dive.js +83 -0
  218. package/dist/transitions/portal-dive.js.map +1 -0
  219. package/dist/transitions/prism-split.d.ts +12 -0
  220. package/dist/transitions/prism-split.d.ts.map +1 -0
  221. package/dist/transitions/prism-split.js +52 -0
  222. package/dist/transitions/prism-split.js.map +1 -0
  223. package/dist/transitions/push.d.ts +4 -0
  224. package/dist/transitions/push.d.ts.map +1 -0
  225. package/dist/transitions/push.js +34 -0
  226. package/dist/transitions/push.js.map +1 -0
  227. package/dist/transitions/radial-reveal.d.ts +5 -0
  228. package/dist/transitions/radial-reveal.d.ts.map +1 -0
  229. package/dist/transitions/radial-reveal.js +31 -0
  230. package/dist/transitions/radial-reveal.js.map +1 -0
  231. package/dist/transitions/ripple-wave.d.ts +24 -0
  232. package/dist/transitions/ripple-wave.d.ts.map +1 -0
  233. package/dist/transitions/ripple-wave.js +135 -0
  234. package/dist/transitions/ripple-wave.js.map +1 -0
  235. package/dist/transitions/ripple.d.ts +7 -0
  236. package/dist/transitions/ripple.d.ts.map +1 -0
  237. package/dist/transitions/ripple.js +43 -0
  238. package/dist/transitions/ripple.js.map +1 -0
  239. package/dist/transitions/shape-reveal.d.ts +12 -0
  240. package/dist/transitions/shape-reveal.d.ts.map +1 -0
  241. package/dist/transitions/shape-reveal.js +53 -0
  242. package/dist/transitions/shape-reveal.js.map +1 -0
  243. package/dist/transitions/shockwave.d.ts +10 -0
  244. package/dist/transitions/shockwave.d.ts.map +1 -0
  245. package/dist/transitions/shockwave.js +56 -0
  246. package/dist/transitions/shockwave.js.map +1 -0
  247. package/dist/transitions/singularity.d.ts +22 -0
  248. package/dist/transitions/singularity.d.ts.map +1 -0
  249. package/dist/transitions/singularity.js +59 -0
  250. package/dist/transitions/singularity.js.map +1 -0
  251. package/dist/transitions/slide.d.ts +10 -0
  252. package/dist/transitions/slide.d.ts.map +1 -0
  253. package/dist/transitions/slide.js +76 -0
  254. package/dist/transitions/slide.js.map +1 -0
  255. package/dist/transitions/smoldering-edge.d.ts +15 -0
  256. package/dist/transitions/smoldering-edge.d.ts.map +1 -0
  257. package/dist/transitions/smoldering-edge.js +74 -0
  258. package/dist/transitions/smoldering-edge.js.map +1 -0
  259. package/dist/transitions/split.d.ts +14 -0
  260. package/dist/transitions/split.d.ts.map +1 -0
  261. package/dist/transitions/split.js +53 -0
  262. package/dist/transitions/split.js.map +1 -0
  263. package/dist/transitions/swirl.d.ts +12 -0
  264. package/dist/transitions/swirl.d.ts.map +1 -0
  265. package/dist/transitions/swirl.js +42 -0
  266. package/dist/transitions/swirl.js.map +1 -0
  267. package/dist/transitions/tangent-motion-blur.d.ts +13 -0
  268. package/dist/transitions/tangent-motion-blur.d.ts.map +1 -0
  269. package/dist/transitions/tangent-motion-blur.js +58 -0
  270. package/dist/transitions/tangent-motion-blur.js.map +1 -0
  271. package/dist/transitions/tile-scatter.d.ts +22 -0
  272. package/dist/transitions/tile-scatter.d.ts.map +1 -0
  273. package/dist/transitions/tile-scatter.js +122 -0
  274. package/dist/transitions/tile-scatter.js.map +1 -0
  275. package/dist/transitions/tilt-sweep.d.ts +11 -0
  276. package/dist/transitions/tilt-sweep.d.ts.map +1 -0
  277. package/dist/transitions/tilt-sweep.js +31 -0
  278. package/dist/transitions/tilt-sweep.js.map +1 -0
  279. package/dist/transitions/warp-zoom.d.ts +7 -0
  280. package/dist/transitions/warp-zoom.d.ts.map +1 -0
  281. package/dist/transitions/warp-zoom.js +70 -0
  282. package/dist/transitions/warp-zoom.js.map +1 -0
  283. package/dist/transitions/wave-stripes.d.ts +16 -0
  284. package/dist/transitions/wave-stripes.d.ts.map +1 -0
  285. package/dist/transitions/wave-stripes.js +55 -0
  286. package/dist/transitions/wave-stripes.js.map +1 -0
  287. package/dist/transitions/wave-wipe.d.ts +23 -0
  288. package/dist/transitions/wave-wipe.d.ts.map +1 -0
  289. package/dist/transitions/wave-wipe.js +84 -0
  290. package/dist/transitions/wave-wipe.js.map +1 -0
  291. package/dist/transitions/wind.d.ts +9 -0
  292. package/dist/transitions/wind.d.ts.map +1 -0
  293. package/dist/transitions/wind.js +48 -0
  294. package/dist/transitions/wind.js.map +1 -0
  295. package/dist/transitions/window-slice.d.ts +11 -0
  296. package/dist/transitions/window-slice.d.ts.map +1 -0
  297. package/dist/transitions/window-slice.js +34 -0
  298. package/dist/transitions/window-slice.js.map +1 -0
  299. package/dist/transitions/wipe-directional.d.ts +5 -0
  300. package/dist/transitions/wipe-directional.d.ts.map +1 -0
  301. package/dist/transitions/wipe-directional.js +26 -0
  302. package/dist/transitions/wipe-directional.js.map +1 -0
  303. package/dist/types.d.ts +78 -0
  304. package/dist/types.d.ts.map +1 -0
  305. package/dist/types.js +2 -0
  306. package/dist/types.js.map +1 -0
  307. package/package.json +56 -0
  308. package/src/__tests__/__screenshots__/endpoint-correctness.test.ts/endpoint-correctness---every-transition-must-be-pixel-pure-from-to-at-progress-0-1-rippleWave-at-progress-0-is-pure--from--1.png +0 -0
  309. package/src/__tests__/__screenshots__/endpoint-correctness.test.ts/endpoint-correctness---every-transition-must-be-pixel-pure-from-to-at-progress-0-1-rippleWave-at-progress-1-is-pure--to--1.png +0 -0
  310. package/src/__tests__/endpoint-correctness.test.ts +161 -0
  311. package/src/__tests__/readme.test.ts +39 -0
  312. package/src/__tests__/ssr.test.ts +45 -0
  313. package/src/index.ts +75 -0
  314. package/src/inputs/normalize.ts +1 -0
  315. package/src/runner/__tests__/__screenshots__/mesh.test.ts/buildSubdividedPlane-centroid-is-shared-across-a-face-and-equals-mean-of-its-3-positions-1.png +0 -0
  316. package/src/runner/__tests__/__screenshots__/mesh.test.ts/buildSubdividedPlane-uv-matches-aPosition---0-5---0-5-1.png +0 -0
  317. package/src/runner/__tests__/mesh.test.ts +128 -0
  318. package/src/runner/gl.ts +69 -0
  319. package/src/runner/mesh.ts +135 -0
  320. package/src/runner/runner.ts +528 -0
  321. package/src/transitions/all.ts +131 -0
  322. package/src/transitions/bloom-reveal.ts +106 -0
  323. package/src/transitions/chromatic-pulse.ts +40 -0
  324. package/src/transitions/clock-wipe.ts +33 -0
  325. package/src/transitions/color-phase.ts +24 -0
  326. package/src/transitions/cross-zoom.ts +59 -0
  327. package/src/transitions/crosshatch.ts +49 -0
  328. package/src/transitions/define.ts +56 -0
  329. package/src/transitions/directional-burn.ts +67 -0
  330. package/src/transitions/directional-warp.ts +46 -0
  331. package/src/transitions/dissolve.ts +16 -0
  332. package/src/transitions/dreamy-zoom.ts +66 -0
  333. package/src/transitions/dreamy.ts +26 -0
  334. package/src/transitions/drip-wipe.ts +109 -0
  335. package/src/transitions/ember-scatter.ts +94 -0
  336. package/src/transitions/film-burn.ts +101 -0
  337. package/src/transitions/film-grain.ts +78 -0
  338. package/src/transitions/flow-warp.ts +51 -0
  339. package/src/transitions/fluid-flow.ts +94 -0
  340. package/src/transitions/glass-shatter.ts +86 -0
  341. package/src/transitions/glitch.ts +59 -0
  342. package/src/transitions/god-rays-reveal.ts +110 -0
  343. package/src/transitions/gravity-pull.ts +65 -0
  344. package/src/transitions/grid-reveal.ts +53 -0
  345. package/src/transitions/heat-haze.ts +51 -0
  346. package/src/transitions/index.ts +63 -0
  347. package/src/transitions/ink-bloom.ts +76 -0
  348. package/src/transitions/ink-diffuse.ts +90 -0
  349. package/src/transitions/iris-zoom.ts +67 -0
  350. package/src/transitions/kinetic-bands.ts +58 -0
  351. package/src/transitions/lenticular-flip.ts +73 -0
  352. package/src/transitions/light-leak.ts +43 -0
  353. package/src/transitions/linear-blur.ts +40 -0
  354. package/src/transitions/liquid-chrome.ts +114 -0
  355. package/src/transitions/liquid-morph.ts +50 -0
  356. package/src/transitions/lumina-melt.ts +36 -0
  357. package/src/transitions/mosaic.ts +58 -0
  358. package/src/transitions/noise-dissolve.ts +41 -0
  359. package/src/transitions/page-curl.ts +165 -0
  360. package/src/transitions/paint-bleed.ts +59 -0
  361. package/src/transitions/pinwheel.ts +40 -0
  362. package/src/transitions/pixelate.ts +26 -0
  363. package/src/transitions/polka-dots-curtain.ts +46 -0
  364. package/src/transitions/polygon-flip.ts +97 -0
  365. package/src/transitions/portal-dive.ts +83 -0
  366. package/src/transitions/prism-split.ts +52 -0
  367. package/src/transitions/push.ts +34 -0
  368. package/src/transitions/radial-reveal.ts +31 -0
  369. package/src/transitions/ripple-wave.ts +135 -0
  370. package/src/transitions/ripple.ts +43 -0
  371. package/src/transitions/shape-reveal.ts +53 -0
  372. package/src/transitions/shockwave.ts +56 -0
  373. package/src/transitions/singularity.ts +59 -0
  374. package/src/transitions/slide.ts +76 -0
  375. package/src/transitions/smoldering-edge.ts +74 -0
  376. package/src/transitions/split.ts +53 -0
  377. package/src/transitions/swirl.ts +42 -0
  378. package/src/transitions/tangent-motion-blur.ts +58 -0
  379. package/src/transitions/tile-scatter.ts +122 -0
  380. package/src/transitions/warp-zoom.ts +70 -0
  381. package/src/transitions/wave-stripes.ts +55 -0
  382. package/src/transitions/wind.ts +48 -0
  383. package/src/transitions/wipe-directional.ts +26 -0
  384. package/src/types.ts +87 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gl.d.ts","sourceRoot":"","sources":["../../src/runner/gl.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,IAAI,aAAa,EACzC,aAAa,EACb,WAAW,EACX,YAAY,EACZ,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAExB,eAAO,MAAM,sBAAsB,sSAelC,CAAC;AAEF,eAAO,MAAM,mBAAmB,w9BA6B/B,CAAC;AAEF,eAAO,MAAM,mBAAmB,yDAI/B,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE7D"}
@@ -0,0 +1,59 @@
1
+ export { FULLSCREEN_VERTEX_SHADER as VERTEX_SHADER, compileShader, linkProgram, buildProgram, paramKeyToUniformName, } from "@vysmo/gl-core";
2
+ export const MESH_VERTEX_SHELL_HEAD = `#version 300 es
3
+ precision highp float;
4
+ uniform float uProgress;
5
+ uniform vec2 uResolution;
6
+ uniform int uPass;
7
+ uniform int uPassCount;
8
+ uniform int uInstances;
9
+ in vec2 aPosition;
10
+ in vec2 aUv;
11
+ in float aOffset;
12
+ in vec2 aCentroid;
13
+ in vec3 aBary;
14
+ in float aRandom;
15
+ out vec2 vUv;
16
+
17
+ `;
18
+ export const FRAGMENT_SHELL_HEAD = `#version 300 es
19
+ precision highp float;
20
+ uniform sampler2D uFrom;
21
+ uniform sampler2D uTo;
22
+ uniform sampler2D uDisplacement;
23
+ uniform sampler2D uEnvironment;
24
+ uniform sampler2D uPrevious;
25
+ uniform float uProgress;
26
+ uniform vec2 uResolution;
27
+ uniform int uPass;
28
+ uniform int uPassCount;
29
+ uniform int uInstances;
30
+ in vec2 vUv;
31
+ out vec4 fragColor;
32
+
33
+ vec4 getFromColor(vec2 uv) { return texture(uFrom, uv); }
34
+ vec4 getToColor(vec2 uv) { return texture(uTo, uv); }
35
+ vec4 getDisplacement(vec2 uv) { return texture(uDisplacement, uv); }
36
+ vec4 getEnvironment(vec2 uv) { return texture(uEnvironment, uv); }
37
+ vec4 getPrevious(vec2 uv) { return texture(uPrevious, uv); }
38
+
39
+ // Reflect out-of-range UVs back into [0,1] instead of clamping to edge.
40
+ // Use this when a shader displaces UVs (warp, flow, etc.) and you want
41
+ // the displaced regions to sample real interior content rather than
42
+ // streaked edge texels.
43
+ vec2 mirrorUv(vec2 uv) {
44
+ return abs(mod(uv + 1.0, 2.0) - 1.0);
45
+ }
46
+
47
+ `;
48
+ export const FRAGMENT_SHELL_TAIL = `
49
+ void main() {
50
+ fragColor = transition(vUv);
51
+ }
52
+ `;
53
+ export function wrapFragmentShader(userBody) {
54
+ return FRAGMENT_SHELL_HEAD + userBody + FRAGMENT_SHELL_TAIL;
55
+ }
56
+ export function wrapMeshVertexShader(userBody) {
57
+ return MESH_VERTEX_SHELL_HEAD + userBody;
58
+ }
59
+ //# sourceMappingURL=gl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gl.js","sourceRoot":"","sources":["../../src/runner/gl.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,IAAI,aAAa,EACzC,aAAa,EACb,WAAW,EACX,YAAY,EACZ,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAExB,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;CAerC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BlC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;CAIlC,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,OAAO,mBAAmB,GAAG,QAAQ,GAAG,mBAAmB,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,OAAO,sBAAsB,GAAG,QAAQ,CAAC;AAC3C,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Subdivided-plane geometry for mesh-based transitions.
3
+ *
4
+ * Output is unindexed (6 vertices per quad, 3 per triangle). Attributes
5
+ * are organised so the two triangles that form a quad share per-face
6
+ * data — a quad is the natural "face" unit for flip/scatter/fly effects
7
+ * because a square quad is self-symmetric under 180° rotation, whereas
8
+ * a right-isoceles triangle is not.
9
+ *
10
+ * Layout per vertex:
11
+ * aPosition — per-vertex, clip space [-1, 1]
12
+ * aUv — per-vertex, texture space [0, 1]
13
+ * aBary — per-vertex, barycentric within its triangle
14
+ * aCentroid — per-QUAD centre, shared by all 6 verts of a quad
15
+ * aOffset — per-QUAD deterministic shuffle in [0, 1]
16
+ * aRandom — per-QUAD independent hash in [0, 1]
17
+ */
18
+ export interface MeshBuffers {
19
+ vertexCount: number;
20
+ position: Float32Array;
21
+ uv: Float32Array;
22
+ offset: Float32Array;
23
+ centroid: Float32Array;
24
+ bary: Float32Array;
25
+ random: Float32Array;
26
+ }
27
+ export declare function buildSubdividedPlane(nx: number, ny: number): MeshBuffers;
28
+ //# sourceMappingURL=mesh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mesh.d.ts","sourceRoot":"","sources":["../../src/runner/mesh.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,YAAY,CAAC;IACvB,EAAE,EAAE,YAAY,CAAC;IACjB,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,YAAY,CAAC;IACvB,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,YAAY,CAAC;CACtB;AAgCD,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,WAAW,CA6ExE"}
@@ -0,0 +1,96 @@
1
+ const BARY_A = [1, 0, 0];
2
+ const BARY_B = [0, 1, 0];
3
+ const BARY_C = [0, 0, 1];
4
+ function seededShuffledOffsets(n) {
5
+ const out = new Float32Array(n);
6
+ if (n === 0)
7
+ return out;
8
+ if (n === 1) {
9
+ out[0] = 0;
10
+ return out;
11
+ }
12
+ for (let i = 0; i < n; i++)
13
+ out[i] = i / (n - 1);
14
+ // Park-Miller LCG, seeded deterministically.
15
+ let seed = 1337;
16
+ for (let i = n - 1; i > 0; i--) {
17
+ seed = (seed * 48271) % 0x7fffffff;
18
+ const j = seed % (i + 1);
19
+ const tmp = out[i];
20
+ out[i] = out[j];
21
+ out[j] = tmp;
22
+ }
23
+ return out;
24
+ }
25
+ function hash01(k) {
26
+ // Shadertoy-style hash, deterministic per integer input.
27
+ const x = Math.sin(k * 12.9898 + 78.233) * 43758.5453;
28
+ return x - Math.floor(x);
29
+ }
30
+ export function buildSubdividedPlane(nx, ny) {
31
+ const gridX = Math.max(1, Math.floor(nx));
32
+ const gridY = Math.max(1, Math.floor(ny));
33
+ const quadCount = gridX * gridY;
34
+ const faceCount = quadCount * 2;
35
+ const vertexCount = faceCount * 3;
36
+ const position = new Float32Array(vertexCount * 2);
37
+ const uv = new Float32Array(vertexCount * 2);
38
+ const offset = new Float32Array(vertexCount);
39
+ const centroid = new Float32Array(vertexCount * 2);
40
+ const bary = new Float32Array(vertexCount * 3);
41
+ const random = new Float32Array(vertexCount);
42
+ const quadOffsets = seededShuffledOffsets(quadCount);
43
+ const dx = 2 / gridX;
44
+ const dy = 2 / gridY;
45
+ let v = 0;
46
+ for (let iy = 0; iy < gridY; iy++) {
47
+ for (let ix = 0; ix < gridX; ix++) {
48
+ const quadIdx = iy * gridX + ix;
49
+ const x0 = -1 + ix * dx;
50
+ const x1 = x0 + dx;
51
+ const y0 = -1 + iy * dy;
52
+ const y1 = y0 + dy;
53
+ const cx = (x0 + x1) * 0.5;
54
+ const cy = (y0 + y1) * 0.5;
55
+ const quadOffset = quadOffsets[quadIdx];
56
+ const quadRandom = hash01(quadIdx + 1);
57
+ // Two triangles per quad: (x0,y0)-(x1,y0)-(x0,y1) and (x1,y0)-(x1,y1)-(x0,y1).
58
+ const tris = [
59
+ [
60
+ [x0, y0],
61
+ [x1, y0],
62
+ [x0, y1],
63
+ ],
64
+ [
65
+ [x1, y0],
66
+ [x1, y1],
67
+ [x0, y1],
68
+ ],
69
+ ];
70
+ for (const tri of tris) {
71
+ const verts = [tri[0], tri[1], tri[2]];
72
+ const barys = [BARY_A, BARY_B, BARY_C];
73
+ for (let k = 0; k < 3; k++) {
74
+ const vert = verts[k];
75
+ const b = barys[k];
76
+ const p0 = vert[0];
77
+ const p1 = vert[1];
78
+ position[v * 2] = p0;
79
+ position[v * 2 + 1] = p1;
80
+ uv[v * 2] = p0 * 0.5 + 0.5;
81
+ uv[v * 2 + 1] = p1 * 0.5 + 0.5;
82
+ offset[v] = quadOffset;
83
+ centroid[v * 2] = cx;
84
+ centroid[v * 2 + 1] = cy;
85
+ bary[v * 3] = b[0];
86
+ bary[v * 3 + 1] = b[1];
87
+ bary[v * 3 + 2] = b[2];
88
+ random[v] = quadRandom;
89
+ v++;
90
+ }
91
+ }
92
+ }
93
+ }
94
+ return { vertexCount, position, uv, offset, centroid, bary, random };
95
+ }
96
+ //# sourceMappingURL=mesh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mesh.js","sourceRoot":"","sources":["../../src/runner/mesh.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ import type { RenderArgs, Transition, UniformParams } from "../types.js";
2
+ export interface RunnerOptions {
3
+ /** Render target. `OffscreenCanvas` works in workers; `HTMLCanvasElement` on the main thread. */
4
+ canvas: HTMLCanvasElement | OffscreenCanvas;
5
+ /**
6
+ * Forwarded to `canvas.getContext("webgl2", …)`. Defaults are
7
+ * `{ alpha: true, antialias: true, premultipliedAlpha: false,
8
+ * preserveDrawingBuffer: false }` — overrideable via this field.
9
+ */
10
+ contextAttributes?: WebGLContextAttributes;
11
+ /**
12
+ * Optional callback invoked when the WebGL context is lost. After this
13
+ * fires, `render()` throws until the context is restored — either
14
+ * automatically via the `webglcontextrestored` event (when the canvas
15
+ * is an `EventTarget`) or by re-creating the Runner.
16
+ */
17
+ onContextLost?: () => void;
18
+ /**
19
+ * Optional callback invoked once the runner has re-initialised after a
20
+ * `webglcontextrestored` event. After this, `render()` works again.
21
+ */
22
+ onContextRestored?: () => void;
23
+ }
24
+ /**
25
+ * The single object that owns a WebGL2 context, compiles transition
26
+ * shaders on first use, and renders frames. One Runner per canvas;
27
+ * one canvas per Runner.
28
+ *
29
+ * Usage shape:
30
+ *
31
+ * const runner = new Runner({ canvas });
32
+ * runner.render(crossZoom, { from: imgA, to: imgB, progress: 0.4 });
33
+ * // … animate progress 0 → 1 with your driver of choice …
34
+ * runner.dispose();
35
+ *
36
+ * Programs are cached per-`Transition` reference (WeakMap), so passing
37
+ * the same transition repeatedly compiles once and reuses thereafter.
38
+ * Source textures are likewise cached by identity via `@vysmo/gl-core`'s
39
+ * `TextureCache` — static images upload once.
40
+ *
41
+ * @throws Error if WebGL2 is unavailable in the host environment.
42
+ */
43
+ export declare class Runner {
44
+ readonly gl: WebGL2RenderingContext;
45
+ private canvas;
46
+ private textures;
47
+ private programs;
48
+ private vao;
49
+ private defaultDisplacement;
50
+ private defaultEnvironment;
51
+ private defaultPrevious;
52
+ private fbPool;
53
+ private disposed;
54
+ private contextLost;
55
+ private readonly onContextLost;
56
+ private readonly onContextRestored;
57
+ private readonly handleContextLost;
58
+ private readonly handleContextRestored;
59
+ constructor(options: RunnerOptions);
60
+ private createDefaultDisplacement;
61
+ private createDefaultEnvironment;
62
+ private createDefaultPrevious;
63
+ private createSolidTexture;
64
+ /**
65
+ * Render one frame of `transition` at the given `progress` (0..1).
66
+ * `from` and `to` are the source and target images; the runner samples
67
+ * both via the same shader and crossfades / displaces / warps according
68
+ * to whatever GLSL the transition declares.
69
+ *
70
+ * Endpoint correctness is enforced by tests: at `progress === 0` the
71
+ * output is pixel-identical to `from`; at `progress === 1` it's
72
+ * pixel-identical to `to`.
73
+ *
74
+ * @param transition Any `Transition` — built-in (`crossZoom`, `pageCurl`, …)
75
+ * or one returned from `defineTransition()`.
76
+ * @param args `from`, `to`, `progress`, optional `params`
77
+ * overrides, optional `displacement` / `environment`
78
+ * aux textures (see `RenderArgs`).
79
+ *
80
+ * @throws Error if the runner is disposed or the WebGL context is lost.
81
+ * @throws Error if shader compilation or program linking fails.
82
+ */
83
+ render<P extends UniformParams>(transition: Transition<P>, args: RenderArgs<P>): void;
84
+ private renderFullscreen;
85
+ private renderMesh;
86
+ /**
87
+ * Whether the underlying WebGL context is currently lost. While lost,
88
+ * `render()` throws; wait for the `onContextRestored` callback.
89
+ */
90
+ get isContextLost(): boolean;
91
+ /**
92
+ * Free every GPU resource the runner owns (default textures, VAO,
93
+ * compiled programs, framebuffers, texture cache) and detach the
94
+ * context-loss listeners. Idempotent; further `render()` calls throw.
95
+ *
96
+ * Call when the canvas is going away (component unmount, route change,
97
+ * etc.) — the WebGL context itself is freed by the canvas, but
98
+ * disposing here releases the in-process bookkeeping early and removes
99
+ * the canvas listeners so the runner can be GC'd.
100
+ */
101
+ dispose(): void;
102
+ private getOrCompile;
103
+ private createMeshResources;
104
+ private uniformLoc;
105
+ private setUniform;
106
+ }
107
+ //# sourceMappingURL=runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/runner/runner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,aAAa,EAEd,MAAM,aAAa,CAAC;AAmCrB,MAAM,WAAW,aAAa;IAC5B,iGAAiG;IACjG,MAAM,EAAE,iBAAiB,GAAG,eAAe,CAAC;IAC5C;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;IAC3C;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,MAAM;IACjB,QAAQ,CAAC,EAAE,EAAE,sBAAsB,CAAC;IACpC,OAAO,CAAC,MAAM,CAAsC;IACpD,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,QAAQ,CAAgE;IAChF,OAAO,CAAC,GAAG,CAAyB;IACpC,OAAO,CAAC,mBAAmB,CAAe;IAC1C,OAAO,CAAC,kBAAkB,CAAe;IACzC,OAAO,CAAC,eAAe,CAAe;IAEtC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA2B;IACzD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA2B;IAC7D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAKhC;IACF,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAWpC;gBAEU,OAAO,EAAE,aAAa;IAoClC,OAAO,CAAC,yBAAyB;IAMjC,OAAO,CAAC,wBAAwB;IAOhC,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,kBAAkB;IAuB1B;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,CAAC,CAAC,SAAS,aAAa,EAC5B,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EACzB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAClB,IAAI;IA8EP,OAAO,CAAC,gBAAgB;IAoDxB,OAAO,CAAC,UAAU;IAsClB;;;OAGG;IACH,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED;;;;;;;;;OASG;IACH,OAAO,IAAI,IAAI;IAkBf,OAAO,CAAC,YAAY;IAuCpB,OAAO,CAAC,mBAAmB;IAoC3B,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,UAAU;CAkBnB"}