shaders 2.3.51 → 2.3.53

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 (193) hide show
  1. package/dist/core/Aurora-BDnL1XdK.js +233 -0
  2. package/dist/core/CursorRipples-Dn_rE8nA.js +177 -0
  3. package/dist/core/registry.js +144 -140
  4. package/dist/core/shaderRegistry.d.ts.map +1 -1
  5. package/dist/core/shaders/Aurora/index.d.ts +99 -0
  6. package/dist/core/shaders/Aurora/index.d.ts.map +1 -0
  7. package/dist/core/shaders/Aurora/index.js +5 -0
  8. package/dist/core/shaders/Beam/index.js +1 -1
  9. package/dist/core/shaders/Blob/index.js +1 -1
  10. package/dist/core/shaders/Blur/index.js +1 -1
  11. package/dist/core/shaders/BrightnessContrast/index.js +1 -1
  12. package/dist/core/shaders/Bulge/index.js +1 -1
  13. package/dist/core/shaders/CRTScreen/index.js +1 -1
  14. package/dist/core/shaders/ChannelBlur/index.js +1 -1
  15. package/dist/core/shaders/Checkerboard/index.js +1 -1
  16. package/dist/core/shaders/ChromaFlow/index.js +1 -1
  17. package/dist/core/shaders/ChromaticAberration/index.js +1 -1
  18. package/dist/core/shaders/Circle/index.js +1 -1
  19. package/dist/core/shaders/ConcentricSpin/index.js +1 -1
  20. package/dist/core/shaders/ContourLines/index.js +1 -1
  21. package/dist/core/shaders/CursorRipples/index.d.ts +42 -0
  22. package/dist/core/shaders/CursorRipples/index.d.ts.map +1 -0
  23. package/dist/core/shaders/CursorRipples/index.js +4 -0
  24. package/dist/core/shaders/CursorTrail/index.js +1 -1
  25. package/dist/core/shaders/DiffuseBlur/index.js +1 -1
  26. package/dist/core/shaders/Dither/index.js +1 -1
  27. package/dist/core/shaders/DotGrid/index.js +1 -1
  28. package/dist/core/shaders/Duotone/index.js +1 -1
  29. package/dist/core/shaders/FilmGrain/index.js +1 -1
  30. package/dist/core/shaders/FloatingParticles/index.js +1 -1
  31. package/dist/core/shaders/FlowField/index.js +1 -1
  32. package/dist/core/shaders/GlassTiles/index.js +1 -1
  33. package/dist/core/shaders/Glitch/index.js +1 -1
  34. package/dist/core/shaders/Glow/index.js +1 -1
  35. package/dist/core/shaders/Godrays/index.js +1 -1
  36. package/dist/core/shaders/Grayscale/index.js +1 -1
  37. package/dist/core/shaders/Grid/index.js +1 -1
  38. package/dist/core/shaders/GridDistortion/index.js +1 -1
  39. package/dist/core/shaders/Group/index.js +1 -1
  40. package/dist/core/shaders/Halftone/index.js +1 -1
  41. package/dist/core/shaders/HueShift/index.js +1 -1
  42. package/dist/core/shaders/ImageTexture/index.js +1 -1
  43. package/dist/core/shaders/Invert/index.js +1 -1
  44. package/dist/core/shaders/Kaleidoscope/index.js +1 -1
  45. package/dist/core/shaders/LensFlare/index.js +1 -1
  46. package/dist/core/shaders/LinearBlur/index.js +1 -1
  47. package/dist/core/shaders/LinearGradient/index.js +1 -1
  48. package/dist/core/shaders/Liquify/index.js +1 -1
  49. package/dist/core/shaders/Mirror/index.js +1 -1
  50. package/dist/core/shaders/Perspective/index.js +1 -1
  51. package/dist/core/shaders/Pixelate/index.js +1 -1
  52. package/dist/core/shaders/Plasma/index.js +1 -1
  53. package/dist/core/shaders/PolarCoordinates/index.js +1 -1
  54. package/dist/core/shaders/Posterize/index.js +1 -1
  55. package/dist/core/shaders/ProgressiveBlur/index.js +1 -1
  56. package/dist/core/shaders/RadialGradient/index.js +1 -1
  57. package/dist/core/shaders/RectangularCoordinates/index.js +1 -1
  58. package/dist/core/shaders/Ripples/index.js +1 -1
  59. package/dist/core/shaders/Saturation/index.js +1 -1
  60. package/dist/core/shaders/Sharpness/index.js +1 -1
  61. package/dist/core/shaders/Shatter/index.js +1 -1
  62. package/dist/core/shaders/SimplexNoise/index.js +1 -1
  63. package/dist/core/shaders/SineWave/index.js +1 -1
  64. package/dist/core/shaders/SolidColor/index.js +1 -1
  65. package/dist/core/shaders/Spherize/index.js +1 -1
  66. package/dist/core/shaders/Spiral/index.js +1 -1
  67. package/dist/core/shaders/Strands/index.js +1 -1
  68. package/dist/core/shaders/Stretch/index.js +1 -1
  69. package/dist/core/shaders/Stripes/index.js +1 -1
  70. package/dist/core/shaders/StudioBackground/index.js +1 -1
  71. package/dist/core/shaders/Swirl/index.js +1 -1
  72. package/dist/core/shaders/TiltShift/index.js +1 -1
  73. package/dist/core/shaders/Tint/index.js +1 -1
  74. package/dist/core/shaders/Tritone/index.js +1 -1
  75. package/dist/core/shaders/Twirl/index.js +1 -1
  76. package/dist/core/shaders/Vibrance/index.js +1 -1
  77. package/dist/core/shaders/VideoTexture/index.js +1 -1
  78. package/dist/core/shaders/WaveDistortion/index.js +1 -1
  79. package/dist/core/shaders/WebcamTexture/index.js +1 -1
  80. package/dist/core/shaders/ZoomBlur/index.js +1 -1
  81. package/dist/react/Aurora.js +164 -0
  82. package/dist/react/CursorRipples.js +164 -0
  83. package/dist/react/components/Aurora.d.ts +31 -0
  84. package/dist/react/components/Aurora.d.ts.map +1 -0
  85. package/dist/react/components/CursorRipples.d.ts +31 -0
  86. package/dist/react/components/CursorRipples.d.ts.map +1 -0
  87. package/dist/react/index.d.ts +2 -0
  88. package/dist/react/index.d.ts.map +1 -1
  89. package/dist/react/index.js +3 -1
  90. package/dist/react/utils/generatePresetCode.d.ts.map +1 -1
  91. package/dist/react/utils/generatePresetCode.js +31 -0
  92. package/dist/registry.js +499 -0
  93. package/dist/solid/components/Aurora.d.ts +28 -0
  94. package/dist/solid/components/Aurora.d.ts.map +1 -0
  95. package/dist/solid/components/Aurora.js +168 -0
  96. package/dist/solid/components/CursorRipples.d.ts +28 -0
  97. package/dist/solid/components/CursorRipples.d.ts.map +1 -0
  98. package/dist/solid/components/CursorRipples.js +168 -0
  99. package/dist/solid/index.d.ts +2 -0
  100. package/dist/solid/index.d.ts.map +1 -1
  101. package/dist/solid/index.js +146 -142
  102. package/dist/solid/utils/generatePresetCode.d.ts.map +1 -1
  103. package/dist/solid/utils/generatePresetCode.js +31 -0
  104. package/dist/svelte/components/Aurora.svelte.d.ts +19 -0
  105. package/dist/svelte/components/CursorRipples.svelte.d.ts +19 -0
  106. package/dist/svelte/{generatePresetCode-TDa1I3YR.js → generatePresetCode-DN-iUvZN.js} +31 -0
  107. package/dist/svelte/index.d.ts +2 -0
  108. package/dist/svelte/index.js +545 -285
  109. package/dist/svelte/utils/generatePresetCode.js +1 -1
  110. package/dist/vue/Aurora.js +3 -0
  111. package/dist/vue/Aurora.vue_vue_type_script_setup_true_lang.js +156 -0
  112. package/dist/vue/CursorRipples.js +3 -0
  113. package/dist/vue/CursorRipples.vue_vue_type_script_setup_true_lang.js +148 -0
  114. package/dist/vue/components/Aurora.vue.d.ts +54 -0
  115. package/dist/vue/components/Aurora.vue.d.ts.map +1 -0
  116. package/dist/vue/components/CursorRipples.vue.d.ts +54 -0
  117. package/dist/vue/components/CursorRipples.vue.d.ts.map +1 -0
  118. package/dist/vue/index.d.ts +2 -0
  119. package/dist/vue/index.d.ts.map +1 -1
  120. package/dist/vue/index.js +3 -1
  121. package/dist/vue/utils/generatePresetCode.d.ts.map +1 -1
  122. package/dist/vue/utils/generatePresetCode.js +31 -0
  123. package/package.json +17 -1
  124. /package/dist/core/{Beam-BBbjVQDP.js → Beam-CyRoRQEj.js} +0 -0
  125. /package/dist/core/{Blob-DeD9KRj-.js → Blob-BgN4aVOR.js} +0 -0
  126. /package/dist/core/{Blur-Brqgsz7y.js → Blur-NNElJwzj.js} +0 -0
  127. /package/dist/core/{BrightnessContrast-DSePKfxC.js → BrightnessContrast-FdkKMaQQ.js} +0 -0
  128. /package/dist/core/{Bulge-D2OwcL23.js → Bulge-Ca9hW7y4.js} +0 -0
  129. /package/dist/core/{CRTScreen-D6qh6DnD.js → CRTScreen-BHKDJ9_0.js} +0 -0
  130. /package/dist/core/{ChannelBlur-BKo9uGaB.js → ChannelBlur-A0r5Gx_y.js} +0 -0
  131. /package/dist/core/{Checkerboard-ChbG4nPC.js → Checkerboard-XJh_tV6B.js} +0 -0
  132. /package/dist/core/{ChromaFlow-DyqU1igx.js → ChromaFlow-Cc647Knw.js} +0 -0
  133. /package/dist/core/{ChromaticAberration-9nlFN2h0.js → ChromaticAberration-CYvju_kr.js} +0 -0
  134. /package/dist/core/{Circle-DSQ_9vPx.js → Circle-C9DYXDnD.js} +0 -0
  135. /package/dist/core/{ConcentricSpin-CLTGx_sN.js → ConcentricSpin-CnuAW_6I.js} +0 -0
  136. /package/dist/core/{ContourLines-Dc5J7iw5.js → ContourLines-DJ0R9q6Y.js} +0 -0
  137. /package/dist/core/{CursorTrail-COnyRZH9.js → CursorTrail-DD4YxAqo.js} +0 -0
  138. /package/dist/core/{DiffuseBlur-DcV8M7hN.js → DiffuseBlur-GlibDd8O.js} +0 -0
  139. /package/dist/core/{Dither-C-w0ugGX.js → Dither-BOWyA2dp.js} +0 -0
  140. /package/dist/core/{DotGrid-wXnfcjrM.js → DotGrid-Cm-wz6WU.js} +0 -0
  141. /package/dist/core/{Duotone-B8dYgrFR.js → Duotone-C8mRw_1e.js} +0 -0
  142. /package/dist/core/{FilmGrain-D_6m7GJ4.js → FilmGrain-BzD2zoUK.js} +0 -0
  143. /package/dist/core/{FloatingParticles-YuuXeICf.js → FloatingParticles-GkVY1twT.js} +0 -0
  144. /package/dist/core/{FlowField-Dx2eqOcU.js → FlowField-S_LXjhaN.js} +0 -0
  145. /package/dist/core/{GlassTiles-hnt2pUQN.js → GlassTiles--hbefQlc.js} +0 -0
  146. /package/dist/core/{Glitch-DfPXeSlL.js → Glitch-lbgQYebN.js} +0 -0
  147. /package/dist/core/{Glow-CQv_dRPj.js → Glow-DM9zbhbr.js} +0 -0
  148. /package/dist/core/{Godrays-B_-HliEA.js → Godrays-DVo1ikUR.js} +0 -0
  149. /package/dist/core/{Grayscale-DRFXhxr4.js → Grayscale-CRYK8foe.js} +0 -0
  150. /package/dist/core/{Grid-DKSUwEIe.js → Grid-BmYSb6Ur.js} +0 -0
  151. /package/dist/core/{GridDistortion-DahXljLX.js → GridDistortion-PNU8pi2I.js} +0 -0
  152. /package/dist/core/{Group-r9gMBd5y.js → Group-D-QMn-Co.js} +0 -0
  153. /package/dist/core/{Halftone-ZVjwkjaQ.js → Halftone-BlY2LuT8.js} +0 -0
  154. /package/dist/core/{HueShift-gZlNBwNE.js → HueShift-p4t6HfqE.js} +0 -0
  155. /package/dist/core/{ImageTexture-DuXMku_O.js → ImageTexture-BAOtuVAy.js} +0 -0
  156. /package/dist/core/{Invert-gUjZNHF3.js → Invert-oYct5uwC.js} +0 -0
  157. /package/dist/core/{Kaleidoscope-COKZ0BDb.js → Kaleidoscope-BXKsOJl2.js} +0 -0
  158. /package/dist/core/{LensFlare-D6jy4M7G.js → LensFlare-BWl8PWjv.js} +0 -0
  159. /package/dist/core/{LinearBlur-CArDQIhs.js → LinearBlur-gV1sIMuQ.js} +0 -0
  160. /package/dist/core/{LinearGradient-BkB_3gVV.js → LinearGradient-C5kz9RSs.js} +0 -0
  161. /package/dist/core/{Liquify-BrIB9ajS.js → Liquify-CtUvuV0S.js} +0 -0
  162. /package/dist/core/{Mirror-BRPYfVAr.js → Mirror-C3Bn9m7T.js} +0 -0
  163. /package/dist/core/{Perspective-CglPLWTZ.js → Perspective-NsMXVWAS.js} +0 -0
  164. /package/dist/core/{Pixelate-CwnuDc5L.js → Pixelate-C-LbtIjf.js} +0 -0
  165. /package/dist/core/{Plasma-CuW-GOI_.js → Plasma-Dr516u2H.js} +0 -0
  166. /package/dist/core/{PolarCoordinates-9AFXKnSC.js → PolarCoordinates-HVxz9oX-.js} +0 -0
  167. /package/dist/core/{Posterize-DU2yrydV.js → Posterize-DbPe3f5d.js} +0 -0
  168. /package/dist/core/{ProgressiveBlur-BXv2mob_.js → ProgressiveBlur-Cf2pKf8U.js} +0 -0
  169. /package/dist/core/{RadialGradient-Dd21Be-_.js → RadialGradient-Bel2cjwV.js} +0 -0
  170. /package/dist/core/{RectangularCoordinates-DAOGnX2p.js → RectangularCoordinates-BfeH7Mp6.js} +0 -0
  171. /package/dist/core/{Ripples-Nk5is8WX.js → Ripples-DBqbjqb_.js} +0 -0
  172. /package/dist/core/{Saturation-KoiVB92Y.js → Saturation-4L5KnzYg.js} +0 -0
  173. /package/dist/core/{Sharpness-CK-zaDVc.js → Sharpness-C5h9h3NY.js} +0 -0
  174. /package/dist/core/{Shatter-EEzkIXGb.js → Shatter-BDTHZrbz.js} +0 -0
  175. /package/dist/core/{SimplexNoise-DKov4Yho.js → SimplexNoise-DU-QPbwp.js} +0 -0
  176. /package/dist/core/{SineWave-Cy0wWKUU.js → SineWave-CsoVJf9C.js} +0 -0
  177. /package/dist/core/{SolidColor-P4OKglCC.js → SolidColor-BOK2t0JT.js} +0 -0
  178. /package/dist/core/{Spherize-BLEvqakM.js → Spherize-BxUTtFAg.js} +0 -0
  179. /package/dist/core/{Spiral-DXuKs26n.js → Spiral-DVURsiiQ.js} +0 -0
  180. /package/dist/core/{Strands-DsdASoV4.js → Strands-C2l4JaUt.js} +0 -0
  181. /package/dist/core/{Stretch-By8f2wmJ.js → Stretch-uSJDtqi2.js} +0 -0
  182. /package/dist/core/{Stripes-D8HSlP1H.js → Stripes-IFl3of9w.js} +0 -0
  183. /package/dist/core/{StudioBackground-CFjfBnWp.js → StudioBackground-DbBGv5fk.js} +0 -0
  184. /package/dist/core/{Swirl-BIFGxHL0.js → Swirl-C16tmwEg.js} +0 -0
  185. /package/dist/core/{TiltShift-CLMFkzBs.js → TiltShift-C5t3YMVT.js} +0 -0
  186. /package/dist/core/{Tint-NQjiXLGu.js → Tint-VTnDmiKF.js} +0 -0
  187. /package/dist/core/{Tritone-67eoddBF.js → Tritone-v6z_O967.js} +0 -0
  188. /package/dist/core/{Twirl-ZaYAMqmq.js → Twirl-BWpsT8iI.js} +0 -0
  189. /package/dist/core/{Vibrance-DbSUuK_4.js → Vibrance-C_DSuzwf.js} +0 -0
  190. /package/dist/core/{VideoTexture-lHzoN3G9.js → VideoTexture-OrpXuUNQ.js} +0 -0
  191. /package/dist/core/{WaveDistortion-CB6xTndT.js → WaveDistortion-BAxVvc8B.js} +0 -0
  192. /package/dist/core/{WebcamTexture-BJUvpMmV.js → WebcamTexture-D2CHXtkO.js} +0 -0
  193. /package/dist/core/{ZoomBlur-BCClC8fw.js → ZoomBlur-D--sEenn.js} +0 -0
@@ -0,0 +1,168 @@
1
+ import { createComponent, template, use, setAttribute, insert } 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/Aurora/index.js";
5
+ import { useShaderContext, ShaderContext } from "../engine/Shader.js";
6
+ var _tmpl$ = /* @__PURE__ */ template(`<span style=display:contents>`);
7
+ const DEFAULT_TRANSFORM = {
8
+ offsetX: 0,
9
+ offsetY: 0,
10
+ rotation: 0,
11
+ scale: 1,
12
+ anchorX: 0.5,
13
+ anchorY: 0.5,
14
+ edges: "transparent"
15
+ };
16
+ const defaultProps = {
17
+ blendMode: "normal",
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 || Math.random().toString(36).substring(2, 10);
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 markerRef;
71
+ let detectedRenderOrder = void 0;
72
+ let isRegistered = false;
73
+ onMount(() => {
74
+ const uniforms = getUniformsMap();
75
+ if (!uniforms) return;
76
+ try {
77
+ const metadata = {
78
+ blendMode: props.blendMode || "normal",
79
+ opacity: props.opacity,
80
+ visible: props.visible === false ? false : true,
81
+ id: props.id,
82
+ mask: props.maskSource ? {
83
+ source: props.maskSource,
84
+ type: props.maskType || "alpha"
85
+ } : void 0,
86
+ renderOrder: props.renderOrder ?? detectedRenderOrder,
87
+ transform: effectiveTransform()
88
+ };
89
+ parentRegister(instanceId, componentDefinition.fragmentNode, parentId, metadata, uniforms, componentDefinition);
90
+ isRegistered = true;
91
+ if (props.renderOrder === void 0 && markerRef) {
92
+ const parent = markerRef.parentElement;
93
+ if (parent) {
94
+ const siblings = parent.querySelectorAll(":scope > [data-shader-id]");
95
+ const position = Array.from(siblings).indexOf(markerRef);
96
+ if (position >= 0) {
97
+ detectedRenderOrder = position;
98
+ parentMetadataUpdate(instanceId, {
99
+ renderOrder: position
100
+ });
101
+ }
102
+ }
103
+ }
104
+ } catch (error) {
105
+ console.error("Error registering shader node:", error);
106
+ }
107
+ });
108
+ onCleanup(() => {
109
+ isRegistered = false;
110
+ parentRegister(instanceId, null, null, null, null);
111
+ });
112
+ createEffect(() => {
113
+ if (!isRegistered) return;
114
+ const uniforms = getUniformsMap();
115
+ if (!uniforms) return;
116
+ try {
117
+ const props_snapshot = effectiveProps();
118
+ Object.entries(uniforms).forEach(([propName, uniformData]) => {
119
+ if (!uniformData || typeof uniformData !== "object") return;
120
+ const {
121
+ uniform
122
+ } = uniformData;
123
+ if ((uniform == null ? void 0 : uniform.value) !== void 0 && propName in props_snapshot) {
124
+ const newValue = props_snapshot[propName];
125
+ parentUniformUpdate(instanceId, propName, newValue);
126
+ }
127
+ });
128
+ } catch (error) {
129
+ console.error("Error updating uniforms:", error);
130
+ }
131
+ });
132
+ createEffect(() => {
133
+ if (!isRegistered) return;
134
+ try {
135
+ const metadata = {
136
+ blendMode: props.blendMode || "normal",
137
+ opacity: props.opacity,
138
+ visible: props.visible === false ? false : true,
139
+ id: props.id,
140
+ mask: props.maskSource ? {
141
+ source: props.maskSource,
142
+ type: props.maskType || "alpha"
143
+ } : void 0,
144
+ renderOrder: props.renderOrder ?? detectedRenderOrder,
145
+ transform: effectiveTransform()
146
+ };
147
+ parentMetadataUpdate(instanceId, metadata);
148
+ } catch (error) {
149
+ console.error("Error updating metadata:", error);
150
+ }
151
+ });
152
+ return createComponent(ShaderContext.Provider, {
153
+ get value() {
154
+ return childContextValue();
155
+ },
156
+ get children() {
157
+ var _el$ = _tmpl$();
158
+ var _ref$ = markerRef;
159
+ typeof _ref$ === "function" ? use(_ref$, _el$) : markerRef = _el$;
160
+ setAttribute(_el$, "data-shader-id", instanceId);
161
+ insert(_el$, () => local.children);
162
+ return _el$;
163
+ }
164
+ });
165
+ }
166
+ export {
167
+ ShaderComponent as default
168
+ };
@@ -0,0 +1,28 @@
1
+ import { JSX } from 'solid-js';
2
+ import { BlendMode, TransformConfig } from '../../core';
3
+ import { ComponentProps } from '../../core/shaders/CursorRipples';
4
+ export type { ComponentProps };
5
+ /**
6
+ * Base props that all shader components have
7
+ */
8
+ interface BaseShaderProps {
9
+ children?: JSX.Element;
10
+ blendMode?: BlendMode;
11
+ opacity?: number;
12
+ visible?: boolean;
13
+ id?: string;
14
+ maskSource?: string;
15
+ maskType?: string;
16
+ renderOrder?: number;
17
+ transform?: Partial<TransformConfig>;
18
+ }
19
+ /**
20
+ * Component-specific props that merge base props with shader-specific props
21
+ * Note: ComponentProps are made optional since they have defaults from the shader definition
22
+ */
23
+ type ShaderComponentProps = BaseShaderProps & Partial<ComponentProps>;
24
+ /**
25
+ * The main Solid wrapper component for Shader shader nodes
26
+ */
27
+ export default function ShaderComponent(props: ShaderComponentProps): JSX.Element;
28
+ //# sourceMappingURL=CursorRipples.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CursorRipples.d.ts","sourceRoot":"","sources":["../../src/components/CursorRipples.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA4D,KAAK,GAAG,EAAE,MAAM,UAAU,CAAC;AAC9F,OAAO,EAGH,KAAK,SAAS,EAId,KAAK,eAAe,EACvB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAGtF,YAAY,EAAE,cAAc,EAAE,CAAC;AAI/B;;GAEG;AACH,UAAU,eAAe;IACrB,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;CACxC;AAED;;;GAGG;AACH,KAAK,oBAAoB,GAAG,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAmCtE;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAAK,EAAE,oBAAoB,eAiLlE"}
@@ -0,0 +1,168 @@
1
+ import { createComponent, template, use, setAttribute, insert } 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/CursorRipples/index.js";
5
+ import { useShaderContext, ShaderContext } from "../engine/Shader.js";
6
+ var _tmpl$ = /* @__PURE__ */ template(`<span style=display:contents>`);
7
+ const DEFAULT_TRANSFORM = {
8
+ offsetX: 0,
9
+ offsetY: 0,
10
+ rotation: 0,
11
+ scale: 1,
12
+ anchorX: 0.5,
13
+ anchorY: 0.5,
14
+ edges: "transparent"
15
+ };
16
+ const defaultProps = {
17
+ blendMode: "normal",
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 || Math.random().toString(36).substring(2, 10);
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 markerRef;
71
+ let detectedRenderOrder = void 0;
72
+ let isRegistered = false;
73
+ onMount(() => {
74
+ const uniforms = getUniformsMap();
75
+ if (!uniforms) return;
76
+ try {
77
+ const metadata = {
78
+ blendMode: props.blendMode || "normal",
79
+ opacity: props.opacity,
80
+ visible: props.visible === false ? false : true,
81
+ id: props.id,
82
+ mask: props.maskSource ? {
83
+ source: props.maskSource,
84
+ type: props.maskType || "alpha"
85
+ } : void 0,
86
+ renderOrder: props.renderOrder ?? detectedRenderOrder,
87
+ transform: effectiveTransform()
88
+ };
89
+ parentRegister(instanceId, componentDefinition.fragmentNode, parentId, metadata, uniforms, componentDefinition);
90
+ isRegistered = true;
91
+ if (props.renderOrder === void 0 && markerRef) {
92
+ const parent = markerRef.parentElement;
93
+ if (parent) {
94
+ const siblings = parent.querySelectorAll(":scope > [data-shader-id]");
95
+ const position = Array.from(siblings).indexOf(markerRef);
96
+ if (position >= 0) {
97
+ detectedRenderOrder = position;
98
+ parentMetadataUpdate(instanceId, {
99
+ renderOrder: position
100
+ });
101
+ }
102
+ }
103
+ }
104
+ } catch (error) {
105
+ console.error("Error registering shader node:", error);
106
+ }
107
+ });
108
+ onCleanup(() => {
109
+ isRegistered = false;
110
+ parentRegister(instanceId, null, null, null, null);
111
+ });
112
+ createEffect(() => {
113
+ if (!isRegistered) return;
114
+ const uniforms = getUniformsMap();
115
+ if (!uniforms) return;
116
+ try {
117
+ const props_snapshot = effectiveProps();
118
+ Object.entries(uniforms).forEach(([propName, uniformData]) => {
119
+ if (!uniformData || typeof uniformData !== "object") return;
120
+ const {
121
+ uniform
122
+ } = uniformData;
123
+ if ((uniform == null ? void 0 : uniform.value) !== void 0 && propName in props_snapshot) {
124
+ const newValue = props_snapshot[propName];
125
+ parentUniformUpdate(instanceId, propName, newValue);
126
+ }
127
+ });
128
+ } catch (error) {
129
+ console.error("Error updating uniforms:", error);
130
+ }
131
+ });
132
+ createEffect(() => {
133
+ if (!isRegistered) return;
134
+ try {
135
+ const metadata = {
136
+ blendMode: props.blendMode || "normal",
137
+ opacity: props.opacity,
138
+ visible: props.visible === false ? false : true,
139
+ id: props.id,
140
+ mask: props.maskSource ? {
141
+ source: props.maskSource,
142
+ type: props.maskType || "alpha"
143
+ } : void 0,
144
+ renderOrder: props.renderOrder ?? detectedRenderOrder,
145
+ transform: effectiveTransform()
146
+ };
147
+ parentMetadataUpdate(instanceId, metadata);
148
+ } catch (error) {
149
+ console.error("Error updating metadata:", error);
150
+ }
151
+ });
152
+ return createComponent(ShaderContext.Provider, {
153
+ get value() {
154
+ return childContextValue();
155
+ },
156
+ get children() {
157
+ var _el$ = _tmpl$();
158
+ var _ref$ = markerRef;
159
+ typeof _ref$ === "function" ? use(_ref$, _el$) : markerRef = _el$;
160
+ setAttribute(_el$, "data-shader-id", instanceId);
161
+ insert(_el$, () => local.children);
162
+ return _el$;
163
+ }
164
+ });
165
+ }
166
+ export {
167
+ ShaderComponent as default
168
+ };
@@ -1,5 +1,6 @@
1
1
  export { default as AngularBlur } from './components/AngularBlur';
2
2
  export { default as Ascii } from './components/Ascii';
3
+ export { default as Aurora } from './components/Aurora';
3
4
  export { default as Beam } from './components/Beam';
4
5
  export { default as Blob } from './components/Blob';
5
6
  export { default as Blur } from './components/Blur';
@@ -13,6 +14,7 @@ export { default as ChromaticAberration } from './components/ChromaticAberration
13
14
  export { default as Circle } from './components/Circle';
14
15
  export { default as ConcentricSpin } from './components/ConcentricSpin';
15
16
  export { default as ContourLines } from './components/ContourLines';
17
+ export { default as CursorRipples } from './components/CursorRipples';
16
18
  export { default as CursorTrail } from './components/CursorTrail';
17
19
  export { default as DiffuseBlur } from './components/DiffuseBlur';
18
20
  export { default as Dither } from './components/Dither';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AACxF,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC"}