@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.
- package/agent-native.eject.json +39 -12
- package/dist/app/agentkit/react/components.d.ts.map +1 -1
- package/dist/app/agentkit/react/components.js +292 -23
- package/dist/app/agentkit/react/components.js.map +1 -1
- package/dist/app/agentkit/react/context.d.ts +5 -0
- package/dist/app/agentkit/react/context.d.ts.map +1 -1
- package/dist/app/agentkit/react/context.js +5 -0
- package/dist/app/agentkit/react/context.js.map +1 -1
- package/dist/app/agentkit/react/styles.css +78 -3
- package/dist/app/auth/AuthPage.d.ts.map +1 -1
- package/dist/app/auth/AuthPage.js +7 -14
- package/dist/app/auth/AuthPage.js.map +1 -1
- package/dist/app/auth/server.d.ts +6 -0
- package/dist/app/auth/server.d.ts.map +1 -0
- package/dist/app/auth/server.js +19 -0
- package/dist/app/auth/server.js.map +1 -0
- package/dist/app/chat/AgentKitAssistantChat.d.ts.map +1 -1
- package/dist/app/chat/AgentKitAssistantChat.js +164 -83
- package/dist/app/chat/AgentKitAssistantChat.js.map +1 -1
- package/dist/app/chat/AgentSidebar.d.ts +2 -1
- package/dist/app/chat/AgentSidebar.d.ts.map +1 -1
- package/dist/app/chat/AgentSidebar.js +2 -2
- package/dist/app/chat/AgentSidebar.js.map +1 -1
- package/dist/app/chat/agentkit-chat/guided-questions.d.ts.map +1 -1
- package/dist/app/chat/agentkit-chat/guided-questions.js +13 -3
- package/dist/app/chat/agentkit-chat/guided-questions.js.map +1 -1
- package/dist/app/chat/chat/surface-types.d.ts +2 -0
- package/dist/app/chat/chat/surface-types.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/ar-SA.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/ar-SA.js +41 -0
- package/dist/app/i18n/catalogs/ar-SA.js.map +1 -1
- package/dist/app/i18n/catalogs/de-DE.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/de-DE.js +41 -0
- package/dist/app/i18n/catalogs/de-DE.js.map +1 -1
- package/dist/app/i18n/catalogs/en-US.d.ts +41 -0
- package/dist/app/i18n/catalogs/en-US.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/en-US.js +41 -0
- package/dist/app/i18n/catalogs/en-US.js.map +1 -1
- package/dist/app/i18n/catalogs/es-ES.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/es-ES.js +41 -0
- package/dist/app/i18n/catalogs/es-ES.js.map +1 -1
- package/dist/app/i18n/catalogs/fr-FR.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/fr-FR.js +41 -0
- package/dist/app/i18n/catalogs/fr-FR.js.map +1 -1
- package/dist/app/i18n/catalogs/hi-IN.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/hi-IN.js +41 -0
- package/dist/app/i18n/catalogs/hi-IN.js.map +1 -1
- package/dist/app/i18n/catalogs/ja-JP.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/ja-JP.js +41 -0
- package/dist/app/i18n/catalogs/ja-JP.js.map +1 -1
- package/dist/app/i18n/catalogs/ko-KR.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/ko-KR.js +41 -0
- package/dist/app/i18n/catalogs/ko-KR.js.map +1 -1
- package/dist/app/i18n/catalogs/pt-BR.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/pt-BR.js +41 -0
- package/dist/app/i18n/catalogs/pt-BR.js.map +1 -1
- package/dist/app/i18n/catalogs/zh-CN.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/zh-CN.js +41 -0
- package/dist/app/i18n/catalogs/zh-CN.js.map +1 -1
- package/dist/app/i18n/catalogs/zh-TW.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/zh-TW.js +41 -0
- package/dist/app/i18n/catalogs/zh-TW.js.map +1 -1
- package/dist/app/shared/StarfieldBackground.d.ts +1 -6
- package/dist/app/shared/StarfieldBackground.d.ts.map +1 -1
- package/dist/app/shared/StarfieldBackground.js +1 -368
- package/dist/app/shared/StarfieldBackground.js.map +1 -1
- package/dist/app/shared/WaveBackground.d.ts +5 -0
- package/dist/app/shared/WaveBackground.d.ts.map +1 -0
- package/dist/app/shared/WaveBackground.js +34 -0
- package/dist/app/shared/WaveBackground.js.map +1 -0
- package/dist/app/shared/WebGlWaveBackground.d.ts +9 -0
- package/dist/app/shared/WebGlWaveBackground.d.ts.map +1 -0
- package/dist/app/shared/WebGlWaveBackground.js +433 -0
- package/dist/app/shared/WebGlWaveBackground.js.map +1 -0
- package/dist/app/shared/index.d.ts +1 -0
- package/dist/app/shared/index.d.ts.map +1 -1
- package/dist/app/shared/index.js +1 -0
- package/dist/app/shared/index.js.map +1 -1
- package/dist/app/shared/ocean/bloom-blur.wgsl +43 -0
- package/dist/app/shared/ocean/bloom-blur.wgsl.js +1 -0
- package/dist/app/shared/ocean/bloom-bright.wgsl +21 -0
- package/dist/app/shared/ocean/bloom-bright.wgsl.js +1 -0
- package/dist/app/shared/ocean/bloom-composite.wgsl +40 -0
- package/dist/app/shared/ocean/bloom-composite.wgsl.js +1 -0
- package/dist/app/shared/ocean/brand-colors.d.ts +9 -0
- package/dist/app/shared/ocean/brand-colors.d.ts.map +1 -0
- package/dist/app/shared/ocean/brand-colors.js +45 -0
- package/dist/app/shared/ocean/brand-colors.js.map +1 -0
- package/dist/app/shared/ocean/camera.d.ts +5 -0
- package/dist/app/shared/ocean/camera.d.ts.map +1 -0
- package/dist/app/shared/ocean/camera.js +24 -0
- package/dist/app/shared/ocean/camera.js.map +1 -0
- package/dist/app/shared/ocean/hero-ocean-background.d.ts +8 -0
- package/dist/app/shared/ocean/hero-ocean-background.d.ts.map +1 -0
- package/dist/app/shared/ocean/hero-ocean-background.js +186 -0
- package/dist/app/shared/ocean/hero-ocean-background.js.map +1 -0
- package/dist/app/shared/ocean/ifft-stage.wgsl +36 -0
- package/dist/app/shared/ocean/ifft-stage.wgsl.js +1 -0
- package/dist/app/shared/ocean/initial-spectrum.wgsl +36 -0
- package/dist/app/shared/ocean/initial-spectrum.wgsl.js +1 -0
- package/dist/app/shared/ocean/noise.wgsl +24 -0
- package/dist/app/shared/ocean/noise.wgsl.js +1 -0
- package/dist/app/shared/ocean/normal-foam.wgsl +32 -0
- package/dist/app/shared/ocean/normal-foam.wgsl.js +1 -0
- package/dist/app/shared/ocean/ocean-colors.d.ts +6 -0
- package/dist/app/shared/ocean/ocean-colors.d.ts.map +1 -0
- package/dist/app/shared/ocean/ocean-colors.js +6 -0
- package/dist/app/shared/ocean/ocean-colors.js.map +1 -0
- package/dist/app/shared/ocean/ocean-common.wgsl +15 -0
- package/dist/app/shared/ocean/ocean-common.wgsl.js +1 -0
- package/dist/app/shared/ocean/ocean-graph.d.ts +12 -0
- package/dist/app/shared/ocean/ocean-graph.d.ts.map +1 -0
- package/dist/app/shared/ocean/ocean-graph.js +16 -0
- package/dist/app/shared/ocean/ocean-graph.js.map +1 -0
- package/dist/app/shared/ocean/particles.wgsl +139 -0
- package/dist/app/shared/ocean/particles.wgsl.js +1 -0
- package/dist/app/shared/ocean/present.wgsl +40 -0
- package/dist/app/shared/ocean/present.wgsl.js +1 -0
- package/dist/app/shared/ocean/renderer.d.ts +66 -0
- package/dist/app/shared/ocean/renderer.d.ts.map +1 -0
- package/dist/app/shared/ocean/renderer.js +535 -0
- package/dist/app/shared/ocean/renderer.js.map +1 -0
- package/dist/app/shared/ocean/spectrum.wgsl +35 -0
- package/dist/app/shared/ocean/spectrum.wgsl.js +1 -0
- package/dist/app/shared/ocean/tuning.d.ts +48 -0
- package/dist/app/shared/ocean/tuning.d.ts.map +1 -0
- package/dist/app/shared/ocean/tuning.js +74 -0
- package/dist/app/shared/ocean/tuning.js.map +1 -0
- package/dist/app/shared/ocean/webgpu-support.d.ts +3 -0
- package/dist/app/shared/ocean/webgpu-support.d.ts.map +1 -0
- package/dist/app/shared/ocean/webgpu-support.js +13 -0
- package/dist/app/shared/ocean/webgpu-support.js.map +1 -0
- package/dist/app/sharing/AccessRequestApprovalPage.d.ts +23 -0
- package/dist/app/sharing/AccessRequestApprovalPage.d.ts.map +1 -0
- package/dist/app/sharing/AccessRequestApprovalPage.js +95 -0
- package/dist/app/sharing/AccessRequestApprovalPage.js.map +1 -0
- package/dist/app/sharing/AccessRequestsSection.d.ts +5 -0
- package/dist/app/sharing/AccessRequestsSection.d.ts.map +1 -0
- package/dist/app/sharing/AccessRequestsSection.js +47 -0
- package/dist/app/sharing/AccessRequestsSection.js.map +1 -0
- package/dist/app/sharing/ResourceAccessScreen.d.ts +53 -0
- package/dist/app/sharing/ResourceAccessScreen.d.ts.map +1 -0
- package/dist/app/sharing/ResourceAccessScreen.js +132 -0
- package/dist/app/sharing/ResourceAccessScreen.js.map +1 -0
- package/dist/app/sharing/ShareButton.d.ts.map +1 -1
- package/dist/app/sharing/ShareButton.js +4 -2
- package/dist/app/sharing/ShareButton.js.map +1 -1
- package/dist/app/sharing/ShareDialog.d.ts.map +1 -1
- package/dist/app/sharing/ShareDialog.js +7 -5
- package/dist/app/sharing/ShareDialog.js.map +1 -1
- package/dist/app/sharing/index.d.ts +2 -0
- package/dist/app/sharing/index.d.ts.map +1 -1
- package/dist/app/sharing/index.js +2 -0
- package/dist/app/sharing/index.js.map +1 -1
- package/dist/app/styles/agent-native.css +21 -1
- package/dist/app/styles/tokens/agent-kit.css +3 -1
- package/dist/composer/AgentSuggestionBar.d.ts +1 -1
- package/dist/composer/AgentSuggestionBar.d.ts.map +1 -1
- package/dist/composer/AgentSuggestionBar.js +75 -6
- package/dist/composer/AgentSuggestionBar.js.map +1 -1
- package/package.json +14 -4
- package/src/app/agentkit/react/components.tsx +492 -60
- package/src/app/agentkit/react/context.tsx +10 -0
- package/src/app/agentkit/react/lifecycle.spec.tsx +487 -1
- package/src/app/agentkit/react/styles.css +78 -3
- package/src/app/auth/AuthPage.spec.tsx +11 -7
- package/src/app/auth/AuthPage.tsx +16 -35
- package/src/app/auth/server.spec.ts +68 -0
- package/src/app/auth/server.ts +29 -0
- package/src/app/chat/AgentKitAssistantChat.spec.tsx +287 -290
- package/src/app/chat/AgentKitAssistantChat.tsx +219 -116
- package/src/app/chat/AgentSidebar.tsx +3 -0
- package/src/app/chat/agentkit-chat/guided-questions.flow.spec.tsx +85 -0
- package/src/app/chat/agentkit-chat/guided-questions.tsx +12 -5
- package/src/app/chat/chat/surface-types.ts +2 -0
- package/src/app/i18n/catalogs/ar-SA.ts +44 -0
- package/src/app/i18n/catalogs/de-DE.ts +55 -0
- package/src/app/i18n/catalogs/en-US.ts +46 -0
- package/src/app/i18n/catalogs/es-ES.ts +53 -0
- package/src/app/i18n/catalogs/fr-FR.ts +53 -0
- package/src/app/i18n/catalogs/hi-IN.ts +47 -0
- package/src/app/i18n/catalogs/ja-JP.ts +54 -0
- package/src/app/i18n/catalogs/ko-KR.ts +50 -0
- package/src/app/i18n/catalogs/pt-BR.ts +52 -0
- package/src/app/i18n/catalogs/zh-CN.ts +42 -0
- package/src/app/i18n/catalogs/zh-TW.ts +43 -0
- package/src/app/shared/StarfieldBackground.tsx +4 -423
- package/src/app/shared/WaveBackground.spec.tsx +104 -0
- package/src/app/shared/WaveBackground.tsx +60 -0
- package/src/app/shared/WebGlWaveBackground.spec.tsx +106 -0
- package/src/app/shared/WebGlWaveBackground.tsx +499 -0
- package/src/app/shared/index.ts +1 -0
- package/src/app/shared/ocean/bloom-blur.wgsl +43 -0
- package/src/app/shared/ocean/bloom-bright.wgsl +21 -0
- package/src/app/shared/ocean/bloom-composite.wgsl +40 -0
- package/src/app/shared/ocean/brand-colors.ts +49 -0
- package/src/app/shared/ocean/camera.ts +28 -0
- package/src/app/shared/ocean/hero-ocean-background.spec.tsx +369 -0
- package/src/app/shared/ocean/hero-ocean-background.tsx +238 -0
- package/src/app/shared/ocean/ifft-stage.wgsl +36 -0
- package/src/app/shared/ocean/initial-spectrum.wgsl +36 -0
- package/src/app/shared/ocean/noise.wgsl +24 -0
- package/src/app/shared/ocean/normal-foam.wgsl +32 -0
- package/src/app/shared/ocean/ocean-colors.ts +11 -0
- package/src/app/shared/ocean/ocean-common.wgsl +15 -0
- package/src/app/shared/ocean/ocean-graph.ts +29 -0
- package/src/app/shared/ocean/particles.wgsl +139 -0
- package/src/app/shared/ocean/present.wgsl +40 -0
- package/src/app/shared/ocean/renderer.spec.ts +100 -0
- package/src/app/shared/ocean/renderer.ts +693 -0
- package/src/app/shared/ocean/spectrum.wgsl +35 -0
- package/src/app/shared/ocean/tuning.ts +131 -0
- package/src/app/shared/ocean/webgpu-support.ts +12 -0
- package/src/app/sharing/AccessRequestApprovalPage.spec.tsx +276 -0
- package/src/app/sharing/AccessRequestApprovalPage.tsx +307 -0
- package/src/app/sharing/AccessRequestsSection.tsx +163 -0
- package/src/app/sharing/ResourceAccessScreen.spec.tsx +235 -0
- package/src/app/sharing/ResourceAccessScreen.tsx +331 -0
- package/src/app/sharing/ShareButton.spec.tsx +171 -5
- package/src/app/sharing/ShareButton.tsx +15 -2
- package/src/app/sharing/ShareDialog.spec.tsx +71 -2
- package/src/app/sharing/ShareDialog.tsx +24 -2
- package/src/app/sharing/index.ts +2 -0
- package/src/app/styles/agent-native.css +21 -1
- package/src/app/styles/agent-native.spec.ts +16 -3
- package/src/app/styles/tokens/agent-kit.css +3 -1
- package/src/composer/AgentSuggestionBar.overflow.spec.tsx +277 -0
- package/src/composer/AgentSuggestionBar.tsx +113 -8
- 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":"
|
|
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
|
-
|
|
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 @@
|
|
|
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"}
|