@basementstudio/shader-lab 0.1.0 → 1.0.2

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 (399) hide show
  1. package/dist/src/easings.d.ts +3 -0
  2. package/dist/src/easings.js +3 -0
  3. package/dist/src/index.d.ts +5 -0
  4. package/dist/src/index.js +4 -0
  5. package/dist/src/lib/editor/custom-shader/shared.d.ts +1 -0
  6. package/dist/src/lib/editor/custom-shader/shared.js +1 -0
  7. package/dist/src/renderer/ascii-atlas.d.ts +5 -0
  8. package/dist/src/renderer/ascii-atlas.js +61 -0
  9. package/dist/src/renderer/ascii-pass.d.ts +50 -0
  10. package/dist/src/renderer/ascii-pass.js +271 -0
  11. package/dist/src/renderer/asset-url.d.ts +1 -0
  12. package/dist/src/renderer/asset-url.js +3 -0
  13. package/dist/src/renderer/blend-modes.d.ts +4 -0
  14. package/dist/src/renderer/blend-modes.js +157 -0
  15. package/dist/src/renderer/contracts.d.ts +26 -0
  16. package/dist/src/renderer/contracts.js +13 -0
  17. package/dist/src/renderer/create-webgpu-renderer.d.ts +3 -0
  18. package/dist/src/renderer/create-webgpu-renderer.js +37 -0
  19. package/dist/src/renderer/crt-pass.d.ts +72 -0
  20. package/dist/src/renderer/crt-pass.js +536 -0
  21. package/dist/src/renderer/custom-shader-pass.d.ts +17 -0
  22. package/dist/src/renderer/custom-shader-pass.js +79 -0
  23. package/dist/src/renderer/custom-shader-runtime.d.ts +16 -0
  24. package/dist/src/renderer/custom-shader-runtime.js +169 -0
  25. package/dist/src/renderer/dither-textures.d.ts +8 -0
  26. package/dist/src/renderer/dither-textures.js +66 -0
  27. package/dist/src/renderer/dithering-pass.d.ts +45 -0
  28. package/dist/src/renderer/dithering-pass.js +229 -0
  29. package/dist/src/renderer/gradient-pass.d.ts +39 -0
  30. package/dist/src/renderer/gradient-pass.js +358 -0
  31. package/dist/src/renderer/halftone-pass.d.ts +65 -0
  32. package/dist/src/renderer/halftone-pass.js +530 -0
  33. package/dist/src/renderer/ink-pass.d.ts +84 -0
  34. package/dist/src/renderer/ink-pass.js +526 -0
  35. package/dist/src/renderer/live-pass.d.ts +31 -0
  36. package/dist/src/renderer/live-pass.js +136 -0
  37. package/dist/src/renderer/media-pass.d.ts +32 -0
  38. package/dist/src/renderer/media-pass.js +130 -0
  39. package/dist/src/renderer/media-texture.d.ts +8 -0
  40. package/dist/src/renderer/media-texture.js +41 -0
  41. package/dist/src/renderer/particle-grid-pass.d.ts +48 -0
  42. package/dist/src/renderer/particle-grid-pass.js +269 -0
  43. package/dist/src/renderer/pass-node.d.ts +36 -0
  44. package/dist/src/renderer/pass-node.js +120 -0
  45. package/dist/src/renderer/pattern-atlas.d.ts +8 -0
  46. package/dist/src/renderer/pattern-atlas.js +79 -0
  47. package/dist/src/renderer/pattern-pass.d.ts +58 -0
  48. package/dist/src/renderer/pattern-pass.js +316 -0
  49. package/dist/src/renderer/pipeline-manager.d.ts +39 -0
  50. package/dist/src/renderer/pipeline-manager.js +287 -0
  51. package/dist/src/renderer/pixel-sorting-pass.d.ts +33 -0
  52. package/dist/src/renderer/pixel-sorting-pass.js +179 -0
  53. package/dist/src/renderer/shaders/tsl/color/tonemapping.d.ts +9 -0
  54. package/dist/src/renderer/shaders/tsl/color/tonemapping.js +59 -0
  55. package/dist/src/renderer/shaders/tsl/cosine-palette.d.ts +4 -0
  56. package/{packages/shader-lab-react/src/renderer/shaders/tsl/cosine-palette.ts → dist/src/renderer/shaders/tsl/cosine-palette.js} +3 -4
  57. package/dist/src/renderer/shaders/tsl/noise/common.d.ts +5 -0
  58. package/dist/src/renderer/shaders/tsl/noise/common.js +24 -0
  59. package/dist/src/renderer/shaders/tsl/noise/curl-noise-3d.d.ts +1 -0
  60. package/dist/src/renderer/shaders/tsl/noise/curl-noise-3d.js +27 -0
  61. package/dist/src/renderer/shaders/tsl/noise/curl-noise-4d.d.ts +1 -0
  62. package/dist/src/renderer/shaders/tsl/noise/curl-noise-4d.js +27 -0
  63. package/dist/src/renderer/shaders/tsl/noise/fbm.d.ts +1 -0
  64. package/dist/src/renderer/shaders/tsl/noise/fbm.js +11 -0
  65. package/dist/src/renderer/shaders/tsl/noise/perlin-noise-3d.d.ts +5 -0
  66. package/dist/src/renderer/shaders/tsl/noise/perlin-noise-3d.js +66 -0
  67. package/dist/src/renderer/shaders/tsl/noise/ridge-noise.d.ts +1 -0
  68. package/dist/src/renderer/shaders/tsl/noise/ridge-noise.js +19 -0
  69. package/dist/src/renderer/shaders/tsl/noise/simplex-noise-3d.d.ts +1 -0
  70. package/dist/src/renderer/shaders/tsl/noise/simplex-noise-3d.js +44 -0
  71. package/dist/src/renderer/shaders/tsl/noise/simplex-noise-4d.d.ts +1 -0
  72. package/dist/src/renderer/shaders/tsl/noise/simplex-noise-4d.js +51 -0
  73. package/dist/src/renderer/shaders/tsl/noise/turbulence.d.ts +7 -0
  74. package/dist/src/renderer/shaders/tsl/noise/turbulence.js +34 -0
  75. package/dist/src/renderer/shaders/tsl/noise/value-noise-3d.d.ts +1 -0
  76. package/dist/src/renderer/shaders/tsl/noise/value-noise-3d.js +27 -0
  77. package/dist/src/renderer/shaders/tsl/noise/voronoi-noise-3d.d.ts +1 -0
  78. package/dist/src/renderer/shaders/tsl/noise/voronoi-noise-3d.js +45 -0
  79. package/dist/src/renderer/shaders/tsl/patterns/bloom-edge-pattern.d.ts +4 -0
  80. package/dist/src/renderer/shaders/tsl/patterns/bloom-edge-pattern.js +13 -0
  81. package/dist/src/renderer/shaders/tsl/patterns/bloom.d.ts +4 -0
  82. package/{packages/shader-lab-react/src/renderer/shaders/tsl/patterns/bloom.ts → dist/src/renderer/shaders/tsl/patterns/bloom.js} +4 -6
  83. package/dist/src/renderer/shaders/tsl/patterns/canvas-weave-pattern.d.ts +4 -0
  84. package/dist/src/renderer/shaders/tsl/patterns/canvas-weave-pattern.js +16 -0
  85. package/dist/src/renderer/shaders/tsl/patterns/grain-texture-pattern.d.ts +4 -0
  86. package/{packages/shader-lab-react/src/renderer/shaders/tsl/patterns/grain-texture-pattern.ts → dist/src/renderer/shaders/tsl/patterns/grain-texture-pattern.js} +3 -4
  87. package/dist/src/renderer/shaders/tsl/patterns/repeating-pattern.d.ts +4 -0
  88. package/{packages/shader-lab-react/src/renderer/shaders/tsl/patterns/repeating-pattern.ts → dist/src/renderer/shaders/tsl/patterns/repeating-pattern.js} +4 -6
  89. package/dist/src/renderer/shaders/tsl/utils/atan2.d.ts +1 -0
  90. package/dist/src/renderer/shaders/tsl/utils/atan2.js +7 -0
  91. package/dist/src/renderer/shaders/tsl/utils/complex-conj.d.ts +4 -0
  92. package/{packages/shader-lab-react/src/renderer/shaders/tsl/utils/complex-conj.ts → dist/src/renderer/shaders/tsl/utils/complex-conj.js} +3 -4
  93. package/dist/src/renderer/shaders/tsl/utils/complex-cos.d.ts +4 -0
  94. package/dist/src/renderer/shaders/tsl/utils/complex-cos.js +9 -0
  95. package/dist/src/renderer/shaders/tsl/utils/complex-div.d.ts +1 -0
  96. package/dist/src/renderer/shaders/tsl/utils/complex-div.js +6 -0
  97. package/dist/src/renderer/shaders/tsl/utils/complex-log.d.ts +1 -0
  98. package/dist/src/renderer/shaders/tsl/utils/complex-log.js +6 -0
  99. package/dist/src/renderer/shaders/tsl/utils/complex-mobius.d.ts +4 -0
  100. package/dist/src/renderer/shaders/tsl/utils/complex-mobius.js +10 -0
  101. package/dist/src/renderer/shaders/tsl/utils/complex-mul.d.ts +4 -0
  102. package/{packages/shader-lab-react/src/renderer/shaders/tsl/utils/complex-mul.ts → dist/src/renderer/shaders/tsl/utils/complex-mul.js} +3 -4
  103. package/dist/src/renderer/shaders/tsl/utils/complex-pow.d.ts +5 -0
  104. package/dist/src/renderer/shaders/tsl/utils/complex-pow.js +14 -0
  105. package/dist/src/renderer/shaders/tsl/utils/complex-sin.d.ts +4 -0
  106. package/dist/src/renderer/shaders/tsl/utils/complex-sin.js +9 -0
  107. package/dist/src/renderer/shaders/tsl/utils/complex-sqrt.d.ts +5 -0
  108. package/dist/src/renderer/shaders/tsl/utils/complex-sqrt.js +12 -0
  109. package/dist/src/renderer/shaders/tsl/utils/complex-tan.d.ts +4 -0
  110. package/dist/src/renderer/shaders/tsl/utils/complex-tan.js +11 -0
  111. package/dist/src/renderer/shaders/tsl/utils/complex-to-polar.d.ts +4 -0
  112. package/dist/src/renderer/shaders/tsl/utils/complex-to-polar.js +9 -0
  113. package/dist/src/renderer/shaders/tsl/utils/hyperbolic.d.ts +8 -0
  114. package/{packages/shader-lab-react/src/renderer/shaders/tsl/utils/hyperbolic.ts → dist/src/renderer/shaders/tsl/utils/hyperbolic.js} +7 -11
  115. package/dist/src/renderer/shaders/tsl/utils/index.d.ts +38 -0
  116. package/dist/src/renderer/shaders/tsl/utils/index.js +39 -0
  117. package/dist/src/renderer/shaders/tsl/utils/rotate.d.ts +2 -0
  118. package/dist/src/renderer/shaders/tsl/utils/rotate.js +7 -0
  119. package/dist/src/renderer/shaders/tsl/utils/screen-aspect-uv.d.ts +2 -0
  120. package/dist/src/renderer/shaders/tsl/utils/screen-aspect-uv.js +6 -0
  121. package/dist/src/renderer/shaders/tsl/utils/sd-box-2d.d.ts +1 -0
  122. package/dist/src/renderer/shaders/tsl/utils/sd-box-2d.js +5 -0
  123. package/dist/src/renderer/shaders/tsl/utils/sd-diamond.d.ts +1 -0
  124. package/dist/src/renderer/shaders/tsl/utils/sd-diamond.js +5 -0
  125. package/dist/src/renderer/shaders/tsl/utils/sd-rhombus.d.ts +1 -0
  126. package/dist/src/renderer/shaders/tsl/utils/sd-rhombus.js +14 -0
  127. package/dist/src/renderer/shaders/tsl/utils/sd-sphere.d.ts +1 -0
  128. package/dist/src/renderer/shaders/tsl/utils/sd-sphere.js +5 -0
  129. package/dist/src/renderer/shaders/tsl/utils/smax.d.ts +1 -0
  130. package/dist/src/renderer/shaders/tsl/utils/smax.js +6 -0
  131. package/dist/src/renderer/shaders/tsl/utils/smin.d.ts +1 -0
  132. package/dist/src/renderer/shaders/tsl/utils/smin.js +6 -0
  133. package/dist/src/renderer/text-pass.d.ts +23 -0
  134. package/dist/src/renderer/text-pass.js +129 -0
  135. package/dist/src/runtime-clock.d.ts +9 -0
  136. package/dist/src/runtime-clock.js +20 -0
  137. package/dist/src/runtime-frame.d.ts +11 -0
  138. package/dist/src/runtime-frame.js +12 -0
  139. package/dist/src/shader-lab-composition.d.ts +9 -0
  140. package/dist/src/shader-lab-composition.js +96 -0
  141. package/dist/src/timeline.d.ts +8 -0
  142. package/dist/src/timeline.js +179 -0
  143. package/dist/src/types/editor.d.ts +3 -0
  144. package/dist/src/types/editor.js +1 -0
  145. package/dist/src/types.d.ts +81 -0
  146. package/dist/src/types.js +1 -0
  147. package/package.json +28 -65
  148. package/.biome/plugins/README.md +0 -21
  149. package/.biome/plugins/no-anchor-element.grit +0 -12
  150. package/.biome/plugins/no-relative-parent-imports.grit +0 -10
  151. package/.biome/plugins/no-unnecessary-forwardref.grit +0 -9
  152. package/.changeset/README.md +0 -17
  153. package/.changeset/config.json +0 -11
  154. package/.editorconfig +0 -40
  155. package/.env.example +0 -81
  156. package/.gitattributes +0 -19
  157. package/.github/workflows/canary.yml +0 -80
  158. package/.github/workflows/ci.yml +0 -37
  159. package/.github/workflows/release.yml +0 -56
  160. package/.tldrignore +0 -84
  161. package/.vscode/extensions.json +0 -20
  162. package/.vscode/settings.json +0 -105
  163. package/biome.json +0 -249
  164. package/bun.lock +0 -1224
  165. package/next.config.ts +0 -131
  166. package/packages/shader-lab-react/CHANGELOG.md +0 -9
  167. package/packages/shader-lab-react/README.md +0 -119
  168. package/packages/shader-lab-react/package.json +0 -36
  169. package/packages/shader-lab-react/scripts/fix-esm-specifiers.mjs +0 -57
  170. package/packages/shader-lab-react/scripts/prepare-dist.mjs +0 -4
  171. package/packages/shader-lab-react/src/ambient/three-tsl.d.ts +0 -146
  172. package/packages/shader-lab-react/src/ambient/three-webgpu.d.ts +0 -51
  173. package/packages/shader-lab-react/src/easings.ts +0 -4
  174. package/packages/shader-lab-react/src/index.ts +0 -35
  175. package/packages/shader-lab-react/src/lib/editor/custom-shader/shared.ts +0 -2
  176. package/packages/shader-lab-react/src/renderer/ascii-atlas.ts +0 -83
  177. package/packages/shader-lab-react/src/renderer/ascii-pass.ts +0 -416
  178. package/packages/shader-lab-react/src/renderer/asset-url.ts +0 -3
  179. package/packages/shader-lab-react/src/renderer/blend-modes.ts +0 -229
  180. package/packages/shader-lab-react/src/renderer/contracts.ts +0 -54
  181. package/packages/shader-lab-react/src/renderer/create-webgpu-renderer.ts +0 -48
  182. package/packages/shader-lab-react/src/renderer/crt-pass.ts +0 -1040
  183. package/packages/shader-lab-react/src/renderer/custom-shader-pass.ts +0 -108
  184. package/packages/shader-lab-react/src/renderer/custom-shader-runtime.ts +0 -309
  185. package/packages/shader-lab-react/src/renderer/dither-textures.ts +0 -99
  186. package/packages/shader-lab-react/src/renderer/dithering-pass.ts +0 -322
  187. package/packages/shader-lab-react/src/renderer/gradient-pass.ts +0 -521
  188. package/packages/shader-lab-react/src/renderer/halftone-pass.ts +0 -932
  189. package/packages/shader-lab-react/src/renderer/ink-pass.ts +0 -802
  190. package/packages/shader-lab-react/src/renderer/live-pass.ts +0 -194
  191. package/packages/shader-lab-react/src/renderer/media-pass.ts +0 -187
  192. package/packages/shader-lab-react/src/renderer/media-texture.ts +0 -66
  193. package/packages/shader-lab-react/src/renderer/particle-grid-pass.ts +0 -389
  194. package/packages/shader-lab-react/src/renderer/pass-node.ts +0 -209
  195. package/packages/shader-lab-react/src/renderer/pattern-atlas.ts +0 -133
  196. package/packages/shader-lab-react/src/renderer/pattern-pass.ts +0 -552
  197. package/packages/shader-lab-react/src/renderer/pipeline-manager.ts +0 -369
  198. package/packages/shader-lab-react/src/renderer/pixel-sorting-pass.ts +0 -277
  199. package/packages/shader-lab-react/src/renderer/shaders/tsl/color/tonemapping.ts +0 -87
  200. package/packages/shader-lab-react/src/renderer/shaders/tsl/noise/common.ts +0 -31
  201. package/packages/shader-lab-react/src/renderer/shaders/tsl/noise/curl-noise-3d.ts +0 -36
  202. package/packages/shader-lab-react/src/renderer/shaders/tsl/noise/curl-noise-4d.ts +0 -36
  203. package/packages/shader-lab-react/src/renderer/shaders/tsl/noise/fbm.ts +0 -13
  204. package/packages/shader-lab-react/src/renderer/shaders/tsl/noise/perlin-noise-3d.ts +0 -96
  205. package/packages/shader-lab-react/src/renderer/shaders/tsl/noise/ridge-noise.ts +0 -24
  206. package/packages/shader-lab-react/src/renderer/shaders/tsl/noise/simplex-noise-3d.ts +0 -79
  207. package/packages/shader-lab-react/src/renderer/shaders/tsl/noise/simplex-noise-4d.ts +0 -89
  208. package/packages/shader-lab-react/src/renderer/shaders/tsl/noise/turbulence.ts +0 -56
  209. package/packages/shader-lab-react/src/renderer/shaders/tsl/noise/value-noise-3d.ts +0 -32
  210. package/packages/shader-lab-react/src/renderer/shaders/tsl/noise/voronoi-noise-3d.ts +0 -60
  211. package/packages/shader-lab-react/src/renderer/shaders/tsl/patterns/bloom-edge-pattern.ts +0 -15
  212. package/packages/shader-lab-react/src/renderer/shaders/tsl/patterns/canvas-weave-pattern.ts +0 -24
  213. package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/atan2.ts +0 -9
  214. package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/complex-cos.ts +0 -10
  215. package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/complex-div.ts +0 -11
  216. package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/complex-log.ts +0 -7
  217. package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/complex-mobius.ts +0 -12
  218. package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/complex-pow.ts +0 -16
  219. package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/complex-sin.ts +0 -10
  220. package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/complex-sqrt.ts +0 -18
  221. package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/complex-tan.ts +0 -12
  222. package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/complex-to-polar.ts +0 -10
  223. package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/index.ts +0 -48
  224. package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/rotate.ts +0 -15
  225. package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/screen-aspect-uv.ts +0 -15
  226. package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/sd-box-2d.ts +0 -6
  227. package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/sd-diamond.ts +0 -6
  228. package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/sd-rhombus.ts +0 -27
  229. package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/sd-sphere.ts +0 -6
  230. package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/smax.ts +0 -7
  231. package/packages/shader-lab-react/src/renderer/shaders/tsl/utils/smin.ts +0 -7
  232. package/packages/shader-lab-react/src/renderer/text-pass.ts +0 -176
  233. package/packages/shader-lab-react/src/runtime-clock.ts +0 -42
  234. package/packages/shader-lab-react/src/runtime-frame.ts +0 -29
  235. package/packages/shader-lab-react/src/shader-lab-composition.tsx +0 -163
  236. package/packages/shader-lab-react/src/timeline.ts +0 -283
  237. package/packages/shader-lab-react/src/types/editor.ts +0 -5
  238. package/packages/shader-lab-react/src/types.ts +0 -141
  239. package/packages/shader-lab-react/tsconfig.build.json +0 -8
  240. package/packages/shader-lab-react/tsconfig.json +0 -21
  241. package/postcss.config.mjs +0 -5
  242. package/public/assets/fonts/msdf/geist-mono/GeistMono-Regular-msdf-atlas.png +0 -0
  243. package/public/assets/fonts/msdf/geist-mono/GeistMono-Regular-msdf.json +0 -1412
  244. package/public/assets/patterns/bars/1.svg +0 -3
  245. package/public/assets/patterns/bars/2.svg +0 -3
  246. package/public/assets/patterns/bars/3.svg +0 -3
  247. package/public/assets/patterns/bars/4.svg +0 -3
  248. package/public/assets/patterns/bars/5.svg +0 -3
  249. package/public/assets/patterns/bars/6.svg +0 -3
  250. package/public/assets/patterns/candles/1.svg +0 -3
  251. package/public/assets/patterns/candles/2.svg +0 -3
  252. package/public/assets/patterns/candles/3.svg +0 -3
  253. package/public/assets/patterns/candles/4.svg +0 -3
  254. package/public/assets/patterns/shapes/1.svg +0 -3
  255. package/public/assets/patterns/shapes/2.svg +0 -3
  256. package/public/assets/patterns/shapes/3.svg +0 -3
  257. package/public/assets/patterns/shapes/4.svg +0 -4
  258. package/public/assets/patterns/shapes/5.svg +0 -3
  259. package/public/assets/patterns/shapes/6.svg +0 -4
  260. package/public/fonts/geist/Geist-Mono.woff2 +0 -0
  261. package/public/textures/blue-noise.png +0 -0
  262. package/public/textures/crt-mask.png +0 -0
  263. package/src/app/design/page.tsx +0 -398
  264. package/src/app/favicon.ico +0 -0
  265. package/src/app/globals.css +0 -280
  266. package/src/app/layout.tsx +0 -89
  267. package/src/app/page.tsx +0 -20
  268. package/src/app/robots.ts +0 -13
  269. package/src/app/sitemap.ts +0 -13
  270. package/src/components/editor/editor-canvas-viewport.tsx +0 -116
  271. package/src/components/editor/editor-export-dialog.tsx +0 -1177
  272. package/src/components/editor/editor-timeline-overlay.tsx +0 -983
  273. package/src/components/editor/editor-topbar.tsx +0 -287
  274. package/src/components/editor/layer-sidebar.tsx +0 -738
  275. package/src/components/editor/properties-sidebar-content.tsx +0 -574
  276. package/src/components/editor/properties-sidebar-fields.tsx +0 -389
  277. package/src/components/editor/properties-sidebar-utils.ts +0 -178
  278. package/src/components/editor/properties-sidebar.tsx +0 -421
  279. package/src/components/ui/button/index.tsx +0 -57
  280. package/src/components/ui/color-picker/index.tsx +0 -358
  281. package/src/components/ui/glass-panel/index.tsx +0 -45
  282. package/src/components/ui/icon-button/index.tsx +0 -46
  283. package/src/components/ui/select/index.tsx +0 -136
  284. package/src/components/ui/slider/index.tsx +0 -192
  285. package/src/components/ui/toggle/index.tsx +0 -34
  286. package/src/components/ui/typography/index.tsx +0 -61
  287. package/src/components/ui/xy-pad/index.tsx +0 -160
  288. package/src/features/editor/components/editor-export-dialog.module.css +0 -271
  289. package/src/hooks/use-editor-renderer.ts +0 -182
  290. package/src/lib/app.ts +0 -6
  291. package/src/lib/cn.ts +0 -7
  292. package/src/lib/easings.ts +0 -240
  293. package/src/lib/editor/config/layer-registry.ts +0 -2434
  294. package/src/lib/editor/custom-shader/shared.ts +0 -28
  295. package/src/lib/editor/export.ts +0 -420
  296. package/src/lib/editor/history.ts +0 -71
  297. package/src/lib/editor/layers.ts +0 -76
  298. package/src/lib/editor/parameter-schema.ts +0 -75
  299. package/src/lib/editor/project-file.ts +0 -145
  300. package/src/lib/editor/shader-export-snippet.ts +0 -37
  301. package/src/lib/editor/shader-export.ts +0 -315
  302. package/src/lib/editor/timeline/evaluate.ts +0 -252
  303. package/src/lib/editor/view-transform.ts +0 -58
  304. package/src/lib/fonts.ts +0 -28
  305. package/src/renderer/ascii-atlas.ts +0 -83
  306. package/src/renderer/ascii-pass.ts +0 -416
  307. package/src/renderer/blend-modes.ts +0 -229
  308. package/src/renderer/contracts.ts +0 -161
  309. package/src/renderer/create-webgpu-renderer.ts +0 -48
  310. package/src/renderer/crt-pass.ts +0 -1040
  311. package/src/renderer/custom-shader-pass.ts +0 -117
  312. package/src/renderer/custom-shader-runtime.ts +0 -309
  313. package/src/renderer/dither-textures.ts +0 -99
  314. package/src/renderer/dithering-pass.ts +0 -322
  315. package/src/renderer/gradient-pass.ts +0 -520
  316. package/src/renderer/halftone-pass.ts +0 -932
  317. package/src/renderer/ink-pass.ts +0 -683
  318. package/src/renderer/live-pass.ts +0 -194
  319. package/src/renderer/media-pass.ts +0 -187
  320. package/src/renderer/media-texture.ts +0 -66
  321. package/src/renderer/particle-grid-pass.ts +0 -389
  322. package/src/renderer/pass-node-factory.ts +0 -33
  323. package/src/renderer/pass-node.ts +0 -209
  324. package/src/renderer/pattern-atlas.ts +0 -97
  325. package/src/renderer/pattern-pass.ts +0 -552
  326. package/src/renderer/pipeline-manager.ts +0 -343
  327. package/src/renderer/pixel-sorting-pass.ts +0 -277
  328. package/src/renderer/project-clock.ts +0 -57
  329. package/src/renderer/shaders/tsl/color/tonemapping.ts +0 -86
  330. package/src/renderer/shaders/tsl/cosine-palette.ts +0 -8
  331. package/src/renderer/shaders/tsl/noise/common.ts +0 -30
  332. package/src/renderer/shaders/tsl/noise/curl-noise-3d.ts +0 -35
  333. package/src/renderer/shaders/tsl/noise/curl-noise-4d.ts +0 -35
  334. package/src/renderer/shaders/tsl/noise/fbm.ts +0 -12
  335. package/src/renderer/shaders/tsl/noise/perlin-noise-3d.ts +0 -97
  336. package/src/renderer/shaders/tsl/noise/ridge-noise.ts +0 -23
  337. package/src/renderer/shaders/tsl/noise/simplex-noise-3d.ts +0 -78
  338. package/src/renderer/shaders/tsl/noise/simplex-noise-4d.ts +0 -88
  339. package/src/renderer/shaders/tsl/noise/turbulence.ts +0 -55
  340. package/src/renderer/shaders/tsl/noise/value-noise-3d.ts +0 -31
  341. package/src/renderer/shaders/tsl/noise/voronoi-noise-3d.ts +0 -59
  342. package/src/renderer/shaders/tsl/patterns/bloom-edge-pattern.ts +0 -14
  343. package/src/renderer/shaders/tsl/patterns/bloom.ts +0 -10
  344. package/src/renderer/shaders/tsl/patterns/canvas-weave-pattern.ts +0 -23
  345. package/src/renderer/shaders/tsl/patterns/grain-texture-pattern.ts +0 -8
  346. package/src/renderer/shaders/tsl/patterns/repeating-pattern.ts +0 -10
  347. package/src/renderer/shaders/tsl/utils/atan2.ts +0 -8
  348. package/src/renderer/shaders/tsl/utils/complex-conj.ts +0 -8
  349. package/src/renderer/shaders/tsl/utils/complex-cos.ts +0 -9
  350. package/src/renderer/shaders/tsl/utils/complex-div.ts +0 -10
  351. package/src/renderer/shaders/tsl/utils/complex-log.ts +0 -6
  352. package/src/renderer/shaders/tsl/utils/complex-mobius.ts +0 -11
  353. package/src/renderer/shaders/tsl/utils/complex-mul.ts +0 -8
  354. package/src/renderer/shaders/tsl/utils/complex-pow.ts +0 -15
  355. package/src/renderer/shaders/tsl/utils/complex-sin.ts +0 -9
  356. package/src/renderer/shaders/tsl/utils/complex-sqrt.ts +0 -17
  357. package/src/renderer/shaders/tsl/utils/complex-tan.ts +0 -11
  358. package/src/renderer/shaders/tsl/utils/complex-to-polar.ts +0 -9
  359. package/src/renderer/shaders/tsl/utils/hyperbolic.ts +0 -19
  360. package/src/renderer/shaders/tsl/utils/index.ts +0 -47
  361. package/src/renderer/shaders/tsl/utils/rotate.ts +0 -14
  362. package/src/renderer/shaders/tsl/utils/screen-aspect-uv.ts +0 -14
  363. package/src/renderer/shaders/tsl/utils/sd-box-2d.ts +0 -5
  364. package/src/renderer/shaders/tsl/utils/sd-diamond.ts +0 -5
  365. package/src/renderer/shaders/tsl/utils/sd-rhombus.ts +0 -26
  366. package/src/renderer/shaders/tsl/utils/sd-sphere.ts +0 -5
  367. package/src/renderer/shaders/tsl/utils/smax.ts +0 -7
  368. package/src/renderer/shaders/tsl/utils/smin.ts +0 -6
  369. package/src/renderer/text-pass.ts +0 -176
  370. package/src/store/asset-store.ts +0 -193
  371. package/src/store/editor-store.ts +0 -223
  372. package/src/store/history-store.ts +0 -172
  373. package/src/store/index.ts +0 -31
  374. package/src/store/layer-store.ts +0 -675
  375. package/src/store/timeline-store.ts +0 -572
  376. package/src/types/assets.d.ts +0 -6
  377. package/src/types/css.d.ts +0 -21
  378. package/src/types/editor.ts +0 -357
  379. package/src/types/react.d.ts +0 -15
  380. package/src/types/three-tsl.d.ts +0 -146
  381. package/src/types/three-webgpu.d.ts +0 -51
  382. package/tsconfig.json +0 -49
  383. /package/{packages/shader-lab-react/assets → assets}/patterns/bars/1.svg +0 -0
  384. /package/{packages/shader-lab-react/assets → assets}/patterns/bars/2.svg +0 -0
  385. /package/{packages/shader-lab-react/assets → assets}/patterns/bars/3.svg +0 -0
  386. /package/{packages/shader-lab-react/assets → assets}/patterns/bars/4.svg +0 -0
  387. /package/{packages/shader-lab-react/assets → assets}/patterns/bars/5.svg +0 -0
  388. /package/{packages/shader-lab-react/assets → assets}/patterns/bars/6.svg +0 -0
  389. /package/{packages/shader-lab-react/assets → assets}/patterns/candles/1.svg +0 -0
  390. /package/{packages/shader-lab-react/assets → assets}/patterns/candles/2.svg +0 -0
  391. /package/{packages/shader-lab-react/assets → assets}/patterns/candles/3.svg +0 -0
  392. /package/{packages/shader-lab-react/assets → assets}/patterns/candles/4.svg +0 -0
  393. /package/{packages/shader-lab-react/assets → assets}/patterns/shapes/1.svg +0 -0
  394. /package/{packages/shader-lab-react/assets → assets}/patterns/shapes/2.svg +0 -0
  395. /package/{packages/shader-lab-react/assets → assets}/patterns/shapes/3.svg +0 -0
  396. /package/{packages/shader-lab-react/assets → assets}/patterns/shapes/4.svg +0 -0
  397. /package/{packages/shader-lab-react/assets → assets}/patterns/shapes/5.svg +0 -0
  398. /package/{packages/shader-lab-react/assets → assets}/patterns/shapes/6.svg +0 -0
  399. /package/{packages/shader-lab-react/assets → assets}/textures/blue-noise.png +0 -0
@@ -1,163 +0,0 @@
1
- import { type CSSProperties, useEffect, useRef, useState } from "react"
2
- import { buildRendererFrame, type RendererSize } from "./renderer/contracts"
3
- import {
4
- browserSupportsWebGPU,
5
- createWebGPURenderer,
6
- } from "./renderer/create-webgpu-renderer"
7
- import type { ShaderLabConfig } from "./types"
8
-
9
- export interface ShaderLabCompositionProps {
10
- className?: string
11
- config: ShaderLabConfig
12
- onRuntimeError?: (message: string | null) => void
13
- style?: CSSProperties
14
- }
15
-
16
- export function ShaderLabComposition({
17
- className,
18
- config,
19
- onRuntimeError,
20
- style,
21
- }: ShaderLabCompositionProps) {
22
- const canvasRef = useRef<HTMLCanvasElement | null>(null)
23
- const frameRef = useRef<number | null>(null)
24
- const lastTimeRef = useRef<number | null>(null)
25
- const [runtimeError, setRuntimeError] = useState<string | null>(null)
26
-
27
- useEffect(() => {
28
- const canvas = canvasRef.current
29
-
30
- if (!canvas) {
31
- return
32
- }
33
-
34
- if (!browserSupportsWebGPU()) {
35
- const message = "WebGPU is not available in this browser."
36
- setRuntimeError(message)
37
- onRuntimeError?.(message)
38
- return
39
- }
40
-
41
- let cancelled = false
42
- let rendererPromise: Promise<
43
- Awaited<ReturnType<typeof createWebGPURenderer>>
44
- > | null = null
45
- let runtimeRenderer: Awaited<
46
- ReturnType<typeof createWebGPURenderer>
47
- > | null = null
48
-
49
- const handleRuntimeError = (message: string | null) => {
50
- setRuntimeError(message)
51
- onRuntimeError?.(message)
52
- }
53
-
54
- const getViewportSize = (): RendererSize => {
55
- const bounds = canvas.getBoundingClientRect()
56
-
57
- return {
58
- height: Math.max(1, Math.round(bounds.height)),
59
- width: Math.max(1, Math.round(bounds.width)),
60
- }
61
- }
62
-
63
- const renderFrame = (now: number) => {
64
- if (cancelled || !runtimeRenderer) {
65
- return
66
- }
67
-
68
- const previousTime = lastTimeRef.current ?? now
69
- const delta = Math.max(0, (now - previousTime) / 1000)
70
- lastTimeRef.current = now
71
-
72
- const devicePixelRatio = window.devicePixelRatio || 1
73
- const viewportSize = getViewportSize()
74
-
75
- runtimeRenderer.resize(viewportSize, devicePixelRatio)
76
- runtimeRenderer.render(
77
- buildRendererFrame(
78
- config,
79
- now / 1000,
80
- delta,
81
- devicePixelRatio,
82
- viewportSize
83
- )
84
- )
85
-
86
- frameRef.current = window.requestAnimationFrame(renderFrame)
87
- }
88
-
89
- rendererPromise = createWebGPURenderer(canvas, handleRuntimeError)
90
-
91
- void rendererPromise
92
- .then(async (renderer) => {
93
- if (cancelled) {
94
- renderer.dispose()
95
- return
96
- }
97
-
98
- runtimeRenderer = renderer
99
- await renderer.initialize()
100
- handleRuntimeError(null)
101
- frameRef.current = window.requestAnimationFrame(renderFrame)
102
- })
103
- .catch((error) => {
104
- handleRuntimeError(
105
- error instanceof Error
106
- ? error.message
107
- : "Failed to initialize the Shader Lab runtime renderer."
108
- )
109
- })
110
-
111
- return () => {
112
- cancelled = true
113
- lastTimeRef.current = null
114
-
115
- if (frameRef.current !== null) {
116
- window.cancelAnimationFrame(frameRef.current)
117
- frameRef.current = null
118
- }
119
-
120
- void rendererPromise?.then((renderer) => {
121
- renderer.dispose()
122
- })
123
- }
124
- }, [config, onRuntimeError])
125
-
126
- return (
127
- <div
128
- className={className}
129
- data-shader-lab-composition="true"
130
- style={{
131
- aspectRatio: `${config.composition.width} / ${config.composition.height}`,
132
- overflow: "hidden",
133
- position: "relative",
134
- width: "100%",
135
- ...style,
136
- }}
137
- >
138
- <canvas
139
- ref={canvasRef}
140
- style={{ display: "block", height: "100%", width: "100%" }}
141
- />
142
- {runtimeError ? (
143
- <div
144
- style={{
145
- alignItems: "center",
146
- background: "rgba(10, 13, 16, 0.82)",
147
- color: "rgba(255,255,255,0.92)",
148
- display: "flex",
149
- fontFamily: "monospace",
150
- fontSize: 12,
151
- inset: 0,
152
- justifyContent: "center",
153
- padding: 16,
154
- position: "absolute",
155
- textAlign: "center",
156
- }}
157
- >
158
- {runtimeError}
159
- </div>
160
- ) : null}
161
- </div>
162
- )
163
- }
@@ -1,283 +0,0 @@
1
- import { easings } from "./easings"
2
- import type {
3
- ShaderLabAnimatedPropertyBinding,
4
- ShaderLabLayerConfig,
5
- ShaderLabParameterValue,
6
- ShaderLabTimelineInterpolation,
7
- ShaderLabTimelineTrack,
8
- } from "./types"
9
-
10
- export interface EvaluatedLayerState {
11
- layerId: string
12
- params: Record<string, ShaderLabParameterValue>
13
- properties: Partial<Record<"hue" | "opacity" | "saturation" | "visible", boolean | number>>
14
- }
15
-
16
- type NumericTuple = [number, number] | [number, number, number]
17
-
18
- function cloneParameterValue(value: ShaderLabParameterValue): ShaderLabParameterValue {
19
- if (Array.isArray(value)) {
20
- return [...value] as ShaderLabParameterValue
21
- }
22
-
23
- return value
24
- }
25
-
26
- function isNumericTuple(value: ShaderLabParameterValue): value is NumericTuple {
27
- return (
28
- Array.isArray(value) &&
29
- (value.length === 2 || value.length === 3) &&
30
- value.every((entry) => typeof entry === "number")
31
- )
32
- }
33
-
34
- function parseHexColor(value: string): [number, number, number] | null {
35
- const normalized = value.trim().toLowerCase()
36
-
37
- if (!normalized.startsWith("#")) {
38
- return null
39
- }
40
-
41
- const hex = normalized.slice(1)
42
-
43
- if (hex.length === 6 || hex.length === 8) {
44
- const r = Number.parseInt(hex.slice(0, 2), 16)
45
- const g = Number.parseInt(hex.slice(2, 4), 16)
46
- const b = Number.parseInt(hex.slice(4, 6), 16)
47
-
48
- if ([r, g, b].some(Number.isNaN)) {
49
- return null
50
- }
51
-
52
- return [r, g, b]
53
- }
54
-
55
- return null
56
- }
57
-
58
- function toHex(channel: number): string {
59
- return Math.round(Math.min(255, Math.max(0, channel)))
60
- .toString(16)
61
- .padStart(2, "0")
62
- }
63
-
64
- function rgbToHex(r: number, g: number, b: number): string {
65
- return `#${toHex(r)}${toHex(g)}${toHex(b)}`
66
- }
67
-
68
- function lerp(a: number, b: number, progress: number): number {
69
- return a + (b - a) * progress
70
- }
71
-
72
- function resolveProgress(progress: number, interpolation: ShaderLabTimelineInterpolation): number {
73
- if (interpolation === "step") {
74
- return 0
75
- }
76
-
77
- if (interpolation === "smooth") {
78
- return easings.easeInOutCubic(progress)
79
- }
80
-
81
- return progress
82
- }
83
-
84
- function interpolateValue(
85
- from: ShaderLabParameterValue,
86
- to: ShaderLabParameterValue,
87
- progress: number,
88
- interpolation: ShaderLabTimelineInterpolation,
89
- ): ShaderLabParameterValue {
90
- if (interpolation === "step") {
91
- return cloneParameterValue(from)
92
- }
93
-
94
- const eased = resolveProgress(progress, interpolation)
95
-
96
- if (typeof from === "number" && typeof to === "number") {
97
- return lerp(from, to, eased)
98
- }
99
-
100
- if (typeof from === "boolean" && typeof to === "boolean") {
101
- return eased < 0.5 ? from : to
102
- }
103
-
104
- if (typeof from === "string" && typeof to === "string") {
105
- const leftColor = parseHexColor(from)
106
- const rightColor = parseHexColor(to)
107
-
108
- if (!(leftColor && rightColor)) {
109
- return eased < 0.5 ? from : to
110
- }
111
-
112
- return rgbToHex(
113
- lerp(leftColor[0], rightColor[0], eased),
114
- lerp(leftColor[1], rightColor[1], eased),
115
- lerp(leftColor[2], rightColor[2], eased),
116
- )
117
- }
118
-
119
- if (isNumericTuple(from) && isNumericTuple(to) && from.length === to.length) {
120
- return from.map((entry, index) => lerp(entry, to[index] ?? entry, eased)) as ShaderLabParameterValue
121
- }
122
-
123
- return eased < 0.5 ? cloneParameterValue(from) : cloneParameterValue(to)
124
- }
125
-
126
- function evaluateTrackAtTime(
127
- track: ShaderLabTimelineTrack,
128
- time: number,
129
- ): ShaderLabParameterValue | null {
130
- if (!track.enabled || track.keyframes.length === 0) {
131
- return null
132
- }
133
-
134
- if (track.keyframes.length === 1) {
135
- const onlyKeyframe = track.keyframes[0]
136
- return onlyKeyframe ? cloneParameterValue(onlyKeyframe.value) : null
137
- }
138
-
139
- const firstKeyframe = track.keyframes[0]
140
- const lastKeyframe = track.keyframes[track.keyframes.length - 1]
141
-
142
- if (!(firstKeyframe && lastKeyframe)) {
143
- return null
144
- }
145
-
146
- if (time <= firstKeyframe.time) {
147
- return cloneParameterValue(firstKeyframe.value)
148
- }
149
-
150
- if (time >= lastKeyframe.time) {
151
- return cloneParameterValue(lastKeyframe.value)
152
- }
153
-
154
- for (let index = 1; index < track.keyframes.length; index += 1) {
155
- const nextKeyframe = track.keyframes[index]
156
- const previousKeyframe = track.keyframes[index - 1]
157
-
158
- if (!(nextKeyframe && previousKeyframe) || time > nextKeyframe.time) {
159
- continue
160
- }
161
-
162
- const span = Math.max(nextKeyframe.time - previousKeyframe.time, 1e-6)
163
- const progress = Math.max(0, Math.min(1, (time - previousKeyframe.time) / span))
164
-
165
- return interpolateValue(
166
- previousKeyframe.value,
167
- nextKeyframe.value,
168
- progress,
169
- track.interpolation,
170
- )
171
- }
172
-
173
- return cloneParameterValue(lastKeyframe.value)
174
- }
175
-
176
- function applyBindingOverride(
177
- state: EvaluatedLayerState,
178
- binding: ShaderLabAnimatedPropertyBinding,
179
- value: ShaderLabParameterValue,
180
- ): void {
181
- if (binding.kind === "param") {
182
- state.params[binding.key] = cloneParameterValue(value)
183
- return
184
- }
185
-
186
- if (binding.property === "visible" && typeof value === "boolean") {
187
- state.properties.visible = value
188
- return
189
- }
190
-
191
- if (
192
- (binding.property === "opacity" ||
193
- binding.property === "hue" ||
194
- binding.property === "saturation") &&
195
- typeof value === "number"
196
- ) {
197
- state.properties[binding.property] = value
198
- }
199
- }
200
-
201
- export function evaluateTimelineForLayers(
202
- layers: ShaderLabLayerConfig[],
203
- tracks: ShaderLabTimelineTrack[],
204
- time: number,
205
- ): EvaluatedLayerState[] {
206
- if (tracks.length === 0) {
207
- return []
208
- }
209
-
210
- const layerStates = new Map<string, EvaluatedLayerState>()
211
- const layerIds = new Set(layers.map((layer) => layer.id))
212
-
213
- for (const track of tracks) {
214
- if (!layerIds.has(track.layerId)) {
215
- continue
216
- }
217
-
218
- const value = evaluateTrackAtTime(track, time)
219
-
220
- if (value === null) {
221
- continue
222
- }
223
-
224
- let state = layerStates.get(track.layerId)
225
-
226
- if (!state) {
227
- state = {
228
- layerId: track.layerId,
229
- params: {},
230
- properties: {},
231
- }
232
- layerStates.set(track.layerId, state)
233
- }
234
-
235
- applyBindingOverride(state, track.binding, value)
236
- }
237
-
238
- return [...layerStates.values()]
239
- }
240
-
241
- export function resolveEvaluatedLayers(
242
- layers: ShaderLabLayerConfig[],
243
- tracks: ShaderLabTimelineTrack[],
244
- time: number,
245
- ): ShaderLabLayerConfig[] {
246
- const evaluatedStates = evaluateTimelineForLayers(layers, tracks, time)
247
- const evaluatedById = new Map(evaluatedStates.map((state) => [state.layerId, state]))
248
-
249
- return layers.map((layer) => {
250
- const evaluated = evaluatedById.get(layer.id)
251
-
252
- if (!evaluated) {
253
- return {
254
- ...layer,
255
- params: { ...layer.params },
256
- }
257
- }
258
-
259
- return {
260
- ...layer,
261
- hue:
262
- typeof evaluated.properties.hue === "number"
263
- ? evaluated.properties.hue
264
- : layer.hue,
265
- opacity:
266
- typeof evaluated.properties.opacity === "number"
267
- ? evaluated.properties.opacity
268
- : layer.opacity,
269
- params: {
270
- ...layer.params,
271
- ...evaluated.params,
272
- },
273
- saturation:
274
- typeof evaluated.properties.saturation === "number"
275
- ? evaluated.properties.saturation
276
- : layer.saturation,
277
- visible:
278
- typeof evaluated.properties.visible === "boolean"
279
- ? evaluated.properties.visible
280
- : layer.visible,
281
- }
282
- })
283
- }
@@ -1,5 +0,0 @@
1
- import type { ShaderLabParameterValue } from "../types"
2
-
3
- export type LayerParameterValues = Record<string, ShaderLabParameterValue>
4
- export type LayerCompositeMode = "filter" | "mask"
5
-
@@ -1,141 +0,0 @@
1
- export type ShaderLabParameterValue =
2
- | number
3
- | string
4
- | boolean
5
- | [number, number]
6
- | [number, number, number]
7
-
8
- export type ShaderLabLayerKind = "effect" | "source"
9
-
10
- export type ShaderLabSourceLayerType =
11
- | "custom-shader"
12
- | "gradient"
13
- | "image"
14
- | "live"
15
- | "text"
16
- | "video"
17
-
18
- export type ShaderLabEffectLayerType =
19
- | "ascii"
20
- | "crt"
21
- | "dithering"
22
- | "halftone"
23
- | "ink"
24
- | "particle-grid"
25
- | "pattern"
26
- | "pixel-sorting"
27
-
28
- export type ShaderLabLayerType =
29
- | ShaderLabEffectLayerType
30
- | ShaderLabSourceLayerType
31
-
32
- export type ShaderLabBlendMode =
33
- | "normal"
34
- | "multiply"
35
- | "screen"
36
- | "overlay"
37
- | "darken"
38
- | "lighten"
39
- | "color-dodge"
40
- | "color-burn"
41
- | "hard-light"
42
- | "soft-light"
43
- | "difference"
44
- | "exclusion"
45
- | "hue"
46
- | "saturation"
47
- | "color"
48
- | "luminosity"
49
-
50
- export type ShaderLabCompositeMode = "filter" | "mask"
51
-
52
- export type ShaderLabAssetSource =
53
- | {
54
- fileName?: string
55
- kind: "image"
56
- src: string
57
- }
58
- | {
59
- fileName?: string
60
- kind: "video"
61
- src: string
62
- }
63
-
64
- export type ShaderLabInlineSketchSource = {
65
- code: string
66
- entryExport: string
67
- fileName?: string
68
- mode: "inline"
69
- }
70
-
71
- export type ShaderLabModuleSketchSource = {
72
- entryExport?: string
73
- mode: "module"
74
- sketch: unknown
75
- }
76
-
77
- export type ShaderLabSketchSource =
78
- | ShaderLabInlineSketchSource
79
- | ShaderLabModuleSketchSource
80
-
81
- export type ShaderLabTimelineInterpolation = "linear" | "smooth" | "step"
82
-
83
- export type ShaderLabAnimatedPropertyBinding =
84
- | {
85
- kind: "layer"
86
- label: string
87
- property: "hue" | "opacity" | "saturation" | "visible"
88
- valueType: "boolean" | "number"
89
- }
90
- | {
91
- key: string
92
- kind: "param"
93
- label: string
94
- valueType: "boolean" | "color" | "number" | "select" | "vec2" | "vec3"
95
- }
96
-
97
- export interface ShaderLabTimelineKeyframe {
98
- id: string
99
- time: number
100
- value: ShaderLabParameterValue
101
- }
102
-
103
- export interface ShaderLabTimelineTrack {
104
- binding: ShaderLabAnimatedPropertyBinding
105
- enabled: boolean
106
- id: string
107
- interpolation: ShaderLabTimelineInterpolation
108
- keyframes: ShaderLabTimelineKeyframe[]
109
- layerId: string
110
- }
111
-
112
- export interface ShaderLabTimelineConfig {
113
- duration: number
114
- loop: boolean
115
- tracks: ShaderLabTimelineTrack[]
116
- }
117
-
118
- export interface ShaderLabLayerConfig {
119
- asset?: ShaderLabAssetSource
120
- blendMode: ShaderLabBlendMode
121
- compositeMode: ShaderLabCompositeMode
122
- hue: number
123
- id: string
124
- kind: ShaderLabLayerKind
125
- name: string
126
- opacity: number
127
- params: Record<string, ShaderLabParameterValue>
128
- saturation: number
129
- sketch?: ShaderLabSketchSource
130
- type: ShaderLabLayerType
131
- visible: boolean
132
- }
133
-
134
- export interface ShaderLabConfig {
135
- composition: {
136
- height: number
137
- width: number
138
- }
139
- layers: ShaderLabLayerConfig[]
140
- timeline: ShaderLabTimelineConfig
141
- }
@@ -1,8 +0,0 @@
1
- {
2
- "extends": "./tsconfig.json",
3
- "compilerOptions": {
4
- "emitDeclarationOnly": false,
5
- "noEmit": false,
6
- "tsBuildInfoFile": "./tsconfig.build.tsbuildinfo"
7
- }
8
- }
@@ -1,21 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.json",
3
- "compilerOptions": {
4
- "baseUrl": ".",
5
- "composite": true,
6
- "declaration": true,
7
- "emitDeclarationOnly": true,
8
- "jsx": "react-jsx",
9
- "lib": ["ES2023", "DOM", "DOM.Iterable"],
10
- "module": "ESNext",
11
- "moduleResolution": "bundler",
12
- "noEmit": true,
13
- "outDir": "./dist",
14
- "paths": {
15
- "@/*": ["./src/*"]
16
- },
17
- "plugins": [],
18
- "tsBuildInfoFile": "./tsconfig.tsbuildinfo"
19
- },
20
- "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.d.ts"]
21
- }
@@ -1,5 +0,0 @@
1
- export default {
2
- plugins: {
3
- "@tailwindcss/postcss": {},
4
- },
5
- }