shaders 2.5.100 → 2.5.102

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 (77) hide show
  1. package/dist/core/FilmGrain-DSJiMtEp.js +60 -0
  2. package/dist/core/VHS-CQJ1hV_D.js +123 -0
  3. package/dist/core/{VideoTexture-DJrkry82.js → VideoTexture-DnHIs4pp.js} +1 -1
  4. package/dist/core/{WebcamTexture-Cf8J7JB1.js → WebcamTexture-XBDo2kgN.js} +1 -1
  5. package/dist/core/index.js +12 -11
  6. package/dist/core/registry.js +12 -11
  7. package/dist/core/{shaderRegistry-B3aS8hhe.js → shaderRegistry-B6D8HKv7.js} +19 -17
  8. package/dist/core/shaderRegistry.d.ts.map +1 -1
  9. package/dist/core/shaders/FilmGrain/index.d.ts +14 -0
  10. package/dist/core/shaders/FilmGrain/index.d.ts.map +1 -1
  11. package/dist/core/shaders/FilmGrain/index.js +1 -1
  12. package/dist/core/shaders/VHS/index.d.ts +32 -0
  13. package/dist/core/shaders/VHS/index.d.ts.map +1 -0
  14. package/dist/core/shaders/VHS/index.js +3 -0
  15. package/dist/core/shaders/Vibrance/index.js +1 -1
  16. package/dist/core/shaders/VideoTexture/index.js +2 -2
  17. package/dist/core/shaders/Vignette/index.js +1 -1
  18. package/dist/core/shaders/Voronoi/index.js +1 -1
  19. package/dist/core/shaders/WaveDistortion/index.js +1 -1
  20. package/dist/core/shaders/Weave/index.js +1 -1
  21. package/dist/core/shaders/WebcamTexture/index.js +2 -2
  22. package/dist/core/shaders/ZoomBlur/index.js +1 -1
  23. package/dist/js/createShader.js +1 -1
  24. package/dist/js/utils/generatePresetCode.d.ts.map +1 -1
  25. package/dist/js/utils/generatePresetCode.js +12 -1
  26. package/dist/react/Preview.js +1 -0
  27. package/dist/react/Shader.js +1 -1
  28. package/dist/react/VHS.js +223 -0
  29. package/dist/react/components/VHS.d.ts +35 -0
  30. package/dist/react/components/VHS.d.ts.map +1 -0
  31. package/dist/react/engine/Preview.d.ts.map +1 -1
  32. package/dist/react/index.d.ts +1 -0
  33. package/dist/react/index.d.ts.map +1 -1
  34. package/dist/react/index.js +2 -1
  35. package/dist/react/utils/generatePresetCode.d.ts.map +1 -1
  36. package/dist/react/utils/generatePresetCode.js +12 -1
  37. package/dist/registry.js +176 -2
  38. package/dist/solid/components/VHS.d.ts +32 -0
  39. package/dist/solid/components/VHS.d.ts.map +1 -0
  40. package/dist/solid/components/VHS.js +228 -0
  41. package/dist/solid/engine/Preview.d.ts.map +1 -1
  42. package/dist/solid/engine/Preview.js +190 -188
  43. package/dist/solid/engine/Shader.js +1 -1
  44. package/dist/solid/index.d.ts +1 -0
  45. package/dist/solid/index.d.ts.map +1 -1
  46. package/dist/solid/index.js +24 -22
  47. package/dist/solid/utils/generatePresetCode.d.ts.map +1 -1
  48. package/dist/solid/utils/generatePresetCode.js +12 -1
  49. package/dist/svelte/components/VHS.svelte.d.ts +22 -0
  50. package/dist/svelte/{generatePresetCode-gaYD5uUH.js → generatePresetCode-BygAdFRo.js} +12 -1
  51. package/dist/svelte/index.d.ts +1 -0
  52. package/dist/svelte/index.js +631 -431
  53. package/dist/svelte/source/components/VHS.svelte +328 -0
  54. package/dist/svelte/source/engine/Preview.svelte +2 -0
  55. package/dist/svelte/source/index.js +1 -0
  56. package/dist/svelte/utils/generatePresetCode.js +1 -1
  57. package/dist/vue/FilmGrain.vue_vue_type_script_setup_true_lang.js +3 -1
  58. package/dist/vue/Preview.vue_vue_type_script_setup_true_lang.js +2 -0
  59. package/dist/vue/Shader.vue_vue_type_script_setup_true_lang.js +1 -1
  60. package/dist/vue/VHS.js +3 -0
  61. package/dist/vue/VHS.vue_vue_type_script_setup_true_lang.js +216 -0
  62. package/dist/vue/components/VHS.vue.d.ts +57 -0
  63. package/dist/vue/components/VHS.vue.d.ts.map +1 -0
  64. package/dist/vue/index.d.ts +1 -0
  65. package/dist/vue/index.d.ts.map +1 -1
  66. package/dist/vue/index.js +2 -1
  67. package/dist/vue/utils/generatePresetCode.d.ts.map +1 -1
  68. package/dist/vue/utils/generatePresetCode.js +12 -1
  69. package/package.json +9 -1
  70. package/dist/core/FilmGrain-h6MdbEev.js +0 -27
  71. /package/dist/core/{Vibrance-dqIV6GBe.js → Vibrance-CGvYDeds.js} +0 -0
  72. /package/dist/core/{Vignette-DB1wO1dm.js → Vignette-BJaonUVL.js} +0 -0
  73. /package/dist/core/{Voronoi-C3WIJFWc.js → Voronoi-DZemzWA4.js} +0 -0
  74. /package/dist/core/{WaveDistortion-BKma8-Ju.js → WaveDistortion--Y-m667K.js} +0 -0
  75. /package/dist/core/{Weave-xuu_vQ5e.js → Weave-CtyohvHz.js} +0 -0
  76. /package/dist/core/{ZoomBlur-UcS2iFT2.js → ZoomBlur-BwkhsFRE.js} +0 -0
  77. /package/dist/core/{browser-ClWxLlIB.js → browser-DTNngPey.js} +0 -0
@@ -0,0 +1,223 @@
1
+ import { ShaderContext } from "./Shader.js";
2
+ import { useContext, useEffect, useId, useMemo, useRef, useState } from "react";
3
+ import { createPortal } from "react-dom";
4
+ import { createUniformsMap } from "../core/index.js";
5
+ import { setColorSpaceMode } from "../core/utilities/transformations/index.js";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ import { componentDefinition } from "../core/shaders/VHS/index.js";
8
+ var _experimentalWarnedOnce = false;
9
+ if (componentDefinition.experimental && !_experimentalWarnedOnce) {
10
+ _experimentalWarnedOnce = true;
11
+ const _e = componentDefinition.experimental;
12
+ console.info(`%c⚠ [Shaders] ${componentDefinition.name} is experimental: ${_e.message}`, "color: #f59e0b; font-weight: bold");
13
+ }
14
+ function isPropDriver(value) {
15
+ return typeof value === "object" && value !== null && "type" in value && (value.type === "map" || value.type === "mouse" || value.type === "mouse-position" || value.type === "auto-animate");
16
+ }
17
+ function computeEffectiveProps(props, defaultProps$1) {
18
+ let baseProps = { ...defaultProps$1 };
19
+ for (const [key, value] of Object.entries(props)) if (key !== "children" && key !== "ref" && value !== void 0 && !isPropDriver(value)) baseProps[key] = value;
20
+ return baseProps;
21
+ }
22
+ var MARKER_STYLE = { display: "contents" };
23
+ var DEFAULT_TRANSFORM = {
24
+ offsetX: 0,
25
+ offsetY: 0,
26
+ rotation: 0,
27
+ scale: 1,
28
+ anchorX: .5,
29
+ anchorY: .5,
30
+ edges: "transparent"
31
+ };
32
+ var defaultProps = {
33
+ blendMode: "normal",
34
+ visible: true
35
+ };
36
+ try {
37
+ if (componentDefinition && componentDefinition.props) Object.entries(componentDefinition.props).forEach(([key, config]) => {
38
+ const propConfig = config;
39
+ if (propConfig && typeof propConfig === "object" && "default" in propConfig) defaultProps[key] = propConfig.default;
40
+ });
41
+ } catch (e) {
42
+ console.warn("Error extracting default props:", e);
43
+ }
44
+ const ShaderComponent = (props) => {
45
+ const context = useContext(ShaderContext);
46
+ if (!context) throw new Error("Shader components must be used inside an <Shader> component or another shader component");
47
+ const { shaderParentId: parentId, shaderNodeRegister: parentRegister, shaderUniformUpdate: parentUniformUpdate, shaderMetadataUpdate: parentMetadataUpdate, shaderColorSpace } = context;
48
+ const reactId = useId();
49
+ const instanceId = useMemo(() => {
50
+ return (props.id ? props.id.replace(/[^a-zA-Z0-9_]/g, "_") : null) || reactId.replace(/[^a-zA-Z0-9_]/g, "");
51
+ }, [props.id, reactId]);
52
+ const effectiveProps = useMemo(() => {
53
+ return computeEffectiveProps(props, defaultProps);
54
+ }, [props]);
55
+ const effectiveTransform = useMemo(() => ({
56
+ ...DEFAULT_TRANSFORM,
57
+ ...props.transform
58
+ }), [props.transform]);
59
+ const markerRef = useRef(null);
60
+ const isCapturesDOM = !!componentDefinition.capturesDOM;
61
+ const captureCanvasRef = useRef(null);
62
+ const [domMounted, setDomMounted] = useState(false);
63
+ const [captureSize, setCaptureSize] = useState(() => ({
64
+ w: typeof window !== "undefined" ? Math.round(window.innerWidth * Math.min(window.devicePixelRatio, 2)) : 0,
65
+ h: typeof window !== "undefined" ? Math.round(window.innerHeight * Math.min(window.devicePixelRatio, 2)) : 0
66
+ }));
67
+ useEffect(() => {
68
+ if (!isCapturesDOM) return;
69
+ setDomMounted(true);
70
+ const onResize = () => {
71
+ const d = Math.min(window.devicePixelRatio, 2);
72
+ setCaptureSize({
73
+ w: Math.round(window.innerWidth * d),
74
+ h: Math.round(window.innerHeight * d)
75
+ });
76
+ };
77
+ window.addEventListener("resize", onResize);
78
+ return () => window.removeEventListener("resize", onResize);
79
+ }, [isCapturesDOM]);
80
+ const detectedOrderRef = useRef(void 0);
81
+ const uniformsRef = useRef(null);
82
+ if (uniformsRef.current === null) {
83
+ setColorSpaceMode(shaderColorSpace);
84
+ uniformsRef.current = createUniformsMap(componentDefinition, effectiveProps, instanceId);
85
+ }
86
+ const childContextValue = useMemo(() => {
87
+ return {
88
+ ...context,
89
+ shaderParentId: instanceId
90
+ };
91
+ }, [context, instanceId]);
92
+ useEffect(() => {
93
+ if (!uniformsRef.current) return;
94
+ try {
95
+ const metadata = {
96
+ blendMode: props.blendMode || "normal",
97
+ opacity: props.opacity,
98
+ visible: props.visible === false ? false : true,
99
+ id: props.id,
100
+ mask: props.maskSource ? {
101
+ source: props.maskSource,
102
+ type: props.maskType || "alpha"
103
+ } : void 0,
104
+ maps: mapsFromProps,
105
+ renderOrder: props.renderOrder ?? detectedOrderRef.current,
106
+ transform: effectiveTransform
107
+ };
108
+ parentRegister(instanceId, componentDefinition.fragmentNode, parentId, metadata, uniformsRef.current, componentDefinition, isCapturesDOM ? captureCanvasRef.current ?? void 0 : void 0);
109
+ return () => {
110
+ parentRegister(instanceId, null, null, null, null);
111
+ };
112
+ } catch (error) {
113
+ console.error("Error registering shader node:", error);
114
+ return () => {};
115
+ }
116
+ }, [
117
+ instanceId,
118
+ parentId,
119
+ parentRegister,
120
+ domMounted
121
+ ]);
122
+ useEffect(() => {
123
+ if (props.renderOrder === void 0 && markerRef.current) {
124
+ const parent = markerRef.current.parentElement;
125
+ if (parent) {
126
+ const siblings = parent.querySelectorAll(":scope > [data-shader-id]");
127
+ const position = Array.from(siblings).indexOf(markerRef.current);
128
+ if (position >= 0) {
129
+ detectedOrderRef.current = position;
130
+ parentMetadataUpdate(instanceId, { renderOrder: position });
131
+ }
132
+ }
133
+ }
134
+ }, []);
135
+ const prevPropsRef = useRef({});
136
+ const mapsFromProps = useMemo(() => {
137
+ const maps = {};
138
+ for (const [key, value] of Object.entries(props)) if (key !== "children" && key !== "ref" && isPropDriver(value)) maps[key] = value;
139
+ return Object.keys(maps).length > 0 ? maps : void 0;
140
+ }, [props]);
141
+ useEffect(() => {
142
+ if (!uniformsRef.current) return;
143
+ try {
144
+ Object.entries(uniformsRef.current).forEach(([propName, uniformData]) => {
145
+ if (!uniformData || typeof uniformData !== "object") return;
146
+ const { uniform } = uniformData;
147
+ if (uniform?.value !== void 0 && propName in effectiveProps) {
148
+ const newValue = effectiveProps[propName];
149
+ if (isPropDriver(newValue)) return;
150
+ if (newValue !== prevPropsRef.current[propName]) {
151
+ parentUniformUpdate(instanceId, propName, newValue);
152
+ prevPropsRef.current[propName] = newValue;
153
+ }
154
+ }
155
+ });
156
+ } catch (error) {
157
+ console.error("Error updating uniforms:", error);
158
+ }
159
+ }, [
160
+ effectiveProps,
161
+ instanceId,
162
+ parentUniformUpdate
163
+ ]);
164
+ useEffect(() => {
165
+ try {
166
+ parentMetadataUpdate(instanceId, {
167
+ blendMode: props.blendMode || "normal",
168
+ opacity: props.opacity,
169
+ visible: props.visible === false ? false : true,
170
+ id: props.id,
171
+ mask: props.maskSource ? {
172
+ source: props.maskSource,
173
+ type: props.maskType || "alpha"
174
+ } : void 0,
175
+ maps: mapsFromProps,
176
+ renderOrder: props.renderOrder ?? detectedOrderRef.current,
177
+ transform: effectiveTransform
178
+ });
179
+ } catch (error) {
180
+ console.error("Error updating metadata:", error);
181
+ }
182
+ }, [
183
+ props.blendMode,
184
+ props.opacity,
185
+ props.visible,
186
+ props.maskSource,
187
+ props.maskType,
188
+ props.renderOrder,
189
+ props.id,
190
+ mapsFromProps,
191
+ effectiveTransform,
192
+ instanceId,
193
+ parentMetadataUpdate
194
+ ]);
195
+ if (props.ref && typeof props.ref === "function") try {
196
+ props.ref(null);
197
+ } catch (e) {}
198
+ const captureCanvas = isCapturesDOM && domMounted ? createPortal(/* @__PURE__ */ jsx("canvas", {
199
+ ref: captureCanvasRef,
200
+ "layoutsubtree": "",
201
+ width: captureSize.w,
202
+ height: captureSize.h,
203
+ style: {
204
+ position: "fixed",
205
+ inset: 0,
206
+ width: "100vw",
207
+ height: "100vh",
208
+ zIndex: -9999
209
+ },
210
+ children: props.children
211
+ }), document.body) : null;
212
+ return /* @__PURE__ */ jsxs(ShaderContext.Provider, {
213
+ value: childContextValue,
214
+ children: [/* @__PURE__ */ jsx("span", {
215
+ ref: markerRef,
216
+ style: MARKER_STYLE,
217
+ "data-shader-id": instanceId,
218
+ children: !isCapturesDOM && props.children
219
+ }), captureCanvas]
220
+ });
221
+ };
222
+ var VHS_default = ShaderComponent;
223
+ export { ShaderComponent, VHS_default as default };
@@ -0,0 +1,35 @@
1
+ import { default as React } from 'react';
2
+ import { BlendMode, PropDriver, TransformConfig } from '../../core';
3
+ import { ComponentProps } from '../../core/shaders/VHS';
4
+
5
+ export type { ComponentProps };
6
+ /**
7
+ * Base props that all shader components have
8
+ */
9
+ interface BaseShaderProps {
10
+ children?: React.ReactNode;
11
+ blendMode?: BlendMode;
12
+ opacity?: number;
13
+ visible?: boolean;
14
+ id?: string;
15
+ maskSource?: string;
16
+ maskType?: string;
17
+ renderOrder?: number;
18
+ transform?: Partial<TransformConfig>;
19
+ ref?: React.Ref<any>;
20
+ }
21
+ /**
22
+ * Component-specific props that merge base props with shader-specific props
23
+ * Note: ComponentProps are made optional since they have defaults from the shader definition
24
+ */
25
+ type ShaderComponentProps = BaseShaderProps & Partial<Omit<ComponentProps, 'wobble' | 'scanlineNoise' | 'smear'>> & {
26
+ wobble?: ComponentProps['wobble'] | PropDriver;
27
+ scanlineNoise?: ComponentProps['scanlineNoise'] | PropDriver;
28
+ smear?: ComponentProps['smear'] | PropDriver;
29
+ };
30
+ /**
31
+ * The main React wrapper component for Shader shader nodes
32
+ */
33
+ export declare const ShaderComponent: React.FC<ShaderComponentProps>;
34
+ export default ShaderComponent;
35
+ //# sourceMappingURL=VHS.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VHS.d.ts","sourceRoot":"","sources":["../../src/components/VHS.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkE,MAAM,OAAO,CAAC;AAEvF,OAAO,EAGH,KAAK,SAAS,EAId,KAAK,UAAU,EACf,KAAK,eAAe,EACvB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAG5E,YAAY,EAAE,cAAc,EAAE,CAAC;AAY/B;;GAEG;AACH,UAAU,eAAe;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,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;IACrC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CACxB;AAOD;;;GAGG;AACH,KAAK,oBAAoB,GAAG,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,eAAe,GAAG,OAAO,CAAC,CAAC,GAAG;IAClH,MAAM,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC;IAC/C,aAAa,CAAC,EAAE,cAAc,CAAC,eAAe,CAAC,GAAG,UAAU,CAAC;IAC7D,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC;CAC9C,CAAC;AAwDF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAmO1D,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Preview.d.ts","sourceRoot":"","sources":["../../src/engine/Preview.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA4E,KAAK,aAAa,EAAE,KAAK,EAAE,EAA4B,MAAM,OAAO,CAAA;AAKvJ,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,eAAe,EAAE,CAAA;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,CAAA;IACjC,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAgKD,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,aAAa,GAAG,MAAM,CAAA;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB;AA6BD,eAAO,MAAM,OAAO,EAAE,EAAE,CAAC,YAAY,CA+HpC,CAAA;AAED,eAAe,OAAO,CAAA"}
1
+ {"version":3,"file":"Preview.d.ts","sourceRoot":"","sources":["../../src/engine/Preview.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA4E,KAAK,aAAa,EAAE,KAAK,EAAE,EAA4B,MAAM,OAAO,CAAA;AAKvJ,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,eAAe,EAAE,CAAA;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,CAAA;IACjC,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAiKD,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,aAAa,GAAG,MAAM,CAAA;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB;AA6BD,eAAO,MAAM,OAAO,EAAE,EAAE,CAAC,YAAY,CA+HpC,CAAA;AAED,eAAe,OAAO,CAAA"}
@@ -92,6 +92,7 @@ export { default as Trapezoid } from './components/Trapezoid';
92
92
  export { default as Tritone } from './components/Tritone';
93
93
  export { default as Truchet } from './components/Truchet';
94
94
  export { default as Twirl } from './components/Twirl';
95
+ export { default as VHS } from './components/VHS';
95
96
  export { default as Vesica } from './components/Vesica';
96
97
  export { default as Vibrance } from './components/Vibrance';
97
98
  export { default as VideoTexture } from './components/VideoTexture';
@@ -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":"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"}
@@ -93,6 +93,7 @@ import Trapezoid_default from "./Trapezoid.js";
93
93
  import Tritone_default from "./Tritone.js";
94
94
  import Truchet_default from "./Truchet.js";
95
95
  import Twirl_default from "./Twirl.js";
96
+ import VHS_default from "./VHS.js";
96
97
  import Vesica_default from "./Vesica.js";
97
98
  import Vibrance_default from "./Vibrance.js";
98
99
  import VideoTexture_default from "./VideoTexture.js";
@@ -104,4 +105,4 @@ import WebcamTexture_default from "./WebcamTexture.js";
104
105
  import ZoomBlur_default from "./ZoomBlur.js";
105
106
  import { Preview } from "./Preview.js";
106
107
  import { generatePresetCode } from "./utils/generatePresetCode.js";
107
- export { AngularBlur_default as AngularBlur, Ascii_default as Ascii, Aurora_default as Aurora, Beam_default as Beam, Blob_default as Blob, Blur_default as Blur, BrightnessContrast_default as BrightnessContrast, Bulge_default as Bulge, CRTScreen_default as CRTScreen, ChannelBlur_default as ChannelBlur, Checkerboard_default as Checkerboard, ChromaFlow_default as ChromaFlow, ChromaticAberration_default as ChromaticAberration, Circle_default as Circle, ConcentricSpin_default as ConcentricSpin, ConicGradient_default as ConicGradient, ContourLines_default as ContourLines, Crescent_default as Crescent, Cross_default as Cross, Crystal_default as Crystal, CursorRipples_default as CursorRipples, CursorTrail_default as CursorTrail, DOMTexture_default as DOMTexture, DiamondGradient_default as DiamondGradient, DiffuseBlur_default as DiffuseBlur, Dither_default as Dither, DotGrid_default as DotGrid, DropShadow_default as DropShadow, Duotone_default as Duotone, Ellipse_default as Ellipse, Emboss_default as Emboss, FallingLines_default as FallingLines, FilmGrain_default as FilmGrain, FloatingParticles_default as FloatingParticles, FlowField_default as FlowField, Flower_default as Flower, FlowingGradient_default as FlowingGradient, Form3D_default as Form3D, Glass_default as Glass, GlassTiles_default as GlassTiles, Glitch_default as Glitch, Glow_default as Glow, Godrays_default as Godrays, Grayscale_default as Grayscale, Grid_default as Grid, GridDistortion_default as GridDistortion, Group_default as Group, Halftone_default as Halftone, HexGrid_default as HexGrid, HueShift_default as HueShift, ImageTexture_default as ImageTexture, Invert_default as Invert, Kaleidoscope_default as Kaleidoscope, LensFlare_default as LensFlare, LinearBlur_default as LinearBlur, LinearGradient_default as LinearGradient, Liquify_default as Liquify, Mirror_default as Mirror, MultiPointGradient_default as MultiPointGradient, Neon_default as Neon, Paper_default as Paper, Perspective_default as Perspective, Pixelate_default as Pixelate, Plasma_default as Plasma, PolarCoordinates_default as PolarCoordinates, Polygon_default as Polygon, Posterize_default as Posterize, Preview, ProgressiveBlur_default as ProgressiveBlur, RadialGradient_default as RadialGradient, RectangularCoordinates_default as RectangularCoordinates, Ring_default as Ring, Ripples_default as Ripples, RoundedRect_default as RoundedRect, Saturation_default as Saturation, Shader_default as Shader, Sharpness_default as Sharpness, Shatter_default as Shatter, SimplexNoise_default as SimplexNoise, SineWave_default as SineWave, Solarize_default as Solarize, SolidColor_default as SolidColor, Spherize_default as Spherize, Spiral_default as Spiral, Star_default as Star, Strands_default as Strands, Stretch_default as Stretch, Stripes_default as Stripes, StudioBackground_default as StudioBackground, Swirl_default as Swirl, TiltShift_default as TiltShift, Tint_default as Tint, Trapezoid_default as Trapezoid, Tritone_default as Tritone, Truchet_default as Truchet, Twirl_default as Twirl, Vesica_default as Vesica, Vibrance_default as Vibrance, VideoTexture_default as VideoTexture, Vignette_default as Vignette, Voronoi_default as Voronoi, WaveDistortion_default as WaveDistortion, Weave_default as Weave, WebcamTexture_default as WebcamTexture, ZoomBlur_default as ZoomBlur, generatePresetCode };
108
+ export { AngularBlur_default as AngularBlur, Ascii_default as Ascii, Aurora_default as Aurora, Beam_default as Beam, Blob_default as Blob, Blur_default as Blur, BrightnessContrast_default as BrightnessContrast, Bulge_default as Bulge, CRTScreen_default as CRTScreen, ChannelBlur_default as ChannelBlur, Checkerboard_default as Checkerboard, ChromaFlow_default as ChromaFlow, ChromaticAberration_default as ChromaticAberration, Circle_default as Circle, ConcentricSpin_default as ConcentricSpin, ConicGradient_default as ConicGradient, ContourLines_default as ContourLines, Crescent_default as Crescent, Cross_default as Cross, Crystal_default as Crystal, CursorRipples_default as CursorRipples, CursorTrail_default as CursorTrail, DOMTexture_default as DOMTexture, DiamondGradient_default as DiamondGradient, DiffuseBlur_default as DiffuseBlur, Dither_default as Dither, DotGrid_default as DotGrid, DropShadow_default as DropShadow, Duotone_default as Duotone, Ellipse_default as Ellipse, Emboss_default as Emboss, FallingLines_default as FallingLines, FilmGrain_default as FilmGrain, FloatingParticles_default as FloatingParticles, FlowField_default as FlowField, Flower_default as Flower, FlowingGradient_default as FlowingGradient, Form3D_default as Form3D, Glass_default as Glass, GlassTiles_default as GlassTiles, Glitch_default as Glitch, Glow_default as Glow, Godrays_default as Godrays, Grayscale_default as Grayscale, Grid_default as Grid, GridDistortion_default as GridDistortion, Group_default as Group, Halftone_default as Halftone, HexGrid_default as HexGrid, HueShift_default as HueShift, ImageTexture_default as ImageTexture, Invert_default as Invert, Kaleidoscope_default as Kaleidoscope, LensFlare_default as LensFlare, LinearBlur_default as LinearBlur, LinearGradient_default as LinearGradient, Liquify_default as Liquify, Mirror_default as Mirror, MultiPointGradient_default as MultiPointGradient, Neon_default as Neon, Paper_default as Paper, Perspective_default as Perspective, Pixelate_default as Pixelate, Plasma_default as Plasma, PolarCoordinates_default as PolarCoordinates, Polygon_default as Polygon, Posterize_default as Posterize, Preview, ProgressiveBlur_default as ProgressiveBlur, RadialGradient_default as RadialGradient, RectangularCoordinates_default as RectangularCoordinates, Ring_default as Ring, Ripples_default as Ripples, RoundedRect_default as RoundedRect, Saturation_default as Saturation, Shader_default as Shader, Sharpness_default as Sharpness, Shatter_default as Shatter, SimplexNoise_default as SimplexNoise, SineWave_default as SineWave, Solarize_default as Solarize, SolidColor_default as SolidColor, Spherize_default as Spherize, Spiral_default as Spiral, Star_default as Star, Strands_default as Strands, Stretch_default as Stretch, Stripes_default as Stripes, StudioBackground_default as StudioBackground, Swirl_default as Swirl, TiltShift_default as TiltShift, Tint_default as Tint, Trapezoid_default as Trapezoid, Tritone_default as Tritone, Truchet_default as Truchet, Twirl_default as Twirl, VHS_default as VHS, Vesica_default as Vesica, Vibrance_default as Vibrance, VideoTexture_default as VideoTexture, Vignette_default as Vignette, Voronoi_default as Voronoi, WaveDistortion_default as WaveDistortion, Weave_default as Weave, WebcamTexture_default as WebcamTexture, ZoomBlur_default as ZoomBlur, generatePresetCode };
@@ -1 +1 @@
1
- {"version":3,"file":"generatePresetCode.d.ts","sourceRoot":"","sources":["../../src/utils/generatePresetCode.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B;AA44CD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CAiFlG;AAGD,eAAO,MAAM,mBAAmB,UAyG/B,CAAA"}
1
+ {"version":3,"file":"generatePresetCode.d.ts","sourceRoot":"","sources":["../../src/utils/generatePresetCode.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B;AAs5CD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CAiFlG;AAGD,eAAO,MAAM,mBAAmB,UA0G/B,CAAA"}
@@ -420,7 +420,9 @@ var shaderMetadata = {
420
420
  "FilmGrain": {
421
421
  "opacity": 1,
422
422
  "blendMode": "normal",
423
- "strength": .5
423
+ "strength": .5,
424
+ "bias": 2,
425
+ "animated": false
424
426
  },
425
427
  "FloatingParticles": {
426
428
  "opacity": 1,
@@ -1187,6 +1189,14 @@ var shaderMetadata = {
1187
1189
  "strokePosition": "center",
1188
1190
  "colorSpace": "linear"
1189
1191
  },
1192
+ "VHS": {
1193
+ "opacity": 1,
1194
+ "blendMode": "normal",
1195
+ "wobble": 1,
1196
+ "scanlineNoise": .6,
1197
+ "smear": .2,
1198
+ "speed": 1
1199
+ },
1190
1200
  "Vibrance": {
1191
1201
  "opacity": 1,
1192
1202
  "blendMode": "normal",
@@ -1465,6 +1475,7 @@ const availableComponents = [
1465
1475
  "Tritone",
1466
1476
  "Truchet",
1467
1477
  "Twirl",
1478
+ "VHS",
1468
1479
  "Vesica",
1469
1480
  "Vibrance",
1470
1481
  "VideoTexture",
package/dist/registry.js CHANGED
@@ -7181,13 +7181,13 @@ export const shaderRegistry = [
7181
7181
  {
7182
7182
  "name": "FilmGrain",
7183
7183
  "category": "Stylize",
7184
- "description": "Analog film grain texture overlay",
7184
+ "description": "Analog film grain texture overlay, weighted toward darker areas",
7185
7185
  "fileName": "FilmGrain",
7186
7186
  "requiresChild": true,
7187
7187
  "definition": {
7188
7188
  "name": "FilmGrain",
7189
7189
  "category": "Stylize",
7190
- "description": "Analog film grain texture overlay",
7190
+ "description": "Analog film grain texture overlay, weighted toward darker areas",
7191
7191
  "requiresChild": true,
7192
7192
  "props": {
7193
7193
  "strength": {
@@ -7204,6 +7204,27 @@ export const shaderRegistry = [
7204
7204
  "label": "Strength",
7205
7205
  "group": "Effect"
7206
7206
  }
7207
+ },
7208
+ "bias": {
7209
+ "default": 2,
7210
+ "description": "Concentrates grain in darker areas. Higher values focus grain more heavily on shadows; 0 applies grain uniformly.",
7211
+ "ui": {
7212
+ "type": "range",
7213
+ "min": 0,
7214
+ "max": 10,
7215
+ "step": 0.1,
7216
+ "label": "Bias",
7217
+ "group": "Effect"
7218
+ }
7219
+ },
7220
+ "animated": {
7221
+ "default": false,
7222
+ "description": "When enabled, the grain pattern changes each frame for a dynamic film effect",
7223
+ "ui": {
7224
+ "type": "checkbox",
7225
+ "label": "Animated",
7226
+ "group": "Effect"
7227
+ }
7207
7228
  }
7208
7229
  }
7209
7230
  },
@@ -7222,6 +7243,27 @@ export const shaderRegistry = [
7222
7243
  },
7223
7244
  "default": 0.5,
7224
7245
  "description": "Intensity of the film grain noise"
7246
+ },
7247
+ "bias": {
7248
+ "ui": {
7249
+ "type": "range",
7250
+ "min": 0,
7251
+ "max": 10,
7252
+ "step": 0.1,
7253
+ "label": "Bias",
7254
+ "group": "Effect"
7255
+ },
7256
+ "default": 2,
7257
+ "description": "Concentrates grain in darker areas. Higher values focus grain more heavily on shadows; 0 applies grain uniformly."
7258
+ },
7259
+ "animated": {
7260
+ "ui": {
7261
+ "type": "checkbox",
7262
+ "label": "Animated",
7263
+ "group": "Effect"
7264
+ },
7265
+ "default": false,
7266
+ "description": "When enabled, the grain pattern changes each frame for a dynamic film effect"
7225
7267
  }
7226
7268
  }
7227
7269
  },
@@ -19812,6 +19854,138 @@ export const shaderRegistry = [
19812
19854
  }
19813
19855
  }
19814
19856
  },
19857
+ {
19858
+ "name": "VHS",
19859
+ "category": "Stylize",
19860
+ "description": "Analog VHS tape with intermittent tape damage, chroma bleed, and per-scanline noise",
19861
+ "fileName": "VHS",
19862
+ "requiresChild": true,
19863
+ "definition": {
19864
+ "name": "VHS",
19865
+ "category": "Stylize",
19866
+ "description": "Analog VHS tape with intermittent tape damage, chroma bleed, and per-scanline noise",
19867
+ "requiresRTT": true,
19868
+ "requiresChild": true,
19869
+ "props": {
19870
+ "wobble": {
19871
+ "default": 1,
19872
+ "description": "Overall amount of tape damage — waves, creases, and head-switching noise. Bursts on and off organically over time.",
19873
+ "ui": {
19874
+ "type": [
19875
+ "range",
19876
+ "map"
19877
+ ],
19878
+ "min": 0,
19879
+ "max": 5,
19880
+ "step": 0.01,
19881
+ "label": "Wobble",
19882
+ "group": "Effect"
19883
+ }
19884
+ },
19885
+ "scanlineNoise": {
19886
+ "default": 0.6,
19887
+ "description": "Per-scanline fine chroma/luma jitter. Adds the classic horizontal-streak detail.",
19888
+ "ui": {
19889
+ "type": [
19890
+ "range",
19891
+ "map"
19892
+ ],
19893
+ "min": 0,
19894
+ "max": 1,
19895
+ "step": 0.01,
19896
+ "label": "Scanline Noise",
19897
+ "group": "Effect"
19898
+ }
19899
+ },
19900
+ "smear": {
19901
+ "default": 0.2,
19902
+ "description": "Horizontal chroma smear (color bleed) amount. Positive trails colour to the right (classic VHS), negative trails it to the left.",
19903
+ "ui": {
19904
+ "type": [
19905
+ "range",
19906
+ "map"
19907
+ ],
19908
+ "min": -2,
19909
+ "max": 2,
19910
+ "step": 0.01,
19911
+ "label": "Smear",
19912
+ "group": "Effect"
19913
+ }
19914
+ },
19915
+ "speed": {
19916
+ "default": 1,
19917
+ "description": "Animation speed of the tape effects.",
19918
+ "ui": {
19919
+ "type": "range",
19920
+ "min": 0.1,
19921
+ "max": 3,
19922
+ "step": 0.1,
19923
+ "label": "Speed",
19924
+ "group": "Effect"
19925
+ }
19926
+ }
19927
+ }
19928
+ },
19929
+ "propsMetadata": {
19930
+ "wobble": {
19931
+ "ui": {
19932
+ "type": [
19933
+ "range",
19934
+ "map"
19935
+ ],
19936
+ "min": 0,
19937
+ "max": 5,
19938
+ "step": 0.01,
19939
+ "label": "Wobble",
19940
+ "group": "Effect"
19941
+ },
19942
+ "default": 1,
19943
+ "description": "Overall amount of tape damage — waves, creases, and head-switching noise. Bursts on and off organically over time."
19944
+ },
19945
+ "scanlineNoise": {
19946
+ "ui": {
19947
+ "type": [
19948
+ "range",
19949
+ "map"
19950
+ ],
19951
+ "min": 0,
19952
+ "max": 1,
19953
+ "step": 0.01,
19954
+ "label": "Scanline Noise",
19955
+ "group": "Effect"
19956
+ },
19957
+ "default": 0.6,
19958
+ "description": "Per-scanline fine chroma/luma jitter. Adds the classic horizontal-streak detail."
19959
+ },
19960
+ "smear": {
19961
+ "ui": {
19962
+ "type": [
19963
+ "range",
19964
+ "map"
19965
+ ],
19966
+ "min": -2,
19967
+ "max": 2,
19968
+ "step": 0.01,
19969
+ "label": "Smear",
19970
+ "group": "Effect"
19971
+ },
19972
+ "default": 0.2,
19973
+ "description": "Horizontal chroma smear (color bleed) amount. Positive trails colour to the right (classic VHS), negative trails it to the left."
19974
+ },
19975
+ "speed": {
19976
+ "ui": {
19977
+ "type": "range",
19978
+ "min": 0.1,
19979
+ "max": 3,
19980
+ "step": 0.1,
19981
+ "label": "Speed",
19982
+ "group": "Effect"
19983
+ },
19984
+ "default": 1,
19985
+ "description": "Animation speed of the tape effects."
19986
+ }
19987
+ }
19988
+ },
19815
19989
  {
19816
19990
  "name": "Vibrance",
19817
19991
  "category": "Adjustments",
@@ -0,0 +1,32 @@
1
+ import { JSX } from 'solid-js';
2
+ import { BlendMode, PropDriver, TransformConfig } from '../../core';
3
+ import { ComponentProps } from '../../core/shaders/VHS';
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<Omit<ComponentProps, 'wobble' | 'scanlineNoise' | 'smear'>> & {
24
+ wobble?: ComponentProps['wobble'] | PropDriver;
25
+ scanlineNoise?: ComponentProps['scanlineNoise'] | PropDriver;
26
+ smear?: ComponentProps['smear'] | PropDriver;
27
+ };
28
+ /**
29
+ * The main Solid wrapper component for Shader shader nodes
30
+ */
31
+ export default function ShaderComponent(props: ShaderComponentProps): JSX.Element;
32
+ //# sourceMappingURL=VHS.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VHS.d.ts","sourceRoot":"","sources":["../../src/components/VHS.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA0F,KAAK,GAAG,EAAE,MAAM,UAAU,CAAC;AAE5H,OAAO,EAGH,KAAK,SAAS,EAId,KAAK,UAAU,EACf,KAAK,eAAe,EACvB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAG5E,YAAY,EAAE,cAAc,EAAE,CAAC;AAY/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;AAOD;;;GAGG;AACH,KAAK,oBAAoB,GAAG,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,eAAe,GAAG,OAAO,CAAC,CAAC,GAAG;IAClH,MAAM,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC;IAC/C,aAAa,CAAC,EAAE,cAAc,CAAC,eAAe,CAAC,GAAG,UAAU,CAAC;IAC7D,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC;CAC9C,CAAC;AAmCF;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAAK,EAAE,oBAAoB,eA8NlE"}