react-native-ai-animations 0.9.0 → 0.9.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/README.md +2 -0
- package/lib/module/chat/effort-bar.js +38 -27
- package/lib/module/chat/effort-bar.js.map +1 -1
- package/lib/module/chat/question-card.js +1 -1
- package/lib/module/chat/question-card.js.map +1 -1
- package/lib/module/chat/status-row.js +6 -4
- package/lib/module/chat/status-row.js.map +1 -1
- package/lib/module/chat/thinking-block.js +3 -2
- package/lib/module/chat/thinking-block.js.map +1 -1
- package/lib/module/internal/color.js +24 -9
- package/lib/module/internal/color.js.map +1 -1
- package/lib/module/internal/graphemes.js +38 -0
- package/lib/module/internal/graphemes.js.map +1 -0
- package/lib/module/internal/use-elapsed.js +2 -1
- package/lib/module/internal/use-elapsed.js.map +1 -1
- package/lib/module/internal/use-motion-clock.js +11 -0
- package/lib/module/internal/use-motion-clock.js.map +1 -0
- package/lib/module/skia/dot-orb.js +5 -4
- package/lib/module/skia/dot-orb.js.map +1 -1
- package/lib/module/skia/matrix-orb.js +6 -3
- package/lib/module/skia/matrix-orb.js.map +1 -1
- package/lib/module/skia/media-generating.js +4 -3
- package/lib/module/skia/media-generating.js.map +1 -1
- package/lib/module/skia/voice-wave.js +8 -3
- package/lib/module/skia/voice-wave.js.map +1 -1
- package/lib/module/text/shimmer-text.js +22 -3
- package/lib/module/text/shimmer-text.js.map +1 -1
- package/lib/module/text/spoken-text.js +6 -1
- package/lib/module/text/spoken-text.js.map +1 -1
- package/lib/module/text/streaming-text.js +3 -3
- package/lib/module/text/streaming-text.js.map +1 -1
- package/lib/typescript/src/chat/effort-bar.d.ts.map +1 -1
- package/lib/typescript/src/chat/status-row.d.ts +2 -1
- package/lib/typescript/src/chat/status-row.d.ts.map +1 -1
- package/lib/typescript/src/chat/thinking-block.d.ts.map +1 -1
- package/lib/typescript/src/internal/color.d.ts +4 -0
- package/lib/typescript/src/internal/color.d.ts.map +1 -1
- package/lib/typescript/src/internal/graphemes.d.ts +4 -0
- package/lib/typescript/src/internal/graphemes.d.ts.map +1 -0
- package/lib/typescript/src/internal/use-elapsed.d.ts.map +1 -1
- package/lib/typescript/src/internal/use-motion-clock.d.ts +3 -0
- package/lib/typescript/src/internal/use-motion-clock.d.ts.map +1 -0
- package/lib/typescript/src/skia/dot-orb.d.ts.map +1 -1
- package/lib/typescript/src/skia/matrix-orb.d.ts +3 -1
- package/lib/typescript/src/skia/matrix-orb.d.ts.map +1 -1
- package/lib/typescript/src/skia/media-generating.d.ts.map +1 -1
- package/lib/typescript/src/skia/voice-wave.d.ts +2 -2
- package/lib/typescript/src/skia/voice-wave.d.ts.map +1 -1
- package/lib/typescript/src/text/shimmer-text.d.ts.map +1 -1
- package/lib/typescript/src/text/spoken-text.d.ts.map +1 -1
- package/lib/typescript/src/text/streaming-text.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/chat/effort-bar.tsx +40 -27
- package/src/chat/question-card.tsx +1 -1
- package/src/chat/status-row.tsx +7 -4
- package/src/chat/thinking-block.tsx +3 -2
- package/src/internal/color.ts +30 -15
- package/src/internal/graphemes.ts +40 -0
- package/src/internal/use-elapsed.ts +2 -1
- package/src/internal/use-motion-clock.ts +9 -0
- package/src/skia/dot-orb.tsx +5 -4
- package/src/skia/matrix-orb.tsx +7 -2
- package/src/skia/media-generating.tsx +3 -3
- package/src/skia/voice-wave.tsx +9 -4
- package/src/text/shimmer-text.tsx +25 -3
- package/src/text/spoken-text.tsx +5 -1
- package/src/text/streaming-text.tsx +6 -6
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import { useEffect, useMemo } from "react";
|
|
4
4
|
import { Text, View } from "react-native";
|
|
5
5
|
import Animated, { Easing, Extrapolation, interpolate, interpolateColor, useAnimatedStyle, useReducedMotion, useSharedValue, withDelay, withRepeat, withSequence, withTiming } from "react-native-reanimated";
|
|
6
|
+
import { isCjk, needsShaping, splitGraphemes } from "../internal/graphemes.js";
|
|
6
7
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
8
|
const DEFAULT_DURATION = 1400;
|
|
8
9
|
const DEFAULT_HIGHLIGHT_WIDTH = 0.22;
|
|
@@ -27,19 +28,25 @@ export function ShimmerText({
|
|
|
27
28
|
}) {
|
|
28
29
|
const reduceMotion = useReducedMotion();
|
|
29
30
|
const progress = useSharedValue(0);
|
|
31
|
+
const shaped = useMemo(() => needsShaping(text), [text]);
|
|
30
32
|
const {
|
|
31
33
|
words,
|
|
32
34
|
total
|
|
33
35
|
} = useMemo(() => {
|
|
34
|
-
const characters =
|
|
36
|
+
const characters = shaped ? [] : splitGraphemes(text);
|
|
35
37
|
const groups = [];
|
|
36
38
|
let current = [];
|
|
37
39
|
characters.forEach((char, index) => {
|
|
40
|
+
const breakAfter = char === " " || isCjk(char);
|
|
41
|
+
if (isCjk(char) && current.length) {
|
|
42
|
+
groups.push(current);
|
|
43
|
+
current = [];
|
|
44
|
+
}
|
|
38
45
|
current.push({
|
|
39
46
|
char,
|
|
40
47
|
index
|
|
41
48
|
});
|
|
42
|
-
if (
|
|
49
|
+
if (breakAfter) {
|
|
43
50
|
groups.push(current);
|
|
44
51
|
current = [];
|
|
45
52
|
}
|
|
@@ -49,7 +56,7 @@ export function ShimmerText({
|
|
|
49
56
|
words: groups,
|
|
50
57
|
total: characters.length
|
|
51
58
|
};
|
|
52
|
-
}, [text]);
|
|
59
|
+
}, [shaped, text]);
|
|
53
60
|
useEffect(() => {
|
|
54
61
|
if (reduceMotion) return;
|
|
55
62
|
progress.value = 0;
|
|
@@ -69,6 +76,18 @@ export function ShimmerText({
|
|
|
69
76
|
children: text
|
|
70
77
|
});
|
|
71
78
|
}
|
|
79
|
+
if (shaped) {
|
|
80
|
+
return /*#__PURE__*/_jsx(ShimmerChar, {
|
|
81
|
+
char: text,
|
|
82
|
+
index: 1,
|
|
83
|
+
total: 3,
|
|
84
|
+
progress: progress,
|
|
85
|
+
activeColor: activeColor,
|
|
86
|
+
mutedColor: mutedColor,
|
|
87
|
+
textStyle: textStyle,
|
|
88
|
+
highlightWidth: Math.max(highlightWidth, 0.5)
|
|
89
|
+
});
|
|
90
|
+
}
|
|
72
91
|
return /*#__PURE__*/_jsx(View, {
|
|
73
92
|
accessible: true,
|
|
74
93
|
accessibilityRole: "text",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useMemo","Text","View","Animated","Easing","Extrapolation","interpolate","interpolateColor","useAnimatedStyle","useReducedMotion","useSharedValue","withDelay","withRepeat","withSequence","withTiming","jsx","_jsx","DEFAULT_DURATION","DEFAULT_HIGHLIGHT_WIDTH","GLYPH_BLEED","paddingHorizontal","marginHorizontal","DEFAULT_TEXT_STYLE","fontSize","fontWeight","lineHeight","ShimmerText","text","activeColor","mutedColor","textStyle","duration","highlightWidth","pause","direction","reduceMotion","progress","words","total","characters","
|
|
1
|
+
{"version":3,"names":["useEffect","useMemo","Text","View","Animated","Easing","Extrapolation","interpolate","interpolateColor","useAnimatedStyle","useReducedMotion","useSharedValue","withDelay","withRepeat","withSequence","withTiming","isCjk","needsShaping","splitGraphemes","jsx","_jsx","DEFAULT_DURATION","DEFAULT_HIGHLIGHT_WIDTH","GLYPH_BLEED","paddingHorizontal","marginHorizontal","DEFAULT_TEXT_STYLE","fontSize","fontWeight","lineHeight","ShimmerText","text","activeColor","mutedColor","textStyle","duration","highlightWidth","pause","direction","reduceMotion","progress","shaped","words","total","characters","groups","current","forEach","char","index","breakAfter","length","push","value","sweep","easing","linear","style","color","children","ShimmerChar","Math","max","accessible","accessibilityRole","accessibilityLabel","flexDirection","flexWrap","map","word","wordIndex","glyph","phase","position","distance","abs","CLAMP","t"],"sourceRoot":"../../../src","sources":["text/shimmer-text.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -35,7 +35,12 @@ export function SpokenText({
|
|
|
35
35
|
color: active,
|
|
36
36
|
textAlign: align
|
|
37
37
|
}, style],
|
|
38
|
-
children:
|
|
38
|
+
children: words.map((word, index) => /*#__PURE__*/_jsx(Text, {
|
|
39
|
+
style: {
|
|
40
|
+
color: index < current ? done : index === current ? active : upcoming
|
|
41
|
+
},
|
|
42
|
+
children: word
|
|
43
|
+
}, index))
|
|
39
44
|
});
|
|
40
45
|
}
|
|
41
46
|
return /*#__PURE__*/_jsx(View, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["memo","useEffect","useMemo","Text","View","Animated","interpolateColor","useAnimatedStyle","useReducedMotion","useSharedValue","withTiming","useMotionPalette","jsx","_jsx","DEFAULT_TEXT_STYLE","fontSize","lineHeight","fontWeight","SpokenText","text","spoken","textStyle","activeColor","spokenColor","upcomingColor","align","colors","style","palette","reduceMotion","words","match","active","done","textSecondary","upcoming","textTertiary","current","Math","min","length","max","floor","accessibilityLabel","color","textAlign","children","
|
|
1
|
+
{"version":3,"names":["memo","useEffect","useMemo","Text","View","Animated","interpolateColor","useAnimatedStyle","useReducedMotion","useSharedValue","withTiming","useMotionPalette","jsx","_jsx","DEFAULT_TEXT_STYLE","fontSize","lineHeight","fontWeight","SpokenText","text","spoken","textStyle","activeColor","spokenColor","upcomingColor","align","colors","style","palette","reduceMotion","words","match","active","done","textSecondary","upcoming","textTertiary","current","Math","min","length","max","floor","accessibilityLabel","color","textAlign","children","map","word","index","accessible","accessibilityRole","flexDirection","flexWrap","justifyContent","SpokenWord","phase","value","duration","transform","translateY","abs"],"sourceRoot":"../../../src","sources":["text/spoken-text.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
import { isValidElement, memo, useEffect, useMemo, useState } from "react";
|
|
4
4
|
import { StyleSheet, Text, View } from "react-native";
|
|
5
5
|
import Animated, { cancelAnimation, useAnimatedStyle, useReducedMotion, useSharedValue, withRepeat, withSequence, withTiming } from "react-native-reanimated";
|
|
6
|
-
import { withAlpha } from "../internal/color.js";
|
|
7
6
|
import { useMotionPalette } from "../theme/provider.js";
|
|
8
7
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
8
|
const DEFAULT_TEXT_STYLE = {
|
|
@@ -108,7 +107,8 @@ export function StreamingText({
|
|
|
108
107
|
const [reveal, setReveal] = useState(() => streaming && animate ? settledReveal("") : settledReveal(text));
|
|
109
108
|
const [now, setNow] = useState(() => Date.now());
|
|
110
109
|
const fading = reveal.chunks.length > 0;
|
|
111
|
-
const
|
|
110
|
+
const flatStyle = StyleSheet.flatten(textStyle);
|
|
111
|
+
const color = flatStyle?.color ?? palette.text;
|
|
112
112
|
useEffect(() => {
|
|
113
113
|
if (!streaming || !animate) {
|
|
114
114
|
setReveal(previous => previous.text === text ? previous : settledReveal(text));
|
|
@@ -174,7 +174,7 @@ export function StreamingText({
|
|
|
174
174
|
if (piece.alpha >= 1) return value;
|
|
175
175
|
return /*#__PURE__*/_jsx(Text, {
|
|
176
176
|
style: {
|
|
177
|
-
|
|
177
|
+
opacity: piece.alpha
|
|
178
178
|
},
|
|
179
179
|
children: value
|
|
180
180
|
}, piece.start);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isValidElement","memo","useEffect","useMemo","useState","StyleSheet","Text","View","Animated","cancelAnimation","useAnimatedStyle","useReducedMotion","useSharedValue","withRepeat","withSequence","withTiming","
|
|
1
|
+
{"version":3,"names":["isValidElement","memo","useEffect","useMemo","useState","StyleSheet","Text","View","Animated","cancelAnimation","useAnimatedStyle","useReducedMotion","useSharedValue","withRepeat","withSequence","withTiming","useMotionPalette","jsx","_jsx","jsxs","_jsxs","DEFAULT_TEXT_STYLE","fontSize","lineHeight","DEFAULT_FADE","FRAME_MS","CARET_BLINK","easeOut","progress","clamped","Math","min","max","commonPrefix","a","b","limit","length","index","charCodeAt","paragraphRanges","text","ranges","breaks","start","match","exec","push","end","settledReveal","settled","chunks","nextReveal","previous","born","common","filter","chunk","map","revealPieces","reveal","now","fadeDuration","pieces","alpha","cursor","StreamingText","streaming","textStyle","paragraphGap","caret","selectable","colors","style","palette","reduceMotion","animate","setReveal","setNow","Date","fading","flatStyle","flatten","color","timer","setInterval","time","live","done","clearInterval","current","Number","POSITIVE_INFINITY","paragraphs","caretNode","Caret","blink","gap","children","range","last","inside","piece","plain","PlainParagraph","value","slice","opacity","flat","height","round","duration","animatedStyle","width","borderRadius","backgroundColor","marginLeft","marginBottom"],"sourceRoot":"../../../src","sources":["text/streaming-text.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effort-bar.d.ts","sourceRoot":"","sources":["../../../../src/chat/effort-bar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAwC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC7E,OAAO,EAML,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAatB,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"effort-bar.d.ts","sourceRoot":"","sources":["../../../../src/chat/effort-bar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAwC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC7E,OAAO,EAML,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAatB,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAkB,CAAC;AAiBtD,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEzE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1H,MAAM,MAAM,eAAe,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhG,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAC3D,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;IACxD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC;AAwBF,wBAAgB,SAAS,CAAC,EACxB,MAAM,EACN,KAAK,EACL,QAAQ,EACR,OAAgB,EAChB,IAAgB,EAChB,KAAK,EAAE,SAAS,EAChB,QAAQ,EACR,SAAS,EACT,QAAgB,EAChB,UAAU,EACV,SAAS,EACT,QAAQ,EACR,kBAAkB,EAClB,YAAoC,EACpC,MAAM,EACN,KAAK,GACN,EAAE,cAAc,+BAmMhB;AA6bD,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;AAE/D,wBAAgB,UAAU,CAAC,KAAK,EAAE,gBAAgB,+BAEjD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,+BAElD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,gBAAgB,+BAEtD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,gBAAgB,+BAEnD"}
|
|
@@ -9,6 +9,7 @@ export type StatusRowProps = {
|
|
|
9
9
|
iconSize?: number;
|
|
10
10
|
active?: boolean;
|
|
11
11
|
startedAt?: number;
|
|
12
|
+
seconds?: number;
|
|
12
13
|
showTimer?: boolean;
|
|
13
14
|
formatTimer?: (seconds: number) => string;
|
|
14
15
|
textStyle?: StyleProp<TextStyle>;
|
|
@@ -16,5 +17,5 @@ export type StatusRowProps = {
|
|
|
16
17
|
colors?: Partial<MotionPalette>;
|
|
17
18
|
style?: StyleProp<ViewStyle>;
|
|
18
19
|
};
|
|
19
|
-
export declare function StatusRow({ label, icon, iconMotion, iconSize, active, startedAt, showTimer, formatTimer, textStyle, timerStyle, colors, style, }: StatusRowProps): import("react").JSX.Element;
|
|
20
|
+
export declare function StatusRow({ label, icon, iconMotion, iconSize, active, startedAt, seconds, showTimer, formatTimer, textStyle, timerStyle, colors, style, }: StatusRowProps): import("react").JSX.Element;
|
|
20
21
|
//# sourceMappingURL=status-row.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status-row.d.ts","sourceRoot":"","sources":["../../../../src/chat/status-row.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAe1F,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAkB,CAAC;AAKtD,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAE5D,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1C,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,UAAU,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC;AAEF,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,IAAI,EACJ,UAAoB,EACpB,QAAa,EACb,MAAa,EACb,SAAS,EACT,SAAgB,EAChB,WAA2B,EAC3B,SAA8B,EAC9B,UAAU,EACV,MAAM,EACN,KAAK,GACN,EAAE,cAAc,+
|
|
1
|
+
{"version":3,"file":"status-row.d.ts","sourceRoot":"","sources":["../../../../src/chat/status-row.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAe1F,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAkB,CAAC;AAKtD,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAE5D,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1C,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,UAAU,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC;AAEF,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,IAAI,EACJ,UAAoB,EACpB,QAAa,EACb,MAAa,EACb,SAAS,EACT,OAAO,EACP,SAAgB,EAChB,WAA2B,EAC3B,SAA8B,EAC9B,UAAU,EACV,MAAM,EACN,KAAK,GACN,EAAE,cAAc,+BA0ChB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thinking-block.d.ts","sourceRoot":"","sources":["../../../../src/chat/thinking-block.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,EAKL,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAgBtB,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAkB,CAAC;AAQtD,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE/D,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACtC,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;IAC9D,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC;AAOF,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,SAAS,EACT,OAAO,EACP,KAAK,EACL,MAAM,EACN,IAAI,EACJ,OAAO,EACP,KAAK,EACL,UAAU,EACV,QAAQ,EACR,IAAI,EAAE,cAAc,EACpB,WAAmB,EACnB,YAAY,EACZ,SAA8B,EAC9B,WAAkC,EAClC,MAAM,EACN,KAAK,GACN,EAAE,kBAAkB,+
|
|
1
|
+
{"version":3,"file":"thinking-block.d.ts","sourceRoot":"","sources":["../../../../src/chat/thinking-block.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,EAKL,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAgBtB,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAkB,CAAC;AAQtD,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE/D,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACtC,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;IAC9D,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC;AAOF,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,SAAS,EACT,OAAO,EACP,KAAK,EACL,MAAM,EACN,IAAI,EACJ,OAAO,EACP,KAAK,EACL,UAAU,EACV,QAAQ,EACR,IAAI,EAAE,cAAc,EACpB,WAAmB,EACnB,YAAY,EACZ,SAA8B,EAC9B,WAAkC,EAClC,MAAM,EACN,KAAK,GACN,EAAE,kBAAkB,+BAyGpB"}
|
|
@@ -1,2 +1,6 @@
|
|
|
1
|
+
type Rgba = [number, number, number, number];
|
|
2
|
+
export declare function parseColor(color: string): Rgba | null;
|
|
1
3
|
export declare function withAlpha(color: string, alpha: number): string;
|
|
4
|
+
export declare function mixColors(from: string, to: string, t: number): string;
|
|
5
|
+
export {};
|
|
2
6
|
//# sourceMappingURL=color.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../../../src/internal/color.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../../../src/internal/color.ts"],"names":[],"mappings":"AAEA,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE7C,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAKrD;AAMD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAK9D;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAUrE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphemes.d.ts","sourceRoot":"","sources":["../../../../src/internal/graphemes.ts"],"names":[],"mappings":"AAcA,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAiBrD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,WAExC;AAED,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,WAEpC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-elapsed.d.ts","sourceRoot":"","sources":["../../../../src/internal/use-elapsed.ts"],"names":[],"mappings":"AAEA,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,SAAO,
|
|
1
|
+
{"version":3,"file":"use-elapsed.d.ts","sourceRoot":"","sources":["../../../../src/internal/use-elapsed.ts"],"names":[],"mappings":"AAEA,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,SAAO,UAa1F;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,UAI5C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-motion-clock.d.ts","sourceRoot":"","sources":["../../../../src/internal/use-motion-clock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAoC,MAAM,yBAAyB,CAAC;AAE7F,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,SAAI,GAAG,WAAW,CAAC,MAAM,CAAC,CAMjF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dot-orb.d.ts","sourceRoot":"","sources":["../../../../src/skia/dot-orb.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"dot-orb.d.ts","sourceRoot":"","sources":["../../../../src/skia/dot-orb.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAK9D,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,eAAe,GAAG,OAAO,CAAC;AAEzE,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC;AA+DF,wBAAgB,MAAM,CAAC,EACrB,OAAiB,EACjB,IAAI,EACJ,KAAK,EACL,MAAM,EACN,KAAS,EACT,QAAY,EACZ,MAAc,EACd,KAAS,EACT,OAAe,EACf,KAAK,GACN,EAAE,WAAW,+BA0Jb"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type MotionPalette } from "../theme/palette.js";
|
|
1
2
|
export type MatrixOrbState = "idle" | "listening" | "thinking";
|
|
2
3
|
export type MatrixOrbProps = {
|
|
3
4
|
state?: MatrixOrbState;
|
|
@@ -7,6 +8,7 @@ export type MatrixOrbProps = {
|
|
|
7
8
|
color?: string;
|
|
8
9
|
stateColors?: Partial<Record<MatrixOrbState, string>>;
|
|
9
10
|
dots?: number;
|
|
11
|
+
colors?: Partial<MotionPalette>;
|
|
10
12
|
};
|
|
11
|
-
export declare function MatrixOrb({ state, level, size, cover, color, stateColors, dots, }: MatrixOrbProps): import("react").JSX.Element | null;
|
|
13
|
+
export declare function MatrixOrb({ state, level, size, cover, color: colorProp, stateColors, dots, colors, }: MatrixOrbProps): import("react").JSX.Element | null;
|
|
12
14
|
//# sourceMappingURL=matrix-orb.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matrix-orb.d.ts","sourceRoot":"","sources":["../../../../src/skia/matrix-orb.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"matrix-orb.d.ts","sourceRoot":"","sources":["../../../../src/skia/matrix-orb.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAkB,CAAC;AAGtD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,WAAW,GAAG,UAAU,CAAC;AAkL/D,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CACjC,CAAC;AAEF,wBAAgB,SAAS,CAAC,EACxB,KAAc,EACd,KAAK,EACL,IAAmB,EACnB,KAAa,EACb,KAAK,EAAE,SAAS,EAChB,WAAW,EACX,IAAmB,EACnB,MAAM,GACP,EAAE,cAAc,sCA6HhB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media-generating.d.ts","sourceRoot":"","sources":["../../../../src/skia/media-generating.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"media-generating.d.ts","sourceRoot":"","sources":["../../../../src/skia/media-generating.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,12 +3,12 @@ import { type SharedValue } from "react-native-reanimated";
|
|
|
3
3
|
export type VoiceWaveVariant = "lines" | "bars" | "dots" | "pulse";
|
|
4
4
|
export type VoiceWaveProps = {
|
|
5
5
|
level: SharedValue<number>;
|
|
6
|
-
colors
|
|
6
|
+
colors?: [string, string, string];
|
|
7
7
|
variant?: VoiceWaveVariant;
|
|
8
8
|
height?: number;
|
|
9
9
|
style?: StyleProp<ViewStyle>;
|
|
10
10
|
};
|
|
11
|
-
export declare function VoiceWave({ level, colors, variant, height, style }: VoiceWaveProps): import("react").JSX.Element;
|
|
11
|
+
export declare function VoiceWave({ level, colors: colorsProp, variant, height, style }: VoiceWaveProps): import("react").JSX.Element;
|
|
12
12
|
export type VoiceWaveStyleProps = Omit<VoiceWaveProps, "variant">;
|
|
13
13
|
export declare function VoiceWaveLines(props: VoiceWaveStyleProps): import("react").JSX.Element;
|
|
14
14
|
export declare function VoiceWaveBars(props: VoiceWaveStyleProps): import("react").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"voice-wave.d.ts","sourceRoot":"","sources":["../../../../src/skia/voice-wave.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAgC,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC5F,OAAO,EAAE,KAAK,WAAW,EAAuE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"voice-wave.d.ts","sourceRoot":"","sources":["../../../../src/skia/voice-wave.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAgC,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC5F,OAAO,EAAE,KAAK,WAAW,EAAuE,MAAM,yBAAyB,CAAC;AA2BhI,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnE,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC;AAuIF,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAiB,EAAE,MAAuB,EAAE,KAAK,EAAE,EAAE,cAAc,+BA4BzH;AAED,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;AAElE,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,+BAExD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,mBAAmB,+BAEvD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,mBAAmB,+BAEvD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,+BAExD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shimmer-text.d.ts","sourceRoot":"","sources":["../../../../src/text/shimmer-text.tsx"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"shimmer-text.d.ts","sourceRoot":"","sources":["../../../../src/text/shimmer-text.tsx"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AA2B1E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;CAC3B,CAAC;AAIF,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,WAAW,EACX,UAAU,EACV,SAA8B,EAC9B,QAA2B,EAC3B,cAAwC,EACxC,KAAS,EACT,SAAiB,GAClB,EAAE,gBAAgB,+BAgFlB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spoken-text.d.ts","sourceRoot":"","sources":["../../../../src/text/spoken-text.tsx"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAE1F,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAkB,CAAC;AAKtD,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC;AAEF,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,MAAM,EACN,SAA8B,EAC9B,WAAW,EACX,WAAW,EACX,aAAa,EACb,KAAgB,EAChB,MAAM,EACN,KAAK,GACN,EAAE,eAAe,+
|
|
1
|
+
{"version":3,"file":"spoken-text.d.ts","sourceRoot":"","sources":["../../../../src/text/spoken-text.tsx"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAE1F,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAkB,CAAC;AAKtD,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC;AAEF,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,MAAM,EACN,SAA8B,EAC9B,WAAW,EACX,WAAW,EACX,aAAa,EACb,KAAgB,EAChB,MAAM,EACN,KAAK,GACN,EAAE,eAAe,+BAyCjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streaming-text.d.ts","sourceRoot":"","sources":["../../../../src/text/streaming-text.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3F,OAAO,
|
|
1
|
+
{"version":3,"file":"streaming-text.d.ts","sourceRoot":"","sources":["../../../../src/text/streaming-text.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3F,OAAO,EAA2C,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAUvH,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAkB,CAAC;AAQtD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC;AA+DF,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,SAAS,EACT,SAA8B,EAC9B,YAAiB,EACjB,YAA2B,EAC3B,KAAY,EACZ,UAAkB,EAClB,MAAM,EACN,KAAK,GACN,EAAE,kBAAkB,+BA2EpB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-ai-animations",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"description": "Animated React Native and Expo components for AI chat apps: streaming text, shimmer loading text, thinking and status indicators, voice orbs and waveforms, image and video generation loaders, question cards and reasoning effort bars. Built on Reanimated and Skia.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Ahmet Kar",
|
package/src/chat/effort-bar.tsx
CHANGED
|
@@ -20,7 +20,7 @@ import Animated, {
|
|
|
20
20
|
useSharedValue,
|
|
21
21
|
withSpring,
|
|
22
22
|
} from "react-native-reanimated";
|
|
23
|
-
import { withAlpha } from "../internal/color";
|
|
23
|
+
import { mixColors, withAlpha } from "../internal/color";
|
|
24
24
|
import { type MotionPalette } from "../theme/palette";
|
|
25
25
|
import { useMotionPalette } from "../theme/provider";
|
|
26
26
|
|
|
@@ -36,6 +36,7 @@ const SLIDER_TAB = 28;
|
|
|
36
36
|
const SLIDER_TAB_RADIUS = 10;
|
|
37
37
|
const SLIDER_SHOULDER = 8;
|
|
38
38
|
const COMPACT_SLIDER_KNOB = 10;
|
|
39
|
+
const DRAG_SLOP = 4;
|
|
39
40
|
|
|
40
41
|
export type EffortBarVariant = "bars" | "track" | "segmented" | "slider";
|
|
41
42
|
|
|
@@ -66,16 +67,6 @@ function normalize(level: EffortLevel): { key?: string; label: string; descripti
|
|
|
66
67
|
return typeof level === "string" ? { label: level } : level;
|
|
67
68
|
}
|
|
68
69
|
|
|
69
|
-
function mix(a: string, b: string, t: number) {
|
|
70
|
-
const parse = (hex: string) => {
|
|
71
|
-
const clean = hex.replace("#", "");
|
|
72
|
-
return [0, 2, 4].map((offset) => parseInt(clean.slice(offset, offset + 2), 16));
|
|
73
|
-
};
|
|
74
|
-
const from = parse(a);
|
|
75
|
-
const to = parse(b);
|
|
76
|
-
const channel = (index: number) => Math.round(from[index] + (to[index] - from[index]) * t).toString(16).padStart(2, "0");
|
|
77
|
-
return `#${channel(0)}${channel(1)}${channel(2)}`;
|
|
78
|
-
}
|
|
79
70
|
|
|
80
71
|
function spread(stops: string[], count: number) {
|
|
81
72
|
if (count <= 1) return [stops[stops.length - 1]];
|
|
@@ -86,7 +77,7 @@ function spread(stops: string[], count: number) {
|
|
|
86
77
|
const high = Math.min(stops.length - 1, low + 1);
|
|
87
78
|
const a = stops[low];
|
|
88
79
|
const b = stops[high];
|
|
89
|
-
return
|
|
80
|
+
return mixColors(a, b, position - low);
|
|
90
81
|
});
|
|
91
82
|
}
|
|
92
83
|
|
|
@@ -116,7 +107,7 @@ export function EffortBar({
|
|
|
116
107
|
const reduceMotion = useReducedMotion();
|
|
117
108
|
const items = useMemo(() => levels.map(normalize), [levels]);
|
|
118
109
|
const count = Math.max(1, items.length);
|
|
119
|
-
const index = Math.min(count - 1, Math.max(0, value));
|
|
110
|
+
const index = Math.min(count - 1, Math.max(0, Number.isFinite(value) ? Math.round(value) : 0));
|
|
120
111
|
const current = items[index];
|
|
121
112
|
const compact = size === "compact";
|
|
122
113
|
const stops = fillColors && fillColors.length > 0 ? fillColors : undefined;
|
|
@@ -132,6 +123,8 @@ export function EffortBar({
|
|
|
132
123
|
const lastIndex = useRef(index);
|
|
133
124
|
const indexRef = useRef(index);
|
|
134
125
|
const dragging = useRef(false);
|
|
126
|
+
const moved = useRef(false);
|
|
127
|
+
const startX = useRef(0);
|
|
135
128
|
const interactive = !!onChange && !disabled;
|
|
136
129
|
indexRef.current = index;
|
|
137
130
|
|
|
@@ -160,14 +153,15 @@ export function EffortBar({
|
|
|
160
153
|
onChange?.(next, { index: next, label: item.label, value: item.value, budget: item.budget });
|
|
161
154
|
};
|
|
162
155
|
|
|
163
|
-
const pick = (x: number,
|
|
156
|
+
const pick = (x: number, mode: "start" | "move" | "tap") => {
|
|
164
157
|
if (!interactive || width === 0) return;
|
|
165
158
|
let next: number;
|
|
166
159
|
if (variant === "slider") {
|
|
167
160
|
const position = Math.min(1, Math.max(0, (x - knobInset - knobSize / 2) / Math.max(1, width - knobInset * 2 - knobSize)));
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
161
|
+
if (mode !== "tap") {
|
|
162
|
+
dragging.current = true;
|
|
163
|
+
knob.value = reduceMotion || mode === "move" ? position : withSpring(position, GRAB_SPRING);
|
|
164
|
+
}
|
|
171
165
|
next = Math.round(position * (count - 1));
|
|
172
166
|
} else {
|
|
173
167
|
next = Math.min(count - 1, Math.max(0, Math.floor((x / width) * count)));
|
|
@@ -176,15 +170,34 @@ export function EffortBar({
|
|
|
176
170
|
lastIndex.current = next;
|
|
177
171
|
select(next);
|
|
178
172
|
};
|
|
179
|
-
const pickRef = useRef(pick);
|
|
180
|
-
pickRef.current = pick;
|
|
181
173
|
|
|
182
|
-
const
|
|
174
|
+
const grant = (x: number) => {
|
|
175
|
+
startX.current = x;
|
|
176
|
+
moved.current = false;
|
|
177
|
+
lastIndex.current = indexRef.current;
|
|
178
|
+
if (variant === "slider" && !reduceMotion) pressed.value = withSpring(1, GRAB_SPRING);
|
|
179
|
+
};
|
|
180
|
+
const grantRef = useRef(grant);
|
|
181
|
+
grantRef.current = grant;
|
|
182
|
+
|
|
183
|
+
const move = (x: number, dx: number) => {
|
|
184
|
+
if (!moved.current && Math.abs(dx) < DRAG_SLOP) return;
|
|
185
|
+
const first = !moved.current;
|
|
186
|
+
moved.current = true;
|
|
187
|
+
pick(x, first ? "start" : "move");
|
|
188
|
+
};
|
|
189
|
+
const moveRef = useRef(move);
|
|
190
|
+
moveRef.current = move;
|
|
191
|
+
|
|
192
|
+
const release = (commit: boolean) => {
|
|
193
|
+
const tap = commit && !moved.current;
|
|
194
|
+
moved.current = false;
|
|
195
|
+
if (tap) pick(startX.current, "tap");
|
|
196
|
+
if (variant === "slider") pressed.value = reduceMotion ? 0 : withSpring(0, LEVEL_SPRING);
|
|
183
197
|
if (!dragging.current) return;
|
|
184
198
|
dragging.current = false;
|
|
185
199
|
const target = count > 1 ? indexRef.current / (count - 1) : 0;
|
|
186
200
|
knob.value = reduceMotion ? target : withSpring(target, LEVEL_SPRING);
|
|
187
|
-
pressed.value = reduceMotion ? 0 : withSpring(0, LEVEL_SPRING);
|
|
188
201
|
};
|
|
189
202
|
const releaseRef = useRef(release);
|
|
190
203
|
releaseRef.current = release;
|
|
@@ -197,12 +210,12 @@ export function EffortBar({
|
|
|
197
210
|
() =>
|
|
198
211
|
PanResponder.create({
|
|
199
212
|
onStartShouldSetPanResponder: () => true,
|
|
200
|
-
onMoveShouldSetPanResponder: (_, gesture) => Math.abs(gesture.dx) >
|
|
201
|
-
onPanResponderTerminationRequest: () =>
|
|
202
|
-
onPanResponderGrant: (event) =>
|
|
203
|
-
onPanResponderMove: (event) =>
|
|
204
|
-
onPanResponderRelease: () => releaseRef.current(),
|
|
205
|
-
onPanResponderTerminate: () => releaseRef.current(),
|
|
213
|
+
onMoveShouldSetPanResponder: (_, gesture) => Math.abs(gesture.dx) > DRAG_SLOP,
|
|
214
|
+
onPanResponderTerminationRequest: () => !moved.current,
|
|
215
|
+
onPanResponderGrant: (event) => grantRef.current(event.nativeEvent.locationX),
|
|
216
|
+
onPanResponderMove: (event, gesture) => moveRef.current(event.nativeEvent.locationX, gesture.dx),
|
|
217
|
+
onPanResponderRelease: () => releaseRef.current(true),
|
|
218
|
+
onPanResponderTerminate: () => releaseRef.current(false),
|
|
206
219
|
}),
|
|
207
220
|
[],
|
|
208
221
|
);
|
|
@@ -333,7 +333,7 @@ export const QuestionCard = forwardRef<QuestionCardHandle, QuestionCardProps>(fu
|
|
|
333
333
|
const padding: ViewStyle = sheet
|
|
334
334
|
? { paddingHorizontal: 20, paddingTop: 12, paddingBottom: 16 }
|
|
335
335
|
: { paddingHorizontal: 16, paddingTop: 12, paddingBottom: 12 };
|
|
336
|
-
const showFooter = kind === "multiple"
|
|
336
|
+
const showFooter = draft.selected.length > 0 && (kind === "multiple" || (last ? !autoSubmit : !autoAdvance));
|
|
337
337
|
|
|
338
338
|
return (
|
|
339
339
|
<Animated.View style={[container, shellStyle, style]}>
|
package/src/chat/status-row.tsx
CHANGED
|
@@ -28,6 +28,7 @@ export type StatusRowProps = {
|
|
|
28
28
|
iconSize?: number;
|
|
29
29
|
active?: boolean;
|
|
30
30
|
startedAt?: number;
|
|
31
|
+
seconds?: number;
|
|
31
32
|
showTimer?: boolean;
|
|
32
33
|
formatTimer?: (seconds: number) => string;
|
|
33
34
|
textStyle?: StyleProp<TextStyle>;
|
|
@@ -43,6 +44,7 @@ export function StatusRow({
|
|
|
43
44
|
iconSize = 18,
|
|
44
45
|
active = true,
|
|
45
46
|
startedAt,
|
|
47
|
+
seconds,
|
|
46
48
|
showTimer = true,
|
|
47
49
|
formatTimer = formatElapsed,
|
|
48
50
|
textStyle = DEFAULT_TEXT_STYLE,
|
|
@@ -52,12 +54,13 @@ export function StatusRow({
|
|
|
52
54
|
}: StatusRowProps) {
|
|
53
55
|
const palette = useMotionPalette(colors);
|
|
54
56
|
const reduceMotion = useReducedMotion();
|
|
55
|
-
const
|
|
57
|
+
const elapsed = useElapsed(startedAt, active);
|
|
58
|
+
const shownSeconds = seconds ?? elapsed;
|
|
56
59
|
|
|
57
60
|
return (
|
|
58
61
|
<View
|
|
59
62
|
accessible
|
|
60
|
-
accessibilityRole="progressbar"
|
|
63
|
+
accessibilityRole={active ? "progressbar" : "text"}
|
|
61
64
|
accessibilityLabel={label}
|
|
62
65
|
accessibilityState={{ busy: active }}
|
|
63
66
|
style={[{ flexDirection: "row", alignItems: "center", gap: 8 }, style]}
|
|
@@ -83,9 +86,9 @@ export function StatusRow({
|
|
|
83
86
|
)}
|
|
84
87
|
</Animated.View>
|
|
85
88
|
</View>
|
|
86
|
-
{showTimer && startedAt !== undefined && (
|
|
89
|
+
{showTimer && (startedAt !== undefined || seconds !== undefined) && (
|
|
87
90
|
<Text style={[textStyle, { color: palette.textTertiary, fontVariant: ["tabular-nums"] }, timerStyle]}>
|
|
88
|
-
{formatTimer(
|
|
91
|
+
{formatTimer(shownSeconds)}
|
|
89
92
|
</Text>
|
|
90
93
|
)}
|
|
91
94
|
</View>
|