@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
@@ -1 +1 @@
1
- {"version":3,"file":"StarfieldBackground.d.ts","sourceRoot":"","sources":["../../../src/app/shared/StarfieldBackground.tsx"],"names":[],"mappings":"AAuHA,MAAM,WAAW,wBAAwB;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,mBAAmB,CAAC,EAClC,SAAc,EACd,SAAc,EACd,WAAmB,GACpB,EAAE,wBAAwB,+BAqS1B"}
1
+ {"version":3,"file":"StarfieldBackground.d.ts","sourceRoot":"","sources":["../../../src/app/shared/StarfieldBackground.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,IAAI,mBAAmB,EAC1C,KAAK,wBAAwB,IAAI,wBAAwB,GAC1D,MAAM,0BAA0B,CAAC"}
@@ -1,369 +1,2 @@
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
- export function StarfieldBackground({ className = "", frameRate = 30, transparent = false, }) {
118
- const containerRef = useRef(null);
119
- const canvasRef = useRef(null);
120
- const rafRef = useRef(0);
121
- useEffect(() => {
122
- const canvasRaw = canvasRef.current;
123
- const containerRaw = containerRef.current;
124
- if (!canvasRaw || !containerRaw)
125
- return;
126
- const canvas = canvasRaw;
127
- const container = containerRaw;
128
- const glRaw = canvas.getContext("webgl", {
129
- alpha: transparent,
130
- antialias: false,
131
- preserveDrawingBuffer: false,
132
- });
133
- if (!glRaw)
134
- return;
135
- const gl = glRaw;
136
- function compileShader(type, src) {
137
- const shader = gl.createShader(type);
138
- if (!shader)
139
- return null;
140
- gl.shaderSource(shader, src);
141
- gl.compileShader(shader);
142
- if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
143
- console.error(gl.getShaderInfoLog(shader));
144
- gl.deleteShader(shader);
145
- return null;
146
- }
147
- return shader;
148
- }
149
- const vs = compileShader(gl.VERTEX_SHADER, vertexShader);
150
- const fs = compileShader(gl.FRAGMENT_SHADER, fragmentShader);
151
- if (!vs || !fs)
152
- return;
153
- const program = gl.createProgram();
154
- if (!program)
155
- return;
156
- gl.attachShader(program, vs);
157
- gl.attachShader(program, fs);
158
- gl.linkProgram(program);
159
- if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {
160
- console.error(gl.getProgramInfoLog(program));
161
- gl.deleteProgram(program);
162
- gl.deleteShader(vs);
163
- gl.deleteShader(fs);
164
- return;
165
- }
166
- gl.useProgram(program);
167
- const buf = gl.createBuffer();
168
- if (!buf) {
169
- gl.deleteProgram(program);
170
- gl.deleteShader(vs);
171
- gl.deleteShader(fs);
172
- return;
173
- }
174
- gl.bindBuffer(gl.ARRAY_BUFFER, buf);
175
- gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([-1, -1, 1, -1, -1, 1, -1, 1, 1, -1, 1, 1]), gl.STATIC_DRAW);
176
- const pos = gl.getAttribLocation(program, "position");
177
- gl.enableVertexAttribArray(pos);
178
- gl.vertexAttribPointer(pos, 2, gl.FLOAT, false, 0, 0);
179
- const uTime = gl.getUniformLocation(program, "iTime");
180
- const uRes = gl.getUniformLocation(program, "iResolution");
181
- const uPointer = gl.getUniformLocation(program, "uPointer");
182
- const uFgColor = gl.getUniformLocation(program, "uFgColor");
183
- const uBgColor = gl.getUniformLocation(program, "uBgColor");
184
- const uBrightness = gl.getUniformLocation(program, "uBrightness");
185
- const uTransparent = gl.getUniformLocation(program, "uTransparent");
186
- const reducedMotionQuery = typeof window.matchMedia === "function"
187
- ? window.matchMedia("(prefers-reduced-motion: reduce)")
188
- : null;
189
- let reducedMotion = reducedMotionQuery?.matches ?? false;
190
- let dpr = 1;
191
- let hasPointer = false;
192
- let pointerX = 0;
193
- let pointerY = 0;
194
- let pointerStrength = 0;
195
- let targetX = 0;
196
- let targetY = 0;
197
- let targetStrength = 0;
198
- function readDarkMode() {
199
- const root = document.documentElement;
200
- if (root.classList.contains("dark"))
201
- return true;
202
- if (root.classList.contains("light"))
203
- return false;
204
- const dataTheme = root.getAttribute("data-theme");
205
- if (dataTheme === "dark")
206
- return true;
207
- if (dataTheme === "light")
208
- return false;
209
- return (window.matchMedia?.("(prefers-color-scheme: dark)").matches ?? false);
210
- }
211
- function readTheme() {
212
- const dark = readDarkMode();
213
- return dark
214
- ? {
215
- bg: [10 / 255, 10 / 255, 10 / 255],
216
- fg: [174 / 255, 173 / 255, 172 / 255],
217
- brightness: 3,
218
- }
219
- : {
220
- bg: [250 / 255, 249 / 255, 245 / 255],
221
- fg: [0, 103 / 255, 127 / 255],
222
- brightness: 1.15,
223
- };
224
- }
225
- let theme = readTheme();
226
- function easePointer(allowPointer) {
227
- if (!allowPointer) {
228
- pointerStrength = 0;
229
- return;
230
- }
231
- pointerX += (targetX - pointerX) * 0.12;
232
- pointerY += (targetY - pointerY) * 0.12;
233
- pointerStrength += (targetStrength - pointerStrength) * 0.08;
234
- if (pointerStrength < 0.001 && targetStrength === 0) {
235
- pointerStrength = 0;
236
- }
237
- }
238
- function draw(timeSeconds, allowPointer = !reducedMotion) {
239
- easePointer(allowPointer);
240
- gl.uniform1f(uTime, timeSeconds);
241
- gl.uniform2f(uRes, canvas.width, canvas.height);
242
- gl.uniform3f(uPointer, pointerX, pointerY, pointerStrength);
243
- gl.uniform3f(uFgColor, theme.fg[0], theme.fg[1], theme.fg[2]);
244
- gl.uniform3f(uBgColor, theme.bg[0], theme.bg[1], theme.bg[2]);
245
- gl.uniform1f(uBrightness, theme.brightness);
246
- gl.uniform1f(uTransparent, transparent ? 1 : 0);
247
- gl.drawArrays(gl.TRIANGLES, 0, 6);
248
- }
249
- function resize() {
250
- const w = container.clientWidth;
251
- const h = container.clientHeight;
252
- dpr = Math.min(window.devicePixelRatio, 1.5);
253
- canvas.width = w * dpr;
254
- canvas.height = h * dpr;
255
- canvas.style.width = w + "px";
256
- canvas.style.height = h + "px";
257
- gl.viewport(0, 0, canvas.width, canvas.height);
258
- if (!hasPointer) {
259
- pointerX = targetX = canvas.width * 0.5;
260
- pointerY = targetY = canvas.height * 0.5;
261
- }
262
- }
263
- function handlePointerMove(event) {
264
- const rect = container.getBoundingClientRect();
265
- if (rect.width <= 0 || rect.height <= 0)
266
- return;
267
- const x = event.clientX - rect.left;
268
- const y = event.clientY - rect.top;
269
- const inside = x >= 0 && x <= rect.width && y >= 0 && y <= rect.height;
270
- hasPointer = true;
271
- targetX = x * dpr;
272
- targetY = (rect.height - y) * dpr;
273
- targetStrength = inside ? 1 : 0;
274
- }
275
- function fadePointer() {
276
- targetStrength = 0;
277
- }
278
- resize();
279
- window.addEventListener("resize", resize);
280
- window.addEventListener("pointermove", handlePointerMove, {
281
- passive: true,
282
- });
283
- window.addEventListener("mousemove", handlePointerMove, {
284
- passive: true,
285
- });
286
- document.addEventListener("pointerleave", fadePointer, {
287
- passive: true,
288
- });
289
- window.addEventListener("blur", fadePointer);
290
- const observer = new MutationObserver(() => {
291
- theme = readTheme();
292
- if (reducedMotion)
293
- draw(20, false);
294
- });
295
- observer.observe(document.documentElement, {
296
- attributes: true,
297
- attributeFilter: ["class", "data-theme"],
298
- });
299
- if (!shaderEpoch)
300
- shaderEpoch = performance.now();
301
- const startTime = shaderEpoch;
302
- let lastFrame = 0;
303
- const frameBudget = 1000 / Math.max(1, frameRate);
304
- const reducedMotionStaticTime = 20;
305
- function render(now) {
306
- if (reducedMotion) {
307
- rafRef.current = 0;
308
- return;
309
- }
310
- rafRef.current = requestAnimationFrame(render);
311
- if (now - lastFrame < frameBudget)
312
- return;
313
- lastFrame = now;
314
- const rect = container.getBoundingClientRect();
315
- if (rect.bottom < 0 || rect.top > window.innerHeight)
316
- return;
317
- draw((now - startTime) * 0.001);
318
- }
319
- function startAnimation() {
320
- if (!rafRef.current) {
321
- rafRef.current = requestAnimationFrame(render);
322
- }
323
- }
324
- function stopAnimation() {
325
- if (rafRef.current) {
326
- cancelAnimationFrame(rafRef.current);
327
- rafRef.current = 0;
328
- }
329
- }
330
- function handleReducedMotionChange() {
331
- reducedMotion = reducedMotionQuery?.matches ?? false;
332
- if (reducedMotion) {
333
- stopAnimation();
334
- lastFrame = 0;
335
- draw(reducedMotionStaticTime, false);
336
- }
337
- else {
338
- startAnimation();
339
- }
340
- }
341
- draw(reducedMotion
342
- ? reducedMotionStaticTime
343
- : (performance.now() - startTime) * 0.001, !reducedMotion);
344
- if (reducedMotionQuery) {
345
- reducedMotionQuery.addEventListener("change", handleReducedMotionChange);
346
- }
347
- if (!reducedMotion)
348
- startAnimation();
349
- return () => {
350
- stopAnimation();
351
- if (reducedMotionQuery) {
352
- reducedMotionQuery.removeEventListener("change", handleReducedMotionChange);
353
- }
354
- observer.disconnect();
355
- window.removeEventListener("resize", resize);
356
- window.removeEventListener("pointermove", handlePointerMove);
357
- window.removeEventListener("mousemove", handlePointerMove);
358
- document.removeEventListener("pointerleave", fadePointer);
359
- window.removeEventListener("blur", fadePointer);
360
- gl.deleteProgram(program);
361
- gl.deleteShader(vs);
362
- gl.deleteShader(fs);
363
- gl.deleteBuffer(buf);
364
- gl.getExtension("WEBGL_lose_context")?.loseContext();
365
- };
366
- }, [frameRate, transparent]);
367
- return (_jsx("div", { ref: containerRef, "aria-hidden": "true", className: className, style: { width: "100%", height: "100%", pointerEvents: "none" }, "data-agent-native-starfield": true, "data-agent-native-starfield-transparent": transparent ? "true" : undefined, children: _jsx("canvas", { ref: canvasRef, style: { display: "block", width: "100%", height: "100%" } }) }));
368
- }
1
+ export { WebGlWaveBackground as StarfieldBackground, } from "./WebGlWaveBackground.js";
369
2
  //# sourceMappingURL=StarfieldBackground.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StarfieldBackground.js","sourceRoot":"","sources":["../../../src/app/shared/StarfieldBackground.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StarfieldBackground.js","sourceRoot":"","sources":["../../../src/app/shared/StarfieldBackground.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,IAAI,mBAAmB,GAE3C,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,5 @@
1
+ export interface WaveBackgroundProps {
2
+ className?: string;
3
+ }
4
+ export declare function WaveBackground({ className }: WaveBackgroundProps): import("react").JSX.Element;
5
+ //# sourceMappingURL=WaveBackground.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WaveBackground.d.ts","sourceRoot":"","sources":["../../../src/app/shared/WaveBackground.tsx"],"names":[],"mappings":"AAQA,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,cAAc,CAAC,EAAE,SAAc,EAAE,EAAE,mBAAmB,+BA+CrE"}
@@ -0,0 +1,34 @@
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback, useEffect, useState } from "react";
3
+ import { HeroOceanBackground } from "./ocean/hero-ocean-background.js";
4
+ import { probeWebgpuSupport } from "./ocean/webgpu-support.js";
5
+ import { WebGlWaveBackground } from "./WebGlWaveBackground.js";
6
+ export function WaveBackground({ className = "" }) {
7
+ const [background, setBackground] = useState("probing");
8
+ useEffect(() => {
9
+ const reduced = window.matchMedia?.("(prefers-reduced-motion: reduce)");
10
+ if (reduced?.matches) {
11
+ setBackground("fallback");
12
+ return;
13
+ }
14
+ let cancelled = false;
15
+ void probeWebgpuSupport().then((support) => {
16
+ if (!cancelled) {
17
+ setBackground(support === "supported" ? "ocean-loading" : "fallback");
18
+ }
19
+ });
20
+ const demoteToFallback = () => {
21
+ if (!cancelled)
22
+ setBackground("fallback");
23
+ };
24
+ reduced?.addEventListener("change", demoteToFallback);
25
+ return () => {
26
+ cancelled = true;
27
+ reduced?.removeEventListener("change", demoteToFallback);
28
+ };
29
+ }, []);
30
+ const handleOceanError = useCallback(() => setBackground("fallback"), []);
31
+ const handleOceanReady = useCallback(() => setBackground("ocean"), []);
32
+ return (_jsxs(_Fragment, { children: [background !== "ocean" ? (_jsx(WebGlWaveBackground, { className: className, style: { opacity: "var(--b-hero-shader-opacity, 0.3)" } })) : null, background === "ocean-loading" || background === "ocean" ? (_jsx(HeroOceanBackground, { className: className, onError: handleOceanError, onReady: handleOceanReady })) : null] }));
33
+ }
34
+ //# sourceMappingURL=WaveBackground.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WaveBackground.js","sourceRoot":"","sources":["../../../src/app/shared/WaveBackground.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAQ/D,MAAM,UAAU,cAAc,CAAC,EAAE,SAAS,GAAG,EAAE,EAAuB;IACpE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAa,SAAS,CAAC,CAAC;IAEpE,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,kCAAkC,CAAC,CAAC;QACxE,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;YACrB,aAAa,CAAC,UAAU,CAAC,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,KAAK,kBAAkB,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YACzC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,aAAa,CAAC,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YACxE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,gBAAgB,GAAG,GAAG,EAAE;YAC5B,IAAI,CAAC,SAAS;gBAAE,aAAa,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC,CAAC;QACF,OAAO,EAAE,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QACtD,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;YACjB,OAAO,EAAE,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAC3D,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1E,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAEvE,OAAO,CACL,8BACG,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,CACxB,KAAC,mBAAmB,IAClB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,EAAE,OAAO,EAAE,mCAAmC,EAAE,GACvD,CACH,CAAC,CAAC,CAAC,IAAI,EACP,UAAU,KAAK,eAAe,IAAI,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,CAC1D,KAAC,mBAAmB,IAClB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,gBAAgB,GACzB,CACH,CAAC,CAAC,CAAC,IAAI,IACP,CACJ,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { CSSProperties } from "react";
2
+ export interface WebGlWaveBackgroundProps {
3
+ className?: string;
4
+ frameRate?: number;
5
+ transparent?: boolean;
6
+ style?: CSSProperties;
7
+ }
8
+ export declare function WebGlWaveBackground({ className, frameRate, transparent, style, }: WebGlWaveBackgroundProps): import("react").JSX.Element;
9
+ //# sourceMappingURL=WebGlWaveBackground.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebGlWaveBackground.d.ts","sourceRoot":"","sources":["../../../src/app/shared/WebGlWaveBackground.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAuH3C,MAAM,WAAW,wBAAwB;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAoBD,wBAAgB,mBAAmB,CAAC,EAClC,SAAc,EACd,SAAc,EACd,WAAmB,EACnB,KAAK,GACN,EAAE,wBAAwB,+BA4V1B"}