shaders 2.5.101 → 2.5.103

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 (88) hide show
  1. package/dist/core/{FilmGrain-yBeLmqwl.js → FilmGrain-DSJiMtEp.js} +3 -3
  2. package/dist/core/Halftone-XFa7by1s.js +287 -0
  3. package/dist/core/VHS-CQJ1hV_D.js +123 -0
  4. package/dist/core/{VideoTexture-DJrkry82.js → VideoTexture-DnHIs4pp.js} +1 -1
  5. package/dist/core/{WebcamTexture-Cf8J7JB1.js → WebcamTexture-XBDo2kgN.js} +1 -1
  6. package/dist/core/index.js +13 -12
  7. package/dist/core/registry.js +13 -12
  8. package/dist/core/{shaderRegistry-X16MNgs8.js → shaderRegistry-BWuH2me2.js} +20 -18
  9. package/dist/core/shaderRegistry.d.ts.map +1 -1
  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/Halftone/index.d.ts +76 -4
  13. package/dist/core/shaders/Halftone/index.d.ts.map +1 -1
  14. package/dist/core/shaders/Halftone/index.js +2 -1
  15. package/dist/core/shaders/VHS/index.d.ts +32 -0
  16. package/dist/core/shaders/VHS/index.d.ts.map +1 -0
  17. package/dist/core/shaders/VHS/index.js +3 -0
  18. package/dist/core/shaders/Vibrance/index.js +1 -1
  19. package/dist/core/shaders/VideoTexture/index.js +2 -2
  20. package/dist/core/shaders/Vignette/index.js +1 -1
  21. package/dist/core/shaders/Voronoi/index.js +1 -1
  22. package/dist/core/shaders/WaveDistortion/index.js +1 -1
  23. package/dist/core/shaders/Weave/index.js +1 -1
  24. package/dist/core/shaders/WebcamTexture/index.js +2 -2
  25. package/dist/core/shaders/ZoomBlur/index.js +1 -1
  26. package/dist/js/createShader.js +1 -1
  27. package/dist/js/utils/generatePresetCode.d.ts.map +1 -1
  28. package/dist/js/utils/generatePresetCode.js +21 -1
  29. package/dist/react/Preview.js +1 -0
  30. package/dist/react/Shader.js +1 -1
  31. package/dist/react/VHS.js +223 -0
  32. package/dist/react/components/Halftone.d.ts +7 -2
  33. package/dist/react/components/Halftone.d.ts.map +1 -1
  34. package/dist/react/components/VHS.d.ts +35 -0
  35. package/dist/react/components/VHS.d.ts.map +1 -0
  36. package/dist/react/engine/Preview.d.ts.map +1 -1
  37. package/dist/react/index.d.ts +1 -0
  38. package/dist/react/index.d.ts.map +1 -1
  39. package/dist/react/index.js +2 -1
  40. package/dist/react/utils/generatePresetCode.d.ts.map +1 -1
  41. package/dist/react/utils/generatePresetCode.js +21 -1
  42. package/dist/registry.js +500 -16
  43. package/dist/solid/components/Halftone.d.ts +7 -2
  44. package/dist/solid/components/Halftone.d.ts.map +1 -1
  45. package/dist/solid/components/VHS.d.ts +32 -0
  46. package/dist/solid/components/VHS.d.ts.map +1 -0
  47. package/dist/solid/components/VHS.js +228 -0
  48. package/dist/solid/engine/Preview.d.ts.map +1 -1
  49. package/dist/solid/engine/Preview.js +190 -188
  50. package/dist/solid/engine/Shader.js +1 -1
  51. package/dist/solid/index.d.ts +1 -0
  52. package/dist/solid/index.d.ts.map +1 -1
  53. package/dist/solid/index.js +24 -22
  54. package/dist/solid/utils/generatePresetCode.d.ts.map +1 -1
  55. package/dist/solid/utils/generatePresetCode.js +21 -1
  56. package/dist/svelte/components/Halftone.svelte.d.ts +6 -1
  57. package/dist/svelte/components/VHS.svelte.d.ts +22 -0
  58. package/dist/svelte/{generatePresetCode-Cdho2JhN.js → generatePresetCode-psTzYsW3.js} +21 -1
  59. package/dist/svelte/index.d.ts +1 -0
  60. package/dist/svelte/index.js +631 -431
  61. package/dist/svelte/source/components/Halftone.svelte +6 -1
  62. package/dist/svelte/source/components/VHS.svelte +328 -0
  63. package/dist/svelte/source/engine/Preview.svelte +2 -0
  64. package/dist/svelte/source/index.js +1 -0
  65. package/dist/svelte/utils/generatePresetCode.js +1 -1
  66. package/dist/vue/Halftone.vue_vue_type_script_setup_true_lang.js +13 -2
  67. package/dist/vue/Preview.vue_vue_type_script_setup_true_lang.js +2 -0
  68. package/dist/vue/Shader.vue_vue_type_script_setup_true_lang.js +1 -1
  69. package/dist/vue/VHS.js +3 -0
  70. package/dist/vue/VHS.vue_vue_type_script_setup_true_lang.js +216 -0
  71. package/dist/vue/components/Halftone.vue.d.ts +6 -1
  72. package/dist/vue/components/Halftone.vue.d.ts.map +1 -1
  73. package/dist/vue/components/VHS.vue.d.ts +57 -0
  74. package/dist/vue/components/VHS.vue.d.ts.map +1 -0
  75. package/dist/vue/index.d.ts +1 -0
  76. package/dist/vue/index.d.ts.map +1 -1
  77. package/dist/vue/index.js +2 -1
  78. package/dist/vue/utils/generatePresetCode.d.ts.map +1 -1
  79. package/dist/vue/utils/generatePresetCode.js +21 -1
  80. package/package.json +9 -1
  81. package/dist/core/Halftone-BVL2oy37.js +0 -67
  82. /package/dist/core/{Vibrance-dqIV6GBe.js → Vibrance-CGvYDeds.js} +0 -0
  83. /package/dist/core/{Vignette-DB1wO1dm.js → Vignette-BJaonUVL.js} +0 -0
  84. /package/dist/core/{Voronoi-C3WIJFWc.js → Voronoi-DZemzWA4.js} +0 -0
  85. /package/dist/core/{WaveDistortion-BKma8-Ju.js → WaveDistortion--Y-m667K.js} +0 -0
  86. /package/dist/core/{Weave-xuu_vQ5e.js → Weave-CtyohvHz.js} +0 -0
  87. /package/dist/core/{ZoomBlur-UcS2iFT2.js → ZoomBlur-BwkhsFRE.js} +0 -0
  88. /package/dist/core/{browser-ClWxLlIB.js → browser-DTNngPey.js} +0 -0
@@ -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;AA84CD,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;AAi6CD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CAiFlG;AAGD,eAAO,MAAM,mBAAmB,UA0G/B,CAAA"}
@@ -587,9 +587,20 @@ var shaderMetadata = {
587
587
  "Halftone": {
588
588
  "opacity": 1,
589
589
  "blendMode": "normal",
590
+ "style": "classic",
590
591
  "frequency": 100,
591
592
  "angle": 45,
592
- "smoothness": .1
593
+ "cyanAngle": 15,
594
+ "magentaAngle": 75,
595
+ "yellowAngle": 0,
596
+ "blackAngle": 45,
597
+ "misprint": 0,
598
+ "misprintAngle": 0,
599
+ "paperColor": "#ffffff",
600
+ "cyanColor": "#00ffff",
601
+ "magentaColor": "#ff00ff",
602
+ "yellowColor": "#ffff00",
603
+ "blackColor": "#000000"
593
604
  },
594
605
  "HexGrid": {
595
606
  "opacity": 1,
@@ -1189,6 +1200,14 @@ var shaderMetadata = {
1189
1200
  "strokePosition": "center",
1190
1201
  "colorSpace": "linear"
1191
1202
  },
1203
+ "VHS": {
1204
+ "opacity": 1,
1205
+ "blendMode": "normal",
1206
+ "wobble": 1,
1207
+ "scanlineNoise": .6,
1208
+ "smear": .2,
1209
+ "speed": 1
1210
+ },
1192
1211
  "Vibrance": {
1193
1212
  "opacity": 1,
1194
1213
  "blendMode": "normal",
@@ -1467,6 +1486,7 @@ const availableComponents = [
1467
1486
  "Tritone",
1468
1487
  "Truchet",
1469
1488
  "Twirl",
1489
+ "VHS",
1470
1490
  "Vesica",
1471
1491
  "Vibrance",
1472
1492
  "VideoTexture",
package/dist/registry.js CHANGED
@@ -10083,8 +10083,29 @@ export const shaderRegistry = [
10083
10083
  "name": "Halftone",
10084
10084
  "category": "Stylize",
10085
10085
  "description": "Halftone dot pattern effect for printing aesthetics",
10086
+ "requiresRTT": true,
10086
10087
  "requiresChild": true,
10087
10088
  "props": {
10089
+ "style": {
10090
+ "default": "classic",
10091
+ "compileTime": true,
10092
+ "description": "Halftone rendering style",
10093
+ "ui": {
10094
+ "type": "select",
10095
+ "options": [
10096
+ {
10097
+ "label": "Simple",
10098
+ "value": "classic"
10099
+ },
10100
+ {
10101
+ "label": "CMYK Print",
10102
+ "value": "cmyk"
10103
+ }
10104
+ ],
10105
+ "label": "Style",
10106
+ "group": "Effect"
10107
+ }
10108
+ },
10088
10109
  "frequency": {
10089
10110
  "default": 100,
10090
10111
  "description": "Frequency of the halftone dots",
@@ -10112,27 +10133,202 @@ export const shaderRegistry = [
10112
10133
  "max": 360,
10113
10134
  "step": 1,
10114
10135
  "label": "Angle",
10115
- "group": "Effect"
10136
+ "group": "Effect",
10137
+ "condition": {
10138
+ "style": "classic"
10139
+ }
10116
10140
  }
10117
10141
  },
10118
- "smoothness": {
10119
- "default": 0.1,
10120
- "description": "Edge smoothness of the dots",
10142
+ "cyanAngle": {
10143
+ "default": 15,
10144
+ "description": "Screen angle for the cyan plate (in degrees)",
10121
10145
  "ui": {
10122
10146
  "type": [
10123
10147
  "range",
10124
10148
  "map"
10125
10149
  ],
10126
10150
  "min": 0,
10127
- "max": 0.3,
10128
- "step": 0.1,
10129
- "label": "Smoothness",
10130
- "group": "Effect"
10151
+ "max": 360,
10152
+ "step": 1,
10153
+ "label": "Cyan Angle",
10154
+ "group": "Plate Angles",
10155
+ "condition": {
10156
+ "style": "cmyk"
10157
+ }
10158
+ }
10159
+ },
10160
+ "magentaAngle": {
10161
+ "default": 75,
10162
+ "description": "Screen angle for the magenta plate (in degrees)",
10163
+ "ui": {
10164
+ "type": [
10165
+ "range",
10166
+ "map"
10167
+ ],
10168
+ "min": 0,
10169
+ "max": 360,
10170
+ "step": 1,
10171
+ "label": "Magenta Angle",
10172
+ "group": "Plate Angles",
10173
+ "condition": {
10174
+ "style": "cmyk"
10175
+ }
10176
+ }
10177
+ },
10178
+ "yellowAngle": {
10179
+ "default": 0,
10180
+ "description": "Screen angle for the yellow plate (in degrees)",
10181
+ "ui": {
10182
+ "type": [
10183
+ "range",
10184
+ "map"
10185
+ ],
10186
+ "min": 0,
10187
+ "max": 360,
10188
+ "step": 1,
10189
+ "label": "Yellow Angle",
10190
+ "group": "Plate Angles",
10191
+ "condition": {
10192
+ "style": "cmyk"
10193
+ }
10194
+ }
10195
+ },
10196
+ "blackAngle": {
10197
+ "default": 45,
10198
+ "description": "Screen angle for the black plate (in degrees)",
10199
+ "ui": {
10200
+ "type": [
10201
+ "range",
10202
+ "map"
10203
+ ],
10204
+ "min": 0,
10205
+ "max": 360,
10206
+ "step": 1,
10207
+ "label": "Black Angle",
10208
+ "group": "Plate Angles",
10209
+ "condition": {
10210
+ "style": "cmyk"
10211
+ }
10212
+ }
10213
+ },
10214
+ "misprint": {
10215
+ "default": 0,
10216
+ "description": "Simulated mis-registration between plates. Plates are offset around the misprint angle, producing colour fringing at the edges of inked regions.",
10217
+ "ui": {
10218
+ "type": [
10219
+ "range",
10220
+ "map"
10221
+ ],
10222
+ "min": 0,
10223
+ "max": 0.01,
10224
+ "step": 0.0005,
10225
+ "label": "Misprint",
10226
+ "group": "Effect",
10227
+ "condition": {
10228
+ "style": "cmyk"
10229
+ }
10230
+ }
10231
+ },
10232
+ "misprintAngle": {
10233
+ "default": 0,
10234
+ "description": "Direction the plates drift apart. Rotating this rotates the colour-fringing pattern.",
10235
+ "ui": {
10236
+ "type": [
10237
+ "range",
10238
+ "map"
10239
+ ],
10240
+ "min": 0,
10241
+ "max": 360,
10242
+ "step": 1,
10243
+ "label": "Misprint Angle",
10244
+ "group": "Effect",
10245
+ "condition": {
10246
+ "style": "cmyk"
10247
+ }
10248
+ }
10249
+ },
10250
+ "paperColor": {
10251
+ "default": "#ffffff",
10252
+ "description": "Paper/substrate color shown where no ink lands",
10253
+ "ui": {
10254
+ "type": "color",
10255
+ "label": "Paper",
10256
+ "group": "Inks",
10257
+ "condition": {
10258
+ "style": "cmyk"
10259
+ }
10260
+ }
10261
+ },
10262
+ "cyanColor": {
10263
+ "default": "#00ffff",
10264
+ "description": "Cyan ink color",
10265
+ "ui": {
10266
+ "type": "color",
10267
+ "label": "Cyan",
10268
+ "group": "Inks",
10269
+ "condition": {
10270
+ "style": "cmyk"
10271
+ }
10272
+ }
10273
+ },
10274
+ "magentaColor": {
10275
+ "default": "#ff00ff",
10276
+ "description": "Magenta ink color",
10277
+ "ui": {
10278
+ "type": "color",
10279
+ "label": "Magenta",
10280
+ "group": "Inks",
10281
+ "condition": {
10282
+ "style": "cmyk"
10283
+ }
10284
+ }
10285
+ },
10286
+ "yellowColor": {
10287
+ "default": "#ffff00",
10288
+ "description": "Yellow ink color",
10289
+ "ui": {
10290
+ "type": "color",
10291
+ "label": "Yellow",
10292
+ "group": "Inks",
10293
+ "condition": {
10294
+ "style": "cmyk"
10295
+ }
10296
+ }
10297
+ },
10298
+ "blackColor": {
10299
+ "default": "#000000",
10300
+ "description": "Black (key) ink color",
10301
+ "ui": {
10302
+ "type": "color",
10303
+ "label": "Black",
10304
+ "group": "Inks",
10305
+ "condition": {
10306
+ "style": "cmyk"
10307
+ }
10131
10308
  }
10132
10309
  }
10133
10310
  }
10134
10311
  },
10135
10312
  "propsMetadata": {
10313
+ "style": {
10314
+ "ui": {
10315
+ "type": "select",
10316
+ "options": [
10317
+ {
10318
+ "label": "Simple",
10319
+ "value": "classic"
10320
+ },
10321
+ {
10322
+ "label": "CMYK Print",
10323
+ "value": "cmyk"
10324
+ }
10325
+ ],
10326
+ "label": "Style",
10327
+ "group": "Effect"
10328
+ },
10329
+ "default": "classic",
10330
+ "description": "Halftone rendering style"
10331
+ },
10136
10332
  "frequency": {
10137
10333
  "ui": {
10138
10334
  "type": [
@@ -10158,25 +10354,181 @@ export const shaderRegistry = [
10158
10354
  "max": 360,
10159
10355
  "step": 1,
10160
10356
  "label": "Angle",
10161
- "group": "Effect"
10357
+ "group": "Effect",
10358
+ "condition": {
10359
+ "style": "classic"
10360
+ }
10162
10361
  },
10163
10362
  "default": 45,
10164
10363
  "description": "Rotation angle of the pattern (in degrees)"
10165
10364
  },
10166
- "smoothness": {
10365
+ "cyanAngle": {
10167
10366
  "ui": {
10168
10367
  "type": [
10169
10368
  "range",
10170
10369
  "map"
10171
10370
  ],
10172
10371
  "min": 0,
10173
- "max": 0.3,
10174
- "step": 0.1,
10175
- "label": "Smoothness",
10176
- "group": "Effect"
10372
+ "max": 360,
10373
+ "step": 1,
10374
+ "label": "Cyan Angle",
10375
+ "group": "Plate Angles",
10376
+ "condition": {
10377
+ "style": "cmyk"
10378
+ }
10177
10379
  },
10178
- "default": 0.1,
10179
- "description": "Edge smoothness of the dots"
10380
+ "default": 15,
10381
+ "description": "Screen angle for the cyan plate (in degrees)"
10382
+ },
10383
+ "magentaAngle": {
10384
+ "ui": {
10385
+ "type": [
10386
+ "range",
10387
+ "map"
10388
+ ],
10389
+ "min": 0,
10390
+ "max": 360,
10391
+ "step": 1,
10392
+ "label": "Magenta Angle",
10393
+ "group": "Plate Angles",
10394
+ "condition": {
10395
+ "style": "cmyk"
10396
+ }
10397
+ },
10398
+ "default": 75,
10399
+ "description": "Screen angle for the magenta plate (in degrees)"
10400
+ },
10401
+ "yellowAngle": {
10402
+ "ui": {
10403
+ "type": [
10404
+ "range",
10405
+ "map"
10406
+ ],
10407
+ "min": 0,
10408
+ "max": 360,
10409
+ "step": 1,
10410
+ "label": "Yellow Angle",
10411
+ "group": "Plate Angles",
10412
+ "condition": {
10413
+ "style": "cmyk"
10414
+ }
10415
+ },
10416
+ "default": 0,
10417
+ "description": "Screen angle for the yellow plate (in degrees)"
10418
+ },
10419
+ "blackAngle": {
10420
+ "ui": {
10421
+ "type": [
10422
+ "range",
10423
+ "map"
10424
+ ],
10425
+ "min": 0,
10426
+ "max": 360,
10427
+ "step": 1,
10428
+ "label": "Black Angle",
10429
+ "group": "Plate Angles",
10430
+ "condition": {
10431
+ "style": "cmyk"
10432
+ }
10433
+ },
10434
+ "default": 45,
10435
+ "description": "Screen angle for the black plate (in degrees)"
10436
+ },
10437
+ "misprint": {
10438
+ "ui": {
10439
+ "type": [
10440
+ "range",
10441
+ "map"
10442
+ ],
10443
+ "min": 0,
10444
+ "max": 0.01,
10445
+ "step": 0.0005,
10446
+ "label": "Misprint",
10447
+ "group": "Effect",
10448
+ "condition": {
10449
+ "style": "cmyk"
10450
+ }
10451
+ },
10452
+ "default": 0,
10453
+ "description": "Simulated mis-registration between plates. Plates are offset around the misprint angle, producing colour fringing at the edges of inked regions."
10454
+ },
10455
+ "misprintAngle": {
10456
+ "ui": {
10457
+ "type": [
10458
+ "range",
10459
+ "map"
10460
+ ],
10461
+ "min": 0,
10462
+ "max": 360,
10463
+ "step": 1,
10464
+ "label": "Misprint Angle",
10465
+ "group": "Effect",
10466
+ "condition": {
10467
+ "style": "cmyk"
10468
+ }
10469
+ },
10470
+ "default": 0,
10471
+ "description": "Direction the plates drift apart. Rotating this rotates the colour-fringing pattern."
10472
+ },
10473
+ "paperColor": {
10474
+ "ui": {
10475
+ "type": "color",
10476
+ "label": "Paper",
10477
+ "group": "Inks",
10478
+ "condition": {
10479
+ "style": "cmyk"
10480
+ }
10481
+ },
10482
+ "default": "#ffffff",
10483
+ "description": "Paper/substrate color shown where no ink lands"
10484
+ },
10485
+ "cyanColor": {
10486
+ "ui": {
10487
+ "type": "color",
10488
+ "label": "Cyan",
10489
+ "group": "Inks",
10490
+ "condition": {
10491
+ "style": "cmyk"
10492
+ }
10493
+ },
10494
+ "default": "#00ffff",
10495
+ "description": "Cyan ink color"
10496
+ },
10497
+ "magentaColor": {
10498
+ "ui": {
10499
+ "type": "color",
10500
+ "label": "Magenta",
10501
+ "group": "Inks",
10502
+ "condition": {
10503
+ "style": "cmyk"
10504
+ }
10505
+ },
10506
+ "default": "#ff00ff",
10507
+ "description": "Magenta ink color"
10508
+ },
10509
+ "yellowColor": {
10510
+ "ui": {
10511
+ "type": "color",
10512
+ "label": "Yellow",
10513
+ "group": "Inks",
10514
+ "condition": {
10515
+ "style": "cmyk"
10516
+ }
10517
+ },
10518
+ "default": "#ffff00",
10519
+ "description": "Yellow ink color"
10520
+ },
10521
+ "blackColor": {
10522
+ "ui": {
10523
+ "type": "color",
10524
+ "label": "Black",
10525
+ "group": "Inks",
10526
+ "condition": {
10527
+ "style": "cmyk"
10528
+ }
10529
+ },
10530
+ "default": "#000000",
10531
+ "description": "Black (key) ink color"
10180
10532
  }
10181
10533
  }
10182
10534
  },
@@ -19854,6 +20206,138 @@ export const shaderRegistry = [
19854
20206
  }
19855
20207
  }
19856
20208
  },
20209
+ {
20210
+ "name": "VHS",
20211
+ "category": "Stylize",
20212
+ "description": "Analog VHS tape with intermittent tape damage, chroma bleed, and per-scanline noise",
20213
+ "fileName": "VHS",
20214
+ "requiresChild": true,
20215
+ "definition": {
20216
+ "name": "VHS",
20217
+ "category": "Stylize",
20218
+ "description": "Analog VHS tape with intermittent tape damage, chroma bleed, and per-scanline noise",
20219
+ "requiresRTT": true,
20220
+ "requiresChild": true,
20221
+ "props": {
20222
+ "wobble": {
20223
+ "default": 1,
20224
+ "description": "Overall amount of tape damage — waves, creases, and head-switching noise. Bursts on and off organically over time.",
20225
+ "ui": {
20226
+ "type": [
20227
+ "range",
20228
+ "map"
20229
+ ],
20230
+ "min": 0,
20231
+ "max": 5,
20232
+ "step": 0.01,
20233
+ "label": "Wobble",
20234
+ "group": "Effect"
20235
+ }
20236
+ },
20237
+ "scanlineNoise": {
20238
+ "default": 0.6,
20239
+ "description": "Per-scanline fine chroma/luma jitter. Adds the classic horizontal-streak detail.",
20240
+ "ui": {
20241
+ "type": [
20242
+ "range",
20243
+ "map"
20244
+ ],
20245
+ "min": 0,
20246
+ "max": 1,
20247
+ "step": 0.01,
20248
+ "label": "Scanline Noise",
20249
+ "group": "Effect"
20250
+ }
20251
+ },
20252
+ "smear": {
20253
+ "default": 0.2,
20254
+ "description": "Horizontal chroma smear (color bleed) amount. Positive trails colour to the right (classic VHS), negative trails it to the left.",
20255
+ "ui": {
20256
+ "type": [
20257
+ "range",
20258
+ "map"
20259
+ ],
20260
+ "min": -2,
20261
+ "max": 2,
20262
+ "step": 0.01,
20263
+ "label": "Smear",
20264
+ "group": "Effect"
20265
+ }
20266
+ },
20267
+ "speed": {
20268
+ "default": 1,
20269
+ "description": "Animation speed of the tape effects.",
20270
+ "ui": {
20271
+ "type": "range",
20272
+ "min": 0.1,
20273
+ "max": 3,
20274
+ "step": 0.1,
20275
+ "label": "Speed",
20276
+ "group": "Effect"
20277
+ }
20278
+ }
20279
+ }
20280
+ },
20281
+ "propsMetadata": {
20282
+ "wobble": {
20283
+ "ui": {
20284
+ "type": [
20285
+ "range",
20286
+ "map"
20287
+ ],
20288
+ "min": 0,
20289
+ "max": 5,
20290
+ "step": 0.01,
20291
+ "label": "Wobble",
20292
+ "group": "Effect"
20293
+ },
20294
+ "default": 1,
20295
+ "description": "Overall amount of tape damage — waves, creases, and head-switching noise. Bursts on and off organically over time."
20296
+ },
20297
+ "scanlineNoise": {
20298
+ "ui": {
20299
+ "type": [
20300
+ "range",
20301
+ "map"
20302
+ ],
20303
+ "min": 0,
20304
+ "max": 1,
20305
+ "step": 0.01,
20306
+ "label": "Scanline Noise",
20307
+ "group": "Effect"
20308
+ },
20309
+ "default": 0.6,
20310
+ "description": "Per-scanline fine chroma/luma jitter. Adds the classic horizontal-streak detail."
20311
+ },
20312
+ "smear": {
20313
+ "ui": {
20314
+ "type": [
20315
+ "range",
20316
+ "map"
20317
+ ],
20318
+ "min": -2,
20319
+ "max": 2,
20320
+ "step": 0.01,
20321
+ "label": "Smear",
20322
+ "group": "Effect"
20323
+ },
20324
+ "default": 0.2,
20325
+ "description": "Horizontal chroma smear (color bleed) amount. Positive trails colour to the right (classic VHS), negative trails it to the left."
20326
+ },
20327
+ "speed": {
20328
+ "ui": {
20329
+ "type": "range",
20330
+ "min": 0.1,
20331
+ "max": 3,
20332
+ "step": 0.1,
20333
+ "label": "Speed",
20334
+ "group": "Effect"
20335
+ },
20336
+ "default": 1,
20337
+ "description": "Animation speed of the tape effects."
20338
+ }
20339
+ }
20340
+ },
19857
20341
  {
19858
20342
  "name": "Vibrance",
19859
20343
  "category": "Adjustments",
@@ -20,10 +20,15 @@ interface BaseShaderProps {
20
20
  * Component-specific props that merge base props with shader-specific props
21
21
  * Note: ComponentProps are made optional since they have defaults from the shader definition
22
22
  */
23
- type ShaderComponentProps = BaseShaderProps & Partial<Omit<ComponentProps, 'frequency' | 'angle' | 'smoothness'>> & {
23
+ type ShaderComponentProps = BaseShaderProps & Partial<Omit<ComponentProps, 'frequency' | 'angle' | 'cyanAngle' | 'magentaAngle' | 'yellowAngle' | 'blackAngle' | 'misprint' | 'misprintAngle'>> & {
24
24
  frequency?: ComponentProps['frequency'] | PropDriver;
25
25
  angle?: ComponentProps['angle'] | PropDriver;
26
- smoothness?: ComponentProps['smoothness'] | PropDriver;
26
+ cyanAngle?: ComponentProps['cyanAngle'] | PropDriver;
27
+ magentaAngle?: ComponentProps['magentaAngle'] | PropDriver;
28
+ yellowAngle?: ComponentProps['yellowAngle'] | PropDriver;
29
+ blackAngle?: ComponentProps['blackAngle'] | PropDriver;
30
+ misprint?: ComponentProps['misprint'] | PropDriver;
31
+ misprintAngle?: ComponentProps['misprintAngle'] | PropDriver;
27
32
  };
28
33
  /**
29
34
  * The main Solid wrapper component for Shader shader nodes
@@ -1 +1 @@
1
- {"version":3,"file":"Halftone.d.ts","sourceRoot":"","sources":["../../src/components/Halftone.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,uBAAuB,CAAC;AAGjF,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,WAAW,GAAG,OAAO,GAAG,YAAY,CAAC,CAAC,GAAG;IAClH,SAAS,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC;IACrD,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC;IAC7C,UAAU,CAAC,EAAE,cAAc,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC;CACxD,CAAC;AAmCF;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAAK,EAAE,oBAAoB,eA8NlE"}
1
+ {"version":3,"file":"Halftone.d.ts","sourceRoot":"","sources":["../../src/components/Halftone.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,uBAAuB,CAAC;AAGjF,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,WAAW,GAAG,OAAO,GAAG,WAAW,GAAG,cAAc,GAAG,aAAa,GAAG,YAAY,GAAG,UAAU,GAAG,eAAe,CAAC,CAAC,GAAG;IAChM,SAAS,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC;IACrD,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC;IAC7C,SAAS,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC;IACrD,YAAY,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG,UAAU,CAAC;IAC3D,WAAW,CAAC,EAAE,cAAc,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC;IACzD,UAAU,CAAC,EAAE,cAAc,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC;IACvD,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;IACnD,aAAa,CAAC,EAAE,cAAc,CAAC,eAAe,CAAC,GAAG,UAAU,CAAC;CAC9D,CAAC;AAmCF;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAAK,EAAE,oBAAoB,eA8NlE"}