react-native-webrtc-kaleidoscope 2.2.2 → 2.4.0

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 (100) hide show
  1. package/README.md +42 -3
  2. package/android/src/main/java/com/simiancraft/kaleidoscope/gpu/ShadersGenerated.kt +354 -0
  3. package/catalog/shaders/aurora-silk/aurora-silk.form.tsx +35 -0
  4. package/catalog/shaders/aurora-silk/aurora-silk.frag +106 -0
  5. package/catalog/shaders/aurora-silk/aurora-silk.ts +92 -0
  6. package/catalog/shaders/halftone-waves/halftone-waves.form.tsx +35 -0
  7. package/catalog/shaders/halftone-waves/halftone-waves.frag +84 -0
  8. package/catalog/shaders/halftone-waves/halftone-waves.ts +100 -0
  9. package/catalog/shaders/index.ts +16 -0
  10. package/catalog/shaders/kaleidoscope/kaleidoscope.form.tsx +35 -0
  11. package/catalog/shaders/kaleidoscope/kaleidoscope.frag +93 -0
  12. package/catalog/shaders/kaleidoscope/kaleidoscope.ts +81 -0
  13. package/catalog/shaders/neo-memphis/neo-memphis.form.tsx +35 -0
  14. package/catalog/shaders/neo-memphis/neo-memphis.frag +152 -0
  15. package/catalog/shaders/neo-memphis/neo-memphis.ts +84 -0
  16. package/dist/catalog/shaders/aurora-silk/aurora-silk.d.ts +26 -0
  17. package/dist/catalog/shaders/aurora-silk/aurora-silk.d.ts.map +1 -0
  18. package/dist/catalog/shaders/aurora-silk/aurora-silk.form.d.ts +3 -0
  19. package/dist/catalog/shaders/aurora-silk/aurora-silk.form.d.ts.map +1 -0
  20. package/dist/catalog/shaders/aurora-silk/aurora-silk.form.js +13 -0
  21. package/dist/catalog/shaders/aurora-silk/aurora-silk.form.js.map +1 -0
  22. package/dist/catalog/shaders/aurora-silk/aurora-silk.js +70 -0
  23. package/dist/catalog/shaders/aurora-silk/aurora-silk.js.map +1 -0
  24. package/dist/catalog/shaders/halftone-waves/halftone-waves.d.ts +26 -0
  25. package/dist/catalog/shaders/halftone-waves/halftone-waves.d.ts.map +1 -0
  26. package/dist/catalog/shaders/halftone-waves/halftone-waves.form.d.ts +3 -0
  27. package/dist/catalog/shaders/halftone-waves/halftone-waves.form.d.ts.map +1 -0
  28. package/dist/catalog/shaders/halftone-waves/halftone-waves.form.js +13 -0
  29. package/dist/catalog/shaders/halftone-waves/halftone-waves.form.js.map +1 -0
  30. package/dist/catalog/shaders/halftone-waves/halftone-waves.js +78 -0
  31. package/dist/catalog/shaders/halftone-waves/halftone-waves.js.map +1 -0
  32. package/dist/catalog/shaders/index.d.ts +16 -0
  33. package/dist/catalog/shaders/index.d.ts.map +1 -1
  34. package/dist/catalog/shaders/index.js +9 -1
  35. package/dist/catalog/shaders/index.js.map +1 -1
  36. package/dist/catalog/shaders/kaleidoscope/kaleidoscope.d.ts +24 -0
  37. package/dist/catalog/shaders/kaleidoscope/kaleidoscope.d.ts.map +1 -0
  38. package/dist/catalog/shaders/kaleidoscope/kaleidoscope.form.d.ts +3 -0
  39. package/dist/catalog/shaders/kaleidoscope/kaleidoscope.form.d.ts.map +1 -0
  40. package/dist/catalog/shaders/kaleidoscope/kaleidoscope.form.js +14 -0
  41. package/dist/catalog/shaders/kaleidoscope/kaleidoscope.form.js.map +1 -0
  42. package/dist/catalog/shaders/kaleidoscope/kaleidoscope.js +61 -0
  43. package/dist/catalog/shaders/kaleidoscope/kaleidoscope.js.map +1 -0
  44. package/dist/catalog/shaders/neo-memphis/neo-memphis.d.ts +26 -0
  45. package/dist/catalog/shaders/neo-memphis/neo-memphis.d.ts.map +1 -0
  46. package/dist/catalog/shaders/neo-memphis/neo-memphis.form.d.ts +3 -0
  47. package/dist/catalog/shaders/neo-memphis/neo-memphis.form.d.ts.map +1 -0
  48. package/dist/catalog/shaders/neo-memphis/neo-memphis.form.js +13 -0
  49. package/dist/catalog/shaders/neo-memphis/neo-memphis.form.js.map +1 -0
  50. package/dist/catalog/shaders/neo-memphis/neo-memphis.js +62 -0
  51. package/dist/catalog/shaders/neo-memphis/neo-memphis.js.map +1 -0
  52. package/dist/src/components/preset-control-panel/preset-control-panel.d.ts +9 -1
  53. package/dist/src/components/preset-control-panel/preset-control-panel.d.ts.map +1 -1
  54. package/dist/src/components/preset-control-panel/preset-control-panel.js +7 -3
  55. package/dist/src/components/preset-control-panel/preset-control-panel.js.map +1 -1
  56. package/dist/src/kaleidoscope/controls.d.ts.map +1 -1
  57. package/dist/src/kaleidoscope/controls.js +6 -3
  58. package/dist/src/kaleidoscope/controls.js.map +1 -1
  59. package/dist/src/kaleidoscope/shader-to-spec.d.ts +15 -1
  60. package/dist/src/kaleidoscope/shader-to-spec.d.ts.map +1 -1
  61. package/dist/src/kaleidoscope/shader-to-spec.js +23 -4
  62. package/dist/src/kaleidoscope/shader-to-spec.js.map +1 -1
  63. package/dist/src/kaleidoscope/types.d.ts +3 -1
  64. package/dist/src/kaleidoscope/types.d.ts.map +1 -1
  65. package/dist/src/kaleidoscope/types.js.map +1 -1
  66. package/dist/src/persistence/async-storage-store.d.ts +3 -0
  67. package/dist/src/persistence/async-storage-store.d.ts.map +1 -0
  68. package/dist/src/persistence/async-storage-store.js +26 -0
  69. package/dist/src/persistence/async-storage-store.js.map +1 -0
  70. package/dist/src/persistence/index.d.ts +4 -0
  71. package/dist/src/persistence/index.d.ts.map +1 -0
  72. package/dist/src/persistence/index.js +22 -0
  73. package/dist/src/persistence/index.js.map +1 -0
  74. package/dist/src/persistence/provider.d.ts +38 -0
  75. package/dist/src/persistence/provider.d.ts.map +1 -0
  76. package/dist/src/persistence/provider.js +96 -0
  77. package/dist/src/persistence/provider.js.map +1 -0
  78. package/dist/src/persistence/state.d.ts +54 -0
  79. package/dist/src/persistence/state.d.ts.map +1 -0
  80. package/dist/src/persistence/state.js +126 -0
  81. package/dist/src/persistence/state.js.map +1 -0
  82. package/dist/web-driver/shaders.generated.d.ts +4 -0
  83. package/dist/web-driver/shaders.generated.d.ts.map +1 -1
  84. package/dist/web-driver/shaders.generated.js +351 -1
  85. package/dist/web-driver/shaders.generated.js.map +1 -1
  86. package/ios/KaleidoscopeModule/shaders/GENERATIVE.txt +4 -0
  87. package/ios/KaleidoscopeModule/shaders/SHADERS.txt +4 -0
  88. package/ios/KaleidoscopeModule/shaders/aurora-silk.metalsrc +51 -0
  89. package/ios/KaleidoscopeModule/shaders/halftone-waves.metalsrc +41 -0
  90. package/ios/KaleidoscopeModule/shaders/kaleidoscope.metalsrc +45 -0
  91. package/ios/KaleidoscopeModule/shaders/neo-memphis.metalsrc +181 -0
  92. package/package.json +43 -3
  93. package/src/components/preset-control-panel/preset-control-panel.tsx +15 -2
  94. package/src/kaleidoscope/controls.ts +6 -3
  95. package/src/kaleidoscope/shader-to-spec.ts +32 -5
  96. package/src/kaleidoscope/types.ts +3 -1
  97. package/src/persistence/async-storage-store.ts +33 -0
  98. package/src/persistence/index.ts +28 -0
  99. package/src/persistence/provider.tsx +165 -0
  100. package/src/persistence/state.ts +167 -0
@@ -0,0 +1,152 @@
1
+ // Neo-Memphis: scattered flat-color geometric primitives (discs, rings,
2
+ // triangles, crosses, boxes, squiggles) drifting on a quiet field; the 90s
3
+ // Memphis-design / "Jazz cup" pattern family as an opaque BACKGROUND layer
4
+ // (issue #61). Two parallax cell layers: hero shapes plus a smaller, dimmer
5
+ // backfill texture.
6
+ //
7
+ // Overdrive surface: the four palette colors re-skin it completely (pastel
8
+ // studio / bold primary / duotone), uDensity and uScale set busy-ness,
9
+ // uOutline trades filled shapes for outlined ones, uDrift sets the energy.
10
+ // uCalm fades shapes out near frame center, where the masked subject's face
11
+ // sits.
12
+ //
13
+ // Cost: per pixel, two cell layers each evaluate ONE hash and at most one
14
+ // shape SDF in the HOME cell only; shape extent (size + bob) stays below the
15
+ // half-cell bound, so there is no 3x3 neighbor sweep (contrast nebula's
16
+ // Star). No noise, no pow; one sin per squiggle cell.
17
+ //
18
+ // UV convention: matches passthrough.vert. vUv = (0, 0) at bottom-left,
19
+ // (1, 1) at top-right. fragCoord is reconstructed as vUv * uResolution; no
20
+ // gl_FragCoord. Fully procedural: no input texture, zero net texture flips on
21
+ // every runtime.
22
+ //
23
+ // Precision: highp float. The hash uses large multipliers (fract-of-product
24
+ // tricks); mediump collapses them to banding, same reasoning as nebula.
25
+
26
+ #version 300 es
27
+ precision highp float;
28
+
29
+ uniform float uTime; // seconds, monotonically increasing; range [0, inf)
30
+ uniform vec2 uResolution; // framebuffer size in pixels; both components > 0
31
+ uniform vec3 uBgColor; // field color behind the shapes
32
+ uniform vec3 uColorA; // shape palette color 1
33
+ uniform vec3 uColorB; // shape palette color 2
34
+ uniform vec3 uColorC; // shape palette color 3
35
+ uniform float uScale; // hero-grid cells across frame height
36
+ uniform float uDensity; // probability a cell draws its shape, 0..1
37
+ uniform float uOutline; // probability a shape renders outlined, 0..1
38
+ uniform float uDrift; // scroll + rotation rate; 0 freezes
39
+ uniform float uCalm; // 0..1 fades shapes near frame center (face zone)
40
+
41
+ in highp vec2 vUv;
42
+ out vec4 oColor;
43
+
44
+ const float TAU = 6.28318530718;
45
+ // Antialias half-width in cell units; ~1px at the default pitch.
46
+ const float AA = 0.012;
47
+
48
+ float hash21(vec2 p) {
49
+ p = fract(p * vec2(234.34, 435.345));
50
+ p += dot(p, p + 34.23);
51
+ return fract(p.x * p.y);
52
+ }
53
+
54
+ float sdBox(vec2 p, vec2 b) {
55
+ vec2 d = abs(p) - b;
56
+ return length(max(d, vec2(0.0))) + min(max(d.x, d.y), 0.0);
57
+ }
58
+
59
+ // iq's equilateral triangle, point up, circumradius r.
60
+ float sdTriangle(vec2 p, float r) {
61
+ const float k = 1.7320508;
62
+ p.x = abs(p.x) - r;
63
+ p.y = p.y + r / k;
64
+ if (p.x + k * p.y > 0.0) {
65
+ p = vec2(p.x - k * p.y, -k * p.x - p.y) * 0.5;
66
+ }
67
+ p.x -= clamp(p.x, -2.0 * r, 0.0);
68
+ return -length(p) * sign(p.y);
69
+ }
70
+
71
+ // One cell layer: returns the shape coverage and writes its color.
72
+ // luv is the layer's scrolled cell-space coordinate; backfill restricts the
73
+ // shape menu to dots and crosses and draws smaller.
74
+ float memphisCell(vec2 luv, float seed, float backfill, float t, out vec3 shapeColor) {
75
+ vec2 id = floor(luv);
76
+ vec2 gv = fract(luv) - 0.5;
77
+ float h = hash21(id + seed);
78
+ shapeColor = uBgColor;
79
+ // Density gate: empty cells cost one hash.
80
+ if (h > uDensity) return 0.0;
81
+
82
+ float h2 = fract(h * 57.31);
83
+ float h3 = fract(h * 113.77);
84
+ float h4 = fract(h * 431.13);
85
+ float h5 = fract(h * 891.71);
86
+
87
+ // Per-cell slow spin and a small bob; both bounded so the shape stays
88
+ // inside its cell (max extent 0.34 + 0.04 < 0.5).
89
+ float ang = h2 * TAU + t * (h3 - 0.5) * 0.8;
90
+ float cs = cos(ang);
91
+ float sn = sin(ang);
92
+ gv -= 0.04 * vec2(sin(t * 0.6 + h * TAU), cos(t * 0.8 + h * TAU));
93
+ gv = mat2(cs, -sn, sn, cs) * gv;
94
+
95
+ float r = mix(0.14, 0.30, h3) * mix(1.0, 0.6, backfill);
96
+ float pick = h4 * 6.0;
97
+ float d;
98
+ if (backfill > 0.5) {
99
+ // Backfill texture: dots and crosses only.
100
+ d = (pick < 3.0)
101
+ ? length(gv) - r * 0.45
102
+ : min(sdBox(gv, vec2(r, r * 0.22)), sdBox(gv, vec2(r * 0.22, r)));
103
+ } else if (pick < 1.0) {
104
+ d = length(gv) - r; // disc
105
+ } else if (pick < 2.0) {
106
+ d = abs(length(gv) - r * 0.8) - r * 0.18; // ring
107
+ } else if (pick < 3.0) {
108
+ d = sdTriangle(gv, r); // triangle
109
+ } else if (pick < 4.0) {
110
+ d = min(sdBox(gv, vec2(r, r * 0.24)), sdBox(gv, vec2(r * 0.24, r))); // cross
111
+ } else if (pick < 5.0) {
112
+ d = sdBox(gv, vec2(r * 0.78, r * 0.78)); // box
113
+ } else {
114
+ // Squiggle: a sine-displaced band, clipped to its run length.
115
+ d = max(abs(gv.y - 0.4 * r * sin(gv.x / r * 6.5)) - r * 0.17, abs(gv.x) - r);
116
+ }
117
+
118
+ float fill = smoothstep(AA, -AA, d);
119
+ float ring = smoothstep(AA, -AA, abs(d + r * 0.06) - r * 0.09);
120
+ float m = (h5 < uOutline) ? ring : fill;
121
+
122
+ float colorPick = fract(h * 769.23) * 3.0;
123
+ shapeColor = (colorPick < 1.0) ? uColorA : (colorPick < 2.0) ? uColorB : uColorC;
124
+ return m;
125
+ }
126
+
127
+ void main() {
128
+ // Aspect-correct, screen-centered coordinates (matches plasma/nebula).
129
+ vec2 fragCoord = vUv * uResolution;
130
+ vec2 uv = (fragCoord - 0.5 * uResolution) / uResolution.y;
131
+ float centerDist = length(uv);
132
+
133
+ float t = uTime * uDrift;
134
+ vec3 color = uBgColor;
135
+ vec3 shapeColor;
136
+
137
+ // Backfill layer first (under the hero shapes): smaller, denser, dimmer.
138
+ vec2 luv1 = uv * uScale * 2.3 + vec2(t * 0.045, t * -0.03) + 51.7;
139
+ float m1 = memphisCell(luv1, 7.0, 1.0, t, shapeColor);
140
+ color = mix(color, mix(uBgColor, shapeColor, 0.55), m1);
141
+
142
+ // Hero layer: the big shapes, scrolling the other way.
143
+ vec2 luv0 = uv * uScale + vec2(t * -0.06, t * 0.04);
144
+ float m0 = memphisCell(luv0, 0.0, 0.0, t, shapeColor);
145
+
146
+ // uCalm: fade shapes (not the field) near frame center.
147
+ float calm = 1.0 - uCalm * (1.0 - smoothstep(0.15, 0.62, centerDist));
148
+ color = mix(color, shapeColor, m0 * calm);
149
+
150
+ // Opaque procedural background; the person is composited over it downstream.
151
+ oColor = vec4(color, 1.0);
152
+ }
@@ -0,0 +1,84 @@
1
+ // Neo-Memphis layer-shader interface: typed uniforms + control descriptor.
2
+ // Scattered flat-color geometric primitives (the 90s Memphis / "Jazz cup"
3
+ // pattern family), an opaque BACKGROUND layer (issue #61). One
4
+ // neo-memphis.frag fans out into the book presets (jazz-cup, bauhaus,
5
+ // confetti) by varying these uniforms; the palette is the big lever. Shader
6
+ // source is shaders/neo-memphis.frag.
7
+
8
+ import type { RGB } from '../../../src/lib/primitives.types';
9
+ import type { UniformControl } from '../_shared/types';
10
+
11
+ /** Typed uniforms for the `neo-memphis` layer shader. */
12
+ export type NeoMemphisUniforms = {
13
+ /** Field color behind the shapes. */
14
+ readonly uBgColor: RGB;
15
+ /** Shape palette color 1. */
16
+ readonly uColorA: RGB;
17
+ /** Shape palette color 2. */
18
+ readonly uColorB: RGB;
19
+ /** Shape palette color 3. */
20
+ readonly uColorC: RGB;
21
+ /** Hero-grid cells across frame height; higher = smaller, busier shapes. */
22
+ readonly uScale: number;
23
+ /** Probability a cell draws its shape; the busy-ness dial. */
24
+ readonly uDensity: number;
25
+ /** Probability a shape renders outlined instead of filled. */
26
+ readonly uOutline: number;
27
+ /** Scroll + rotation rate; 0 freezes. */
28
+ readonly uDrift: number;
29
+ /** Fades shapes near frame center (the face zone); 0 = off. */
30
+ readonly uCalm: number;
31
+ };
32
+
33
+ /** The `neo-memphis` shader's tunables; defaults are the "pastel studio" look. */
34
+ export const NEO_MEMPHIS_CONTROLS: readonly UniformControl[] = [
35
+ { name: 'uBgColor', kind: 'color', default: [0.96, 0.94, 0.89], doc: 'Field color.' },
36
+ { name: 'uColorA', kind: 'color', default: [0.16, 0.62, 0.56], doc: 'Shape palette color 1.' },
37
+ { name: 'uColorB', kind: 'color', default: [0.91, 0.45, 0.45], doc: 'Shape palette color 2.' },
38
+ { name: 'uColorC', kind: 'color', default: [0.27, 0.32, 0.55], doc: 'Shape palette color 3.' },
39
+ {
40
+ name: 'uScale',
41
+ kind: 'float',
42
+ default: 4,
43
+ min: 2,
44
+ max: 10,
45
+ step: 0.5,
46
+ doc: 'Hero-grid cells across frame height.',
47
+ },
48
+ {
49
+ name: 'uDensity',
50
+ kind: 'float',
51
+ default: 0.6,
52
+ min: 0,
53
+ max: 1,
54
+ step: 0.01,
55
+ doc: 'Probability a cell draws; busy-ness.',
56
+ },
57
+ {
58
+ name: 'uOutline',
59
+ kind: 'float',
60
+ default: 0.4,
61
+ min: 0,
62
+ max: 1,
63
+ step: 0.01,
64
+ doc: 'Share of outlined vs filled shapes.',
65
+ },
66
+ {
67
+ name: 'uDrift',
68
+ kind: 'float',
69
+ default: 0.5,
70
+ min: 0,
71
+ max: 2,
72
+ step: 0.01,
73
+ doc: 'Scroll + spin rate; 0 freezes.',
74
+ },
75
+ {
76
+ name: 'uCalm',
77
+ kind: 'float',
78
+ default: 0,
79
+ min: 0,
80
+ max: 1,
81
+ step: 0.01,
82
+ doc: 'Fades shapes at frame center (face zone).',
83
+ },
84
+ ];
@@ -0,0 +1,26 @@
1
+ import type { RGB } from '../../../src/lib/primitives.types';
2
+ import type { UniformControl } from '../_shared/types';
3
+ /** Typed uniforms for the `aurora-silk` layer shader. */
4
+ export type AuroraSilkUniforms = {
5
+ /** Gradient color at the flow's low side. */
6
+ readonly uColorLow: RGB;
7
+ /** Gradient color at the flow's high side. */
8
+ readonly uColorHigh: RGB;
9
+ /** Ribbon tint; back-of-stack ribbons shade toward uColorHigh. */
10
+ readonly uRibbonColor: RGB;
11
+ /** Visible ribbon count, 1..5. */
12
+ readonly uRibbons: number;
13
+ /** Ribbon edge softness; 0 = paper-cut crisp, 1 = fully diffuse. */
14
+ readonly uSoftness: number;
15
+ /** Flow direction in radians. */
16
+ readonly uAngle: number;
17
+ /** Drift rate; 0 freezes. */
18
+ readonly uSpeed: number;
19
+ /** Aesthetic morph: 0 flat paper-cut, 1 glowing silk. */
20
+ readonly uStyle: number;
21
+ /** Eases ribbons at frame center (the face zone); 0 = off. */
22
+ readonly uCalm: number;
23
+ };
24
+ /** The `aurora-silk` shader's tunables; defaults are the "corporate silk" look. */
25
+ export declare const AURORA_SILK_CONTROLS: readonly UniformControl[];
26
+ //# sourceMappingURL=aurora-silk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aurora-silk.d.ts","sourceRoot":"","sources":["../../../../catalog/shaders/aurora-silk/aurora-silk.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,yDAAyD;AACzD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,6CAA6C;IAC7C,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC;IACxB,8CAA8C;IAC9C,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC;IACzB,kEAAkE;IAClE,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC;IAC3B,kCAAkC;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,oEAAoE;IACpE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,iCAAiC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,6BAA6B;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,oBAAoB,EAAE,SAAS,cAAc,EA0DzD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type KaleidoscopeControls } from '../../../src/components/preset-control-panel';
2
+ export declare function AuroraSilkForm({ uniforms, onPatch, disabled }: KaleidoscopeControls): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=aurora-silk.form.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aurora-silk.form.d.ts","sourceRoot":"","sources":["../../../../catalog/shaders/aurora-silk/aurora-silk.form.tsx"],"names":[],"mappings":"AAIA,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,8CAA8C,CAAC;AAGtD,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,oBAAoB,2CAsBnF"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AuroraSilkForm = AuroraSilkForm;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ // Aurora-silk's editor form: the shader OWNS its control layout (the plasma
6
+ // pattern). One <Control uniform="…"/> per uniform in declared order.
7
+ // Conventional layer id: "aurora-silk".
8
+ const preset_control_panel_1 = require("../../../src/components/preset-control-panel");
9
+ const aurora_silk_1 = require("./aurora-silk");
10
+ function AuroraSilkForm({ uniforms, onPatch, disabled }) {
11
+ return ((0, jsx_runtime_1.jsx)(preset_control_panel_1.ControlForm, { id: "aurora-silk", uniforms: uniforms['aurora-silk'] ?? {}, onPatch: onPatch, disabled: disabled, controls: aurora_silk_1.AURORA_SILK_CONTROLS, children: (0, jsx_runtime_1.jsxs)(preset_control_panel_1.ControlSection, { title: "aurora-silk", children: [(0, jsx_runtime_1.jsx)(preset_control_panel_1.Control, { uniform: "uColorLow" }), (0, jsx_runtime_1.jsx)(preset_control_panel_1.Control, { uniform: "uColorHigh" }), (0, jsx_runtime_1.jsx)(preset_control_panel_1.Control, { uniform: "uRibbonColor" }), (0, jsx_runtime_1.jsx)(preset_control_panel_1.Control, { uniform: "uRibbons" }), (0, jsx_runtime_1.jsx)(preset_control_panel_1.Control, { uniform: "uSoftness" }), (0, jsx_runtime_1.jsx)(preset_control_panel_1.Control, { uniform: "uAngle" }), (0, jsx_runtime_1.jsx)(preset_control_panel_1.Control, { uniform: "uSpeed" }), (0, jsx_runtime_1.jsx)(preset_control_panel_1.Control, { uniform: "uStyle" }), (0, jsx_runtime_1.jsx)(preset_control_panel_1.Control, { uniform: "uCalm" })] }) }));
12
+ }
13
+ //# sourceMappingURL=aurora-silk.form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aurora-silk.form.js","sourceRoot":"","sources":["../../../../catalog/shaders/aurora-silk/aurora-silk.form.tsx"],"names":[],"mappings":";;;;AAAA,4EAA4E;AAC5E,sEAAsE;AACtE,wCAAwC;AAExC,uFAKsD;AACtD,+CAAqD;AAErD,wBAA+B,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAwB;IAClF,OAAO,CACL,uBAAC,kCAAW,IACV,EAAE,EAAC,aAAa,EAChB,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,EACvC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,kCAAoB,YAE9B,wBAAC,qCAAc,IAAC,KAAK,EAAC,aAAa,aACjC,uBAAC,8BAAO,IAAC,OAAO,EAAC,WAAW,GAAG,EAC/B,uBAAC,8BAAO,IAAC,OAAO,EAAC,YAAY,GAAG,EAChC,uBAAC,8BAAO,IAAC,OAAO,EAAC,cAAc,GAAG,EAClC,uBAAC,8BAAO,IAAC,OAAO,EAAC,UAAU,GAAG,EAC9B,uBAAC,8BAAO,IAAC,OAAO,EAAC,WAAW,GAAG,EAC/B,uBAAC,8BAAO,IAAC,OAAO,EAAC,QAAQ,GAAG,EAC5B,uBAAC,8BAAO,IAAC,OAAO,EAAC,QAAQ,GAAG,EAC5B,uBAAC,8BAAO,IAAC,OAAO,EAAC,QAAQ,GAAG,EAC5B,uBAAC,8BAAO,IAAC,OAAO,EAAC,OAAO,GAAG,IACZ,GACL,CACf,CAAC;AACJ,CAAC","sourcesContent":["// Aurora-silk's editor form: the shader OWNS its control layout (the plasma\n// pattern). One <Control uniform=\"…\"/> per uniform in declared order.\n// Conventional layer id: \"aurora-silk\".\n\nimport {\n Control,\n ControlForm,\n ControlSection,\n type KaleidoscopeControls,\n} from '../../../src/components/preset-control-panel';\nimport { AURORA_SILK_CONTROLS } from './aurora-silk';\n\nexport function AuroraSilkForm({ uniforms, onPatch, disabled }: KaleidoscopeControls) {\n return (\n <ControlForm\n id=\"aurora-silk\"\n uniforms={uniforms['aurora-silk'] ?? {}}\n onPatch={onPatch}\n disabled={disabled}\n controls={AURORA_SILK_CONTROLS}\n >\n <ControlSection title=\"aurora-silk\">\n <Control uniform=\"uColorLow\" />\n <Control uniform=\"uColorHigh\" />\n <Control uniform=\"uRibbonColor\" />\n <Control uniform=\"uRibbons\" />\n <Control uniform=\"uSoftness\" />\n <Control uniform=\"uAngle\" />\n <Control uniform=\"uSpeed\" />\n <Control uniform=\"uStyle\" />\n <Control uniform=\"uCalm\" />\n </ControlSection>\n </ControlForm>\n );\n}\n"]}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ // Aurora-silk layer-shader interface: typed uniforms + control descriptor.
3
+ // Noise-warped ribbon bands over a two-stop gradient (OS-swoosh through SaaS
4
+ // gradient), an opaque BACKGROUND layer (issue #61). One aurora-silk.frag
5
+ // fans out into the book presets (corporate-silk, dusk, polar) by varying
6
+ // these uniforms; the palette and uStyle are the big levers. Shader source is
7
+ // shaders/aurora-silk.frag.
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.AURORA_SILK_CONTROLS = void 0;
10
+ /** The `aurora-silk` shader's tunables; defaults are the "corporate silk" look. */
11
+ exports.AURORA_SILK_CONTROLS = [
12
+ { name: 'uColorLow', kind: 'color', default: [0.08, 0.11, 0.22], doc: 'Gradient low color.' },
13
+ { name: 'uColorHigh', kind: 'color', default: [0.16, 0.29, 0.48], doc: 'Gradient high color.' },
14
+ { name: 'uRibbonColor', kind: 'color', default: [0.36, 0.62, 0.85], doc: 'Ribbon tint.' },
15
+ {
16
+ name: 'uRibbons',
17
+ kind: 'float',
18
+ default: 4,
19
+ min: 1,
20
+ max: 5,
21
+ step: 1,
22
+ doc: 'Visible ribbon count.',
23
+ },
24
+ {
25
+ name: 'uSoftness',
26
+ kind: 'float',
27
+ default: 0.7,
28
+ min: 0,
29
+ max: 1,
30
+ step: 0.01,
31
+ doc: 'Ribbon edge softness; 0 = paper-cut.',
32
+ },
33
+ {
34
+ name: 'uAngle',
35
+ kind: 'float',
36
+ default: 0.5,
37
+ min: 0,
38
+ max: 6.28,
39
+ step: 0.01,
40
+ doc: 'Flow direction, radians.',
41
+ },
42
+ {
43
+ name: 'uSpeed',
44
+ kind: 'float',
45
+ default: 0.6,
46
+ min: 0,
47
+ max: 2,
48
+ step: 0.01,
49
+ doc: 'Drift rate; 0 freezes.',
50
+ },
51
+ {
52
+ name: 'uStyle',
53
+ kind: 'float',
54
+ default: 0.8,
55
+ min: 0,
56
+ max: 1,
57
+ step: 0.01,
58
+ doc: '0 flat paper-cut, 1 glowing silk.',
59
+ },
60
+ {
61
+ name: 'uCalm',
62
+ kind: 'float',
63
+ default: 0,
64
+ min: 0,
65
+ max: 1,
66
+ step: 0.01,
67
+ doc: 'Eases ribbons at frame center (face zone).',
68
+ },
69
+ ];
70
+ //# sourceMappingURL=aurora-silk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aurora-silk.js","sourceRoot":"","sources":["../../../../catalog/shaders/aurora-silk/aurora-silk.ts"],"names":[],"mappings":";AAAA,2EAA2E;AAC3E,6EAA6E;AAC7E,0EAA0E;AAC1E,0EAA0E;AAC1E,8EAA8E;AAC9E,4BAA4B;;;AA2B5B,mFAAmF;AACtE,QAAA,oBAAoB,GAA8B;IAC7D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,qBAAqB,EAAE;IAC7F,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,sBAAsB,EAAE;IAC/F,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE;IACzF;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,CAAC;QACV,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,CAAC;QACP,GAAG,EAAE,uBAAuB;KAC7B;IACD;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,sCAAsC;KAC5C;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,IAAI;QACT,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,0BAA0B;KAChC;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,wBAAwB;KAC9B;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,mCAAmC;KACzC;IACD;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,CAAC;QACV,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,4CAA4C;KAClD;CACF,CAAC","sourcesContent":["// Aurora-silk layer-shader interface: typed uniforms + control descriptor.\n// Noise-warped ribbon bands over a two-stop gradient (OS-swoosh through SaaS\n// gradient), an opaque BACKGROUND layer (issue #61). One aurora-silk.frag\n// fans out into the book presets (corporate-silk, dusk, polar) by varying\n// these uniforms; the palette and uStyle are the big levers. Shader source is\n// shaders/aurora-silk.frag.\n\nimport type { RGB } from '../../../src/lib/primitives.types';\nimport type { UniformControl } from '../_shared/types';\n\n/** Typed uniforms for the `aurora-silk` layer shader. */\nexport type AuroraSilkUniforms = {\n /** Gradient color at the flow's low side. */\n readonly uColorLow: RGB;\n /** Gradient color at the flow's high side. */\n readonly uColorHigh: RGB;\n /** Ribbon tint; back-of-stack ribbons shade toward uColorHigh. */\n readonly uRibbonColor: RGB;\n /** Visible ribbon count, 1..5. */\n readonly uRibbons: number;\n /** Ribbon edge softness; 0 = paper-cut crisp, 1 = fully diffuse. */\n readonly uSoftness: number;\n /** Flow direction in radians. */\n readonly uAngle: number;\n /** Drift rate; 0 freezes. */\n readonly uSpeed: number;\n /** Aesthetic morph: 0 flat paper-cut, 1 glowing silk. */\n readonly uStyle: number;\n /** Eases ribbons at frame center (the face zone); 0 = off. */\n readonly uCalm: number;\n};\n\n/** The `aurora-silk` shader's tunables; defaults are the \"corporate silk\" look. */\nexport const AURORA_SILK_CONTROLS: readonly UniformControl[] = [\n { name: 'uColorLow', kind: 'color', default: [0.08, 0.11, 0.22], doc: 'Gradient low color.' },\n { name: 'uColorHigh', kind: 'color', default: [0.16, 0.29, 0.48], doc: 'Gradient high color.' },\n { name: 'uRibbonColor', kind: 'color', default: [0.36, 0.62, 0.85], doc: 'Ribbon tint.' },\n {\n name: 'uRibbons',\n kind: 'float',\n default: 4,\n min: 1,\n max: 5,\n step: 1,\n doc: 'Visible ribbon count.',\n },\n {\n name: 'uSoftness',\n kind: 'float',\n default: 0.7,\n min: 0,\n max: 1,\n step: 0.01,\n doc: 'Ribbon edge softness; 0 = paper-cut.',\n },\n {\n name: 'uAngle',\n kind: 'float',\n default: 0.5,\n min: 0,\n max: 6.28,\n step: 0.01,\n doc: 'Flow direction, radians.',\n },\n {\n name: 'uSpeed',\n kind: 'float',\n default: 0.6,\n min: 0,\n max: 2,\n step: 0.01,\n doc: 'Drift rate; 0 freezes.',\n },\n {\n name: 'uStyle',\n kind: 'float',\n default: 0.8,\n min: 0,\n max: 1,\n step: 0.01,\n doc: '0 flat paper-cut, 1 glowing silk.',\n },\n {\n name: 'uCalm',\n kind: 'float',\n default: 0,\n min: 0,\n max: 1,\n step: 0.01,\n doc: 'Eases ribbons at frame center (face zone).',\n },\n];\n"]}
@@ -0,0 +1,26 @@
1
+ import type { RGB } from '../../../src/lib/primitives.types';
2
+ import type { UniformControl } from '../_shared/types';
3
+ /** Typed uniforms for the `halftone-waves` layer shader. */
4
+ export type HalftoneWavesUniforms = {
5
+ /** Field color behind the dots. */
6
+ readonly uPaper: RGB;
7
+ /** Dot color. */
8
+ readonly uInk: RGB;
9
+ /** Dot-grid cells across frame height; higher = finer texture. */
10
+ readonly uPitch: number;
11
+ /** Base dot radius in cell units. */
12
+ readonly uDotSize: number;
13
+ /** Wave modulation depth; 0 = static even dots. */
14
+ readonly uWaveAmp: number;
15
+ /** Wave travel rate; 0 freezes. */
16
+ readonly uSpeed: number;
17
+ /** Dot shape: 0 diamond, 1 circle, 2 square. */
18
+ readonly uShape: number;
19
+ /** Wave direction in radians. */
20
+ readonly uAngle: number;
21
+ /** Eases the waves at frame center (the face zone); 0 = off. */
22
+ readonly uCalm: number;
23
+ };
24
+ /** The `halftone-waves` shader's tunables; defaults are the "boardroom" look. */
25
+ export declare const HALFTONE_WAVES_CONTROLS: readonly UniformControl[];
26
+ //# sourceMappingURL=halftone-waves.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"halftone-waves.d.ts","sourceRoot":"","sources":["../../../../catalog/shaders/halftone-waves/halftone-waves.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,4DAA4D;AAC5D,MAAM,MAAM,qBAAqB,GAAG;IAClC,mCAAmC;IACnC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;IACrB,iBAAiB;IACjB,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC;IACnB,kEAAkE;IAClE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qCAAqC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,mDAAmD;IACnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,mCAAmC;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,gDAAgD;IAChD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,iCAAiC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,uBAAuB,EAAE,SAAS,cAAc,EAkE5D,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type KaleidoscopeControls } from '../../../src/components/preset-control-panel';
2
+ export declare function HalftoneWavesForm({ uniforms, onPatch, disabled }: KaleidoscopeControls): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=halftone-waves.form.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"halftone-waves.form.d.ts","sourceRoot":"","sources":["../../../../catalog/shaders/halftone-waves/halftone-waves.form.tsx"],"names":[],"mappings":"AAIA,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,8CAA8C,CAAC;AAGtD,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,oBAAoB,2CAsBtF"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HalftoneWavesForm = HalftoneWavesForm;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ // Halftone-waves' editor form: the shader OWNS its control layout (the plasma
6
+ // pattern). One <Control uniform="…"/> per uniform in declared order.
7
+ // Conventional layer id: "halftone-waves".
8
+ const preset_control_panel_1 = require("../../../src/components/preset-control-panel");
9
+ const halftone_waves_1 = require("./halftone-waves");
10
+ function HalftoneWavesForm({ uniforms, onPatch, disabled }) {
11
+ return ((0, jsx_runtime_1.jsx)(preset_control_panel_1.ControlForm, { id: "halftone-waves", uniforms: uniforms['halftone-waves'] ?? {}, onPatch: onPatch, disabled: disabled, controls: halftone_waves_1.HALFTONE_WAVES_CONTROLS, children: (0, jsx_runtime_1.jsxs)(preset_control_panel_1.ControlSection, { title: "halftone-waves", children: [(0, jsx_runtime_1.jsx)(preset_control_panel_1.Control, { uniform: "uPaper" }), (0, jsx_runtime_1.jsx)(preset_control_panel_1.Control, { uniform: "uInk" }), (0, jsx_runtime_1.jsx)(preset_control_panel_1.Control, { uniform: "uPitch" }), (0, jsx_runtime_1.jsx)(preset_control_panel_1.Control, { uniform: "uDotSize" }), (0, jsx_runtime_1.jsx)(preset_control_panel_1.Control, { uniform: "uWaveAmp" }), (0, jsx_runtime_1.jsx)(preset_control_panel_1.Control, { uniform: "uSpeed" }), (0, jsx_runtime_1.jsx)(preset_control_panel_1.Control, { uniform: "uShape" }), (0, jsx_runtime_1.jsx)(preset_control_panel_1.Control, { uniform: "uAngle" }), (0, jsx_runtime_1.jsx)(preset_control_panel_1.Control, { uniform: "uCalm" })] }) }));
12
+ }
13
+ //# sourceMappingURL=halftone-waves.form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"halftone-waves.form.js","sourceRoot":"","sources":["../../../../catalog/shaders/halftone-waves/halftone-waves.form.tsx"],"names":[],"mappings":";;;;AAAA,8EAA8E;AAC9E,sEAAsE;AACtE,2CAA2C;AAE3C,uFAKsD;AACtD,qDAA2D;AAE3D,2BAAkC,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAwB;IACrF,OAAO,CACL,uBAAC,kCAAW,IACV,EAAE,EAAC,gBAAgB,EACnB,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAC1C,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,wCAAuB,YAEjC,wBAAC,qCAAc,IAAC,KAAK,EAAC,gBAAgB,aACpC,uBAAC,8BAAO,IAAC,OAAO,EAAC,QAAQ,GAAG,EAC5B,uBAAC,8BAAO,IAAC,OAAO,EAAC,MAAM,GAAG,EAC1B,uBAAC,8BAAO,IAAC,OAAO,EAAC,QAAQ,GAAG,EAC5B,uBAAC,8BAAO,IAAC,OAAO,EAAC,UAAU,GAAG,EAC9B,uBAAC,8BAAO,IAAC,OAAO,EAAC,UAAU,GAAG,EAC9B,uBAAC,8BAAO,IAAC,OAAO,EAAC,QAAQ,GAAG,EAC5B,uBAAC,8BAAO,IAAC,OAAO,EAAC,QAAQ,GAAG,EAC5B,uBAAC,8BAAO,IAAC,OAAO,EAAC,QAAQ,GAAG,EAC5B,uBAAC,8BAAO,IAAC,OAAO,EAAC,OAAO,GAAG,IACZ,GACL,CACf,CAAC;AACJ,CAAC","sourcesContent":["// Halftone-waves' editor form: the shader OWNS its control layout (the plasma\n// pattern). One <Control uniform=\"…\"/> per uniform in declared order.\n// Conventional layer id: \"halftone-waves\".\n\nimport {\n Control,\n ControlForm,\n ControlSection,\n type KaleidoscopeControls,\n} from '../../../src/components/preset-control-panel';\nimport { HALFTONE_WAVES_CONTROLS } from './halftone-waves';\n\nexport function HalftoneWavesForm({ uniforms, onPatch, disabled }: KaleidoscopeControls) {\n return (\n <ControlForm\n id=\"halftone-waves\"\n uniforms={uniforms['halftone-waves'] ?? {}}\n onPatch={onPatch}\n disabled={disabled}\n controls={HALFTONE_WAVES_CONTROLS}\n >\n <ControlSection title=\"halftone-waves\">\n <Control uniform=\"uPaper\" />\n <Control uniform=\"uInk\" />\n <Control uniform=\"uPitch\" />\n <Control uniform=\"uDotSize\" />\n <Control uniform=\"uWaveAmp\" />\n <Control uniform=\"uSpeed\" />\n <Control uniform=\"uShape\" />\n <Control uniform=\"uAngle\" />\n <Control uniform=\"uCalm\" />\n </ControlSection>\n </ControlForm>\n );\n}\n"]}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ // Halftone-waves layer-shader interface: typed uniforms + control descriptor.
3
+ // A dot lattice with traveling-wave size modulation (the late-2000s
4
+ // "mathematical" tech texture), an opaque BACKGROUND layer (issue #61). One
5
+ // halftone-waves.frag fans out into the book presets (boardroom, press,
6
+ // ripple) by varying these uniforms; the two-tone palette is the big lever.
7
+ // Shader source is shaders/halftone-waves.frag.
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.HALFTONE_WAVES_CONTROLS = void 0;
10
+ /** The `halftone-waves` shader's tunables; defaults are the "boardroom" look. */
11
+ exports.HALFTONE_WAVES_CONTROLS = [
12
+ { name: 'uPaper', kind: 'color', default: [0.95, 0.95, 0.94], doc: 'Field color.' },
13
+ { name: 'uInk', kind: 'color', default: [0.62, 0.66, 0.7], doc: 'Dot color.' },
14
+ {
15
+ name: 'uPitch',
16
+ kind: 'float',
17
+ default: 26,
18
+ min: 8,
19
+ max: 60,
20
+ step: 1,
21
+ doc: 'Dot-grid cells across frame height.',
22
+ },
23
+ {
24
+ name: 'uDotSize',
25
+ kind: 'float',
26
+ default: 0.26,
27
+ min: 0.05,
28
+ max: 0.5,
29
+ step: 0.01,
30
+ doc: 'Base dot radius in cell units.',
31
+ },
32
+ {
33
+ name: 'uWaveAmp',
34
+ kind: 'float',
35
+ default: 0.55,
36
+ min: 0,
37
+ max: 1,
38
+ step: 0.01,
39
+ doc: 'Wave modulation depth.',
40
+ },
41
+ {
42
+ name: 'uSpeed',
43
+ kind: 'float',
44
+ default: 0.5,
45
+ min: 0,
46
+ max: 2,
47
+ step: 0.01,
48
+ doc: 'Wave travel rate; 0 freezes.',
49
+ },
50
+ {
51
+ name: 'uShape',
52
+ kind: 'float',
53
+ default: 1,
54
+ min: 0,
55
+ max: 2,
56
+ step: 0.05,
57
+ doc: 'Dot shape: 0 diamond, 1 circle, 2 square.',
58
+ },
59
+ {
60
+ name: 'uAngle',
61
+ kind: 'float',
62
+ default: 0.6,
63
+ min: 0,
64
+ max: 6.28,
65
+ step: 0.01,
66
+ doc: 'Wave direction, radians.',
67
+ },
68
+ {
69
+ name: 'uCalm',
70
+ kind: 'float',
71
+ default: 0,
72
+ min: 0,
73
+ max: 1,
74
+ step: 0.01,
75
+ doc: 'Eases the waves at frame center (face zone).',
76
+ },
77
+ ];
78
+ //# sourceMappingURL=halftone-waves.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"halftone-waves.js","sourceRoot":"","sources":["../../../../catalog/shaders/halftone-waves/halftone-waves.ts"],"names":[],"mappings":";AAAA,8EAA8E;AAC9E,oEAAoE;AACpE,4EAA4E;AAC5E,wEAAwE;AACxE,4EAA4E;AAC5E,gDAAgD;;;AA2BhD,iFAAiF;AACpE,QAAA,uBAAuB,GAA8B;IAChE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE;IACnF,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE;IAC9E;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,EAAE;QACX,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,EAAE;QACP,IAAI,EAAE,CAAC;QACP,GAAG,EAAE,qCAAqC;KAC3C;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,IAAI;QACT,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,gCAAgC;KACtC;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,wBAAwB;KAC9B;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,8BAA8B;KACpC;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,CAAC;QACV,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,2CAA2C;KACjD;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,IAAI;QACT,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,0BAA0B;KAChC;IACD;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,CAAC;QACV,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,8CAA8C;KACpD;CACF,CAAC","sourcesContent":["// Halftone-waves layer-shader interface: typed uniforms + control descriptor.\n// A dot lattice with traveling-wave size modulation (the late-2000s\n// \"mathematical\" tech texture), an opaque BACKGROUND layer (issue #61). One\n// halftone-waves.frag fans out into the book presets (boardroom, press,\n// ripple) by varying these uniforms; the two-tone palette is the big lever.\n// Shader source is shaders/halftone-waves.frag.\n\nimport type { RGB } from '../../../src/lib/primitives.types';\nimport type { UniformControl } from '../_shared/types';\n\n/** Typed uniforms for the `halftone-waves` layer shader. */\nexport type HalftoneWavesUniforms = {\n /** Field color behind the dots. */\n readonly uPaper: RGB;\n /** Dot color. */\n readonly uInk: RGB;\n /** Dot-grid cells across frame height; higher = finer texture. */\n readonly uPitch: number;\n /** Base dot radius in cell units. */\n readonly uDotSize: number;\n /** Wave modulation depth; 0 = static even dots. */\n readonly uWaveAmp: number;\n /** Wave travel rate; 0 freezes. */\n readonly uSpeed: number;\n /** Dot shape: 0 diamond, 1 circle, 2 square. */\n readonly uShape: number;\n /** Wave direction in radians. */\n readonly uAngle: number;\n /** Eases the waves at frame center (the face zone); 0 = off. */\n readonly uCalm: number;\n};\n\n/** The `halftone-waves` shader's tunables; defaults are the \"boardroom\" look. */\nexport const HALFTONE_WAVES_CONTROLS: readonly UniformControl[] = [\n { name: 'uPaper', kind: 'color', default: [0.95, 0.95, 0.94], doc: 'Field color.' },\n { name: 'uInk', kind: 'color', default: [0.62, 0.66, 0.7], doc: 'Dot color.' },\n {\n name: 'uPitch',\n kind: 'float',\n default: 26,\n min: 8,\n max: 60,\n step: 1,\n doc: 'Dot-grid cells across frame height.',\n },\n {\n name: 'uDotSize',\n kind: 'float',\n default: 0.26,\n min: 0.05,\n max: 0.5,\n step: 0.01,\n doc: 'Base dot radius in cell units.',\n },\n {\n name: 'uWaveAmp',\n kind: 'float',\n default: 0.55,\n min: 0,\n max: 1,\n step: 0.01,\n doc: 'Wave modulation depth.',\n },\n {\n name: 'uSpeed',\n kind: 'float',\n default: 0.5,\n min: 0,\n max: 2,\n step: 0.01,\n doc: 'Wave travel rate; 0 freezes.',\n },\n {\n name: 'uShape',\n kind: 'float',\n default: 1,\n min: 0,\n max: 2,\n step: 0.05,\n doc: 'Dot shape: 0 diamond, 1 circle, 2 square.',\n },\n {\n name: 'uAngle',\n kind: 'float',\n default: 0.6,\n min: 0,\n max: 6.28,\n step: 0.01,\n doc: 'Wave direction, radians.',\n },\n {\n name: 'uCalm',\n kind: 'float',\n default: 0,\n min: 0,\n max: 1,\n step: 0.01,\n doc: 'Eases the waves at frame center (face zone).',\n },\n];\n"]}
@@ -1,16 +1,22 @@
1
1
  import type { AnamorphicLensFlareUniforms } from './anamorphic-lensflare/anamorphic-lensflare';
2
+ import type { AuroraSilkUniforms } from './aurora-silk/aurora-silk';
2
3
  import type { BlurUniforms } from './blur/blur';
3
4
  import type { CloudsUniforms } from './clouds/clouds';
4
5
  import type { CorporateBlobsUniforms } from './corporate-blobs/corporate-blobs';
5
6
  import type { FirefliesUniforms } from './fireflies/fireflies';
6
7
  import type { GodraysUniforms } from './godrays/godrays';
8
+ import type { HalftoneWavesUniforms } from './halftone-waves/halftone-waves';
9
+ import type { KaleidoscopeShaderUniforms } from './kaleidoscope/kaleidoscope';
7
10
  import type { LightBeamsAndMotesUniforms } from './light-beams-and-motes/light-beams-and-motes';
8
11
  import type { NebulaUniforms } from './nebula/nebula';
12
+ import type { NeoMemphisUniforms } from './neo-memphis/neo-memphis';
9
13
  import type { PlasmaUniforms } from './plasma/plasma';
10
14
  import type { SimianlightsUniforms } from './simianlights/simianlights';
11
15
  export { defaultUniforms, type UniformControl } from './_shared/types';
12
16
  export type { AnamorphicLensFlareUniforms } from './anamorphic-lensflare/anamorphic-lensflare';
13
17
  export { ANAMORPHIC_LENSFLARE_CONTROLS } from './anamorphic-lensflare/anamorphic-lensflare';
18
+ export type { AuroraSilkUniforms } from './aurora-silk/aurora-silk';
19
+ export { AURORA_SILK_CONTROLS } from './aurora-silk/aurora-silk';
14
20
  export type { BlurUniforms } from './blur/blur';
15
21
  export { BLUR_CONTROLS } from './blur/blur';
16
22
  export type { CloudsUniforms } from './clouds/clouds';
@@ -21,10 +27,16 @@ export type { FirefliesUniforms } from './fireflies/fireflies';
21
27
  export { FIREFLIES_CONTROLS } from './fireflies/fireflies';
22
28
  export type { GodraysUniforms } from './godrays/godrays';
23
29
  export { GODRAYS_CONTROLS } from './godrays/godrays';
30
+ export type { HalftoneWavesUniforms } from './halftone-waves/halftone-waves';
31
+ export { HALFTONE_WAVES_CONTROLS } from './halftone-waves/halftone-waves';
32
+ export type { KaleidoscopeShaderUniforms } from './kaleidoscope/kaleidoscope';
33
+ export { KALEIDOSCOPE_CONTROLS } from './kaleidoscope/kaleidoscope';
24
34
  export type { LightBeamsAndMotesUniforms } from './light-beams-and-motes/light-beams-and-motes';
25
35
  export { LIGHT_BEAMS_AND_MOTES_CONTROLS } from './light-beams-and-motes/light-beams-and-motes';
26
36
  export type { NebulaUniforms } from './nebula/nebula';
27
37
  export { NEBULA_CONTROLS } from './nebula/nebula';
38
+ export type { NeoMemphisUniforms } from './neo-memphis/neo-memphis';
39
+ export { NEO_MEMPHIS_CONTROLS } from './neo-memphis/neo-memphis';
28
40
  export type { PlasmaUniforms } from './plasma/plasma';
29
41
  export { PLASMA_CONTROLS } from './plasma/plasma';
30
42
  export type { SimianlightsUniforms } from './simianlights/simianlights';
@@ -40,10 +52,14 @@ export type ShaderUniformsMap = {
40
52
  readonly clouds: CloudsUniforms;
41
53
  readonly godrays: GodraysUniforms;
42
54
  readonly fireflies: FirefliesUniforms;
55
+ readonly kaleidoscope: KaleidoscopeShaderUniforms;
56
+ readonly 'halftone-waves': HalftoneWavesUniforms;
43
57
  readonly plasma: PlasmaUniforms;
44
58
  readonly nebula: NebulaUniforms;
59
+ readonly 'neo-memphis': NeoMemphisUniforms;
45
60
  readonly simianlights: SimianlightsUniforms;
46
61
  readonly 'anamorphic-lensflare': AnamorphicLensFlareUniforms;
62
+ readonly 'aurora-silk': AuroraSilkUniforms;
47
63
  readonly 'light-beams-and-motes': LightBeamsAndMotesUniforms;
48
64
  readonly 'corporate-blobs': CorporateBlobsUniforms;
49
65
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../catalog/shaders/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../catalog/shaders/index.ts"],"names":[],"mappings":"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"}