@agent-native/toolkit 0.201.1 → 0.202.0-nightly-20261006033736

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 (229) hide show
  1. package/agent-native.eject.json +39 -12
  2. package/dist/app/agentkit/react/components.d.ts.map +1 -1
  3. package/dist/app/agentkit/react/components.js +292 -23
  4. package/dist/app/agentkit/react/components.js.map +1 -1
  5. package/dist/app/agentkit/react/context.d.ts +5 -0
  6. package/dist/app/agentkit/react/context.d.ts.map +1 -1
  7. package/dist/app/agentkit/react/context.js +5 -0
  8. package/dist/app/agentkit/react/context.js.map +1 -1
  9. package/dist/app/agentkit/react/styles.css +78 -3
  10. package/dist/app/auth/AuthPage.d.ts.map +1 -1
  11. package/dist/app/auth/AuthPage.js +7 -14
  12. package/dist/app/auth/AuthPage.js.map +1 -1
  13. package/dist/app/auth/server.d.ts +6 -0
  14. package/dist/app/auth/server.d.ts.map +1 -0
  15. package/dist/app/auth/server.js +19 -0
  16. package/dist/app/auth/server.js.map +1 -0
  17. package/dist/app/chat/AgentKitAssistantChat.d.ts.map +1 -1
  18. package/dist/app/chat/AgentKitAssistantChat.js +164 -83
  19. package/dist/app/chat/AgentKitAssistantChat.js.map +1 -1
  20. package/dist/app/chat/AgentSidebar.d.ts +2 -1
  21. package/dist/app/chat/AgentSidebar.d.ts.map +1 -1
  22. package/dist/app/chat/AgentSidebar.js +2 -2
  23. package/dist/app/chat/AgentSidebar.js.map +1 -1
  24. package/dist/app/chat/agentkit-chat/guided-questions.d.ts.map +1 -1
  25. package/dist/app/chat/agentkit-chat/guided-questions.js +13 -3
  26. package/dist/app/chat/agentkit-chat/guided-questions.js.map +1 -1
  27. package/dist/app/chat/chat/surface-types.d.ts +2 -0
  28. package/dist/app/chat/chat/surface-types.d.ts.map +1 -1
  29. package/dist/app/i18n/catalogs/ar-SA.d.ts.map +1 -1
  30. package/dist/app/i18n/catalogs/ar-SA.js +41 -0
  31. package/dist/app/i18n/catalogs/ar-SA.js.map +1 -1
  32. package/dist/app/i18n/catalogs/de-DE.d.ts.map +1 -1
  33. package/dist/app/i18n/catalogs/de-DE.js +41 -0
  34. package/dist/app/i18n/catalogs/de-DE.js.map +1 -1
  35. package/dist/app/i18n/catalogs/en-US.d.ts +41 -0
  36. package/dist/app/i18n/catalogs/en-US.d.ts.map +1 -1
  37. package/dist/app/i18n/catalogs/en-US.js +41 -0
  38. package/dist/app/i18n/catalogs/en-US.js.map +1 -1
  39. package/dist/app/i18n/catalogs/es-ES.d.ts.map +1 -1
  40. package/dist/app/i18n/catalogs/es-ES.js +41 -0
  41. package/dist/app/i18n/catalogs/es-ES.js.map +1 -1
  42. package/dist/app/i18n/catalogs/fr-FR.d.ts.map +1 -1
  43. package/dist/app/i18n/catalogs/fr-FR.js +41 -0
  44. package/dist/app/i18n/catalogs/fr-FR.js.map +1 -1
  45. package/dist/app/i18n/catalogs/hi-IN.d.ts.map +1 -1
  46. package/dist/app/i18n/catalogs/hi-IN.js +41 -0
  47. package/dist/app/i18n/catalogs/hi-IN.js.map +1 -1
  48. package/dist/app/i18n/catalogs/ja-JP.d.ts.map +1 -1
  49. package/dist/app/i18n/catalogs/ja-JP.js +41 -0
  50. package/dist/app/i18n/catalogs/ja-JP.js.map +1 -1
  51. package/dist/app/i18n/catalogs/ko-KR.d.ts.map +1 -1
  52. package/dist/app/i18n/catalogs/ko-KR.js +41 -0
  53. package/dist/app/i18n/catalogs/ko-KR.js.map +1 -1
  54. package/dist/app/i18n/catalogs/pt-BR.d.ts.map +1 -1
  55. package/dist/app/i18n/catalogs/pt-BR.js +41 -0
  56. package/dist/app/i18n/catalogs/pt-BR.js.map +1 -1
  57. package/dist/app/i18n/catalogs/zh-CN.d.ts.map +1 -1
  58. package/dist/app/i18n/catalogs/zh-CN.js +41 -0
  59. package/dist/app/i18n/catalogs/zh-CN.js.map +1 -1
  60. package/dist/app/i18n/catalogs/zh-TW.d.ts.map +1 -1
  61. package/dist/app/i18n/catalogs/zh-TW.js +41 -0
  62. package/dist/app/i18n/catalogs/zh-TW.js.map +1 -1
  63. package/dist/app/shared/StarfieldBackground.d.ts +1 -6
  64. package/dist/app/shared/StarfieldBackground.d.ts.map +1 -1
  65. package/dist/app/shared/StarfieldBackground.js +1 -368
  66. package/dist/app/shared/StarfieldBackground.js.map +1 -1
  67. package/dist/app/shared/WaveBackground.d.ts +5 -0
  68. package/dist/app/shared/WaveBackground.d.ts.map +1 -0
  69. package/dist/app/shared/WaveBackground.js +34 -0
  70. package/dist/app/shared/WaveBackground.js.map +1 -0
  71. package/dist/app/shared/WebGlWaveBackground.d.ts +9 -0
  72. package/dist/app/shared/WebGlWaveBackground.d.ts.map +1 -0
  73. package/dist/app/shared/WebGlWaveBackground.js +433 -0
  74. package/dist/app/shared/WebGlWaveBackground.js.map +1 -0
  75. package/dist/app/shared/index.d.ts +1 -0
  76. package/dist/app/shared/index.d.ts.map +1 -1
  77. package/dist/app/shared/index.js +1 -0
  78. package/dist/app/shared/index.js.map +1 -1
  79. package/dist/app/shared/ocean/bloom-blur.wgsl +43 -0
  80. package/dist/app/shared/ocean/bloom-blur.wgsl.js +1 -0
  81. package/dist/app/shared/ocean/bloom-bright.wgsl +21 -0
  82. package/dist/app/shared/ocean/bloom-bright.wgsl.js +1 -0
  83. package/dist/app/shared/ocean/bloom-composite.wgsl +40 -0
  84. package/dist/app/shared/ocean/bloom-composite.wgsl.js +1 -0
  85. package/dist/app/shared/ocean/brand-colors.d.ts +9 -0
  86. package/dist/app/shared/ocean/brand-colors.d.ts.map +1 -0
  87. package/dist/app/shared/ocean/brand-colors.js +45 -0
  88. package/dist/app/shared/ocean/brand-colors.js.map +1 -0
  89. package/dist/app/shared/ocean/camera.d.ts +5 -0
  90. package/dist/app/shared/ocean/camera.d.ts.map +1 -0
  91. package/dist/app/shared/ocean/camera.js +24 -0
  92. package/dist/app/shared/ocean/camera.js.map +1 -0
  93. package/dist/app/shared/ocean/hero-ocean-background.d.ts +8 -0
  94. package/dist/app/shared/ocean/hero-ocean-background.d.ts.map +1 -0
  95. package/dist/app/shared/ocean/hero-ocean-background.js +186 -0
  96. package/dist/app/shared/ocean/hero-ocean-background.js.map +1 -0
  97. package/dist/app/shared/ocean/ifft-stage.wgsl +36 -0
  98. package/dist/app/shared/ocean/ifft-stage.wgsl.js +1 -0
  99. package/dist/app/shared/ocean/initial-spectrum.wgsl +36 -0
  100. package/dist/app/shared/ocean/initial-spectrum.wgsl.js +1 -0
  101. package/dist/app/shared/ocean/noise.wgsl +24 -0
  102. package/dist/app/shared/ocean/noise.wgsl.js +1 -0
  103. package/dist/app/shared/ocean/normal-foam.wgsl +32 -0
  104. package/dist/app/shared/ocean/normal-foam.wgsl.js +1 -0
  105. package/dist/app/shared/ocean/ocean-colors.d.ts +6 -0
  106. package/dist/app/shared/ocean/ocean-colors.d.ts.map +1 -0
  107. package/dist/app/shared/ocean/ocean-colors.js +6 -0
  108. package/dist/app/shared/ocean/ocean-colors.js.map +1 -0
  109. package/dist/app/shared/ocean/ocean-common.wgsl +15 -0
  110. package/dist/app/shared/ocean/ocean-common.wgsl.js +1 -0
  111. package/dist/app/shared/ocean/ocean-graph.d.ts +12 -0
  112. package/dist/app/shared/ocean/ocean-graph.d.ts.map +1 -0
  113. package/dist/app/shared/ocean/ocean-graph.js +16 -0
  114. package/dist/app/shared/ocean/ocean-graph.js.map +1 -0
  115. package/dist/app/shared/ocean/particles.wgsl +139 -0
  116. package/dist/app/shared/ocean/particles.wgsl.js +1 -0
  117. package/dist/app/shared/ocean/present.wgsl +40 -0
  118. package/dist/app/shared/ocean/present.wgsl.js +1 -0
  119. package/dist/app/shared/ocean/renderer.d.ts +66 -0
  120. package/dist/app/shared/ocean/renderer.d.ts.map +1 -0
  121. package/dist/app/shared/ocean/renderer.js +535 -0
  122. package/dist/app/shared/ocean/renderer.js.map +1 -0
  123. package/dist/app/shared/ocean/spectrum.wgsl +35 -0
  124. package/dist/app/shared/ocean/spectrum.wgsl.js +1 -0
  125. package/dist/app/shared/ocean/tuning.d.ts +48 -0
  126. package/dist/app/shared/ocean/tuning.d.ts.map +1 -0
  127. package/dist/app/shared/ocean/tuning.js +74 -0
  128. package/dist/app/shared/ocean/tuning.js.map +1 -0
  129. package/dist/app/shared/ocean/webgpu-support.d.ts +3 -0
  130. package/dist/app/shared/ocean/webgpu-support.d.ts.map +1 -0
  131. package/dist/app/shared/ocean/webgpu-support.js +13 -0
  132. package/dist/app/shared/ocean/webgpu-support.js.map +1 -0
  133. package/dist/app/sharing/AccessRequestApprovalPage.d.ts +23 -0
  134. package/dist/app/sharing/AccessRequestApprovalPage.d.ts.map +1 -0
  135. package/dist/app/sharing/AccessRequestApprovalPage.js +95 -0
  136. package/dist/app/sharing/AccessRequestApprovalPage.js.map +1 -0
  137. package/dist/app/sharing/AccessRequestsSection.d.ts +5 -0
  138. package/dist/app/sharing/AccessRequestsSection.d.ts.map +1 -0
  139. package/dist/app/sharing/AccessRequestsSection.js +47 -0
  140. package/dist/app/sharing/AccessRequestsSection.js.map +1 -0
  141. package/dist/app/sharing/ResourceAccessScreen.d.ts +53 -0
  142. package/dist/app/sharing/ResourceAccessScreen.d.ts.map +1 -0
  143. package/dist/app/sharing/ResourceAccessScreen.js +132 -0
  144. package/dist/app/sharing/ResourceAccessScreen.js.map +1 -0
  145. package/dist/app/sharing/ShareButton.d.ts.map +1 -1
  146. package/dist/app/sharing/ShareButton.js +4 -2
  147. package/dist/app/sharing/ShareButton.js.map +1 -1
  148. package/dist/app/sharing/ShareDialog.d.ts.map +1 -1
  149. package/dist/app/sharing/ShareDialog.js +7 -5
  150. package/dist/app/sharing/ShareDialog.js.map +1 -1
  151. package/dist/app/sharing/index.d.ts +2 -0
  152. package/dist/app/sharing/index.d.ts.map +1 -1
  153. package/dist/app/sharing/index.js +2 -0
  154. package/dist/app/sharing/index.js.map +1 -1
  155. package/dist/app/styles/agent-native.css +21 -1
  156. package/dist/app/styles/tokens/agent-kit.css +3 -1
  157. package/dist/composer/AgentSuggestionBar.d.ts +1 -1
  158. package/dist/composer/AgentSuggestionBar.d.ts.map +1 -1
  159. package/dist/composer/AgentSuggestionBar.js +75 -6
  160. package/dist/composer/AgentSuggestionBar.js.map +1 -1
  161. package/package.json +14 -4
  162. package/src/app/agentkit/react/components.tsx +492 -60
  163. package/src/app/agentkit/react/context.tsx +10 -0
  164. package/src/app/agentkit/react/lifecycle.spec.tsx +487 -1
  165. package/src/app/agentkit/react/styles.css +78 -3
  166. package/src/app/auth/AuthPage.spec.tsx +11 -7
  167. package/src/app/auth/AuthPage.tsx +16 -35
  168. package/src/app/auth/server.spec.ts +68 -0
  169. package/src/app/auth/server.ts +29 -0
  170. package/src/app/chat/AgentKitAssistantChat.spec.tsx +287 -290
  171. package/src/app/chat/AgentKitAssistantChat.tsx +219 -116
  172. package/src/app/chat/AgentSidebar.tsx +3 -0
  173. package/src/app/chat/agentkit-chat/guided-questions.flow.spec.tsx +85 -0
  174. package/src/app/chat/agentkit-chat/guided-questions.tsx +12 -5
  175. package/src/app/chat/chat/surface-types.ts +2 -0
  176. package/src/app/i18n/catalogs/ar-SA.ts +44 -0
  177. package/src/app/i18n/catalogs/de-DE.ts +55 -0
  178. package/src/app/i18n/catalogs/en-US.ts +46 -0
  179. package/src/app/i18n/catalogs/es-ES.ts +53 -0
  180. package/src/app/i18n/catalogs/fr-FR.ts +53 -0
  181. package/src/app/i18n/catalogs/hi-IN.ts +47 -0
  182. package/src/app/i18n/catalogs/ja-JP.ts +54 -0
  183. package/src/app/i18n/catalogs/ko-KR.ts +50 -0
  184. package/src/app/i18n/catalogs/pt-BR.ts +52 -0
  185. package/src/app/i18n/catalogs/zh-CN.ts +42 -0
  186. package/src/app/i18n/catalogs/zh-TW.ts +43 -0
  187. package/src/app/shared/StarfieldBackground.tsx +4 -423
  188. package/src/app/shared/WaveBackground.spec.tsx +104 -0
  189. package/src/app/shared/WaveBackground.tsx +60 -0
  190. package/src/app/shared/WebGlWaveBackground.spec.tsx +106 -0
  191. package/src/app/shared/WebGlWaveBackground.tsx +499 -0
  192. package/src/app/shared/index.ts +1 -0
  193. package/src/app/shared/ocean/bloom-blur.wgsl +43 -0
  194. package/src/app/shared/ocean/bloom-bright.wgsl +21 -0
  195. package/src/app/shared/ocean/bloom-composite.wgsl +40 -0
  196. package/src/app/shared/ocean/brand-colors.ts +49 -0
  197. package/src/app/shared/ocean/camera.ts +28 -0
  198. package/src/app/shared/ocean/hero-ocean-background.spec.tsx +369 -0
  199. package/src/app/shared/ocean/hero-ocean-background.tsx +238 -0
  200. package/src/app/shared/ocean/ifft-stage.wgsl +36 -0
  201. package/src/app/shared/ocean/initial-spectrum.wgsl +36 -0
  202. package/src/app/shared/ocean/noise.wgsl +24 -0
  203. package/src/app/shared/ocean/normal-foam.wgsl +32 -0
  204. package/src/app/shared/ocean/ocean-colors.ts +11 -0
  205. package/src/app/shared/ocean/ocean-common.wgsl +15 -0
  206. package/src/app/shared/ocean/ocean-graph.ts +29 -0
  207. package/src/app/shared/ocean/particles.wgsl +139 -0
  208. package/src/app/shared/ocean/present.wgsl +40 -0
  209. package/src/app/shared/ocean/renderer.spec.ts +100 -0
  210. package/src/app/shared/ocean/renderer.ts +693 -0
  211. package/src/app/shared/ocean/spectrum.wgsl +35 -0
  212. package/src/app/shared/ocean/tuning.ts +131 -0
  213. package/src/app/shared/ocean/webgpu-support.ts +12 -0
  214. package/src/app/sharing/AccessRequestApprovalPage.spec.tsx +276 -0
  215. package/src/app/sharing/AccessRequestApprovalPage.tsx +307 -0
  216. package/src/app/sharing/AccessRequestsSection.tsx +163 -0
  217. package/src/app/sharing/ResourceAccessScreen.spec.tsx +235 -0
  218. package/src/app/sharing/ResourceAccessScreen.tsx +331 -0
  219. package/src/app/sharing/ShareButton.spec.tsx +171 -5
  220. package/src/app/sharing/ShareButton.tsx +15 -2
  221. package/src/app/sharing/ShareDialog.spec.tsx +71 -2
  222. package/src/app/sharing/ShareDialog.tsx +24 -2
  223. package/src/app/sharing/index.ts +2 -0
  224. package/src/app/styles/agent-native.css +21 -1
  225. package/src/app/styles/agent-native.spec.ts +16 -3
  226. package/src/app/styles/tokens/agent-kit.css +3 -1
  227. package/src/composer/AgentSuggestionBar.overflow.spec.tsx +277 -0
  228. package/src/composer/AgentSuggestionBar.tsx +113 -8
  229. package/src/wgsl-env.d.ts +6 -0
@@ -0,0 +1,433 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useEffect, useRef } from "react";
3
+ const vertexShader = `
4
+ attribute vec2 position;
5
+ void main() {
6
+ gl_Position = vec4(position, 0.0, 1.0);
7
+ }
8
+ `;
9
+ const fragmentShader = `
10
+ precision highp float;
11
+
12
+ uniform float iTime;
13
+ uniform vec2 iResolution;
14
+ uniform vec3 uPointer;
15
+ uniform vec3 uFgColor;
16
+ uniform vec3 uBgColor;
17
+ uniform float uBrightness;
18
+ uniform float uTransparent;
19
+
20
+ #define S(a, b, t) smoothstep(a, b, t)
21
+
22
+ const float WAVE_COUNT = 5.;
23
+ const float WAVE_SCALE = 5.5;
24
+ const float FLOW_ANGLE = 119.;
25
+ const float WARP = 0.35;
26
+ const float SPEED = 0.65;
27
+ const float FOCUS_FOLLOW = 0.65;
28
+ const vec2 FOCUS = vec2(0., -0.05);
29
+ const float SPREAD = 1.2;
30
+ const float DOT_DENSITY = 131.;
31
+ const float DOT_SCALE = 1.35;
32
+ const float GLOW = 1.;
33
+ const float SEED = 56.;
34
+ const float VIGNETTE = 1.7;
35
+ const float TONE_GAMMA = 2.6;
36
+ const float FADE_IN_SECONDS = 0.7;
37
+
38
+ float N21(vec2 p) {
39
+ p += SEED;
40
+ vec3 a = fract(vec3(p.xyx) * vec3(213.897, 653.453, 253.098));
41
+ a += dot(a, a.yzx + 79.76);
42
+ return fract((a.x + a.y) * a.z);
43
+ }
44
+
45
+ float valueNoise(vec2 p) {
46
+ vec2 cell = floor(p);
47
+ vec2 f = fract(p);
48
+ float a = N21(cell);
49
+ float b = N21(cell + vec2(1., 0.));
50
+ float c = N21(cell + vec2(0., 1.));
51
+ float d = N21(cell + vec2(1., 1.));
52
+ vec2 u = f * f * (3. - 2. * f);
53
+ return mix(a, b, u.x) + (c - a) * u.y * (1. - u.x) + (d - b) * u.x * u.y;
54
+ }
55
+
56
+ float waveField(vec2 p, float t) {
57
+ float angle = radians(FLOW_ANGLE);
58
+ vec2 dir = vec2(cos(angle), sin(angle));
59
+ vec2 perp = vec2(-dir.y, dir.x);
60
+ vec2 warpUv = p * 1.1 + vec2(t * 0.14, t * 0.1);
61
+ float n1 = valueNoise(warpUv);
62
+ float n2 = valueNoise(warpUv + 5.2);
63
+ vec2 warped = p + (vec2(n1, n2) - 0.5) * WARP;
64
+ float along = dot(warped, dir);
65
+ float across = dot(warped, perp);
66
+ float field = 0.;
67
+ float weight = 0.;
68
+ for (float i = 0.; i < WAVE_COUNT; i += 1.) {
69
+ float amp = 1. / (1. + i * 0.8);
70
+ float freq = WAVE_SCALE * (1. + i * 0.55);
71
+ float drift = t * (1. + i * 0.23) + i * 2.399963;
72
+ float cross = sin(across * freq * 0.45 - drift * 0.7);
73
+ field += amp * sin(along * freq + drift + cross * 1.3);
74
+ weight += amp;
75
+ }
76
+ return clamp(field / max(weight, 0.001) * 0.5 + 0.5, 0., 1.);
77
+ }
78
+
79
+ void mainImage(out vec4 fragColor, in vec2 fragCoord) {
80
+ vec2 uv = (fragCoord - iResolution.xy * .5) / iResolution.y;
81
+ vec2 pointerUv = (uPointer.xy - iResolution.xy * .5) / iResolution.y;
82
+ float t = iTime * SPEED;
83
+ float cellSize = 1. / DOT_DENSITY;
84
+ vec2 cell = floor(uv / cellSize);
85
+ vec2 cellCenter = (cell + 0.5) * cellSize;
86
+ vec2 cellUv = (uv - cellCenter) / cellSize;
87
+ float tone = waveField(cellCenter, t);
88
+ vec2 focus = FOCUS + (pointerUv - FOCUS) * FOCUS_FOLLOW * uPointer.z;
89
+ float distFromFocus = length(cellCenter - focus) / SPREAD;
90
+ tone *= exp(-1.6 * distFromFocus * distFromFocus);
91
+ tone = pow(clamp(tone, 0., 1.), TONE_GAMMA);
92
+ float radius = sqrt(tone) * 0.5 * DOT_SCALE;
93
+ float px = (1. / iResolution.y) / cellSize;
94
+ float edge = max(px * 1.2, 0.004);
95
+ float dist = length(cellUv);
96
+ float dotMask = step(0.0001, tone) * (1. - S(radius - edge, radius + edge, dist));
97
+ float glowTerm = (1. - S(radius, radius + GLOW * 0.9, dist)) * GLOW * tone;
98
+ float value = clamp(dotMask + glowTerm * 0.6, 0., 1.);
99
+ value *= clamp(1. - dot(uv, uv) * VIGNETTE, 0., 1.);
100
+ value *= S(0., FADE_IN_SECONDS, iTime);
101
+ vec3 lit = mix(uBgColor, uFgColor, value);
102
+ lit += (uFgColor - uBgColor) * value * tone * (uBrightness - 1.);
103
+ if (uTransparent > 0.5) {
104
+ float alpha = clamp(value, 0., 1.);
105
+ vec3 waveColor = uBgColor + (uFgColor - uBgColor) * (1. + tone * (uBrightness - 1.));
106
+ fragColor = vec4(clamp(waveColor, 0., 1.) * alpha, alpha);
107
+ } else {
108
+ fragColor = vec4(clamp(lit, 0., 1.), 1.);
109
+ }
110
+ }
111
+
112
+ void main() {
113
+ mainImage(gl_FragColor, gl_FragCoord.xy);
114
+ }
115
+ `;
116
+ let shaderEpoch = 0;
117
+ function hexToRgb01(hex) {
118
+ const normalized = hex.trim().replace(/^#/, "");
119
+ if (!/^(?:[\da-f]{3}|[\da-f]{6})$/i.test(normalized))
120
+ return null;
121
+ const full = normalized.length === 3
122
+ ? normalized
123
+ .split("")
124
+ .map((part) => `${part}${part}`)
125
+ .join("")
126
+ : normalized;
127
+ const value = Number.parseInt(full, 16);
128
+ return [
129
+ ((value >> 16) & 255) / 255,
130
+ ((value >> 8) & 255) / 255,
131
+ (value & 255) / 255,
132
+ ];
133
+ }
134
+ export function WebGlWaveBackground({ className = "", frameRate = 30, transparent = false, style, }) {
135
+ const containerRef = useRef(null);
136
+ const canvasRef = useRef(null);
137
+ const rafRef = useRef(0);
138
+ useEffect(() => {
139
+ const canvasRaw = canvasRef.current;
140
+ const containerRaw = containerRef.current;
141
+ if (!canvasRaw || !containerRaw)
142
+ return;
143
+ const canvas = canvasRaw;
144
+ const container = containerRaw;
145
+ const glRaw = canvas.getContext("webgl", {
146
+ alpha: transparent,
147
+ antialias: false,
148
+ preserveDrawingBuffer: false,
149
+ });
150
+ if (!glRaw)
151
+ return;
152
+ const gl = glRaw;
153
+ function compileShader(type, src) {
154
+ const shader = gl.createShader(type);
155
+ if (!shader)
156
+ return null;
157
+ gl.shaderSource(shader, src);
158
+ gl.compileShader(shader);
159
+ if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
160
+ console.error(gl.getShaderInfoLog(shader));
161
+ gl.deleteShader(shader);
162
+ return null;
163
+ }
164
+ return shader;
165
+ }
166
+ const vs = compileShader(gl.VERTEX_SHADER, vertexShader);
167
+ const fs = compileShader(gl.FRAGMENT_SHADER, fragmentShader);
168
+ if (!vs || !fs)
169
+ return;
170
+ const program = gl.createProgram();
171
+ if (!program)
172
+ return;
173
+ gl.attachShader(program, vs);
174
+ gl.attachShader(program, fs);
175
+ gl.linkProgram(program);
176
+ if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {
177
+ console.error(gl.getProgramInfoLog(program));
178
+ gl.deleteProgram(program);
179
+ gl.deleteShader(vs);
180
+ gl.deleteShader(fs);
181
+ return;
182
+ }
183
+ gl.useProgram(program);
184
+ const buf = gl.createBuffer();
185
+ if (!buf) {
186
+ gl.deleteProgram(program);
187
+ gl.deleteShader(vs);
188
+ gl.deleteShader(fs);
189
+ return;
190
+ }
191
+ gl.bindBuffer(gl.ARRAY_BUFFER, buf);
192
+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([-1, -1, 1, -1, -1, 1, -1, 1, 1, -1, 1, 1]), gl.STATIC_DRAW);
193
+ const pos = gl.getAttribLocation(program, "position");
194
+ gl.enableVertexAttribArray(pos);
195
+ gl.vertexAttribPointer(pos, 2, gl.FLOAT, false, 0, 0);
196
+ const uTime = gl.getUniformLocation(program, "iTime");
197
+ const uRes = gl.getUniformLocation(program, "iResolution");
198
+ const uPointer = gl.getUniformLocation(program, "uPointer");
199
+ const uFgColor = gl.getUniformLocation(program, "uFgColor");
200
+ const uBgColor = gl.getUniformLocation(program, "uBgColor");
201
+ const uBrightness = gl.getUniformLocation(program, "uBrightness");
202
+ const uTransparent = gl.getUniformLocation(program, "uTransparent");
203
+ const reducedMotionQuery = typeof window.matchMedia === "function"
204
+ ? window.matchMedia("(prefers-reduced-motion: reduce)")
205
+ : null;
206
+ let reducedMotion = reducedMotionQuery?.matches ?? false;
207
+ let dpr = 1;
208
+ let isVisible = false;
209
+ let visibilityObserver = null;
210
+ let hasPointer = false;
211
+ let pointerX = 0;
212
+ let pointerY = 0;
213
+ let pointerStrength = 0;
214
+ let targetX = 0;
215
+ let targetY = 0;
216
+ let targetStrength = 0;
217
+ function readDarkMode() {
218
+ const root = document.documentElement;
219
+ if (root.classList.contains("dark"))
220
+ return true;
221
+ if (root.classList.contains("light"))
222
+ return false;
223
+ const dataTheme = root.getAttribute("data-theme");
224
+ if (dataTheme === "dark")
225
+ return true;
226
+ if (dataTheme === "light")
227
+ return false;
228
+ return (window.matchMedia?.("(prefers-color-scheme: dark)").matches ?? false);
229
+ }
230
+ function readTheme() {
231
+ const dark = readDarkMode();
232
+ const fallback = dark
233
+ ? {
234
+ bg: [10 / 255, 10 / 255, 10 / 255],
235
+ fg: [174 / 255, 173 / 255, 172 / 255],
236
+ brightness: 3,
237
+ }
238
+ : {
239
+ bg: [250 / 255, 249 / 255, 245 / 255],
240
+ fg: [0, 103 / 255, 127 / 255],
241
+ brightness: 1.15,
242
+ };
243
+ const styles = window.getComputedStyle(container);
244
+ const customBg = hexToRgb01(styles.getPropertyValue("--b-bg-page"));
245
+ const customFg = hexToRgb01(styles.getPropertyValue("--b-hero-shader-fg"));
246
+ const customBrightness = Number.parseFloat(styles.getPropertyValue("--b-hero-shader-brightness"));
247
+ return {
248
+ bg: customBg ?? fallback.bg,
249
+ fg: customFg ?? fallback.fg,
250
+ brightness: Number.isFinite(customBrightness)
251
+ ? customBrightness
252
+ : fallback.brightness,
253
+ };
254
+ }
255
+ let theme = readTheme();
256
+ function easePointer(allowPointer) {
257
+ if (!allowPointer) {
258
+ pointerStrength = 0;
259
+ return;
260
+ }
261
+ pointerX += (targetX - pointerX) * 0.12;
262
+ pointerY += (targetY - pointerY) * 0.12;
263
+ pointerStrength += (targetStrength - pointerStrength) * 0.08;
264
+ if (pointerStrength < 0.001 && targetStrength === 0) {
265
+ pointerStrength = 0;
266
+ }
267
+ }
268
+ function draw(timeSeconds, allowPointer = !reducedMotion) {
269
+ easePointer(allowPointer);
270
+ gl.uniform1f(uTime, timeSeconds);
271
+ gl.uniform2f(uRes, canvas.width, canvas.height);
272
+ gl.uniform3f(uPointer, pointerX, pointerY, pointerStrength);
273
+ gl.uniform3f(uFgColor, theme.fg[0], theme.fg[1], theme.fg[2]);
274
+ gl.uniform3f(uBgColor, theme.bg[0], theme.bg[1], theme.bg[2]);
275
+ gl.uniform1f(uBrightness, theme.brightness);
276
+ gl.uniform1f(uTransparent, transparent ? 1 : 0);
277
+ gl.drawArrays(gl.TRIANGLES, 0, 6);
278
+ }
279
+ function resize() {
280
+ const w = container.clientWidth;
281
+ const h = container.clientHeight;
282
+ dpr = Math.min(window.devicePixelRatio, 1.5);
283
+ canvas.width = w * dpr;
284
+ canvas.height = h * dpr;
285
+ canvas.style.width = w + "px";
286
+ canvas.style.height = h + "px";
287
+ gl.viewport(0, 0, canvas.width, canvas.height);
288
+ if (!hasPointer) {
289
+ pointerX = targetX = canvas.width * 0.5;
290
+ pointerY = targetY = canvas.height * 0.5;
291
+ }
292
+ }
293
+ function handlePointerMove(event) {
294
+ const rect = container.getBoundingClientRect();
295
+ if (rect.width <= 0 || rect.height <= 0)
296
+ return;
297
+ const x = event.clientX - rect.left;
298
+ const y = event.clientY - rect.top;
299
+ const inside = x >= 0 && x <= rect.width && y >= 0 && y <= rect.height;
300
+ hasPointer = true;
301
+ targetX = x * dpr;
302
+ targetY = (rect.height - y) * dpr;
303
+ targetStrength = inside ? 1 : 0;
304
+ }
305
+ function fadePointer() {
306
+ targetStrength = 0;
307
+ }
308
+ resize();
309
+ window.addEventListener("resize", resize);
310
+ const resizeObserver = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(resize);
311
+ resizeObserver?.observe(container);
312
+ window.addEventListener("pointermove", handlePointerMove, {
313
+ passive: true,
314
+ });
315
+ window.addEventListener("mousemove", handlePointerMove, {
316
+ passive: true,
317
+ });
318
+ document.addEventListener("pointerleave", fadePointer, {
319
+ passive: true,
320
+ });
321
+ window.addEventListener("blur", fadePointer);
322
+ const observer = new MutationObserver(() => {
323
+ theme = readTheme();
324
+ if (reducedMotion)
325
+ draw(20, false);
326
+ });
327
+ observer.observe(document.documentElement, {
328
+ attributes: true,
329
+ attributeFilter: ["class", "data-theme"],
330
+ });
331
+ if (!shaderEpoch)
332
+ shaderEpoch = performance.now();
333
+ const startTime = shaderEpoch;
334
+ let lastFrame = 0;
335
+ const frameBudget = 1000 / Math.max(1, frameRate);
336
+ const reducedMotionStaticTime = 20;
337
+ function render(now) {
338
+ rafRef.current = 0;
339
+ if (reducedMotion || !isVisible)
340
+ return;
341
+ if (now - lastFrame >= frameBudget) {
342
+ lastFrame = now;
343
+ draw((now - startTime) * 0.001);
344
+ }
345
+ if (isVisible && !reducedMotion) {
346
+ rafRef.current = requestAnimationFrame(render);
347
+ }
348
+ }
349
+ function startAnimation() {
350
+ if (!reducedMotion && isVisible && !rafRef.current) {
351
+ rafRef.current = requestAnimationFrame(render);
352
+ }
353
+ }
354
+ function stopAnimation() {
355
+ if (rafRef.current) {
356
+ cancelAnimationFrame(rafRef.current);
357
+ rafRef.current = 0;
358
+ }
359
+ }
360
+ function updateVisibility(visible) {
361
+ isVisible = visible;
362
+ if (visible)
363
+ startAnimation();
364
+ else
365
+ stopAnimation();
366
+ }
367
+ function checkViewport() {
368
+ const rect = container.getBoundingClientRect();
369
+ updateVisibility(rect.bottom >= 0 && rect.top <= window.innerHeight);
370
+ }
371
+ if (typeof IntersectionObserver === "undefined") {
372
+ window.addEventListener("scroll", checkViewport, {
373
+ capture: true,
374
+ passive: true,
375
+ });
376
+ window.addEventListener("resize", checkViewport);
377
+ checkViewport();
378
+ }
379
+ else {
380
+ visibilityObserver = new IntersectionObserver(([entry]) => updateVisibility(entry?.isIntersecting ?? false), { threshold: 0 });
381
+ visibilityObserver.observe(container);
382
+ }
383
+ function handleReducedMotionChange() {
384
+ reducedMotion = reducedMotionQuery?.matches ?? false;
385
+ if (reducedMotion) {
386
+ stopAnimation();
387
+ lastFrame = 0;
388
+ draw(reducedMotionStaticTime, false);
389
+ }
390
+ else {
391
+ startAnimation();
392
+ }
393
+ }
394
+ draw(reducedMotion
395
+ ? reducedMotionStaticTime
396
+ : (performance.now() - startTime) * 0.001, !reducedMotion);
397
+ if (reducedMotionQuery) {
398
+ reducedMotionQuery.addEventListener("change", handleReducedMotionChange);
399
+ }
400
+ if (!reducedMotion)
401
+ startAnimation();
402
+ return () => {
403
+ stopAnimation();
404
+ if (reducedMotionQuery) {
405
+ reducedMotionQuery.removeEventListener("change", handleReducedMotionChange);
406
+ }
407
+ observer.disconnect();
408
+ resizeObserver?.disconnect();
409
+ visibilityObserver?.disconnect();
410
+ if (!visibilityObserver) {
411
+ window.removeEventListener("scroll", checkViewport, true);
412
+ window.removeEventListener("resize", checkViewport);
413
+ }
414
+ window.removeEventListener("resize", resize);
415
+ window.removeEventListener("pointermove", handlePointerMove);
416
+ window.removeEventListener("mousemove", handlePointerMove);
417
+ document.removeEventListener("pointerleave", fadePointer);
418
+ window.removeEventListener("blur", fadePointer);
419
+ gl.deleteProgram(program);
420
+ gl.deleteShader(vs);
421
+ gl.deleteShader(fs);
422
+ gl.deleteBuffer(buf);
423
+ gl.getExtension("WEBGL_lose_context")?.loseContext();
424
+ };
425
+ }, [frameRate, transparent]);
426
+ return (_jsx("div", { ref: containerRef, "aria-hidden": "true", className: className, style: {
427
+ width: "100%",
428
+ height: "100%",
429
+ pointerEvents: "none",
430
+ ...style,
431
+ }, "data-agent-native-wave": true, "data-agent-native-starfield": true, "data-agent-native-wave-transparent": transparent ? "true" : undefined, "data-agent-native-starfield-transparent": transparent ? "true" : undefined, children: _jsx("canvas", { ref: canvasRef, style: { display: "block", width: "100%", height: "100%" } }) }));
432
+ }
433
+ //# sourceMappingURL=WebGlWaveBackground.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebGlWaveBackground.js","sourceRoot":"","sources":["../../../src/app/shared/WebGlWaveBackground.tsx"],"names":[],"mappings":"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"}
@@ -16,5 +16,6 @@ export * from "./PrimitiveButton.js";
16
16
  export * from "./RouteTransitionIndicator.js";
17
17
  export * from "./RuntimeConfigNotice.js";
18
18
  export * from "./StarfieldBackground.js";
19
+ export * from "./WaveBackground.js";
19
20
  export * from "./Turnstile.js";
20
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/app/shared/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/app/shared/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC"}
@@ -16,5 +16,6 @@ export * from "./PrimitiveButton.js";
16
16
  export * from "./RouteTransitionIndicator.js";
17
17
  export * from "./RuntimeConfigNotice.js";
18
18
  export * from "./StarfieldBackground.js";
19
+ export * from "./WaveBackground.js";
19
20
  export * from "./Turnstile.js";
20
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/app/shared/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/app/shared/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,43 @@
1
+
2
+
3
+ const KERNEL_RADIUS: u32 = 22u;
4
+ struct BlurUniforms {
5
+ direction: vec2f,
6
+ invSize: vec2f,
7
+ gaussianCoefficients0: vec4f,
8
+ gaussianCoefficients1: vec4f,
9
+ gaussianCoefficients2: vec4f,
10
+ gaussianCoefficients3: vec4f,
11
+ gaussianCoefficients4: vec4f,
12
+ gaussianCoefficients5: vec4f,
13
+ };
14
+ @group(0) @binding(0) var<uniform> uniforms: BlurUniforms;
15
+ @group(0) @binding(1) var colorTexture: texture_2d<f32>;
16
+ @group(0) @binding(2) var linearSampler: sampler;
17
+
18
+ fn coefficient(i: u32) -> f32 {
19
+ let packed = array<vec4f, 6>(
20
+ uniforms.gaussianCoefficients0,
21
+ uniforms.gaussianCoefficients1,
22
+ uniforms.gaussianCoefficients2,
23
+ uniforms.gaussianCoefficients3,
24
+ uniforms.gaussianCoefficients4,
25
+ uniforms.gaussianCoefficients5
26
+ );
27
+ return packed[i / 4u][i % 4u];
28
+ }
29
+
30
+ @fragment fn fs_main(@location(0) uv: vec2f) -> @location(0) vec4f {
31
+
32
+ var weightSum = coefficient(0u);
33
+ var diffuseSum = textureSample(colorTexture, linearSampler, uv).rgb * weightSum;
34
+ for (var i = 1u; i < KERNEL_RADIUS; i = i + 1u) {
35
+ let x = f32(i);
36
+ let w = coefficient(i);
37
+ let uvOffset = uniforms.direction * uniforms.invSize * x;
38
+ let sample1 = textureSample(colorTexture, linearSampler, uv + uvOffset).rgb;
39
+ let sample2 = textureSample(colorTexture, linearSampler, uv - uvOffset).rgb;
40
+ diffuseSum = diffuseSum + (sample1 + sample2) * w;
41
+ }
42
+ return vec4f(diffuseSum, 1.0);
43
+ }
@@ -0,0 +1 @@
1
+ export default "\n\nconst KERNEL_RADIUS: u32 = 22u;\nstruct BlurUniforms {\n direction: vec2f,\n invSize: vec2f,\n gaussianCoefficients0: vec4f,\n gaussianCoefficients1: vec4f,\n gaussianCoefficients2: vec4f,\n gaussianCoefficients3: vec4f,\n gaussianCoefficients4: vec4f,\n gaussianCoefficients5: vec4f,\n};\n@group(0) @binding(0) var<uniform> uniforms: BlurUniforms;\n@group(0) @binding(1) var colorTexture: texture_2d<f32>;\n@group(0) @binding(2) var linearSampler: sampler;\n\nfn coefficient(i: u32) -> f32 {\n let packed = array<vec4f, 6>(\n uniforms.gaussianCoefficients0,\n uniforms.gaussianCoefficients1,\n uniforms.gaussianCoefficients2,\n uniforms.gaussianCoefficients3,\n uniforms.gaussianCoefficients4,\n uniforms.gaussianCoefficients5\n );\n return packed[i / 4u][i % 4u];\n}\n\n@fragment fn fs_main(@location(0) uv: vec2f) -> @location(0) vec4f {\n\n var weightSum = coefficient(0u);\n var diffuseSum = textureSample(colorTexture, linearSampler, uv).rgb * weightSum;\n for (var i = 1u; i < KERNEL_RADIUS; i = i + 1u) {\n let x = f32(i);\n let w = coefficient(i);\n let uvOffset = uniforms.direction * uniforms.invSize * x;\n let sample1 = textureSample(colorTexture, linearSampler, uv + uvOffset).rgb;\n let sample2 = textureSample(colorTexture, linearSampler, uv - uvOffset).rgb;\n diffuseSum = diffuseSum + (sample1 + sample2) * w;\n }\n return vec4f(diffuseSum, 1.0);\n}\n";
@@ -0,0 +1,21 @@
1
+ struct BrightUniforms {
2
+ luminosityThreshold: f32,
3
+ smoothWidth: f32,
4
+ _pad0: vec2f,
5
+ };
6
+ @group(0) @binding(0) var<uniform> uniforms: BrightUniforms;
7
+ @group(0) @binding(1) var tDiffuse: texture_2d<f32>;
8
+ @group(0) @binding(2) var linearSampler: sampler;
9
+
10
+ fn luminance(rgb: vec3f) -> f32 {
11
+ return dot(rgb, vec3f(0.299, 0.587, 0.114));
12
+ }
13
+
14
+ @fragment fn fs_main(@location(0) uv: vec2f) -> @location(0) vec4f {
15
+
16
+ let texel = textureSample(tDiffuse, linearSampler, uv);
17
+ let v = luminance(texel.xyz);
18
+ let outputColor = vec4f(vec3f(0.0), 0.0);
19
+ let alpha = smoothstep(uniforms.luminosityThreshold, uniforms.luminosityThreshold + uniforms.smoothWidth, v);
20
+ return mix(outputColor, texel, alpha);
21
+ }
@@ -0,0 +1 @@
1
+ export default "struct BrightUniforms {\n luminosityThreshold: f32,\n smoothWidth: f32,\n _pad0: vec2f,\n};\n@group(0) @binding(0) var<uniform> uniforms: BrightUniforms;\n@group(0) @binding(1) var tDiffuse: texture_2d<f32>;\n@group(0) @binding(2) var linearSampler: sampler;\n\nfn luminance(rgb: vec3f) -> f32 {\n return dot(rgb, vec3f(0.299, 0.587, 0.114));\n}\n\n@fragment fn fs_main(@location(0) uv: vec2f) -> @location(0) vec4f {\n\n let texel = textureSample(tDiffuse, linearSampler, uv);\n let v = luminance(texel.xyz);\n let outputColor = vec4f(vec3f(0.0), 0.0);\n let alpha = smoothstep(uniforms.luminosityThreshold, uniforms.luminosityThreshold + uniforms.smoothWidth, v);\n return mix(outputColor, texel, alpha);\n}\n";
@@ -0,0 +1,40 @@
1
+ struct CompositeUniforms {
2
+ bloomStrength: f32,
3
+ bloomRadius: f32,
4
+ _pad0: vec2f,
5
+ bloomFactors0: vec4f,
6
+ bloomFactors1: vec4f,
7
+ };
8
+ @group(0) @binding(0) var<uniform> uniforms: CompositeUniforms;
9
+ @group(0) @binding(1) var blurTexture1: texture_2d<f32>;
10
+ @group(0) @binding(2) var blurTexture2: texture_2d<f32>;
11
+ @group(0) @binding(3) var blurTexture3: texture_2d<f32>;
12
+ @group(0) @binding(4) var blurTexture4: texture_2d<f32>;
13
+ @group(0) @binding(5) var blurTexture5: texture_2d<f32>;
14
+ @group(0) @binding(6) var linearSampler: sampler;
15
+
16
+ fn factor(i: u32) -> f32 {
17
+ let v = array<f32, 8>(
18
+ uniforms.bloomFactors0.x, uniforms.bloomFactors0.y, uniforms.bloomFactors0.z, uniforms.bloomFactors0.w,
19
+ uniforms.bloomFactors1.x, uniforms.bloomFactors1.y, uniforms.bloomFactors1.z, uniforms.bloomFactors1.w
20
+ );
21
+ return v[i];
22
+ }
23
+
24
+ fn lerpBloomFactor(f: f32) -> f32 {
25
+ let mirrorFactor = 1.2 - f;
26
+ return mix(f, mirrorFactor, uniforms.bloomRadius);
27
+ }
28
+
29
+ @fragment fn fs_main(@location(0) uv: vec2f) -> @location(0) vec4f {
30
+
31
+ let bloom = 3.0 * uniforms.bloomStrength * (
32
+ lerpBloomFactor(factor(0u)) * textureSample(blurTexture1, linearSampler, uv).rgb +
33
+ lerpBloomFactor(factor(1u)) * textureSample(blurTexture2, linearSampler, uv).rgb +
34
+ lerpBloomFactor(factor(2u)) * textureSample(blurTexture3, linearSampler, uv).rgb +
35
+ lerpBloomFactor(factor(3u)) * textureSample(blurTexture4, linearSampler, uv).rgb +
36
+ lerpBloomFactor(factor(4u)) * textureSample(blurTexture5, linearSampler, uv).rgb
37
+ );
38
+ let bloomAlpha = max(bloom.r, max(bloom.g, bloom.b));
39
+ return vec4f(bloom, bloomAlpha);
40
+ }
@@ -0,0 +1 @@
1
+ export default "struct CompositeUniforms {\n bloomStrength: f32,\n bloomRadius: f32,\n _pad0: vec2f,\n bloomFactors0: vec4f,\n bloomFactors1: vec4f,\n};\n@group(0) @binding(0) var<uniform> uniforms: CompositeUniforms;\n@group(0) @binding(1) var blurTexture1: texture_2d<f32>;\n@group(0) @binding(2) var blurTexture2: texture_2d<f32>;\n@group(0) @binding(3) var blurTexture3: texture_2d<f32>;\n@group(0) @binding(4) var blurTexture4: texture_2d<f32>;\n@group(0) @binding(5) var blurTexture5: texture_2d<f32>;\n@group(0) @binding(6) var linearSampler: sampler;\n\nfn factor(i: u32) -> f32 {\n let v = array<f32, 8>(\n uniforms.bloomFactors0.x, uniforms.bloomFactors0.y, uniforms.bloomFactors0.z, uniforms.bloomFactors0.w,\n uniforms.bloomFactors1.x, uniforms.bloomFactors1.y, uniforms.bloomFactors1.z, uniforms.bloomFactors1.w\n );\n return v[i];\n}\n\nfn lerpBloomFactor(f: f32) -> f32 {\n let mirrorFactor = 1.2 - f;\n return mix(f, mirrorFactor, uniforms.bloomRadius);\n}\n\n@fragment fn fs_main(@location(0) uv: vec2f) -> @location(0) vec4f {\n\n let bloom = 3.0 * uniforms.bloomStrength * (\n lerpBloomFactor(factor(0u)) * textureSample(blurTexture1, linearSampler, uv).rgb +\n lerpBloomFactor(factor(1u)) * textureSample(blurTexture2, linearSampler, uv).rgb +\n lerpBloomFactor(factor(2u)) * textureSample(blurTexture3, linearSampler, uv).rgb +\n lerpBloomFactor(factor(3u)) * textureSample(blurTexture4, linearSampler, uv).rgb +\n lerpBloomFactor(factor(4u)) * textureSample(blurTexture5, linearSampler, uv).rgb\n );\n let bloomAlpha = max(bloom.r, max(bloom.g, bloom.b));\n return vec4f(bloom, bloomAlpha);\n}\n";
@@ -0,0 +1,9 @@
1
+ import { type OceanColors } from "./ocean-colors.js";
2
+ /**
3
+ * Returns null for anything that is not a full six-digit hex. Callers fall back
4
+ * to the packaged defaults -- an unreadable token and a legitimately dark token
5
+ * must not produce the same silent black.
6
+ */
7
+ export declare function hexToLinearRgb(hex: string): readonly [number, number, number] | null;
8
+ export declare function readOceanColors(element: Element): OceanColors;
9
+ //# sourceMappingURL=brand-colors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand-colors.d.ts","sourceRoot":"","sources":["../../../../src/app/shared/ocean/brand-colors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAO3E;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,GACV,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAS1C;AAQD,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,CAiB7D"}