stream-chat-react-native-core 9.10.2 → 9.11.0-beta.1
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/lib/commonjs/ai-components/README.md +50 -2
- package/lib/commonjs/ai-components/index.js +24 -0
- package/lib/commonjs/ai-components/index.js.map +1 -1
- package/lib/commonjs/ai-components/message-composer/ComposerView.js +4 -2
- package/lib/commonjs/ai-components/message-composer/ComposerView.js.map +1 -1
- package/lib/commonjs/ai-components/message-composer/SpeechToTextButton.js +4 -1
- package/lib/commonjs/ai-components/message-composer/SpeechToTextButton.js.map +1 -1
- package/lib/commonjs/ai-components/native/AIDictation.js +6 -0
- package/lib/commonjs/ai-components/native/AIDictation.js.map +1 -1
- package/lib/commonjs/ai-components/store/dictation/store.js +4 -2
- package/lib/commonjs/ai-components/store/dictation/store.js.map +1 -1
- package/lib/commonjs/ai-components/store/dictation/useDictationState.js +4 -2
- package/lib/commonjs/ai-components/store/dictation/useDictationState.js.map +1 -1
- package/lib/commonjs/ai-components/store/index.js +22 -0
- package/lib/commonjs/ai-components/store/index.js.map +1 -1
- package/lib/commonjs/ai-components/theme.js +3 -0
- package/lib/commonjs/ai-components/theme.js.map +1 -1
- package/lib/commonjs/ai-components/transcription/useDictation.js +7 -3
- package/lib/commonjs/ai-components/transcription/useDictation.js.map +1 -1
- package/lib/commonjs/ai-components/transcription/useDictationAudioLevel.js +32 -0
- package/lib/commonjs/ai-components/transcription/useDictationAudioLevel.js.map +1 -0
- package/lib/commonjs/ai-components/voice-visualization/VoiceGlow.js +79 -0
- package/lib/commonjs/ai-components/voice-visualization/VoiceGlow.js.map +1 -0
- package/lib/commonjs/ai-components/voice-visualization/VoiceVisualizationView.js +147 -0
- package/lib/commonjs/ai-components/voice-visualization/VoiceVisualizationView.js.map +1 -0
- package/lib/commonjs/ai-components/voice-visualization/VoiceWave.js +58 -0
- package/lib/commonjs/ai-components/voice-visualization/VoiceWave.js.map +1 -0
- package/lib/commonjs/ai-components/voice-visualization/bounce.js +60 -0
- package/lib/commonjs/ai-components/voice-visualization/bounce.js.map +1 -0
- package/lib/commonjs/ai-components/voice-visualization/driver.js +208 -0
- package/lib/commonjs/ai-components/voice-visualization/driver.js.map +1 -0
- package/lib/commonjs/ai-components/voice-visualization/glowShader.js +218 -0
- package/lib/commonjs/ai-components/voice-visualization/glowShader.js.map +1 -0
- package/lib/commonjs/ai-components/voice-visualization/index.js +18 -0
- package/lib/commonjs/ai-components/voice-visualization/index.js.map +1 -0
- package/lib/commonjs/ai-components/voice-visualization/math.js +70 -0
- package/lib/commonjs/ai-components/voice-visualization/math.js.map +1 -0
- package/lib/commonjs/ai-components/voice-visualization/palette.js +47 -0
- package/lib/commonjs/ai-components/voice-visualization/palette.js.map +1 -0
- package/lib/commonjs/ai-components/voice-visualization/simplex.js +77 -0
- package/lib/commonjs/ai-components/voice-visualization/simplex.js.map +1 -0
- package/lib/commonjs/ai-components/voice-visualization/styles.js +33 -0
- package/lib/commonjs/ai-components/voice-visualization/styles.js.map +1 -0
- package/lib/commonjs/ai-components/voice-visualization/types.js +4 -0
- package/lib/commonjs/ai-components/voice-visualization/types.js.map +1 -0
- package/lib/commonjs/ai-components/voice-visualization/useReduceMotion.js +28 -0
- package/lib/commonjs/ai-components/voice-visualization/useReduceMotion.js.map +1 -0
- package/lib/commonjs/ai-components/voice-visualization/useVoiceVisualization.js +129 -0
- package/lib/commonjs/ai-components/voice-visualization/useVoiceVisualization.js.map +1 -0
- package/lib/commonjs/ai-components/voice-visualization/waveGeometry.js +124 -0
- package/lib/commonjs/ai-components/voice-visualization/waveGeometry.js.map +1 -0
- package/lib/commonjs/version.json +1 -1
- package/lib/module/ai-components/README.md +50 -2
- package/lib/module/ai-components/index.js +24 -0
- package/lib/module/ai-components/index.js.map +1 -1
- package/lib/module/ai-components/message-composer/ComposerView.js +4 -2
- package/lib/module/ai-components/message-composer/ComposerView.js.map +1 -1
- package/lib/module/ai-components/message-composer/SpeechToTextButton.js +4 -1
- package/lib/module/ai-components/message-composer/SpeechToTextButton.js.map +1 -1
- package/lib/module/ai-components/native/AIDictation.js +6 -0
- package/lib/module/ai-components/native/AIDictation.js.map +1 -1
- package/lib/module/ai-components/store/dictation/store.js +4 -2
- package/lib/module/ai-components/store/dictation/store.js.map +1 -1
- package/lib/module/ai-components/store/dictation/useDictationState.js +4 -2
- package/lib/module/ai-components/store/dictation/useDictationState.js.map +1 -1
- package/lib/module/ai-components/store/index.js +22 -0
- package/lib/module/ai-components/store/index.js.map +1 -1
- package/lib/module/ai-components/theme.js +3 -0
- package/lib/module/ai-components/theme.js.map +1 -1
- package/lib/module/ai-components/transcription/useDictation.js +7 -3
- package/lib/module/ai-components/transcription/useDictation.js.map +1 -1
- package/lib/module/ai-components/transcription/useDictationAudioLevel.js +32 -0
- package/lib/module/ai-components/transcription/useDictationAudioLevel.js.map +1 -0
- package/lib/module/ai-components/voice-visualization/VoiceGlow.js +79 -0
- package/lib/module/ai-components/voice-visualization/VoiceGlow.js.map +1 -0
- package/lib/module/ai-components/voice-visualization/VoiceVisualizationView.js +147 -0
- package/lib/module/ai-components/voice-visualization/VoiceVisualizationView.js.map +1 -0
- package/lib/module/ai-components/voice-visualization/VoiceWave.js +58 -0
- package/lib/module/ai-components/voice-visualization/VoiceWave.js.map +1 -0
- package/lib/module/ai-components/voice-visualization/bounce.js +60 -0
- package/lib/module/ai-components/voice-visualization/bounce.js.map +1 -0
- package/lib/module/ai-components/voice-visualization/driver.js +208 -0
- package/lib/module/ai-components/voice-visualization/driver.js.map +1 -0
- package/lib/module/ai-components/voice-visualization/glowShader.js +218 -0
- package/lib/module/ai-components/voice-visualization/glowShader.js.map +1 -0
- package/lib/module/ai-components/voice-visualization/index.js +18 -0
- package/lib/module/ai-components/voice-visualization/index.js.map +1 -0
- package/lib/module/ai-components/voice-visualization/math.js +70 -0
- package/lib/module/ai-components/voice-visualization/math.js.map +1 -0
- package/lib/module/ai-components/voice-visualization/palette.js +47 -0
- package/lib/module/ai-components/voice-visualization/palette.js.map +1 -0
- package/lib/module/ai-components/voice-visualization/simplex.js +77 -0
- package/lib/module/ai-components/voice-visualization/simplex.js.map +1 -0
- package/lib/module/ai-components/voice-visualization/styles.js +33 -0
- package/lib/module/ai-components/voice-visualization/styles.js.map +1 -0
- package/lib/module/ai-components/voice-visualization/types.js +4 -0
- package/lib/module/ai-components/voice-visualization/types.js.map +1 -0
- package/lib/module/ai-components/voice-visualization/useReduceMotion.js +28 -0
- package/lib/module/ai-components/voice-visualization/useReduceMotion.js.map +1 -0
- package/lib/module/ai-components/voice-visualization/useVoiceVisualization.js +129 -0
- package/lib/module/ai-components/voice-visualization/useVoiceVisualization.js.map +1 -0
- package/lib/module/ai-components/voice-visualization/waveGeometry.js +124 -0
- package/lib/module/ai-components/voice-visualization/waveGeometry.js.map +1 -0
- package/lib/module/version.json +1 -1
- package/lib/typescript/ai-components/index.d.ts +3 -1
- package/lib/typescript/ai-components/index.d.ts.map +1 -1
- package/lib/typescript/ai-components/message-composer/ComposerView.d.ts.map +1 -1
- package/lib/typescript/ai-components/native/AIDictation.d.ts +6 -0
- package/lib/typescript/ai-components/native/AIDictation.d.ts.map +1 -1
- package/lib/typescript/ai-components/store/dictation/store.d.ts +7 -0
- package/lib/typescript/ai-components/store/dictation/store.d.ts.map +1 -1
- package/lib/typescript/ai-components/store/dictation/useDictationState.d.ts +1 -0
- package/lib/typescript/ai-components/store/dictation/useDictationState.d.ts.map +1 -1
- package/lib/typescript/ai-components/store/index.d.ts +2 -0
- package/lib/typescript/ai-components/store/index.d.ts.map +1 -1
- package/lib/typescript/ai-components/theme.d.ts +13 -0
- package/lib/typescript/ai-components/theme.d.ts.map +1 -1
- package/lib/typescript/ai-components/transcription/useDictation.d.ts +9 -1
- package/lib/typescript/ai-components/transcription/useDictation.d.ts.map +1 -1
- package/lib/typescript/ai-components/transcription/useDictationAudioLevel.d.ts +11 -0
- package/lib/typescript/ai-components/transcription/useDictationAudioLevel.d.ts.map +1 -0
- package/lib/typescript/ai-components/voice-visualization/VoiceGlow.d.ts +13 -0
- package/lib/typescript/ai-components/voice-visualization/VoiceGlow.d.ts.map +1 -0
- package/lib/typescript/ai-components/voice-visualization/VoiceVisualizationView.d.ts +26 -0
- package/lib/typescript/ai-components/voice-visualization/VoiceVisualizationView.d.ts.map +1 -0
- package/lib/typescript/ai-components/voice-visualization/VoiceWave.d.ts +13 -0
- package/lib/typescript/ai-components/voice-visualization/VoiceWave.d.ts.map +1 -0
- package/lib/typescript/ai-components/voice-visualization/bounce.d.ts +20 -0
- package/lib/typescript/ai-components/voice-visualization/bounce.d.ts.map +1 -0
- package/lib/typescript/ai-components/voice-visualization/driver.d.ts +96 -0
- package/lib/typescript/ai-components/voice-visualization/driver.d.ts.map +1 -0
- package/lib/typescript/ai-components/voice-visualization/glowShader.d.ts +7 -0
- package/lib/typescript/ai-components/voice-visualization/glowShader.d.ts.map +1 -0
- package/lib/typescript/ai-components/voice-visualization/index.d.ts +4 -0
- package/lib/typescript/ai-components/voice-visualization/index.d.ts.map +1 -0
- package/lib/typescript/ai-components/voice-visualization/math.d.ts +26 -0
- package/lib/typescript/ai-components/voice-visualization/math.d.ts.map +1 -0
- package/lib/typescript/ai-components/voice-visualization/palette.d.ts +18 -0
- package/lib/typescript/ai-components/voice-visualization/palette.d.ts.map +1 -0
- package/lib/typescript/ai-components/voice-visualization/simplex.d.ts +11 -0
- package/lib/typescript/ai-components/voice-visualization/simplex.d.ts.map +1 -0
- package/lib/typescript/ai-components/voice-visualization/styles.d.ts +24 -0
- package/lib/typescript/ai-components/voice-visualization/styles.d.ts.map +1 -0
- package/lib/typescript/ai-components/voice-visualization/types.d.ts +45 -0
- package/lib/typescript/ai-components/voice-visualization/types.d.ts.map +1 -0
- package/lib/typescript/ai-components/voice-visualization/useReduceMotion.d.ts +10 -0
- package/lib/typescript/ai-components/voice-visualization/useReduceMotion.d.ts.map +1 -0
- package/lib/typescript/ai-components/voice-visualization/useVoiceVisualization.d.ts +18 -0
- package/lib/typescript/ai-components/voice-visualization/useVoiceVisualization.d.ts.map +1 -0
- package/lib/typescript/ai-components/voice-visualization/waveGeometry.d.ts +25 -0
- package/lib/typescript/ai-components/voice-visualization/waveGeometry.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/ai-components/README.md +50 -2
- package/src/ai-components/__tests__/VoiceVisualization.test.tsx +208 -0
- package/src/ai-components/__tests__/dictation.test.tsx +58 -1
- package/src/ai-components/__tests__/voiceDriver.test.ts +317 -0
- package/src/ai-components/__tests__/voicePalette.test.ts +124 -0
- package/src/ai-components/index.ts +3 -1
- package/src/ai-components/message-composer/ComposerView.tsx +6 -3
- package/src/ai-components/message-composer/SpeechToTextButton.tsx +5 -2
- package/src/ai-components/native/AIDictation.ts +11 -0
- package/src/ai-components/store/dictation/store.ts +9 -0
- package/src/ai-components/store/dictation/useDictationState.ts +2 -1
- package/src/ai-components/store/index.ts +2 -0
- package/src/ai-components/theme.ts +16 -0
- package/src/ai-components/transcription/useDictation.ts +16 -3
- package/src/ai-components/transcription/useDictationAudioLevel.ts +38 -0
- package/src/ai-components/voice-visualization/VoiceGlow.tsx +79 -0
- package/src/ai-components/voice-visualization/VoiceVisualizationView.tsx +179 -0
- package/src/ai-components/voice-visualization/VoiceWave.tsx +67 -0
- package/src/ai-components/voice-visualization/bounce.ts +61 -0
- package/src/ai-components/voice-visualization/driver.ts +240 -0
- package/src/ai-components/voice-visualization/glowShader.ts +227 -0
- package/src/ai-components/voice-visualization/index.ts +3 -0
- package/src/ai-components/voice-visualization/math.ts +73 -0
- package/src/ai-components/voice-visualization/palette.ts +59 -0
- package/src/ai-components/voice-visualization/simplex.ts +92 -0
- package/src/ai-components/voice-visualization/styles.ts +42 -0
- package/src/ai-components/voice-visualization/types.ts +44 -0
- package/src/ai-components/voice-visualization/useReduceMotion.ts +34 -0
- package/src/ai-components/voice-visualization/useVoiceVisualization.ts +153 -0
- package/src/ai-components/voice-visualization/waveGeometry.ts +137 -0
- package/src/version.json +1 -1
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", {
|
|
2
|
+
value: true
|
|
3
|
+
});
|
|
4
|
+
exports.tapDriver = exports.slots = exports.scales = exports.hoverDriver = exports.ease = exports.driverScale = exports.driverReact = exports.createDriverState = exports.advanceDriver = exports.REDUCED = exports.NO_TAP = exports.LEVEL_RESPONSE = void 0;
|
|
5
|
+
var _bounce = require("./bounce");
|
|
6
|
+
var _palette = require("./palette");
|
|
7
|
+
var LEVEL_RESPONSE = exports.LEVEL_RESPONSE = {
|
|
8
|
+
steady: {
|
|
9
|
+
fall: 0.35,
|
|
10
|
+
rise: 0.35
|
|
11
|
+
},
|
|
12
|
+
smooth: {
|
|
13
|
+
fall: 0.05,
|
|
14
|
+
rise: 0.16
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
var MOTIONS = {
|
|
18
|
+
connecting: {
|
|
19
|
+
bright: 1,
|
|
20
|
+
flow: 0,
|
|
21
|
+
load: 1,
|
|
22
|
+
react: 0,
|
|
23
|
+
sat: 1,
|
|
24
|
+
speed: 1
|
|
25
|
+
},
|
|
26
|
+
idle: {
|
|
27
|
+
bright: 1,
|
|
28
|
+
flow: 0,
|
|
29
|
+
load: 0,
|
|
30
|
+
react: 0.12,
|
|
31
|
+
sat: 1,
|
|
32
|
+
speed: 0.4
|
|
33
|
+
},
|
|
34
|
+
listening: {
|
|
35
|
+
bright: 1,
|
|
36
|
+
flow: 0,
|
|
37
|
+
load: 0,
|
|
38
|
+
react: 0.45,
|
|
39
|
+
sat: 1,
|
|
40
|
+
speed: 0.9
|
|
41
|
+
},
|
|
42
|
+
speaking: {
|
|
43
|
+
bright: 1,
|
|
44
|
+
flow: 0,
|
|
45
|
+
load: 0,
|
|
46
|
+
react: 1,
|
|
47
|
+
sat: 1,
|
|
48
|
+
speed: 1.25
|
|
49
|
+
},
|
|
50
|
+
thinking: {
|
|
51
|
+
bright: 1,
|
|
52
|
+
flow: 1,
|
|
53
|
+
load: 0,
|
|
54
|
+
react: 0,
|
|
55
|
+
sat: 1,
|
|
56
|
+
speed: 1.25
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
var NO_TAP = exports.NO_TAP = 100;
|
|
60
|
+
var MAX_FRAME = 0.05;
|
|
61
|
+
var REDUCED = exports.REDUCED = 0.07;
|
|
62
|
+
var DRIVERS = 0.08;
|
|
63
|
+
var GENTLE = 0.12;
|
|
64
|
+
var VOICE = 0.1;
|
|
65
|
+
var scales = expressivity => {
|
|
66
|
+
'worklet';
|
|
67
|
+
|
|
68
|
+
return {
|
|
69
|
+
amplitude: 0.15 + 0.85 * expressivity,
|
|
70
|
+
speed: 0.6 + 0.4 * expressivity
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
exports.scales = scales;
|
|
74
|
+
var ease = (perFrame, dt) => {
|
|
75
|
+
'worklet';
|
|
76
|
+
|
|
77
|
+
return 1 - Math.pow(1 - perFrame, dt * 60);
|
|
78
|
+
};
|
|
79
|
+
exports.ease = ease;
|
|
80
|
+
var rem = (x, m) => {
|
|
81
|
+
'worklet';
|
|
82
|
+
|
|
83
|
+
return (x % m + m) % m;
|
|
84
|
+
};
|
|
85
|
+
var easeHsv = (color, target, fraction) => {
|
|
86
|
+
'worklet';
|
|
87
|
+
|
|
88
|
+
var hueStep = (rem(target.hue - color.hue + 1.5, 1) - 0.5) * fraction;
|
|
89
|
+
color.hue = rem(color.hue + hueStep + 1, 1);
|
|
90
|
+
color.saturation += (target.saturation - color.saturation) * fraction;
|
|
91
|
+
color.value += (target.value - color.value) * fraction;
|
|
92
|
+
};
|
|
93
|
+
var slots = colors => {
|
|
94
|
+
'worklet';
|
|
95
|
+
|
|
96
|
+
var _colors$;
|
|
97
|
+
var first = (_colors$ = colors[0]) != null ? _colors$ : {
|
|
98
|
+
hue: 0,
|
|
99
|
+
saturation: 0,
|
|
100
|
+
value: 0
|
|
101
|
+
};
|
|
102
|
+
var result = [];
|
|
103
|
+
for (var i = 0; i < _palette.MAXIMUM_COLORS; i++) {
|
|
104
|
+
var _colors$i;
|
|
105
|
+
result.push((_colors$i = colors[i]) != null ? _colors$i : first);
|
|
106
|
+
}
|
|
107
|
+
return result;
|
|
108
|
+
};
|
|
109
|
+
exports.slots = slots;
|
|
110
|
+
var createDriverState = (input, levelResponse = LEVEL_RESPONSE.steady) => {
|
|
111
|
+
var m = MOTIONS[input.state];
|
|
112
|
+
var s = scales(input.expressivity);
|
|
113
|
+
return {
|
|
114
|
+
baseReact: m.react * s.amplitude,
|
|
115
|
+
bounce: (0, _bounce.createBounce)(),
|
|
116
|
+
bright: m.bright,
|
|
117
|
+
colors: slots(input.colors).map(color => ({
|
|
118
|
+
...color
|
|
119
|
+
})),
|
|
120
|
+
count: input.colors.length,
|
|
121
|
+
expressivity: input.expressivity,
|
|
122
|
+
flow: m.flow * s.amplitude,
|
|
123
|
+
flowSpin: 0,
|
|
124
|
+
hoverAmount: 0,
|
|
125
|
+
hoverX: 0,
|
|
126
|
+
hoverY: 0,
|
|
127
|
+
isHovering: false,
|
|
128
|
+
levelResponse,
|
|
129
|
+
load: m.load * s.amplitude,
|
|
130
|
+
mic: 0,
|
|
131
|
+
orbSpin: 0,
|
|
132
|
+
sat: m.sat,
|
|
133
|
+
speed: m.speed * s.speed,
|
|
134
|
+
tapAge: NO_TAP,
|
|
135
|
+
tapX: 0,
|
|
136
|
+
tapY: 0,
|
|
137
|
+
time: 0,
|
|
138
|
+
voice: 0
|
|
139
|
+
};
|
|
140
|
+
};
|
|
141
|
+
exports.createDriverState = createDriverState;
|
|
142
|
+
var driverReact = d => {
|
|
143
|
+
'worklet';
|
|
144
|
+
|
|
145
|
+
return d.baseReact + (Math.max(d.baseReact, d.mic) - d.baseReact) * d.voice;
|
|
146
|
+
};
|
|
147
|
+
exports.driverReact = driverReact;
|
|
148
|
+
var driverScale = d => {
|
|
149
|
+
'worklet';
|
|
150
|
+
|
|
151
|
+
return (0, _bounce.bounceScale)(d.bounce);
|
|
152
|
+
};
|
|
153
|
+
exports.driverScale = driverScale;
|
|
154
|
+
var tapDriver = (d, input, x, y) => {
|
|
155
|
+
'worklet';
|
|
156
|
+
|
|
157
|
+
if (input.reduceMotion) return;
|
|
158
|
+
d.tapX = x;
|
|
159
|
+
d.tapY = y;
|
|
160
|
+
d.tapAge = 0;
|
|
161
|
+
(0, _bounce.startBounce)(d.bounce);
|
|
162
|
+
};
|
|
163
|
+
exports.tapDriver = tapDriver;
|
|
164
|
+
var hoverDriver = (d, input, x, y) => {
|
|
165
|
+
'worklet';
|
|
166
|
+
|
|
167
|
+
if (x === null || y === null || input.reduceMotion) {
|
|
168
|
+
d.isHovering = false;
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
d.hoverX = x;
|
|
172
|
+
d.hoverY = y;
|
|
173
|
+
d.isHovering = true;
|
|
174
|
+
};
|
|
175
|
+
exports.hoverDriver = hoverDriver;
|
|
176
|
+
var advanceDriver = (d, input, seconds) => {
|
|
177
|
+
'worklet';
|
|
178
|
+
var _input$audioLevel;
|
|
179
|
+
var dt = Math.min(Math.max(seconds, 0), MAX_FRAME);
|
|
180
|
+
if (input.reduceMotion) d.isHovering = false;
|
|
181
|
+
var m = MOTIONS[input.state];
|
|
182
|
+
var s = scales(input.expressivity);
|
|
183
|
+
var drivers = ease(DRIVERS, dt);
|
|
184
|
+
d.speed += (m.speed * s.speed - d.speed) * drivers;
|
|
185
|
+
d.bright += (m.bright - d.bright) * drivers;
|
|
186
|
+
d.sat += (m.sat - d.sat) * drivers;
|
|
187
|
+
d.load += (m.load * s.amplitude - d.load) * drivers;
|
|
188
|
+
d.flow += (m.flow * s.amplitude - d.flow) * drivers;
|
|
189
|
+
d.baseReact += (m.react * s.amplitude - d.baseReact) * drivers;
|
|
190
|
+
d.expressivity += (input.expressivity - d.expressivity) * drivers;
|
|
191
|
+
var step = dt * (input.reduceMotion ? REDUCED : 1) * d.speed;
|
|
192
|
+
d.time += step;
|
|
193
|
+
d.flowSpin += step * d.flow;
|
|
194
|
+
d.orbSpin += step * (1 + 0.5 * d.flow + 0.1 * d.baseReact);
|
|
195
|
+
d.tapAge += dt;
|
|
196
|
+
(0, _bounce.advanceBounce)(d.bounce, dt);
|
|
197
|
+
var gentle = ease(GENTLE, dt);
|
|
198
|
+
d.hoverAmount += ((d.isHovering ? 1 : 0) - d.hoverAmount) * gentle;
|
|
199
|
+
d.voice += ((input.audioLevel === null ? 0 : 1) - d.voice) * ease(VOICE, dt);
|
|
200
|
+
var level = (_input$audioLevel = input.audioLevel) != null ? _input$audioLevel : 0;
|
|
201
|
+
var response = level > d.mic ? d.levelResponse.rise : d.levelResponse.fall;
|
|
202
|
+
d.mic += (level - d.mic) * ease(response, dt);
|
|
203
|
+
var targets = slots(input.colors);
|
|
204
|
+
for (var i = 0; i < d.colors.length; i++) easeHsv(d.colors[i], targets[i], gentle);
|
|
205
|
+
d.count += (input.colors.length - d.count) * gentle;
|
|
206
|
+
};
|
|
207
|
+
exports.advanceDriver = advanceDriver;
|
|
208
|
+
//# sourceMappingURL=driver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_bounce","require","_palette","LEVEL_RESPONSE","exports","steady","fall","rise","smooth","MOTIONS","connecting","bright","flow","load","react","sat","speed","idle","listening","speaking","thinking","NO_TAP","MAX_FRAME","REDUCED","DRIVERS","GENTLE","VOICE","scales","expressivity","amplitude","ease","perFrame","dt","Math","pow","rem","x","m","easeHsv","color","target","fraction","hueStep","hue","saturation","value","slots","colors","_colors$","first","result","i","MAXIMUM_COLORS","_colors$i","push","createDriverState","input","levelResponse","state","s","baseReact","bounce","createBounce","map","count","length","flowSpin","hoverAmount","hoverX","hoverY","isHovering","mic","orbSpin","tapAge","tapX","tapY","time","voice","driverReact","d","max","driverScale","bounceScale","tapDriver","y","reduceMotion","startBounce","hoverDriver","advanceDriver","seconds","_input$audioLevel","min","drivers","step","advanceBounce","gentle","audioLevel","level","response","targets"],"sourceRoot":"../../../../src","sources":["ai-components/voice-visualization/driver.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", {
|
|
2
|
+
value: true
|
|
3
|
+
});
|
|
4
|
+
exports.getGlowEffect = void 0;
|
|
5
|
+
var _reactNativeSkia = require("@shopify/react-native-skia");
|
|
6
|
+
var SOURCE = `
|
|
7
|
+
uniform float2 resolution;
|
|
8
|
+
uniform float4 col0;
|
|
9
|
+
uniform float4 col1;
|
|
10
|
+
uniform float4 col2;
|
|
11
|
+
uniform float4 col3;
|
|
12
|
+
uniform float4 col4;
|
|
13
|
+
uniform float time;
|
|
14
|
+
uniform float count;
|
|
15
|
+
uniform float bright;
|
|
16
|
+
uniform float sat;
|
|
17
|
+
uniform float load;
|
|
18
|
+
uniform float flow;
|
|
19
|
+
uniform float flowSpin;
|
|
20
|
+
uniform float orbSpin;
|
|
21
|
+
uniform float react;
|
|
22
|
+
uniform float dark;
|
|
23
|
+
uniform float mic;
|
|
24
|
+
uniform float voice;
|
|
25
|
+
uniform float scale;
|
|
26
|
+
uniform float2 tap;
|
|
27
|
+
uniform float tapTime;
|
|
28
|
+
uniform float2 hover;
|
|
29
|
+
uniform float hoverAmt;
|
|
30
|
+
|
|
31
|
+
float sq(float x) { return x * x; }
|
|
32
|
+
float ss(float e0, float e1, float x) {
|
|
33
|
+
float t = clamp((x - e0) / (e1 - e0), 0.0, 1.0);
|
|
34
|
+
return t * t * (3.0 - 2.0 * t);
|
|
35
|
+
}
|
|
36
|
+
float3 hsv2rgb(float3 c) {
|
|
37
|
+
float4 K = float4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
|
|
38
|
+
float3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
|
|
39
|
+
return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
|
|
40
|
+
}
|
|
41
|
+
float3 desat(float3 c, float s) {
|
|
42
|
+
float l = dot(c, float3(0.299, 0.587, 0.114));
|
|
43
|
+
return mix(float3(l), c, s);
|
|
44
|
+
}
|
|
45
|
+
float3 saturate3(float3 c, float s) {
|
|
46
|
+
float l = dot(c, float3(0.299, 0.587, 0.114));
|
|
47
|
+
return clamp(mix(float3(l), c, s), 0.0, 1.0);
|
|
48
|
+
}
|
|
49
|
+
float2 rot2(float2 p, float a) {
|
|
50
|
+
float s = sin(a); float c = cos(a);
|
|
51
|
+
return float2(c * p.x + s * p.y, -s * p.x + c * p.y);
|
|
52
|
+
}
|
|
53
|
+
float3 vivid(float4 hsv) {
|
|
54
|
+
return hsv2rgb(float3(hsv.x, clamp(hsv.y + dark * 0.06, 0.0, 1.0), hsv.z));
|
|
55
|
+
}
|
|
56
|
+
// Waves spreading out from the last tap, fading within a second and a half.
|
|
57
|
+
float tapRipple(float2 p) {
|
|
58
|
+
float age = tapTime;
|
|
59
|
+
if (age > 1.5) return 0.0;
|
|
60
|
+
float d = distance(p, tap);
|
|
61
|
+
float front = age * 0.75;
|
|
62
|
+
float env = exp(-sq((d - front) / 0.14));
|
|
63
|
+
float decay = exp(-age * 2.6);
|
|
64
|
+
return sin(d * 34.0 - age * 24.0) * env * decay;
|
|
65
|
+
}
|
|
66
|
+
// A gentle ripple following a hovering pointer.
|
|
67
|
+
float hoverRipple(float2 p) {
|
|
68
|
+
if (hoverAmt <= 0.001) return 0.0;
|
|
69
|
+
float d = distance(p, hover);
|
|
70
|
+
float env = exp(-sq(d / 0.22));
|
|
71
|
+
return sin(d * 30.0 - time * 7.0) * env * hoverAmt * 0.6;
|
|
72
|
+
}
|
|
73
|
+
float4 permute(float4 x) { return mod(((x * 34.0) + 1.0) * x, 289.0); }
|
|
74
|
+
float4 taylorInvSqrt(float4 r) { return 1.79284291400159 - 0.85373472095314 * r; }
|
|
75
|
+
float snoise(float3 v) {
|
|
76
|
+
const float2 C = float2(1.0 / 6.0, 1.0 / 3.0);
|
|
77
|
+
const float4 D = float4(0.0, 0.5, 1.0, 2.0);
|
|
78
|
+
float3 i = floor(v + dot(v, C.yyy));
|
|
79
|
+
float3 x0 = v - i + dot(i, C.xxx);
|
|
80
|
+
float3 g = step(x0.yzx, x0.xyz);
|
|
81
|
+
float3 l = 1.0 - g;
|
|
82
|
+
float3 i1 = min(g.xyz, l.zxy);
|
|
83
|
+
float3 i2 = max(g.xyz, l.zxy);
|
|
84
|
+
float3 x1 = x0 - i1 + 1.0 * C.xxx;
|
|
85
|
+
float3 x2 = x0 - i2 + 2.0 * C.xxx;
|
|
86
|
+
float3 x3 = x0 - 1.0 + 3.0 * C.xxx;
|
|
87
|
+
i = mod(i, 289.0);
|
|
88
|
+
float4 p = permute(permute(permute(
|
|
89
|
+
i.z + float4(0.0, i1.z, i2.z, 1.0))
|
|
90
|
+
+ i.y + float4(0.0, i1.y, i2.y, 1.0))
|
|
91
|
+
+ i.x + float4(0.0, i1.x, i2.x, 1.0));
|
|
92
|
+
float n_ = 1.0 / 7.0;
|
|
93
|
+
float3 ns = n_ * D.wyz - D.xzx;
|
|
94
|
+
float4 j = p - 49.0 * floor(p * ns.z * ns.z);
|
|
95
|
+
float4 x_ = floor(j * ns.z);
|
|
96
|
+
float4 y_ = floor(j - 7.0 * x_);
|
|
97
|
+
float4 x = x_ * ns.x + ns.yyyy;
|
|
98
|
+
float4 y = y_ * ns.x + ns.yyyy;
|
|
99
|
+
float4 h = 1.0 - abs(x) - abs(y);
|
|
100
|
+
float4 b0 = float4(x.xy, y.xy);
|
|
101
|
+
float4 b1 = float4(x.zw, y.zw);
|
|
102
|
+
float4 s0 = floor(b0) * 2.0 + 1.0;
|
|
103
|
+
float4 s1 = floor(b1) * 2.0 + 1.0;
|
|
104
|
+
float4 sh = -step(h, float4(0.0));
|
|
105
|
+
float4 a0 = b0.xzyw + s0.xzyw * sh.xxyy;
|
|
106
|
+
float4 a1 = b1.xzyw + s1.xzyw * sh.zzww;
|
|
107
|
+
float3 p0 = float3(a0.xy, h.x);
|
|
108
|
+
float3 p1 = float3(a0.zw, h.y);
|
|
109
|
+
float3 p2 = float3(a1.xy, h.z);
|
|
110
|
+
float3 p3 = float3(a1.zw, h.w);
|
|
111
|
+
float4 norm = taylorInvSqrt(float4(dot(p0, p0), dot(p1, p1), dot(p2, p2), dot(p3, p3)));
|
|
112
|
+
p0 *= norm.x; p1 *= norm.y; p2 *= norm.z; p3 *= norm.w;
|
|
113
|
+
float4 m = max(0.6 - float4(dot(x0, x0), dot(x1, x1), dot(x2, x2), dot(x3, x3)), 0.0);
|
|
114
|
+
m = m * m;
|
|
115
|
+
return 42.0 * dot(m * m, float4(dot(p0, x0), dot(p1, x1), dot(p2, x2), dot(p3, x3)));
|
|
116
|
+
}
|
|
117
|
+
float speechEnv(float t) {
|
|
118
|
+
float gate = ss(-0.25, 0.35, snoise(float3(t * 0.6, 21.0, 0.0)));
|
|
119
|
+
float syl = 0.55 + 0.45 * snoise(float3(t * 3.0, 5.0, 0.0));
|
|
120
|
+
return clamp(gate * syl, 0.0, 1.0);
|
|
121
|
+
}
|
|
122
|
+
float2 coords(float2 pos) {
|
|
123
|
+
float m = min(resolution.x, resolution.y);
|
|
124
|
+
return float2(pos.x - 0.5 * resolution.x, 0.5 * resolution.y - pos.y) / m / scale;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
half4 main(float2 fragCoord) {
|
|
128
|
+
float2 q = coords(fragCoord);
|
|
129
|
+
float t = time;
|
|
130
|
+
float r = length(q);
|
|
131
|
+
|
|
132
|
+
float speak = ss(0.6, 1.0, react);
|
|
133
|
+
float speech = react * mix(0.55 + 0.25 * sin(t * 1.6), speechEnv(t), speak);
|
|
134
|
+
speech = mix(speech, mic, voice);
|
|
135
|
+
float speechSmooth = mix(speech, react * (0.55 + 0.25 * sin(t * 1.6)), 0.5 * speak);
|
|
136
|
+
float energy = 0.12 + 0.30 * react + 0.18 * flow + 0.28 * load + 0.06 * speechSmooth;
|
|
137
|
+
float R = 0.24 * (1.0 + speechSmooth * 0.20 + load * 0.05 * sin(t * 2.0) + react * 0.04 * sin(t * 1.6));
|
|
138
|
+
float p = r / R;
|
|
139
|
+
if (p > 2.2) return half4(0.0);
|
|
140
|
+
|
|
141
|
+
float core = exp(-2.0 * p * p);
|
|
142
|
+
float body = ss(1.06, 0.62, p);
|
|
143
|
+
|
|
144
|
+
float2 P = q / R;
|
|
145
|
+
float pl = length(P);
|
|
146
|
+
float nt = t * 0.15 + flowSpin * 0.05;
|
|
147
|
+
float nAmp = 0.20 + 0.28 * energy;
|
|
148
|
+
float2 sp = P + nAmp * float2(snoise(float3(P * 0.7, nt)), snoise(float3(P * 0.7 + 4.7, nt)));
|
|
149
|
+
float ang = atan(P.y, P.x);
|
|
150
|
+
float wave = (0.018 + 0.025 * energy) * sin(pl * 5.0 - t * 2.0) * ss(0.0, 0.4, pl);
|
|
151
|
+
sp += wave * float2(-sin(ang), cos(ang));
|
|
152
|
+
sp = rot2(sp, flowSpin * 0.30);
|
|
153
|
+
float2 gtoP = q - (hoverAmt > 0.001 ? hover : tap);
|
|
154
|
+
sp += (gtoP / (length(gtoP) + 1e-4)) * (tapRipple(q) + hoverRipple(q)) * 0.5;
|
|
155
|
+
float bt = t;
|
|
156
|
+
float a0 = orbSpin * 0.42 + 2.0 * snoise(float3(bt * 0.12, 0.0, 0.0));
|
|
157
|
+
float a1 = -orbSpin * 0.34 + 2.0 * snoise(float3(bt * 0.10, 5.0, 0.0)) + 2.0;
|
|
158
|
+
float a2 = orbSpin * 0.30 + 2.0 * snoise(float3(bt * 0.11, 9.0, 0.0)) + 1.0;
|
|
159
|
+
float a3 = -orbSpin * 0.26 + 2.0 * snoise(float3(bt * 0.09, 14.0, 0.0)) + 3.5;
|
|
160
|
+
float2 c0 = 0.40 * float2(cos(a0), sin(a0));
|
|
161
|
+
float2 c1 = 0.38 * float2(cos(a1), sin(a1));
|
|
162
|
+
float2 c2c = 0.36 * float2(cos(a2), sin(a2));
|
|
163
|
+
float2 c3c = 0.34 * float2(cos(a3), sin(a3));
|
|
164
|
+
float b0 = ss(1.15, 0.1, length(sp - c0));
|
|
165
|
+
float b1 = ss(1.30, 0.1, length(sp - c1));
|
|
166
|
+
float b2 = ss(1.20, 0.1, length(sp - c2c));
|
|
167
|
+
float b3 = ss(1.25, 0.1, length(sp - c3c));
|
|
168
|
+
|
|
169
|
+
float3 k0 = saturate3(vivid(col0), 1.7);
|
|
170
|
+
float3 kL = saturate3(clamp(vivid(col0) * 1.18, 0.0, 1.0), 1.3);
|
|
171
|
+
float3 kD = saturate3(vivid(col0) * 0.85, 1.3);
|
|
172
|
+
float3 colB = mix(kL, saturate3(vivid(col1), 1.7), clamp(count - 1.0, 0.0, 1.0));
|
|
173
|
+
float3 colC = mix(kD, saturate3(vivid(col2), 1.7), clamp(count - 2.0, 0.0, 1.0));
|
|
174
|
+
float3 colD = saturate3(vivid(col3), 1.7);
|
|
175
|
+
float3 colE = saturate3(vivid(col4), 1.7);
|
|
176
|
+
float3 base = saturate3(mix(vivid(col0), float3(1.0), 0.06), 1.3);
|
|
177
|
+
float3 col = base;
|
|
178
|
+
col = mix(col, k0, b0);
|
|
179
|
+
col = mix(col, colB, b1);
|
|
180
|
+
col = mix(col, colC, b0 * 0.5);
|
|
181
|
+
col = mix(col, colD, b2 * clamp(count - 3.0, 0.0, 1.0));
|
|
182
|
+
col = mix(col, colE, b3 * clamp(count - 4.0, 0.0, 1.0));
|
|
183
|
+
col = saturate3(col, 1.15);
|
|
184
|
+
col = clamp(col * 1.12, 0.0, 1.0);
|
|
185
|
+
col = desat(col, sat);
|
|
186
|
+
|
|
187
|
+
float z = sqrt(max(1.0 - p * p, 0.0));
|
|
188
|
+
float3 nrm = normalize(float3(q / R, z + 1e-4));
|
|
189
|
+
float3 Ld = normalize(float3(-0.35, 0.45, 0.85));
|
|
190
|
+
float diff = clamp(dot(nrm, Ld), 0.0, 1.0);
|
|
191
|
+
col *= 0.80 + 0.20 * diff;
|
|
192
|
+
float fres = pow(1.0 - clamp(nrm.z, 0.0, 1.0), 2.5);
|
|
193
|
+
col += fres * 0.10 * mix(float3(1.0), k0, 0.6);
|
|
194
|
+
|
|
195
|
+
float3 haloCol = mix(mix(vivid(col0), float3(1.0), 0.75), mix(vivid(col0), float3(1.0), 0.32), dark);
|
|
196
|
+
float halo = exp(-sq(max(r - R * 0.8, 0.0) / 0.09));
|
|
197
|
+
float haloA = halo * (mix(0.05, 0.10, dark) + 0.05 * react);
|
|
198
|
+
float waves = clamp(b0 + 0.8 * b1, 0.0, 1.0);
|
|
199
|
+
float bodyA = clamp(body * (0.15 + 0.60 * waves + 0.06 * core) * (0.92 + 0.08 * fres), 0.0, 1.0);
|
|
200
|
+
float fade = mix(1.0, 0.45 + 0.35 * sin(t * 2.0), load);
|
|
201
|
+
float3 pm = col * bodyA + haloCol * haloA * (1.0 - bodyA);
|
|
202
|
+
float al = bodyA + haloA * (1.0 - bodyA);
|
|
203
|
+
float gain = bright * fade;
|
|
204
|
+
return half4(half3(pm * gain), half(al * gain));
|
|
205
|
+
}
|
|
206
|
+
`;
|
|
207
|
+
var effect;
|
|
208
|
+
var getGlowEffect = () => {
|
|
209
|
+
if (effect === undefined) {
|
|
210
|
+
effect = _reactNativeSkia.Skia.RuntimeEffect.Make(SOURCE);
|
|
211
|
+
if (!effect && __DEV__) {
|
|
212
|
+
console.warn('[stream-chat-react-native/ai-components] VoiceGlow could not compile its shader, so it draws nothing. Please report this with your @shopify/react-native-skia version.');
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
return effect;
|
|
216
|
+
};
|
|
217
|
+
exports.getGlowEffect = getGlowEffect;
|
|
218
|
+
//# sourceMappingURL=glowShader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNativeSkia","require","SOURCE","effect","getGlowEffect","undefined","Skia","RuntimeEffect","Make","__DEV__","console","warn","exports"],"sourceRoot":"../../../../src","sources":["ai-components/voice-visualization/glowShader.ts"],"mappings":";;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AAQA,IAAMC,MAAM,GAAG;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,IAAIC,MAA0C;AAMvC,IAAMC,aAAa,GAAGA,CAAA,KAAM;EACjC,IAAID,MAAM,KAAKE,SAAS,EAAE;IACxBF,MAAM,GAAGG,qBAAI,CAACC,aAAa,CAACC,IAAI,CAACN,MAAM,CAAC;IACxC,IAAI,CAACC,MAAM,IAAIM,OAAO,EAAE;MACtBC,OAAO,CAACC,IAAI,CACV,wKACF,CAAC;IACH;EACF;EACA,OAAOR,MAAM;AACf,CAAC;AAACS,OAAA,CAAAR,aAAA,GAAAA,aAAA","ignoreList":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", {
|
|
2
|
+
value: true
|
|
3
|
+
});
|
|
4
|
+
Object.defineProperty(exports, "VoiceGlow", {
|
|
5
|
+
enumerable: true,
|
|
6
|
+
get: function () {
|
|
7
|
+
return _VoiceGlow.VoiceGlow;
|
|
8
|
+
}
|
|
9
|
+
});
|
|
10
|
+
Object.defineProperty(exports, "VoiceWave", {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _VoiceWave.VoiceWave;
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
var _VoiceGlow = require("./VoiceGlow");
|
|
17
|
+
var _VoiceWave = require("./VoiceWave");
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_VoiceGlow","require","_VoiceWave"],"sourceRoot":"../../../../src","sources":["ai-components/voice-visualization/index.ts"],"mappings":";;;;;;;;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA","ignoreList":[]}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", {
|
|
2
|
+
value: true
|
|
3
|
+
});
|
|
4
|
+
exports.vivid = exports.speechEnv = exports.smoothstep = exports.saturate = exports.mix = exports.hsvToRgb = exports.fract = exports.expressivityInput = exports.clamp = exports.audioLevelInput = void 0;
|
|
5
|
+
var _simplex = require("./simplex");
|
|
6
|
+
var mix = (a, b, t) => {
|
|
7
|
+
'worklet';
|
|
8
|
+
|
|
9
|
+
return a + (b - a) * t;
|
|
10
|
+
};
|
|
11
|
+
exports.mix = mix;
|
|
12
|
+
var fract = x => {
|
|
13
|
+
'worklet';
|
|
14
|
+
|
|
15
|
+
return x - Math.floor(x);
|
|
16
|
+
};
|
|
17
|
+
exports.fract = fract;
|
|
18
|
+
var clamp = (x, low, high) => {
|
|
19
|
+
'worklet';
|
|
20
|
+
|
|
21
|
+
return Math.min(Math.max(x, low), high);
|
|
22
|
+
};
|
|
23
|
+
exports.clamp = clamp;
|
|
24
|
+
var smoothstep = (edge0, edge1, x) => {
|
|
25
|
+
'worklet';
|
|
26
|
+
|
|
27
|
+
var t = clamp((x - edge0) / (edge1 - edge0), 0, 1);
|
|
28
|
+
return t * t * (3 - 2 * t);
|
|
29
|
+
};
|
|
30
|
+
exports.smoothstep = smoothstep;
|
|
31
|
+
var hsvToRgb = (hue, saturation, value, out) => {
|
|
32
|
+
'worklet';
|
|
33
|
+
|
|
34
|
+
for (var i = 0; i < 3; i++) {
|
|
35
|
+
var k = i === 0 ? 1 : i === 1 ? 2 / 3 : 1 / 3;
|
|
36
|
+
var p = Math.abs(fract(hue + k) * 6 - 3);
|
|
37
|
+
out[i] = value * mix(1, clamp(p - 1, 0, 1), saturation);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
exports.hsvToRgb = hsvToRgb;
|
|
41
|
+
var vivid = (color, dark, out) => {
|
|
42
|
+
'worklet';
|
|
43
|
+
|
|
44
|
+
hsvToRgb(color.hue, clamp(color.saturation + dark * 0.06, 0, 1), color.value, out);
|
|
45
|
+
};
|
|
46
|
+
exports.vivid = vivid;
|
|
47
|
+
var saturate = (c, amount) => {
|
|
48
|
+
'worklet';
|
|
49
|
+
|
|
50
|
+
var l = 0.299 * c[0] + 0.587 * c[1] + 0.114 * c[2];
|
|
51
|
+
for (var i = 0; i < 3; i++) c[i] = clamp(mix(l, c[i], amount), 0, 1);
|
|
52
|
+
};
|
|
53
|
+
exports.saturate = saturate;
|
|
54
|
+
var speechEnv = t => {
|
|
55
|
+
'worklet';
|
|
56
|
+
|
|
57
|
+
var gate = smoothstep(-0.25, 0.35, (0, _simplex.snoise)(t * 0.6, 21, 0));
|
|
58
|
+
var syllable = 0.55 + 0.45 * (0, _simplex.snoise)(t * 3, 5, 0);
|
|
59
|
+
return clamp(gate * syllable, 0, 1);
|
|
60
|
+
};
|
|
61
|
+
exports.speechEnv = speechEnv;
|
|
62
|
+
var expressivityInput = expressivity => typeof expressivity === 'number' && Number.isFinite(expressivity) ? clamp(expressivity, 0, 2) : 1;
|
|
63
|
+
exports.expressivityInput = expressivityInput;
|
|
64
|
+
var audioLevelInput = level => {
|
|
65
|
+
'worklet';
|
|
66
|
+
|
|
67
|
+
return typeof level === 'number' && Number.isFinite(level) ? clamp(level, 0, 1) : null;
|
|
68
|
+
};
|
|
69
|
+
exports.audioLevelInput = audioLevelInput;
|
|
70
|
+
//# sourceMappingURL=math.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_simplex","require","mix","a","b","t","exports","fract","x","Math","floor","clamp","low","high","min","max","smoothstep","edge0","edge1","hsvToRgb","hue","saturation","value","out","i","k","p","abs","vivid","color","dark","saturate","c","amount","l","speechEnv","gate","snoise","syllable","expressivityInput","expressivity","Number","isFinite","audioLevelInput","level"],"sourceRoot":"../../../../src","sources":["ai-components/voice-visualization/math.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
exports.toHsvPalette = exports.rgbToHsv = exports.parseColor = exports.luminance = exports.MAXIMUM_COLORS = exports.FALLBACK_COLOR = void 0;
|
|
6
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
7
|
+
var _reactNative = require("react-native");
|
|
8
|
+
var MAXIMUM_COLORS = exports.MAXIMUM_COLORS = 5;
|
|
9
|
+
var FALLBACK_COLOR = exports.FALLBACK_COLOR = '#005fff';
|
|
10
|
+
var parseColor = color => {
|
|
11
|
+
if (typeof color !== 'string' || !color.trim()) return null;
|
|
12
|
+
var processed = (0, _reactNative.processColor)(color.trim());
|
|
13
|
+
if (typeof processed !== 'number') return null;
|
|
14
|
+
var argb = processed < 0 ? processed + 2 ** 32 : processed;
|
|
15
|
+
var channel = shift => Math.floor(argb / 2 ** shift) % 256 / 255;
|
|
16
|
+
return [channel(16), channel(8), channel(0)];
|
|
17
|
+
};
|
|
18
|
+
exports.parseColor = parseColor;
|
|
19
|
+
var rgbToHsv = ([r, g, b]) => {
|
|
20
|
+
var high = Math.max(r, g, b);
|
|
21
|
+
var low = Math.min(r, g, b);
|
|
22
|
+
var delta = high - low;
|
|
23
|
+
var hue = 0;
|
|
24
|
+
if (delta !== 0) {
|
|
25
|
+
if (high === r) hue = ((g - b) / delta % 6 + 6) % 6;else if (high === g) hue = (b - r) / delta + 2;else hue = (r - g) / delta + 4;
|
|
26
|
+
}
|
|
27
|
+
return {
|
|
28
|
+
hue: (hue / 6 % 1 + 1) % 1,
|
|
29
|
+
saturation: high === 0 ? 0 : Math.min(Math.max(delta / high, 0), 1),
|
|
30
|
+
value: Math.min(Math.max(high, 0), 1)
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
exports.rgbToHsv = rgbToHsv;
|
|
34
|
+
var toHsvPalette = colors => colors.map(parseColor).filter(rgb => rgb !== null).slice(0, MAXIMUM_COLORS).map(rgbToHsv);
|
|
35
|
+
exports.toHsvPalette = toHsvPalette;
|
|
36
|
+
var luminance = color => {
|
|
37
|
+
var rgb = parseColor(color);
|
|
38
|
+
if (!rgb) return null;
|
|
39
|
+
var _rgb$map = rgb.map(c => c <= 0.03928 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4)),
|
|
40
|
+
_rgb$map2 = (0, _slicedToArray2.default)(_rgb$map, 3),
|
|
41
|
+
r = _rgb$map2[0],
|
|
42
|
+
g = _rgb$map2[1],
|
|
43
|
+
b = _rgb$map2[2];
|
|
44
|
+
return 0.2126 * r + 0.7152 * g + 0.0722 * b;
|
|
45
|
+
};
|
|
46
|
+
exports.luminance = luminance;
|
|
47
|
+
//# sourceMappingURL=palette.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNative","require","MAXIMUM_COLORS","exports","FALLBACK_COLOR","parseColor","color","trim","processed","processColor","argb","channel","shift","Math","floor","rgbToHsv","r","g","b","high","max","low","min","delta","hue","saturation","value","toHsvPalette","colors","map","filter","rgb","slice","luminance","_rgb$map","c","pow","_rgb$map2","_slicedToArray2","default"],"sourceRoot":"../../../../src","sources":["ai-components/voice-visualization/palette.ts"],"mappings":"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","ignoreList":[]}
|