@alia.onl/sdk 3.1.1 → 3.1.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alia.onl/sdk",
3
- "version": "3.1.1",
3
+ "version": "3.1.2",
4
4
  "description": "Alia AI chat SDK — reusable chat UI, voice, and streaming components for Oxy apps",
5
5
  "main": "src/index.ts",
6
6
  "react-native": "src/index.ts",
@@ -11,13 +11,16 @@
11
11
  "access": "public"
12
12
  },
13
13
  "dependencies": {
14
+ "@tanstack/query-async-storage-persister": "^5.100.0",
15
+ "@tanstack/react-query": "^5.100.0",
16
+ "@tanstack/react-query-persist-client": "^5.100.0",
14
17
  "react-native-markdown-display": "^7.0.2-0",
15
18
  "zustand": ">=4"
16
19
  },
17
20
  "peerDependencies": {
18
21
  "react": ">=18",
19
22
  "react-native": ">=0.73",
20
- "@oxyhq/services": "6.10.7",
23
+ "@oxyhq/services": "^10.2.3",
21
24
  "expo-blur": "*",
22
25
  "react-native-reanimated": ">=3",
23
26
  "react-native-gesture-handler": ">=2",
@@ -40,49 +43,49 @@
40
43
  },
41
44
  "peerDependenciesMeta": {
42
45
  "livekit-client": {
43
- "optional": true
46
+ "optional": true
47
+ },
48
+ "expo-audio": {
49
+ "optional": true
50
+ },
51
+ "react-native-svg": {
52
+ "optional": true
53
+ },
54
+ "nativewind": {
55
+ "optional": true
56
+ },
57
+ "clsx": {
58
+ "optional": true
59
+ },
60
+ "tailwind-merge": {
61
+ "optional": true
62
+ },
63
+ "class-variance-authority": {
64
+ "optional": true
65
+ },
66
+ "zeego": {
67
+ "optional": true
68
+ },
69
+ "expo-image": {
70
+ "optional": true
71
+ },
72
+ "expo-image-picker": {
73
+ "optional": true
74
+ },
75
+ "expo-document-picker": {
76
+ "optional": true
77
+ },
78
+ "expo-clipboard": {
79
+ "optional": true
80
+ },
81
+ "lucide-react-native": {
82
+ "optional": true
83
+ },
84
+ "@radix-ui/react-dropdown-menu": {
85
+ "optional": true
86
+ }
44
87
  },
45
- "expo-audio": {
46
- "optional": true
47
- },
48
- "react-native-svg": {
49
- "optional": true
50
- },
51
- "nativewind": {
52
- "optional": true
53
- },
54
- "clsx": {
55
- "optional": true
56
- },
57
- "tailwind-merge": {
58
- "optional": true
59
- },
60
- "class-variance-authority": {
61
- "optional": true
62
- },
63
- "zeego": {
64
- "optional": true
65
- },
66
- "expo-image": {
67
- "optional": true
68
- },
69
- "expo-image-picker": {
70
- "optional": true
71
- },
72
- "expo-document-picker": {
73
- "optional": true
74
- },
75
- "expo-clipboard": {
76
- "optional": true
77
- },
78
- "lucide-react-native": {
79
- "optional": true
80
- },
81
- "@radix-ui/react-dropdown-menu": {
82
- "optional": true
83
- }
84
- },
85
- "devDependencies": {
86
- "typescript": "^5.9.3"
87
- }
88
+ "devDependencies": {
89
+ "typescript": "^5.9.3"
90
+ }
88
91
  }
@@ -0,0 +1,6 @@
1
+ import { Easing, FadeInUp } from 'react-native-reanimated';
2
+
3
+ const easeOut = Easing.bezier(0.16, 1, 0.3, 1);
4
+
5
+ export const planPreviewEnter = FadeInUp.duration(220).easing(easeOut);
6
+ export const chatMessageEnter = FadeInUp.duration(220).easing(easeOut);
@@ -9,7 +9,6 @@ import Animated, {
9
9
  withTiming,
10
10
  withSequence,
11
11
  cancelAnimation,
12
- FadeInUp,
13
12
  type SharedValue,
14
13
  } from 'react-native-reanimated';
15
14
  import {
@@ -27,6 +26,7 @@ import { ThinkingIndicator } from './ThinkingIndicator';
27
26
  import { Reasoning, ReasoningTrigger, ReasoningContent } from './Reasoning';
28
27
  import { ResearchProgressCard } from './ResearchProgressCard';
29
28
  import { PlanPreviewCard } from './PlanPreviewCard';
29
+ import { chatMessageEnter } from '../animations';
30
30
  import { getToolLabel, getToolActiveLabel, getResearchActiveLabel } from '../lib/tool-registry';
31
31
  import { getTextFromContent, getImagesFromContent } from '../lib/content-utils';
32
32
  import type { ChatMessage, ToolInvocation } from '../types';
@@ -508,7 +508,7 @@ export function AliaChatMessageList({
508
508
  return (
509
509
  <Animated.View
510
510
  key={msg.id}
511
- entering={isNewMessage ? FadeInUp.springify() : undefined}
511
+ entering={isNewMessage ? chatMessageEnter : undefined}
512
512
  >
513
513
  {msg.role === 'user' ? (
514
514
  <UserBubble
@@ -2,7 +2,8 @@ import { View, Pressable } from 'react-native';
2
2
  import { Text } from './ui/text';
3
3
  import { Button } from './ui/button';
4
4
  import { Check, X, ListChecks } from 'lucide-react-native';
5
- import Animated, { FadeInUp } from 'react-native-reanimated';
5
+ import Animated from 'react-native-reanimated';
6
+ import { planPreviewEnter } from '../animations';
6
7
  import type { PlanStep } from '../types';
7
8
 
8
9
  interface PlanPreviewCardProps {
@@ -33,7 +34,7 @@ export function PlanPreviewCard({ steps, onApprove, onReject, approved, rejected
33
34
  }
34
35
 
35
36
  return (
36
- <Animated.View entering={FadeInUp.springify()}>
37
+ <Animated.View entering={planPreviewEnter}>
37
38
  <View className="border border-border rounded-xl bg-card p-4 gap-3 my-2">
38
39
  <View className="flex-row items-center gap-2">
39
40
  <ListChecks size={16} className="text-foreground" />
@@ -142,7 +142,7 @@ const DropdownMenuSubContent = React.forwardRef<
142
142
  )}
143
143
  style={{
144
144
  boxShadow: '0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.1)',
145
- border: '1px solid hsl(var(--border))',
145
+ border: '1px solid var(--border)',
146
146
  ...style as any,
147
147
  }}
148
148
  {...props}
@@ -168,7 +168,7 @@ const DropdownMenuContent = React.forwardRef<
168
168
  )}
169
169
  style={{
170
170
  boxShadow: '0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.1)',
171
- border: '1px solid hsl(var(--border))',
171
+ border: '1px solid var(--border)',
172
172
  ...style as any,
173
173
  }}
174
174
  {...props}