shaders 2.2.42 → 2.2.44

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 (296) hide show
  1. package/dist/core/WebcamTexture-D4Uv7Plz.js +168 -0
  2. package/dist/core/index.d.ts +0 -2
  3. package/dist/core/index.d.ts.map +1 -1
  4. package/dist/core/index.js +8 -168
  5. package/dist/core/registry.d.ts +10 -0
  6. package/dist/core/registry.d.ts.map +1 -0
  7. package/dist/core/registry.js +166 -0
  8. package/dist/core/shaderRegistry.d.ts.map +1 -1
  9. package/dist/core/shaders/WebcamTexture/index.d.ts +21 -0
  10. package/dist/core/shaders/WebcamTexture/index.d.ts.map +1 -0
  11. package/dist/core/shaders/WebcamTexture/index.js +2 -0
  12. package/dist/core/shaders/ZoomBlur/index.js +1 -1
  13. package/dist/react/AngularBlur.js +144 -0
  14. package/dist/react/Ascii.js +144 -0
  15. package/dist/react/Beam.js +144 -0
  16. package/dist/react/Blob.js +144 -0
  17. package/dist/react/Blur.js +144 -0
  18. package/dist/react/BrightnessContrast.js +144 -0
  19. package/dist/react/Bulge.js +144 -0
  20. package/dist/react/CRTScreen.js +144 -0
  21. package/dist/react/ChannelBlur.js +144 -0
  22. package/dist/react/Checkerboard.js +144 -0
  23. package/dist/react/ChromaFlow.js +144 -0
  24. package/dist/react/ChromaticAberration.js +144 -0
  25. package/dist/react/Circle.js +144 -0
  26. package/dist/react/CursorTrail.js +144 -0
  27. package/dist/react/DiffuseBlur.js +144 -0
  28. package/dist/react/Dither.js +144 -0
  29. package/dist/react/DotGrid.js +144 -0
  30. package/dist/react/Duotone.js +144 -0
  31. package/dist/react/FilmGrain.js +144 -0
  32. package/dist/react/FloatingParticles.js +144 -0
  33. package/dist/react/GlassTiles.js +144 -0
  34. package/dist/react/Glow.js +144 -0
  35. package/dist/react/Godrays.js +144 -0
  36. package/dist/react/Grayscale.js +144 -0
  37. package/dist/react/Grid.js +144 -0
  38. package/dist/react/GridDistortion.js +144 -0
  39. package/dist/react/Group.js +144 -0
  40. package/dist/react/Halftone.js +144 -0
  41. package/dist/react/HueShift.js +144 -0
  42. package/dist/react/ImageTexture.js +144 -0
  43. package/dist/react/Invert.js +144 -0
  44. package/dist/react/LinearBlur.js +144 -0
  45. package/dist/react/LinearGradient.js +144 -0
  46. package/dist/react/Liquify.js +144 -0
  47. package/dist/react/Perspective.js +144 -0
  48. package/dist/react/Pixelate.js +144 -0
  49. package/dist/react/PolarCoordinates.js +144 -0
  50. package/dist/react/Posterize.js +144 -0
  51. package/dist/react/ProgressiveBlur.js +144 -0
  52. package/dist/react/RadialGradient.js +144 -0
  53. package/dist/react/RectangularCoordinates.js +144 -0
  54. package/dist/react/Ripples.js +144 -0
  55. package/dist/react/Saturation.js +144 -0
  56. package/dist/react/Shader.js +166 -0
  57. package/dist/react/Sharpness.js +144 -0
  58. package/dist/react/Shatter.js +144 -0
  59. package/dist/react/SimplexNoise.js +144 -0
  60. package/dist/react/SineWave.js +144 -0
  61. package/dist/react/SolidColor.js +144 -0
  62. package/dist/react/Spherize.js +144 -0
  63. package/dist/react/Spiral.js +144 -0
  64. package/dist/react/Strands.js +144 -0
  65. package/dist/react/Stretch.js +144 -0
  66. package/dist/react/Stripes.js +144 -0
  67. package/dist/react/Swirl.js +144 -0
  68. package/dist/react/TiltShift.js +144 -0
  69. package/dist/react/Tint.js +144 -0
  70. package/dist/react/Tritone.js +144 -0
  71. package/dist/react/Twirl.js +144 -0
  72. package/dist/react/Vibrance.js +144 -0
  73. package/dist/react/WaveDistortion.js +144 -0
  74. package/dist/react/WebcamTexture.js +144 -0
  75. package/dist/react/ZoomBlur.js +144 -0
  76. package/dist/react/components/WebcamTexture.d.ts +31 -0
  77. package/dist/react/components/WebcamTexture.d.ts.map +1 -0
  78. package/dist/react/index.d.ts +1 -0
  79. package/dist/react/index.d.ts.map +1 -1
  80. package/dist/react/index.js +65 -8646
  81. package/dist/react/utils/generatePresetCode.d.ts.map +1 -1
  82. package/dist/react/utils/generatePresetCode.js +392 -1
  83. package/dist/registry.js +91 -0
  84. package/dist/solid/components/AngularBlur.js +148 -0
  85. package/dist/solid/components/Ascii.js +148 -0
  86. package/dist/solid/components/Beam.js +148 -0
  87. package/dist/solid/components/Blob.js +148 -0
  88. package/dist/solid/components/Blur.js +148 -0
  89. package/dist/solid/components/BrightnessContrast.js +148 -0
  90. package/dist/solid/components/Bulge.js +148 -0
  91. package/dist/solid/components/CRTScreen.js +148 -0
  92. package/dist/solid/components/ChannelBlur.js +148 -0
  93. package/dist/solid/components/Checkerboard.js +148 -0
  94. package/dist/solid/components/ChromaFlow.js +148 -0
  95. package/dist/solid/components/ChromaticAberration.js +148 -0
  96. package/dist/solid/components/Circle.js +148 -0
  97. package/dist/solid/components/CursorTrail.js +148 -0
  98. package/dist/solid/components/DiffuseBlur.js +148 -0
  99. package/dist/solid/components/Dither.js +148 -0
  100. package/dist/solid/components/DotGrid.js +148 -0
  101. package/dist/solid/components/Duotone.js +148 -0
  102. package/dist/solid/components/FilmGrain.js +148 -0
  103. package/dist/solid/components/FloatingParticles.js +148 -0
  104. package/dist/solid/components/GlassTiles.js +148 -0
  105. package/dist/solid/components/Glow.js +148 -0
  106. package/dist/solid/components/Godrays.js +148 -0
  107. package/dist/solid/components/Grayscale.js +148 -0
  108. package/dist/solid/components/Grid.js +148 -0
  109. package/dist/solid/components/GridDistortion.js +148 -0
  110. package/dist/solid/components/Group.js +148 -0
  111. package/dist/solid/components/Halftone.js +148 -0
  112. package/dist/solid/components/HueShift.js +148 -0
  113. package/dist/solid/components/ImageTexture.js +148 -0
  114. package/dist/solid/components/Invert.js +148 -0
  115. package/dist/solid/components/LinearBlur.js +148 -0
  116. package/dist/solid/components/LinearGradient.js +148 -0
  117. package/dist/solid/components/Liquify.js +148 -0
  118. package/dist/solid/components/Perspective.js +148 -0
  119. package/dist/solid/components/Pixelate.js +148 -0
  120. package/dist/solid/components/PolarCoordinates.js +148 -0
  121. package/dist/solid/components/Posterize.js +148 -0
  122. package/dist/solid/components/ProgressiveBlur.js +148 -0
  123. package/dist/solid/components/RadialGradient.js +148 -0
  124. package/dist/solid/components/RectangularCoordinates.js +148 -0
  125. package/dist/solid/components/Ripples.js +148 -0
  126. package/dist/solid/components/Saturation.js +148 -0
  127. package/dist/solid/components/Sharpness.js +148 -0
  128. package/dist/solid/components/Shatter.js +148 -0
  129. package/dist/solid/components/SimplexNoise.js +148 -0
  130. package/dist/solid/components/SineWave.js +148 -0
  131. package/dist/solid/components/SolidColor.js +148 -0
  132. package/dist/solid/components/Spherize.js +148 -0
  133. package/dist/solid/components/Spiral.js +148 -0
  134. package/dist/solid/components/Strands.js +148 -0
  135. package/dist/solid/components/Stretch.js +148 -0
  136. package/dist/solid/components/Stripes.js +148 -0
  137. package/dist/solid/components/Swirl.js +148 -0
  138. package/dist/solid/components/TiltShift.js +148 -0
  139. package/dist/solid/components/Tint.js +148 -0
  140. package/dist/solid/components/Tritone.js +148 -0
  141. package/dist/solid/components/Twirl.js +148 -0
  142. package/dist/solid/components/Vibrance.js +148 -0
  143. package/dist/solid/components/WaveDistortion.js +148 -0
  144. package/dist/solid/components/WebcamTexture.d.ts +28 -0
  145. package/dist/solid/components/WebcamTexture.d.ts.map +1 -0
  146. package/dist/solid/components/WebcamTexture.js +148 -0
  147. package/dist/solid/components/ZoomBlur.js +148 -0
  148. package/dist/solid/engine/Shader.js +189 -0
  149. package/dist/solid/index.d.ts +1 -0
  150. package/dist/solid/index.d.ts.map +1 -1
  151. package/dist/solid/index.js +126 -8847
  152. package/dist/solid/utils/generatePresetCode.d.ts.map +1 -1
  153. package/dist/solid/utils/generatePresetCode.js +66 -414
  154. package/dist/svelte/components/WebcamTexture.svelte.d.ts +19 -0
  155. package/dist/svelte/generatePresetCode-CtXcoyI0.js +393 -0
  156. package/dist/svelte/index.d.ts +1 -0
  157. package/dist/svelte/index.js +115 -4
  158. package/dist/svelte/utils/generatePresetCode.js +1 -1
  159. package/dist/vue/AngularBlur.js +3 -0
  160. package/dist/vue/AngularBlur.vue_vue_type_script_setup_true_lang.js +125 -0
  161. package/dist/vue/Ascii.js +3 -0
  162. package/dist/vue/Ascii.vue_vue_type_script_setup_true_lang.js +127 -0
  163. package/dist/vue/Beam.js +3 -0
  164. package/dist/vue/Beam.vue_vue_type_script_setup_true_lang.js +132 -0
  165. package/dist/vue/Blob.js +3 -0
  166. package/dist/vue/Blob.vue_vue_type_script_setup_true_lang.js +137 -0
  167. package/dist/vue/Blur.js +3 -0
  168. package/dist/vue/Blur.vue_vue_type_script_setup_true_lang.js +124 -0
  169. package/dist/vue/BrightnessContrast.js +3 -0
  170. package/dist/vue/BrightnessContrast.vue_vue_type_script_setup_true_lang.js +125 -0
  171. package/dist/vue/Bulge.js +3 -0
  172. package/dist/vue/Bulge.vue_vue_type_script_setup_true_lang.js +128 -0
  173. package/dist/vue/CRTScreen.js +3 -0
  174. package/dist/vue/CRTScreen.vue_vue_type_script_setup_true_lang.js +129 -0
  175. package/dist/vue/ChannelBlur.js +3 -0
  176. package/dist/vue/ChannelBlur.vue_vue_type_script_setup_true_lang.js +126 -0
  177. package/dist/vue/Checkerboard.js +3 -0
  178. package/dist/vue/Checkerboard.vue_vue_type_script_setup_true_lang.js +128 -0
  179. package/dist/vue/ChromaFlow.js +3 -0
  180. package/dist/vue/ChromaFlow.vue_vue_type_script_setup_true_lang.js +131 -0
  181. package/dist/vue/ChromaticAberration.js +3 -0
  182. package/dist/vue/ChromaticAberration.vue_vue_type_script_setup_true_lang.js +128 -0
  183. package/dist/vue/Circle.js +3 -0
  184. package/dist/vue/Circle.vue_vue_type_script_setup_true_lang.js +127 -0
  185. package/dist/vue/CursorTrail.js +3 -0
  186. package/dist/vue/CursorTrail.vue_vue_type_script_setup_true_lang.js +129 -0
  187. package/dist/vue/DiffuseBlur.js +3 -0
  188. package/dist/vue/DiffuseBlur.vue_vue_type_script_setup_true_lang.js +125 -0
  189. package/dist/vue/Dither.js +3 -0
  190. package/dist/vue/Dither.vue_vue_type_script_setup_true_lang.js +127 -0
  191. package/dist/vue/DotGrid.js +3 -0
  192. package/dist/vue/DotGrid.vue_vue_type_script_setup_true_lang.js +127 -0
  193. package/dist/vue/Duotone.js +3 -0
  194. package/dist/vue/Duotone.vue_vue_type_script_setup_true_lang.js +127 -0
  195. package/dist/vue/FilmGrain.js +3 -0
  196. package/dist/vue/FilmGrain.vue_vue_type_script_setup_true_lang.js +124 -0
  197. package/dist/vue/FloatingParticles.js +3 -0
  198. package/dist/vue/FloatingParticles.vue_vue_type_script_setup_true_lang.js +134 -0
  199. package/dist/vue/GlassTiles.js +3 -0
  200. package/dist/vue/GlassTiles.vue_vue_type_script_setup_true_lang.js +127 -0
  201. package/dist/vue/Glow.js +3 -0
  202. package/dist/vue/Glow.vue_vue_type_script_setup_true_lang.js +126 -0
  203. package/dist/vue/Godrays.js +3 -0
  204. package/dist/vue/Godrays.vue_vue_type_script_setup_true_lang.js +130 -0
  205. package/dist/vue/Grayscale.js +3 -0
  206. package/dist/vue/Grayscale.vue_vue_type_script_setup_true_lang.js +123 -0
  207. package/dist/vue/Grid.js +3 -0
  208. package/dist/vue/Grid.vue_vue_type_script_setup_true_lang.js +126 -0
  209. package/dist/vue/GridDistortion.js +3 -0
  210. package/dist/vue/GridDistortion.vue_vue_type_script_setup_true_lang.js +129 -0
  211. package/dist/vue/Group.js +3 -0
  212. package/dist/vue/Group.vue_vue_type_script_setup_true_lang.js +123 -0
  213. package/dist/vue/Halftone.js +3 -0
  214. package/dist/vue/Halftone.vue_vue_type_script_setup_true_lang.js +126 -0
  215. package/dist/vue/HueShift.js +3 -0
  216. package/dist/vue/HueShift.vue_vue_type_script_setup_true_lang.js +124 -0
  217. package/dist/vue/ImageTexture.js +3 -0
  218. package/dist/vue/ImageTexture.vue_vue_type_script_setup_true_lang.js +125 -0
  219. package/dist/vue/Invert.js +3 -0
  220. package/dist/vue/Invert.vue_vue_type_script_setup_true_lang.js +123 -0
  221. package/dist/vue/LinearBlur.js +3 -0
  222. package/dist/vue/LinearBlur.vue_vue_type_script_setup_true_lang.js +125 -0
  223. package/dist/vue/LinearGradient.js +3 -0
  224. package/dist/vue/LinearGradient.vue_vue_type_script_setup_true_lang.js +130 -0
  225. package/dist/vue/Liquify.js +3 -0
  226. package/dist/vue/Liquify.vue_vue_type_script_setup_true_lang.js +128 -0
  227. package/dist/vue/Perspective.js +3 -0
  228. package/dist/vue/Perspective.vue_vue_type_script_setup_true_lang.js +130 -0
  229. package/dist/vue/Pixelate.js +3 -0
  230. package/dist/vue/Pixelate.vue_vue_type_script_setup_true_lang.js +124 -0
  231. package/dist/vue/PolarCoordinates.js +3 -0
  232. package/dist/vue/PolarCoordinates.vue_vue_type_script_setup_true_lang.js +128 -0
  233. package/dist/vue/Posterize.js +3 -0
  234. package/dist/vue/Posterize.vue_vue_type_script_setup_true_lang.js +124 -0
  235. package/dist/vue/ProgressiveBlur.js +3 -0
  236. package/dist/vue/ProgressiveBlur.vue_vue_type_script_setup_true_lang.js +127 -0
  237. package/dist/vue/RadialGradient.js +3 -0
  238. package/dist/vue/RadialGradient.vue_vue_type_script_setup_true_lang.js +128 -0
  239. package/dist/vue/RectangularCoordinates.js +3 -0
  240. package/dist/vue/RectangularCoordinates.vue_vue_type_script_setup_true_lang.js +127 -0
  241. package/dist/vue/Ripples.js +3 -0
  242. package/dist/vue/Ripples.vue_vue_type_script_setup_true_lang.js +131 -0
  243. package/dist/vue/Saturation.js +3 -0
  244. package/dist/vue/Saturation.vue_vue_type_script_setup_true_lang.js +124 -0
  245. package/dist/vue/Shader.js +3 -0
  246. package/dist/vue/Shader.vue_vue_type_script_setup_true_lang.js +153 -0
  247. package/dist/vue/Sharpness.js +3 -0
  248. package/dist/vue/Sharpness.vue_vue_type_script_setup_true_lang.js +124 -0
  249. package/dist/vue/Shatter.js +3 -0
  250. package/dist/vue/Shatter.vue_vue_type_script_setup_true_lang.js +132 -0
  251. package/dist/vue/SimplexNoise.js +3 -0
  252. package/dist/vue/SimplexNoise.vue_vue_type_script_setup_true_lang.js +130 -0
  253. package/dist/vue/SineWave.js +3 -0
  254. package/dist/vue/SineWave.vue_vue_type_script_setup_true_lang.js +131 -0
  255. package/dist/vue/SolidColor.js +3 -0
  256. package/dist/vue/SolidColor.vue_vue_type_script_setup_true_lang.js +124 -0
  257. package/dist/vue/Spherize.js +3 -0
  258. package/dist/vue/Spherize.vue_vue_type_script_setup_true_lang.js +130 -0
  259. package/dist/vue/Spiral.js +3 -0
  260. package/dist/vue/Spiral.vue_vue_type_script_setup_true_lang.js +132 -0
  261. package/dist/vue/Strands.js +3 -0
  262. package/dist/vue/Strands.vue_vue_type_script_setup_true_lang.js +132 -0
  263. package/dist/vue/Stretch.js +3 -0
  264. package/dist/vue/Stretch.vue_vue_type_script_setup_true_lang.js +128 -0
  265. package/dist/vue/Stripes.js +3 -0
  266. package/dist/vue/Stripes.vue_vue_type_script_setup_true_lang.js +132 -0
  267. package/dist/vue/Swirl.js +3 -0
  268. package/dist/vue/Swirl.vue_vue_type_script_setup_true_lang.js +129 -0
  269. package/dist/vue/TiltShift.js +3 -0
  270. package/dist/vue/TiltShift.vue_vue_type_script_setup_true_lang.js +128 -0
  271. package/dist/vue/Tint.js +3 -0
  272. package/dist/vue/Tint.vue_vue_type_script_setup_true_lang.js +126 -0
  273. package/dist/vue/Tritone.js +3 -0
  274. package/dist/vue/Tritone.vue_vue_type_script_setup_true_lang.js +128 -0
  275. package/dist/vue/Twirl.js +3 -0
  276. package/dist/vue/Twirl.vue_vue_type_script_setup_true_lang.js +126 -0
  277. package/dist/vue/Vibrance.js +3 -0
  278. package/dist/vue/Vibrance.vue_vue_type_script_setup_true_lang.js +124 -0
  279. package/dist/vue/WaveDistortion.js +3 -0
  280. package/dist/vue/WaveDistortion.vue_vue_type_script_setup_true_lang.js +129 -0
  281. package/dist/vue/WebcamTexture.js +3 -0
  282. package/dist/vue/WebcamTexture.vue_vue_type_script_setup_true_lang.js +125 -0
  283. package/dist/vue/ZoomBlur.js +3 -0
  284. package/dist/vue/ZoomBlur.vue_vue_type_script_setup_true_lang.js +125 -0
  285. package/dist/vue/components/WebcamTexture.vue.d.ts +57 -0
  286. package/dist/vue/components/WebcamTexture.vue.d.ts.map +1 -0
  287. package/dist/vue/index.d.ts +1 -0
  288. package/dist/vue/index.d.ts.map +1 -1
  289. package/dist/vue/index.js +65 -7749
  290. package/dist/vue/utils/generatePresetCode.d.ts.map +1 -1
  291. package/dist/vue/utils/generatePresetCode.js +391 -1
  292. package/package.json +9 -1
  293. package/dist/react/generatePresetCode-BrkW1bEe.js +0 -741
  294. package/dist/svelte/generatePresetCode-bx7z5wvC.js +0 -741
  295. package/dist/vue/generatePresetCode-_7ZzqQPH.js +0 -740
  296. /package/dist/core/{ZoomBlur-CTrw7HxX.js → ZoomBlur-CIkkDBIo.js} +0 -0
@@ -0,0 +1,148 @@
1
+ import { createComponent } from "solid-js/web";
2
+ import { splitProps, createMemo, onMount, onCleanup, createEffect } from "solid-js";
3
+ import { createUniformsMap } from "../../core/index.js";
4
+ import { componentDefinition } from "../../core/shaders/Spiral/index.js";
5
+ import { useShaderContext, ShaderContext } from "../engine/Shader.js";
6
+ const DEFAULT_TRANSFORM = {
7
+ offsetX: 0,
8
+ offsetY: 0,
9
+ rotation: 0,
10
+ scale: 1,
11
+ anchorX: 0.5,
12
+ anchorY: 0.5,
13
+ edges: "transparent"
14
+ };
15
+ const defaultProps = {
16
+ blendMode: "normal",
17
+ renderOrder: 0,
18
+ visible: true
19
+ // opacity intentionally has no default - handled by renderer
20
+ // transform intentionally has no default - handled by effectiveTransform
21
+ };
22
+ try {
23
+ if (componentDefinition && componentDefinition.props) {
24
+ Object.entries(componentDefinition.props).forEach(([key, config]) => {
25
+ const propConfig = config;
26
+ if (propConfig && typeof propConfig === "object" && "default" in propConfig) {
27
+ defaultProps[key] = propConfig.default;
28
+ }
29
+ });
30
+ }
31
+ } catch (e) {
32
+ console.warn("Error extracting default props:", e);
33
+ }
34
+ function ShaderComponent(props) {
35
+ const [local, otherProps] = splitProps(props, ["children"]);
36
+ const context = useShaderContext();
37
+ const {
38
+ shaderParentId: parentId,
39
+ shaderNodeRegister: parentRegister,
40
+ shaderUniformUpdate: parentUniformUpdate,
41
+ shaderMetadataUpdate: parentMetadataUpdate
42
+ } = context;
43
+ const instanceId = props.id || `${componentDefinition.name.toLowerCase()}_${Math.random().toString(36).substring(7)}`;
44
+ const effectiveProps = createMemo(() => {
45
+ let baseProps = {
46
+ ...defaultProps
47
+ };
48
+ for (const [key, value] of Object.entries(otherProps)) {
49
+ if (value !== void 0) {
50
+ baseProps[key] = value;
51
+ }
52
+ }
53
+ return baseProps;
54
+ });
55
+ const effectiveTransform = createMemo(() => ({
56
+ ...DEFAULT_TRANSFORM,
57
+ ...props.transform
58
+ }));
59
+ let uniformsMap = null;
60
+ const getUniformsMap = () => {
61
+ if (!uniformsMap) {
62
+ uniformsMap = createUniformsMap(componentDefinition, effectiveProps(), instanceId);
63
+ }
64
+ return uniformsMap;
65
+ };
66
+ const childContextValue = createMemo(() => ({
67
+ ...context,
68
+ shaderParentId: instanceId
69
+ }));
70
+ let isRegistered = false;
71
+ onMount(() => {
72
+ const uniforms = getUniformsMap();
73
+ if (!uniforms) return;
74
+ try {
75
+ const metadata = {
76
+ blendMode: props.blendMode || "normal",
77
+ opacity: props.opacity,
78
+ visible: props.visible === false ? false : true,
79
+ id: props.id,
80
+ mask: props.maskSource ? {
81
+ source: props.maskSource,
82
+ type: props.maskType || "alpha"
83
+ } : void 0,
84
+ renderOrder: props.renderOrder || 0,
85
+ transform: effectiveTransform()
86
+ };
87
+ parentRegister(instanceId, componentDefinition.fragmentNode, parentId, metadata, uniforms, componentDefinition);
88
+ isRegistered = true;
89
+ } catch (error) {
90
+ console.error("Error registering shader node:", error);
91
+ }
92
+ });
93
+ onCleanup(() => {
94
+ isRegistered = false;
95
+ parentRegister(instanceId, null, null, null, null);
96
+ });
97
+ createEffect(() => {
98
+ if (!isRegistered) return;
99
+ const uniforms = getUniformsMap();
100
+ if (!uniforms) return;
101
+ try {
102
+ const props_snapshot = effectiveProps();
103
+ Object.entries(uniforms).forEach(([propName, uniformData]) => {
104
+ if (!uniformData || typeof uniformData !== "object") return;
105
+ const {
106
+ uniform
107
+ } = uniformData;
108
+ if ((uniform == null ? void 0 : uniform.value) !== void 0 && propName in props_snapshot) {
109
+ const newValue = props_snapshot[propName];
110
+ parentUniformUpdate(instanceId, propName, newValue);
111
+ }
112
+ });
113
+ } catch (error) {
114
+ console.error("Error updating uniforms:", error);
115
+ }
116
+ });
117
+ createEffect(() => {
118
+ if (!isRegistered) return;
119
+ try {
120
+ const metadata = {
121
+ blendMode: props.blendMode || "normal",
122
+ opacity: props.opacity,
123
+ visible: props.visible === false ? false : true,
124
+ id: props.id,
125
+ mask: props.maskSource ? {
126
+ source: props.maskSource,
127
+ type: props.maskType || "alpha"
128
+ } : void 0,
129
+ renderOrder: props.renderOrder || 0,
130
+ transform: effectiveTransform()
131
+ };
132
+ parentMetadataUpdate(instanceId, metadata);
133
+ } catch (error) {
134
+ console.error("Error updating metadata:", error);
135
+ }
136
+ });
137
+ return createComponent(ShaderContext.Provider, {
138
+ get value() {
139
+ return childContextValue();
140
+ },
141
+ get children() {
142
+ return local.children;
143
+ }
144
+ });
145
+ }
146
+ export {
147
+ ShaderComponent as default
148
+ };
@@ -0,0 +1,148 @@
1
+ import { createComponent } from "solid-js/web";
2
+ import { splitProps, createMemo, onMount, onCleanup, createEffect } from "solid-js";
3
+ import { createUniformsMap } from "../../core/index.js";
4
+ import { componentDefinition } from "../../core/shaders/Strands/index.js";
5
+ import { useShaderContext, ShaderContext } from "../engine/Shader.js";
6
+ const DEFAULT_TRANSFORM = {
7
+ offsetX: 0,
8
+ offsetY: 0,
9
+ rotation: 0,
10
+ scale: 1,
11
+ anchorX: 0.5,
12
+ anchorY: 0.5,
13
+ edges: "transparent"
14
+ };
15
+ const defaultProps = {
16
+ blendMode: "normal",
17
+ renderOrder: 0,
18
+ visible: true
19
+ // opacity intentionally has no default - handled by renderer
20
+ // transform intentionally has no default - handled by effectiveTransform
21
+ };
22
+ try {
23
+ if (componentDefinition && componentDefinition.props) {
24
+ Object.entries(componentDefinition.props).forEach(([key, config]) => {
25
+ const propConfig = config;
26
+ if (propConfig && typeof propConfig === "object" && "default" in propConfig) {
27
+ defaultProps[key] = propConfig.default;
28
+ }
29
+ });
30
+ }
31
+ } catch (e) {
32
+ console.warn("Error extracting default props:", e);
33
+ }
34
+ function ShaderComponent(props) {
35
+ const [local, otherProps] = splitProps(props, ["children"]);
36
+ const context = useShaderContext();
37
+ const {
38
+ shaderParentId: parentId,
39
+ shaderNodeRegister: parentRegister,
40
+ shaderUniformUpdate: parentUniformUpdate,
41
+ shaderMetadataUpdate: parentMetadataUpdate
42
+ } = context;
43
+ const instanceId = props.id || `${componentDefinition.name.toLowerCase()}_${Math.random().toString(36).substring(7)}`;
44
+ const effectiveProps = createMemo(() => {
45
+ let baseProps = {
46
+ ...defaultProps
47
+ };
48
+ for (const [key, value] of Object.entries(otherProps)) {
49
+ if (value !== void 0) {
50
+ baseProps[key] = value;
51
+ }
52
+ }
53
+ return baseProps;
54
+ });
55
+ const effectiveTransform = createMemo(() => ({
56
+ ...DEFAULT_TRANSFORM,
57
+ ...props.transform
58
+ }));
59
+ let uniformsMap = null;
60
+ const getUniformsMap = () => {
61
+ if (!uniformsMap) {
62
+ uniformsMap = createUniformsMap(componentDefinition, effectiveProps(), instanceId);
63
+ }
64
+ return uniformsMap;
65
+ };
66
+ const childContextValue = createMemo(() => ({
67
+ ...context,
68
+ shaderParentId: instanceId
69
+ }));
70
+ let isRegistered = false;
71
+ onMount(() => {
72
+ const uniforms = getUniformsMap();
73
+ if (!uniforms) return;
74
+ try {
75
+ const metadata = {
76
+ blendMode: props.blendMode || "normal",
77
+ opacity: props.opacity,
78
+ visible: props.visible === false ? false : true,
79
+ id: props.id,
80
+ mask: props.maskSource ? {
81
+ source: props.maskSource,
82
+ type: props.maskType || "alpha"
83
+ } : void 0,
84
+ renderOrder: props.renderOrder || 0,
85
+ transform: effectiveTransform()
86
+ };
87
+ parentRegister(instanceId, componentDefinition.fragmentNode, parentId, metadata, uniforms, componentDefinition);
88
+ isRegistered = true;
89
+ } catch (error) {
90
+ console.error("Error registering shader node:", error);
91
+ }
92
+ });
93
+ onCleanup(() => {
94
+ isRegistered = false;
95
+ parentRegister(instanceId, null, null, null, null);
96
+ });
97
+ createEffect(() => {
98
+ if (!isRegistered) return;
99
+ const uniforms = getUniformsMap();
100
+ if (!uniforms) return;
101
+ try {
102
+ const props_snapshot = effectiveProps();
103
+ Object.entries(uniforms).forEach(([propName, uniformData]) => {
104
+ if (!uniformData || typeof uniformData !== "object") return;
105
+ const {
106
+ uniform
107
+ } = uniformData;
108
+ if ((uniform == null ? void 0 : uniform.value) !== void 0 && propName in props_snapshot) {
109
+ const newValue = props_snapshot[propName];
110
+ parentUniformUpdate(instanceId, propName, newValue);
111
+ }
112
+ });
113
+ } catch (error) {
114
+ console.error("Error updating uniforms:", error);
115
+ }
116
+ });
117
+ createEffect(() => {
118
+ if (!isRegistered) return;
119
+ try {
120
+ const metadata = {
121
+ blendMode: props.blendMode || "normal",
122
+ opacity: props.opacity,
123
+ visible: props.visible === false ? false : true,
124
+ id: props.id,
125
+ mask: props.maskSource ? {
126
+ source: props.maskSource,
127
+ type: props.maskType || "alpha"
128
+ } : void 0,
129
+ renderOrder: props.renderOrder || 0,
130
+ transform: effectiveTransform()
131
+ };
132
+ parentMetadataUpdate(instanceId, metadata);
133
+ } catch (error) {
134
+ console.error("Error updating metadata:", error);
135
+ }
136
+ });
137
+ return createComponent(ShaderContext.Provider, {
138
+ get value() {
139
+ return childContextValue();
140
+ },
141
+ get children() {
142
+ return local.children;
143
+ }
144
+ });
145
+ }
146
+ export {
147
+ ShaderComponent as default
148
+ };
@@ -0,0 +1,148 @@
1
+ import { createComponent } from "solid-js/web";
2
+ import { splitProps, createMemo, onMount, onCleanup, createEffect } from "solid-js";
3
+ import { createUniformsMap } from "../../core/index.js";
4
+ import { componentDefinition } from "../../core/shaders/Stretch/index.js";
5
+ import { useShaderContext, ShaderContext } from "../engine/Shader.js";
6
+ const DEFAULT_TRANSFORM = {
7
+ offsetX: 0,
8
+ offsetY: 0,
9
+ rotation: 0,
10
+ scale: 1,
11
+ anchorX: 0.5,
12
+ anchorY: 0.5,
13
+ edges: "transparent"
14
+ };
15
+ const defaultProps = {
16
+ blendMode: "normal",
17
+ renderOrder: 0,
18
+ visible: true
19
+ // opacity intentionally has no default - handled by renderer
20
+ // transform intentionally has no default - handled by effectiveTransform
21
+ };
22
+ try {
23
+ if (componentDefinition && componentDefinition.props) {
24
+ Object.entries(componentDefinition.props).forEach(([key, config]) => {
25
+ const propConfig = config;
26
+ if (propConfig && typeof propConfig === "object" && "default" in propConfig) {
27
+ defaultProps[key] = propConfig.default;
28
+ }
29
+ });
30
+ }
31
+ } catch (e) {
32
+ console.warn("Error extracting default props:", e);
33
+ }
34
+ function ShaderComponent(props) {
35
+ const [local, otherProps] = splitProps(props, ["children"]);
36
+ const context = useShaderContext();
37
+ const {
38
+ shaderParentId: parentId,
39
+ shaderNodeRegister: parentRegister,
40
+ shaderUniformUpdate: parentUniformUpdate,
41
+ shaderMetadataUpdate: parentMetadataUpdate
42
+ } = context;
43
+ const instanceId = props.id || `${componentDefinition.name.toLowerCase()}_${Math.random().toString(36).substring(7)}`;
44
+ const effectiveProps = createMemo(() => {
45
+ let baseProps = {
46
+ ...defaultProps
47
+ };
48
+ for (const [key, value] of Object.entries(otherProps)) {
49
+ if (value !== void 0) {
50
+ baseProps[key] = value;
51
+ }
52
+ }
53
+ return baseProps;
54
+ });
55
+ const effectiveTransform = createMemo(() => ({
56
+ ...DEFAULT_TRANSFORM,
57
+ ...props.transform
58
+ }));
59
+ let uniformsMap = null;
60
+ const getUniformsMap = () => {
61
+ if (!uniformsMap) {
62
+ uniformsMap = createUniformsMap(componentDefinition, effectiveProps(), instanceId);
63
+ }
64
+ return uniformsMap;
65
+ };
66
+ const childContextValue = createMemo(() => ({
67
+ ...context,
68
+ shaderParentId: instanceId
69
+ }));
70
+ let isRegistered = false;
71
+ onMount(() => {
72
+ const uniforms = getUniformsMap();
73
+ if (!uniforms) return;
74
+ try {
75
+ const metadata = {
76
+ blendMode: props.blendMode || "normal",
77
+ opacity: props.opacity,
78
+ visible: props.visible === false ? false : true,
79
+ id: props.id,
80
+ mask: props.maskSource ? {
81
+ source: props.maskSource,
82
+ type: props.maskType || "alpha"
83
+ } : void 0,
84
+ renderOrder: props.renderOrder || 0,
85
+ transform: effectiveTransform()
86
+ };
87
+ parentRegister(instanceId, componentDefinition.fragmentNode, parentId, metadata, uniforms, componentDefinition);
88
+ isRegistered = true;
89
+ } catch (error) {
90
+ console.error("Error registering shader node:", error);
91
+ }
92
+ });
93
+ onCleanup(() => {
94
+ isRegistered = false;
95
+ parentRegister(instanceId, null, null, null, null);
96
+ });
97
+ createEffect(() => {
98
+ if (!isRegistered) return;
99
+ const uniforms = getUniformsMap();
100
+ if (!uniforms) return;
101
+ try {
102
+ const props_snapshot = effectiveProps();
103
+ Object.entries(uniforms).forEach(([propName, uniformData]) => {
104
+ if (!uniformData || typeof uniformData !== "object") return;
105
+ const {
106
+ uniform
107
+ } = uniformData;
108
+ if ((uniform == null ? void 0 : uniform.value) !== void 0 && propName in props_snapshot) {
109
+ const newValue = props_snapshot[propName];
110
+ parentUniformUpdate(instanceId, propName, newValue);
111
+ }
112
+ });
113
+ } catch (error) {
114
+ console.error("Error updating uniforms:", error);
115
+ }
116
+ });
117
+ createEffect(() => {
118
+ if (!isRegistered) return;
119
+ try {
120
+ const metadata = {
121
+ blendMode: props.blendMode || "normal",
122
+ opacity: props.opacity,
123
+ visible: props.visible === false ? false : true,
124
+ id: props.id,
125
+ mask: props.maskSource ? {
126
+ source: props.maskSource,
127
+ type: props.maskType || "alpha"
128
+ } : void 0,
129
+ renderOrder: props.renderOrder || 0,
130
+ transform: effectiveTransform()
131
+ };
132
+ parentMetadataUpdate(instanceId, metadata);
133
+ } catch (error) {
134
+ console.error("Error updating metadata:", error);
135
+ }
136
+ });
137
+ return createComponent(ShaderContext.Provider, {
138
+ get value() {
139
+ return childContextValue();
140
+ },
141
+ get children() {
142
+ return local.children;
143
+ }
144
+ });
145
+ }
146
+ export {
147
+ ShaderComponent as default
148
+ };
@@ -0,0 +1,148 @@
1
+ import { createComponent } from "solid-js/web";
2
+ import { splitProps, createMemo, onMount, onCleanup, createEffect } from "solid-js";
3
+ import { createUniformsMap } from "../../core/index.js";
4
+ import { componentDefinition } from "../../core/shaders/Stripes/index.js";
5
+ import { useShaderContext, ShaderContext } from "../engine/Shader.js";
6
+ const DEFAULT_TRANSFORM = {
7
+ offsetX: 0,
8
+ offsetY: 0,
9
+ rotation: 0,
10
+ scale: 1,
11
+ anchorX: 0.5,
12
+ anchorY: 0.5,
13
+ edges: "transparent"
14
+ };
15
+ const defaultProps = {
16
+ blendMode: "normal",
17
+ renderOrder: 0,
18
+ visible: true
19
+ // opacity intentionally has no default - handled by renderer
20
+ // transform intentionally has no default - handled by effectiveTransform
21
+ };
22
+ try {
23
+ if (componentDefinition && componentDefinition.props) {
24
+ Object.entries(componentDefinition.props).forEach(([key, config]) => {
25
+ const propConfig = config;
26
+ if (propConfig && typeof propConfig === "object" && "default" in propConfig) {
27
+ defaultProps[key] = propConfig.default;
28
+ }
29
+ });
30
+ }
31
+ } catch (e) {
32
+ console.warn("Error extracting default props:", e);
33
+ }
34
+ function ShaderComponent(props) {
35
+ const [local, otherProps] = splitProps(props, ["children"]);
36
+ const context = useShaderContext();
37
+ const {
38
+ shaderParentId: parentId,
39
+ shaderNodeRegister: parentRegister,
40
+ shaderUniformUpdate: parentUniformUpdate,
41
+ shaderMetadataUpdate: parentMetadataUpdate
42
+ } = context;
43
+ const instanceId = props.id || `${componentDefinition.name.toLowerCase()}_${Math.random().toString(36).substring(7)}`;
44
+ const effectiveProps = createMemo(() => {
45
+ let baseProps = {
46
+ ...defaultProps
47
+ };
48
+ for (const [key, value] of Object.entries(otherProps)) {
49
+ if (value !== void 0) {
50
+ baseProps[key] = value;
51
+ }
52
+ }
53
+ return baseProps;
54
+ });
55
+ const effectiveTransform = createMemo(() => ({
56
+ ...DEFAULT_TRANSFORM,
57
+ ...props.transform
58
+ }));
59
+ let uniformsMap = null;
60
+ const getUniformsMap = () => {
61
+ if (!uniformsMap) {
62
+ uniformsMap = createUniformsMap(componentDefinition, effectiveProps(), instanceId);
63
+ }
64
+ return uniformsMap;
65
+ };
66
+ const childContextValue = createMemo(() => ({
67
+ ...context,
68
+ shaderParentId: instanceId
69
+ }));
70
+ let isRegistered = false;
71
+ onMount(() => {
72
+ const uniforms = getUniformsMap();
73
+ if (!uniforms) return;
74
+ try {
75
+ const metadata = {
76
+ blendMode: props.blendMode || "normal",
77
+ opacity: props.opacity,
78
+ visible: props.visible === false ? false : true,
79
+ id: props.id,
80
+ mask: props.maskSource ? {
81
+ source: props.maskSource,
82
+ type: props.maskType || "alpha"
83
+ } : void 0,
84
+ renderOrder: props.renderOrder || 0,
85
+ transform: effectiveTransform()
86
+ };
87
+ parentRegister(instanceId, componentDefinition.fragmentNode, parentId, metadata, uniforms, componentDefinition);
88
+ isRegistered = true;
89
+ } catch (error) {
90
+ console.error("Error registering shader node:", error);
91
+ }
92
+ });
93
+ onCleanup(() => {
94
+ isRegistered = false;
95
+ parentRegister(instanceId, null, null, null, null);
96
+ });
97
+ createEffect(() => {
98
+ if (!isRegistered) return;
99
+ const uniforms = getUniformsMap();
100
+ if (!uniforms) return;
101
+ try {
102
+ const props_snapshot = effectiveProps();
103
+ Object.entries(uniforms).forEach(([propName, uniformData]) => {
104
+ if (!uniformData || typeof uniformData !== "object") return;
105
+ const {
106
+ uniform
107
+ } = uniformData;
108
+ if ((uniform == null ? void 0 : uniform.value) !== void 0 && propName in props_snapshot) {
109
+ const newValue = props_snapshot[propName];
110
+ parentUniformUpdate(instanceId, propName, newValue);
111
+ }
112
+ });
113
+ } catch (error) {
114
+ console.error("Error updating uniforms:", error);
115
+ }
116
+ });
117
+ createEffect(() => {
118
+ if (!isRegistered) return;
119
+ try {
120
+ const metadata = {
121
+ blendMode: props.blendMode || "normal",
122
+ opacity: props.opacity,
123
+ visible: props.visible === false ? false : true,
124
+ id: props.id,
125
+ mask: props.maskSource ? {
126
+ source: props.maskSource,
127
+ type: props.maskType || "alpha"
128
+ } : void 0,
129
+ renderOrder: props.renderOrder || 0,
130
+ transform: effectiveTransform()
131
+ };
132
+ parentMetadataUpdate(instanceId, metadata);
133
+ } catch (error) {
134
+ console.error("Error updating metadata:", error);
135
+ }
136
+ });
137
+ return createComponent(ShaderContext.Provider, {
138
+ get value() {
139
+ return childContextValue();
140
+ },
141
+ get children() {
142
+ return local.children;
143
+ }
144
+ });
145
+ }
146
+ export {
147
+ ShaderComponent as default
148
+ };