react-native-ai-animations 0.0.0-stage → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +174 -2
  3. package/lib/module/brand/index.js +4 -0
  4. package/lib/module/brand/index.js.map +1 -0
  5. package/lib/module/brand/spinning-mark.js +96 -0
  6. package/lib/module/brand/spinning-mark.js.map +1 -0
  7. package/lib/module/chat/effort-bar.js +853 -0
  8. package/lib/module/chat/effort-bar.js.map +1 -0
  9. package/lib/module/chat/index.js +8 -0
  10. package/lib/module/chat/index.js.map +1 -0
  11. package/lib/module/chat/question-card.js +720 -0
  12. package/lib/module/chat/question-card.js.map +1 -0
  13. package/lib/module/chat/reasoning.js +38 -0
  14. package/lib/module/chat/reasoning.js.map +1 -0
  15. package/lib/module/chat/status-row.js +140 -0
  16. package/lib/module/chat/status-row.js.map +1 -0
  17. package/lib/module/chat/thinking-block.js +255 -0
  18. package/lib/module/chat/thinking-block.js.map +1 -0
  19. package/lib/module/index.js +5 -0
  20. package/lib/module/index.js.map +1 -0
  21. package/lib/module/internal/color.js +15 -0
  22. package/lib/module/internal/color.js.map +1 -0
  23. package/lib/module/internal/use-elapsed.js +20 -0
  24. package/lib/module/internal/use-elapsed.js.map +1 -0
  25. package/lib/module/package.json +1 -0
  26. package/lib/module/skia/dot-orb.js +256 -0
  27. package/lib/module/skia/dot-orb.js.map +1 -0
  28. package/lib/module/skia/index.js +8 -0
  29. package/lib/module/skia/index.js.map +1 -0
  30. package/lib/module/skia/liquid-orb.js +303 -0
  31. package/lib/module/skia/liquid-orb.js.map +1 -0
  32. package/lib/module/skia/matrix-orb.js +272 -0
  33. package/lib/module/skia/matrix-orb.js.map +1 -0
  34. package/lib/module/skia/media-generating.js +524 -0
  35. package/lib/module/skia/media-generating.js.map +1 -0
  36. package/lib/module/skia/voice-wave.js +278 -0
  37. package/lib/module/skia/voice-wave.js.map +1 -0
  38. package/lib/module/text/index.js +6 -0
  39. package/lib/module/text/index.js.map +1 -0
  40. package/lib/module/text/shimmer-text.js +122 -0
  41. package/lib/module/text/shimmer-text.js.map +1 -0
  42. package/lib/module/text/spoken-text.js +85 -0
  43. package/lib/module/text/spoken-text.js.map +1 -0
  44. package/lib/module/text/streaming-text.js +135 -0
  45. package/lib/module/text/streaming-text.js.map +1 -0
  46. package/lib/module/theme/index.js +5 -0
  47. package/lib/module/theme/index.js.map +1 -0
  48. package/lib/module/theme/palette.js +45 -0
  49. package/lib/module/theme/palette.js.map +1 -0
  50. package/lib/module/theme/provider.js +65 -0
  51. package/lib/module/theme/provider.js.map +1 -0
  52. package/lib/typescript/package.json +1 -0
  53. package/lib/typescript/src/brand/index.d.ts +2 -0
  54. package/lib/typescript/src/brand/index.d.ts.map +1 -0
  55. package/lib/typescript/src/brand/spinning-mark.d.ts +21 -0
  56. package/lib/typescript/src/brand/spinning-mark.d.ts.map +1 -0
  57. package/lib/typescript/src/chat/effort-bar.d.ts +42 -0
  58. package/lib/typescript/src/chat/effort-bar.d.ts.map +1 -0
  59. package/lib/typescript/src/chat/index.d.ts +6 -0
  60. package/lib/typescript/src/chat/index.d.ts.map +1 -0
  61. package/lib/typescript/src/chat/question-card.d.ts +73 -0
  62. package/lib/typescript/src/chat/question-card.d.ts.map +1 -0
  63. package/lib/typescript/src/chat/reasoning.d.ts +20 -0
  64. package/lib/typescript/src/chat/reasoning.d.ts.map +1 -0
  65. package/lib/typescript/src/chat/status-row.d.ts +20 -0
  66. package/lib/typescript/src/chat/status-row.d.ts.map +1 -0
  67. package/lib/typescript/src/chat/thinking-block.d.ts +35 -0
  68. package/lib/typescript/src/chat/thinking-block.d.ts.map +1 -0
  69. package/lib/typescript/src/index.d.ts +3 -0
  70. package/lib/typescript/src/index.d.ts.map +1 -0
  71. package/lib/typescript/src/internal/color.d.ts +2 -0
  72. package/lib/typescript/src/internal/color.d.ts.map +1 -0
  73. package/lib/typescript/src/internal/use-elapsed.d.ts +3 -0
  74. package/lib/typescript/src/internal/use-elapsed.d.ts.map +1 -0
  75. package/lib/typescript/src/skia/dot-orb.d.ts +16 -0
  76. package/lib/typescript/src/skia/dot-orb.d.ts.map +1 -0
  77. package/lib/typescript/src/skia/index.d.ts +6 -0
  78. package/lib/typescript/src/skia/index.d.ts.map +1 -0
  79. package/lib/typescript/src/skia/liquid-orb.d.ts +20 -0
  80. package/lib/typescript/src/skia/liquid-orb.d.ts.map +1 -0
  81. package/lib/typescript/src/skia/matrix-orb.d.ts +12 -0
  82. package/lib/typescript/src/skia/matrix-orb.d.ts.map +1 -0
  83. package/lib/typescript/src/skia/media-generating.d.ts +59 -0
  84. package/lib/typescript/src/skia/media-generating.d.ts.map +1 -0
  85. package/lib/typescript/src/skia/voice-wave.d.ts +17 -0
  86. package/lib/typescript/src/skia/voice-wave.d.ts.map +1 -0
  87. package/lib/typescript/src/text/index.d.ts +4 -0
  88. package/lib/typescript/src/text/index.d.ts.map +1 -0
  89. package/lib/typescript/src/text/shimmer-text.d.ts +13 -0
  90. package/lib/typescript/src/text/shimmer-text.d.ts.map +1 -0
  91. package/lib/typescript/src/text/spoken-text.d.ts +15 -0
  92. package/lib/typescript/src/text/spoken-text.d.ts.map +1 -0
  93. package/lib/typescript/src/text/streaming-text.d.ts +16 -0
  94. package/lib/typescript/src/text/streaming-text.d.ts.map +1 -0
  95. package/lib/typescript/src/theme/index.d.ts +3 -0
  96. package/lib/typescript/src/theme/index.d.ts.map +1 -0
  97. package/lib/typescript/src/theme/palette.d.ts +33 -0
  98. package/lib/typescript/src/theme/palette.d.ts.map +1 -0
  99. package/lib/typescript/src/theme/provider.d.ts +13 -0
  100. package/lib/typescript/src/theme/provider.d.ts.map +1 -0
  101. package/package.json +133 -4
  102. package/src/brand/index.ts +5 -0
  103. package/src/brand/spinning-mark.tsx +118 -0
  104. package/src/chat/effort-bar.tsx +748 -0
  105. package/src/chat/index.ts +45 -0
  106. package/src/chat/question-card.tsx +649 -0
  107. package/src/chat/reasoning.ts +30 -0
  108. package/src/chat/status-row.tsx +127 -0
  109. package/src/chat/thinking-block.tsx +250 -0
  110. package/src/index.ts +2 -0
  111. package/src/internal/color.ts +18 -0
  112. package/src/internal/use-elapsed.ts +21 -0
  113. package/src/skia/dot-orb.tsx +248 -0
  114. package/src/skia/index.ts +34 -0
  115. package/src/skia/liquid-orb.tsx +274 -0
  116. package/src/skia/matrix-orb.tsx +337 -0
  117. package/src/skia/media-generating.tsx +389 -0
  118. package/src/skia/voice-wave.tsx +215 -0
  119. package/src/text/index.ts +3 -0
  120. package/src/text/shimmer-text.tsx +140 -0
  121. package/src/text/spoken-text.tsx +82 -0
  122. package/src/text/streaming-text.tsx +144 -0
  123. package/src/theme/index.ts +11 -0
  124. package/src/theme/palette.ts +62 -0
  125. package/src/theme/provider.tsx +54 -0
@@ -0,0 +1,272 @@
1
+ "use strict";
2
+
3
+ import { Canvas, Fill, Shader, Skia } from "@shopify/react-native-skia";
4
+ import { useEffect, useMemo } from "react";
5
+ import { PixelRatio, StyleSheet } from "react-native";
6
+ import { useDerivedValue, useFrameCallback, useReducedMotion, useSharedValue } from "react-native-reanimated";
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ const STATES = ["idle", "listening", "thinking"];
9
+ const STATE_SCALE = [0.88, 1, 0.92];
10
+ const STIFFNESS = 180;
11
+ const DAMPING = 26;
12
+ const ATTACK = 0.22;
13
+ const RELEASE = 0.08;
14
+ const BLEND = 0.16;
15
+ const FRAME_RATE = 60;
16
+ const MAX_DELTA = 0.05;
17
+ const MIN_DOTS = 3;
18
+ const DEFAULT_DOTS = 11;
19
+ const DEFAULT_SIZE = 240;
20
+ const DEFAULT_COLOR = "#FFFFFF";
21
+ const ORB_SPAN = 0.74;
22
+ const ORB_DOT = 0.6;
23
+ const ORB_BLOOM = 1.7;
24
+ const ORB_CUTOFF = 1.12;
25
+ const ORB_REACH = 1;
26
+ const COVER_DOT = 0.42;
27
+ const COVER_BLOOM = 0.55;
28
+ const COVER_CUTOFF = 2.0;
29
+ const COVER_MARGIN = 0.85;
30
+ const COVER_REACH = 0.7;
31
+ const MATRIX_ORB = Skia.RuntimeEffect.Make(`
32
+ uniform float2 resolution;
33
+ uniform float2 counts;
34
+ uniform float spacing;
35
+ uniform float dotScale;
36
+ uniform float bloom;
37
+ uniform float cutoff;
38
+ uniform float reach;
39
+ uniform float time;
40
+ uniform float amplitude;
41
+ uniform float scale;
42
+ uniform float3 weights;
43
+ uniform float feather;
44
+ uniform float4 tint;
45
+
46
+ float orbiter(float2 n, float radius, float speed, float phase, float spread) {
47
+ float angle = time * speed + phase;
48
+ float2 delta = n - float2(cos(angle), sin(angle)) * radius;
49
+ return exp(-dot(delta, delta) / (spread * spread));
50
+ }
51
+
52
+ float idleIntensity(float d) {
53
+ return 0.62 + 0.12 * sin(time * 1.05 - d * 2.4);
54
+ }
55
+
56
+ float listeningIntensity(float d) {
57
+ float ripple = 0.5 + 0.5 * sin(d * 4.2 - time * 3.0);
58
+ return 0.32 + amplitude * (0.34 + 0.38 * ripple);
59
+ }
60
+
61
+ float thinkingIntensity(float2 n) {
62
+ float heat = orbiter(n, 0.62, 2.2, 0.0, 0.42)
63
+ + orbiter(n, 0.4, -1.7, 2.1, 0.36)
64
+ + orbiter(n, 0.8, 1.15, 4.0, 0.34);
65
+ return 0.26 + 0.8 * min(1.0, heat);
66
+ }
67
+
68
+ half4 main(float2 xy) {
69
+ float2 span = (counts - 1.0) * 0.5;
70
+ float maxRadius = spacing * dotScale;
71
+ float2 center = resolution * 0.5;
72
+ float stride = spacing * scale;
73
+ float2 origin = floor((xy - center) / stride + span + 0.5);
74
+
75
+ float cover = 0.0;
76
+
77
+ for (int iy = 0; iy < 3; iy++) {
78
+ for (int ix = 0; ix < 3; ix++) {
79
+ float2 cell = origin + float2(float(ix) - 1.0, float(iy) - 1.0);
80
+ float2 edge = min(cell, counts - 1.0 - cell);
81
+
82
+ if (min(edge.x, edge.y) >= 0.0) {
83
+ float2 n = (cell - span) / span;
84
+ float d = length(n);
85
+
86
+ if (d <= cutoff) {
87
+ float blended = weights.x * idleIntensity(d)
88
+ + weights.y * listeningIntensity(d)
89
+ + weights.z * thinkingIntensity(n / reach);
90
+ float intensity = clamp(blended, 0.0, 1.0);
91
+ float radius = maxRadius * exp(-d * d * bloom) * intensity * scale;
92
+
93
+ if (radius >= feather) {
94
+ float dist = length(xy - (center + (cell - span) * stride));
95
+ cover = max(
96
+ cover,
97
+ 1.0 - smoothstep(radius - feather, radius + feather, dist)
98
+ );
99
+ }
100
+ }
101
+ }
102
+ }
103
+ }
104
+
105
+ float alpha = cover * tint.a;
106
+ return half4(half3(tint.rgb) * half(alpha), half(alpha));
107
+ }
108
+ `);
109
+ function stateIndex(state) {
110
+ return Math.max(STATES.indexOf(state), 0);
111
+ }
112
+ function oneHot(index) {
113
+ return STATES.map((_, position) => position === index ? 1 : 0);
114
+ }
115
+ function envelope(time) {
116
+ "worklet";
117
+
118
+ const slow = 0.5 + 0.5 * Math.sin(time * 0.62 + 0.4);
119
+ const fast = 0.5 + 0.5 * Math.sin(time * 1.9 + 1.1);
120
+ return 0.22 + 0.78 * (0.45 + 0.55 * slow) * fast;
121
+ }
122
+ function levelAt(level, time) {
123
+ "worklet";
124
+
125
+ if (level === undefined || !Number.isFinite(level)) {
126
+ return envelope(time);
127
+ }
128
+ return Math.min(1, Math.max(0, level));
129
+ }
130
+ function orbField(size, dots) {
131
+ "worklet";
132
+
133
+ return {
134
+ counts: [dots, dots],
135
+ spacing: size * ORB_SPAN / (dots - 1),
136
+ dotScale: ORB_DOT,
137
+ bloom: ORB_BLOOM,
138
+ cutoff: ORB_CUTOFF,
139
+ reach: ORB_REACH
140
+ };
141
+ }
142
+ function coverField(width, height, dots) {
143
+ "worklet";
144
+
145
+ const spacing = Math.min(width, height) / (dots - 1);
146
+ const across = Math.ceil(width / (spacing * COVER_MARGIN)) + 1;
147
+ const down = Math.ceil(height / (spacing * COVER_MARGIN)) + 1;
148
+ return {
149
+ counts: [Math.max(across, MIN_DOTS), Math.max(down, MIN_DOTS)],
150
+ spacing,
151
+ dotScale: COVER_DOT,
152
+ bloom: COVER_BLOOM,
153
+ cutoff: COVER_CUTOFF,
154
+ reach: COVER_REACH
155
+ };
156
+ }
157
+ export function MatrixOrb({
158
+ state = "idle",
159
+ level,
160
+ size = DEFAULT_SIZE,
161
+ cover = false,
162
+ color = DEFAULT_COLOR,
163
+ stateColors,
164
+ dots = DEFAULT_DOTS
165
+ }) {
166
+ const reduceMotion = useReducedMotion();
167
+ const grid = Math.max(MIN_DOTS, Math.round(dots));
168
+ const feather = 0.5 / PixelRatio.get();
169
+ const tints = useMemo(() => STATES.map(name => Array.from(Skia.Color(stateColors?.[name] ?? color))), [color, stateColors]);
170
+ const layout = useSharedValue(cover ? {
171
+ width: 0,
172
+ height: 0
173
+ } : {
174
+ width: size,
175
+ height: size
176
+ });
177
+ const target = useSharedValue(stateIndex(state));
178
+ const requested = useSharedValue(level);
179
+ const motion = useSharedValue({
180
+ stamp: 0,
181
+ time: 0,
182
+ amplitude: 0,
183
+ scale: STATE_SCALE[stateIndex(state)],
184
+ velocity: 0,
185
+ weights: oneHot(stateIndex(state))
186
+ });
187
+ useEffect(() => {
188
+ const index = stateIndex(state);
189
+ target.value = index;
190
+ requested.value = level;
191
+ if (reduceMotion) {
192
+ motion.value = {
193
+ stamp: 0,
194
+ time: 0,
195
+ amplitude: levelAt(level, 0),
196
+ scale: STATE_SCALE[index],
197
+ velocity: 0,
198
+ weights: oneHot(index)
199
+ };
200
+ }
201
+ }, [level, motion, reduceMotion, requested, state, target]);
202
+ useFrameCallback(info => {
203
+ const current = target.value;
204
+ const previous = motion.value;
205
+ const elapsed = previous.stamp === 0 ? 0 : info.timestamp - previous.stamp;
206
+ const delta = Math.min(elapsed / 1000, MAX_DELTA);
207
+ if (delta <= 0) {
208
+ motion.value = {
209
+ ...previous,
210
+ stamp: info.timestamp
211
+ };
212
+ return;
213
+ }
214
+ const time = previous.time + delta;
215
+ const desired = levelAt(requested.value, time);
216
+ const rate = desired > previous.amplitude ? ATTACK : RELEASE;
217
+ const amplitude = previous.amplitude + (desired - previous.amplitude) * (1 - Math.pow(1 - rate, delta * FRAME_RATE));
218
+ const step = 1 - Math.pow(1 - BLEND, delta * FRAME_RATE);
219
+ const weights = previous.weights.map((weight, index) => weight + ((index === current ? 1 : 0) - weight) * step);
220
+ const velocity = previous.velocity + (-STIFFNESS * (previous.scale - STATE_SCALE[current]) - DAMPING * previous.velocity) * delta;
221
+ motion.value = {
222
+ stamp: info.timestamp,
223
+ time,
224
+ amplitude,
225
+ scale: previous.scale + velocity * delta,
226
+ velocity,
227
+ weights
228
+ };
229
+ }, !reduceMotion);
230
+ const uniforms = useDerivedValue(() => {
231
+ const width = Math.max(layout.value.width, 1);
232
+ const height = Math.max(layout.value.height, 1);
233
+ const field = cover ? coverField(width, height, grid) : orbField(Math.min(width, height), grid);
234
+ return {
235
+ resolution: [width, height],
236
+ counts: field.counts,
237
+ spacing: field.spacing,
238
+ dotScale: field.dotScale,
239
+ bloom: field.bloom,
240
+ cutoff: field.cutoff,
241
+ reach: field.reach,
242
+ time: motion.value.time,
243
+ amplitude: motion.value.amplitude,
244
+ scale: motion.value.scale,
245
+ weights: motion.value.weights,
246
+ feather,
247
+ tint: [0, 1, 2, 3].map(channel => tints.reduce((sum, value, index) => sum + value[channel] * (motion.value.weights[index] ?? 0), 0) / Math.max(motion.value.weights.reduce((sum, weight) => sum + weight, 0), 0.0001))
248
+ };
249
+ });
250
+ if (!MATRIX_ORB) {
251
+ return null;
252
+ }
253
+ return /*#__PURE__*/_jsx(Canvas, {
254
+ onSize: layout,
255
+ style: cover ? styles.cover : {
256
+ width: size,
257
+ height: size
258
+ },
259
+ children: /*#__PURE__*/_jsx(Fill, {
260
+ children: /*#__PURE__*/_jsx(Shader, {
261
+ source: MATRIX_ORB,
262
+ uniforms: uniforms
263
+ })
264
+ })
265
+ });
266
+ }
267
+ const styles = StyleSheet.create({
268
+ cover: {
269
+ flex: 1
270
+ }
271
+ });
272
+ //# sourceMappingURL=matrix-orb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Canvas","Fill","Shader","Skia","useEffect","useMemo","PixelRatio","StyleSheet","useDerivedValue","useFrameCallback","useReducedMotion","useSharedValue","jsx","_jsx","STATES","STATE_SCALE","STIFFNESS","DAMPING","ATTACK","RELEASE","BLEND","FRAME_RATE","MAX_DELTA","MIN_DOTS","DEFAULT_DOTS","DEFAULT_SIZE","DEFAULT_COLOR","ORB_SPAN","ORB_DOT","ORB_BLOOM","ORB_CUTOFF","ORB_REACH","COVER_DOT","COVER_BLOOM","COVER_CUTOFF","COVER_MARGIN","COVER_REACH","MATRIX_ORB","RuntimeEffect","Make","stateIndex","state","Math","max","indexOf","oneHot","index","map","_","position","envelope","time","slow","sin","fast","levelAt","level","undefined","Number","isFinite","min","orbField","size","dots","counts","spacing","dotScale","bloom","cutoff","reach","coverField","width","height","across","ceil","down","MatrixOrb","cover","color","stateColors","reduceMotion","grid","round","feather","get","tints","name","Array","from","Color","layout","target","requested","motion","stamp","amplitude","scale","velocity","weights","value","info","current","previous","elapsed","timestamp","delta","desired","rate","pow","step","weight","uniforms","field","resolution","tint","channel","reduce","sum","onSize","style","styles","children","source","create","flex"],"sourceRoot":"../../../src","sources":["skia/matrix-orb.tsx"],"mappings":"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","ignoreList":[]}