@docyrus/rn-assistant 0.4.0 → 0.6.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 (53) hide show
  1. package/dist/commonjs/components/assistant-screen/assistant-screen.js +1 -1
  2. package/dist/commonjs/components/assistant-screen/assistant-screen.js.map +1 -1
  3. package/dist/commonjs/components/message-parts/message-parts.js +84 -20
  4. package/dist/commonjs/components/message-parts/message-parts.js.map +1 -1
  5. package/dist/commonjs/components/message-parts/tools/data-table-tool.js +417 -0
  6. package/dist/commonjs/components/message-parts/tools/data-table-tool.js.map +1 -0
  7. package/dist/commonjs/components/message-parts/tools/generate-chart-tool.js +240 -0
  8. package/dist/commonjs/components/message-parts/tools/generate-chart-tool.js.map +1 -0
  9. package/dist/commonjs/components/message-parts/tools/index.js +28 -0
  10. package/dist/commonjs/components/message-parts/tools/index.js.map +1 -1
  11. package/dist/commonjs/components/message-parts/tools/mermaid-diagram-tool.js +223 -0
  12. package/dist/commonjs/components/message-parts/tools/mermaid-diagram-tool.js.map +1 -0
  13. package/dist/commonjs/components/message-parts/tools/request-user-input-tool.js +366 -0
  14. package/dist/commonjs/components/message-parts/tools/request-user-input-tool.js.map +1 -0
  15. package/dist/module/components/assistant-screen/assistant-screen.js +1 -1
  16. package/dist/module/components/assistant-screen/assistant-screen.js.map +1 -1
  17. package/dist/module/components/message-parts/message-parts.js +85 -21
  18. package/dist/module/components/message-parts/message-parts.js.map +1 -1
  19. package/dist/module/components/message-parts/tools/data-table-tool.js +413 -0
  20. package/dist/module/components/message-parts/tools/data-table-tool.js.map +1 -0
  21. package/dist/module/components/message-parts/tools/generate-chart-tool.js +236 -0
  22. package/dist/module/components/message-parts/tools/generate-chart-tool.js.map +1 -0
  23. package/dist/module/components/message-parts/tools/index.js +4 -0
  24. package/dist/module/components/message-parts/tools/index.js.map +1 -1
  25. package/dist/module/components/message-parts/tools/mermaid-diagram-tool.js +219 -0
  26. package/dist/module/components/message-parts/tools/mermaid-diagram-tool.js.map +1 -0
  27. package/dist/module/components/message-parts/tools/request-user-input-tool.js +362 -0
  28. package/dist/module/components/message-parts/tools/request-user-input-tool.js.map +1 -0
  29. package/dist/typescript/commonjs/src/components/assistant-screen/assistant-screen.d.ts.map +1 -1
  30. package/dist/typescript/commonjs/src/components/message-parts/message-parts.d.ts.map +1 -1
  31. package/dist/typescript/commonjs/src/components/message-parts/tools/data-table-tool.d.ts +25 -0
  32. package/dist/typescript/commonjs/src/components/message-parts/tools/data-table-tool.d.ts.map +1 -0
  33. package/dist/typescript/commonjs/src/components/message-parts/tools/generate-chart-tool.d.ts +14 -0
  34. package/dist/typescript/commonjs/src/components/message-parts/tools/generate-chart-tool.d.ts.map +1 -0
  35. package/dist/typescript/commonjs/src/components/message-parts/tools/index.d.ts +4 -0
  36. package/dist/typescript/commonjs/src/components/message-parts/tools/index.d.ts.map +1 -1
  37. package/dist/typescript/commonjs/src/components/message-parts/tools/mermaid-diagram-tool.d.ts +13 -0
  38. package/dist/typescript/commonjs/src/components/message-parts/tools/mermaid-diagram-tool.d.ts.map +1 -0
  39. package/dist/typescript/commonjs/src/components/message-parts/tools/request-user-input-tool.d.ts +33 -0
  40. package/dist/typescript/commonjs/src/components/message-parts/tools/request-user-input-tool.d.ts.map +1 -0
  41. package/dist/typescript/module/src/components/assistant-screen/assistant-screen.d.ts.map +1 -1
  42. package/dist/typescript/module/src/components/message-parts/message-parts.d.ts.map +1 -1
  43. package/dist/typescript/module/src/components/message-parts/tools/data-table-tool.d.ts +25 -0
  44. package/dist/typescript/module/src/components/message-parts/tools/data-table-tool.d.ts.map +1 -0
  45. package/dist/typescript/module/src/components/message-parts/tools/generate-chart-tool.d.ts +14 -0
  46. package/dist/typescript/module/src/components/message-parts/tools/generate-chart-tool.d.ts.map +1 -0
  47. package/dist/typescript/module/src/components/message-parts/tools/index.d.ts +4 -0
  48. package/dist/typescript/module/src/components/message-parts/tools/index.d.ts.map +1 -1
  49. package/dist/typescript/module/src/components/message-parts/tools/mermaid-diagram-tool.d.ts +13 -0
  50. package/dist/typescript/module/src/components/message-parts/tools/mermaid-diagram-tool.d.ts.map +1 -0
  51. package/dist/typescript/module/src/components/message-parts/tools/request-user-input-tool.d.ts +33 -0
  52. package/dist/typescript/module/src/components/message-parts/tools/request-user-input-tool.d.ts.map +1 -0
  53. package/package.json +7 -2
@@ -0,0 +1,413 @@
1
+ "use strict";
2
+
3
+ import { useState, useMemo } from 'react';
4
+ import { View, Text, TouchableOpacity, ScrollView, Modal, SafeAreaView } from 'react-native';
5
+ import { ChevronDown, Table2, X, XCircle } from 'lucide-react-native';
6
+ import { useDocyrusRNAssistantTheme } from "../../../theme/index.js";
7
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
8
+ function parseData(raw) {
9
+ if (!raw) return {
10
+ rows: [],
11
+ error: null
12
+ };
13
+ try {
14
+ const parsed = typeof raw === 'string' ? JSON.parse(raw) : raw;
15
+ if (Array.isArray(parsed)) return {
16
+ rows: parsed,
17
+ error: null
18
+ };
19
+
20
+ // Handle object with nested data arrays
21
+ if (parsed && typeof parsed === 'object') {
22
+ const nested = parsed.data || parsed.rows || parsed.records || parsed.items;
23
+ if (Array.isArray(nested)) return {
24
+ rows: nested,
25
+ error: null
26
+ };
27
+ }
28
+ return {
29
+ rows: [],
30
+ error: null
31
+ };
32
+ } catch (e) {
33
+ return {
34
+ rows: [],
35
+ error: e.message || 'Failed to parse data'
36
+ };
37
+ }
38
+ }
39
+ function getCellValue(row, field) {
40
+ if (!field) return undefined;
41
+
42
+ // Direct match
43
+ if (field in row) return row[field];
44
+
45
+ // Try case-insensitive match
46
+ const lowerField = field.toLowerCase();
47
+ const matchKey = Object.keys(row).find(k => k.toLowerCase() === lowerField);
48
+ if (matchKey) return row[matchKey];
49
+ return undefined;
50
+ }
51
+ export function DataTableTool({
52
+ state,
53
+ data,
54
+ columns,
55
+ title,
56
+ description,
57
+ errorText,
58
+ height,
59
+ additionalComments
60
+ }) {
61
+ const theme = useDocyrusRNAssistantTheme();
62
+ const [expanded, setExpanded] = useState(true);
63
+ const [modalOpen, setModalOpen] = useState(false);
64
+ const {
65
+ rows,
66
+ error: parseError
67
+ } = useMemo(() => parseData(data), [data]);
68
+ const resolvedColumns = useMemo(() => {
69
+ if (columns && columns.length > 0) {
70
+ // Normalize: ensure every column has a field
71
+ return columns.map(col => ({
72
+ ...col,
73
+ field: col.field || col.key || col.name || col.title || ''
74
+ }));
75
+ }
76
+ if (rows.length === 0) return [];
77
+ return Object.keys(rows[0]).map(key => ({
78
+ field: key,
79
+ title: key
80
+ }));
81
+ }, [columns, rows]);
82
+
83
+ // Loading state
84
+ if (state === 'input-streaming' || state === 'input-available') {
85
+ return /*#__PURE__*/_jsxs(View, {
86
+ style: {
87
+ flexDirection: 'row',
88
+ alignItems: 'center',
89
+ gap: 6,
90
+ paddingVertical: 5,
91
+ paddingHorizontal: 2
92
+ },
93
+ children: [/*#__PURE__*/_jsx(Table2, {
94
+ size: 12,
95
+ color: theme.colors.mutedForeground
96
+ }), /*#__PURE__*/_jsx(Text, {
97
+ style: {
98
+ fontSize: 12,
99
+ fontWeight: '300',
100
+ color: theme.colors.mutedForeground
101
+ },
102
+ children: title || 'Loading table\u2026'
103
+ })]
104
+ });
105
+ }
106
+
107
+ // Error state
108
+ if (state === 'output-error' || parseError) {
109
+ return /*#__PURE__*/_jsxs(View, {
110
+ style: {
111
+ flexDirection: 'row',
112
+ alignItems: 'center',
113
+ gap: 6,
114
+ paddingVertical: 5,
115
+ paddingHorizontal: 2
116
+ },
117
+ children: [/*#__PURE__*/_jsx(XCircle, {
118
+ size: 12,
119
+ color: theme.colors.destructive
120
+ }), /*#__PURE__*/_jsx(Text, {
121
+ style: {
122
+ fontSize: 12,
123
+ color: theme.colors.destructive
124
+ },
125
+ children: parseError || errorText || 'Table error'
126
+ })]
127
+ });
128
+ }
129
+ if (rows.length === 0) {
130
+ return /*#__PURE__*/_jsxs(View, {
131
+ style: {
132
+ flexDirection: 'row',
133
+ alignItems: 'center',
134
+ gap: 6,
135
+ paddingVertical: 5,
136
+ paddingHorizontal: 2
137
+ },
138
+ children: [/*#__PURE__*/_jsx(Table2, {
139
+ size: 12,
140
+ color: theme.colors.mutedForeground
141
+ }), /*#__PURE__*/_jsx(Text, {
142
+ style: {
143
+ fontSize: 12,
144
+ color: theme.colors.mutedForeground
145
+ },
146
+ children: "No data to display"
147
+ })]
148
+ });
149
+ }
150
+ const cellStyle = {
151
+ paddingHorizontal: 10,
152
+ paddingVertical: 8,
153
+ borderRightWidth: 1,
154
+ borderRightColor: theme.colors.border
155
+ };
156
+ const headerCellStyle = {
157
+ ...cellStyle,
158
+ backgroundColor: theme.isDark ? theme.colors.muted : '#f8fafc'
159
+ };
160
+ const tableHeight = height || 300;
161
+ const renderTable = fixedHeight => {
162
+ const h = fixedHeight || tableHeight;
163
+ return /*#__PURE__*/_jsx(View, {
164
+ style: {
165
+ height: h
166
+ },
167
+ children: /*#__PURE__*/_jsx(ScrollView, {
168
+ horizontal: true,
169
+ showsHorizontalScrollIndicator: true,
170
+ children: /*#__PURE__*/_jsxs(View, {
171
+ children: [/*#__PURE__*/_jsx(View, {
172
+ style: {
173
+ flexDirection: 'row',
174
+ borderBottomWidth: 1,
175
+ borderBottomColor: theme.colors.border
176
+ },
177
+ children: resolvedColumns.map((col, ci) => /*#__PURE__*/_jsx(View, {
178
+ style: [headerCellStyle, col.width ? {
179
+ width: col.width
180
+ } : {
181
+ minWidth: 120
182
+ }],
183
+ children: /*#__PURE__*/_jsx(Text, {
184
+ style: {
185
+ fontSize: 11,
186
+ fontWeight: '600',
187
+ color: theme.colors.foreground
188
+ },
189
+ numberOfLines: 1,
190
+ children: col.title || col.field
191
+ })
192
+ }, `h-${ci}`))
193
+ }), /*#__PURE__*/_jsx(ScrollView, {
194
+ nestedScrollEnabled: true,
195
+ children: rows.map((row, ri) => /*#__PURE__*/_jsx(View, {
196
+ style: {
197
+ flexDirection: 'row',
198
+ borderBottomWidth: 1,
199
+ borderBottomColor: theme.colors.border,
200
+ backgroundColor: ri % 2 === 0 ? 'transparent' : theme.isDark ? theme.colors.muted : '#f9fafb'
201
+ },
202
+ children: resolvedColumns.map((col, ci) => {
203
+ const val = getCellValue(row, col.field);
204
+ const display = val === null || val === undefined ? '-' : String(val);
205
+ return /*#__PURE__*/_jsx(View, {
206
+ style: [cellStyle, col.width ? {
207
+ width: col.width
208
+ } : {
209
+ minWidth: 120
210
+ }],
211
+ children: /*#__PURE__*/_jsx(Text, {
212
+ style: {
213
+ fontSize: 11,
214
+ color: theme.colors.foreground
215
+ },
216
+ numberOfLines: 2,
217
+ children: display
218
+ })
219
+ }, `c-${ri}-${ci}`);
220
+ })
221
+ }, `r-${ri}`))
222
+ })]
223
+ })
224
+ })
225
+ });
226
+ };
227
+ return /*#__PURE__*/_jsxs(_Fragment, {
228
+ children: [/*#__PURE__*/_jsxs(View, {
229
+ style: {
230
+ borderRadius: 10,
231
+ borderWidth: 1,
232
+ borderColor: theme.colors.border,
233
+ backgroundColor: theme.colors.card,
234
+ overflow: 'hidden',
235
+ marginVertical: 4
236
+ },
237
+ children: [/*#__PURE__*/_jsxs(TouchableOpacity, {
238
+ onPress: () => setExpanded(!expanded),
239
+ activeOpacity: 0.7,
240
+ style: {
241
+ flexDirection: 'row',
242
+ alignItems: 'center',
243
+ justifyContent: 'space-between',
244
+ backgroundColor: theme.isDark ? theme.colors.muted : '#f9fafb',
245
+ paddingHorizontal: 12,
246
+ paddingVertical: 10
247
+ },
248
+ children: [/*#__PURE__*/_jsxs(View, {
249
+ style: {
250
+ flexDirection: 'row',
251
+ alignItems: 'center',
252
+ gap: 8,
253
+ flex: 1
254
+ },
255
+ children: [/*#__PURE__*/_jsx(Table2, {
256
+ size: 16,
257
+ color: theme.colors.mutedForeground
258
+ }), /*#__PURE__*/_jsxs(View, {
259
+ style: {
260
+ flex: 1
261
+ },
262
+ children: [/*#__PURE__*/_jsx(Text, {
263
+ style: {
264
+ fontSize: 13,
265
+ fontWeight: '500',
266
+ color: theme.colors.foreground
267
+ },
268
+ numberOfLines: 1,
269
+ children: title || 'Data Table'
270
+ }), description ? /*#__PURE__*/_jsx(Text, {
271
+ style: {
272
+ fontSize: 11,
273
+ color: theme.colors.mutedForeground,
274
+ marginTop: 1
275
+ },
276
+ numberOfLines: 1,
277
+ children: description
278
+ }) : null]
279
+ })]
280
+ }), /*#__PURE__*/_jsx(ChevronDown, {
281
+ size: 14,
282
+ color: theme.colors.mutedForeground,
283
+ style: {
284
+ transform: [{
285
+ rotate: expanded ? '180deg' : '0deg'
286
+ }]
287
+ }
288
+ })]
289
+ }), expanded ? /*#__PURE__*/_jsxs(View, {
290
+ children: [renderTable(), /*#__PURE__*/_jsxs(View, {
291
+ style: {
292
+ flexDirection: 'row',
293
+ justifyContent: 'space-between',
294
+ alignItems: 'center',
295
+ paddingHorizontal: 12,
296
+ paddingVertical: 6
297
+ },
298
+ children: [/*#__PURE__*/_jsxs(Text, {
299
+ style: {
300
+ fontSize: 10,
301
+ color: theme.colors.mutedForeground
302
+ },
303
+ children: [rows.length, " ", rows.length === 1 ? 'row' : 'rows']
304
+ }), /*#__PURE__*/_jsx(TouchableOpacity, {
305
+ onPress: () => setModalOpen(true),
306
+ hitSlop: 8,
307
+ children: /*#__PURE__*/_jsx(Text, {
308
+ style: {
309
+ fontSize: 10,
310
+ color: theme.colors.primary
311
+ },
312
+ children: "Expand"
313
+ })
314
+ })]
315
+ }), additionalComments ? /*#__PURE__*/_jsxs(View, {
316
+ style: {
317
+ marginHorizontal: 12,
318
+ marginBottom: 10,
319
+ padding: 10,
320
+ backgroundColor: '#eff6ff',
321
+ borderRadius: 8,
322
+ borderWidth: 1,
323
+ borderColor: '#bfdbfe'
324
+ },
325
+ children: [/*#__PURE__*/_jsx(Text, {
326
+ style: {
327
+ fontSize: 11,
328
+ fontWeight: '500',
329
+ color: '#1e3a5f',
330
+ marginBottom: 2
331
+ },
332
+ children: "Note"
333
+ }), /*#__PURE__*/_jsx(Text, {
334
+ style: {
335
+ fontSize: 11,
336
+ color: '#1e40af'
337
+ },
338
+ children: additionalComments
339
+ })]
340
+ }) : null]
341
+ }) : null]
342
+ }), /*#__PURE__*/_jsx(Modal, {
343
+ visible: modalOpen,
344
+ animationType: "slide",
345
+ presentationStyle: "fullScreen",
346
+ children: /*#__PURE__*/_jsxs(SafeAreaView, {
347
+ style: {
348
+ flex: 1,
349
+ backgroundColor: theme.colors.background
350
+ },
351
+ children: [/*#__PURE__*/_jsxs(View, {
352
+ style: {
353
+ flexDirection: 'row',
354
+ alignItems: 'center',
355
+ justifyContent: 'space-between',
356
+ backgroundColor: theme.isDark ? theme.colors.muted : '#f9fafb',
357
+ paddingHorizontal: 16,
358
+ paddingVertical: 10
359
+ },
360
+ children: [/*#__PURE__*/_jsxs(View, {
361
+ style: {
362
+ flexDirection: 'row',
363
+ alignItems: 'center',
364
+ gap: 10,
365
+ flex: 1
366
+ },
367
+ children: [/*#__PURE__*/_jsx(Table2, {
368
+ size: 18,
369
+ color: theme.colors.mutedForeground
370
+ }), /*#__PURE__*/_jsx(Text, {
371
+ style: {
372
+ fontSize: 15,
373
+ fontWeight: '500',
374
+ color: theme.colors.foreground,
375
+ flex: 1
376
+ },
377
+ numberOfLines: 1,
378
+ children: title || 'Data Table'
379
+ })]
380
+ }), /*#__PURE__*/_jsx(TouchableOpacity, {
381
+ onPress: () => setModalOpen(false),
382
+ hitSlop: 8,
383
+ children: /*#__PURE__*/_jsx(X, {
384
+ size: 20,
385
+ color: theme.colors.mutedForeground
386
+ })
387
+ })]
388
+ }), /*#__PURE__*/_jsx(View, {
389
+ style: {
390
+ flex: 1
391
+ },
392
+ children: renderTable(undefined)
393
+ }), /*#__PURE__*/_jsx(View, {
394
+ style: {
395
+ paddingHorizontal: 16,
396
+ paddingVertical: 8,
397
+ borderTopWidth: 1,
398
+ borderTopColor: theme.colors.border
399
+ },
400
+ children: /*#__PURE__*/_jsxs(Text, {
401
+ style: {
402
+ fontSize: 11,
403
+ color: theme.colors.mutedForeground
404
+ },
405
+ children: [rows.length, " ", rows.length === 1 ? 'row' : 'rows']
406
+ })
407
+ })]
408
+ })
409
+ })]
410
+ });
411
+ }
412
+ DataTableTool.displayName = 'DataTableTool';
413
+ //# sourceMappingURL=data-table-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useState","useMemo","View","Text","TouchableOpacity","ScrollView","Modal","SafeAreaView","ChevronDown","Table2","X","XCircle","useDocyrusRNAssistantTheme","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","parseData","raw","rows","error","parsed","JSON","parse","Array","isArray","nested","data","records","items","e","message","getCellValue","row","field","undefined","lowerField","toLowerCase","matchKey","Object","keys","find","k","DataTableTool","state","columns","title","description","errorText","height","additionalComments","theme","expanded","setExpanded","modalOpen","setModalOpen","parseError","resolvedColumns","length","map","col","key","name","style","flexDirection","alignItems","gap","paddingVertical","paddingHorizontal","children","size","color","colors","mutedForeground","fontSize","fontWeight","destructive","cellStyle","borderRightWidth","borderRightColor","border","headerCellStyle","backgroundColor","isDark","muted","tableHeight","renderTable","fixedHeight","h","horizontal","showsHorizontalScrollIndicator","borderBottomWidth","borderBottomColor","ci","width","minWidth","foreground","numberOfLines","nestedScrollEnabled","ri","val","display","String","borderRadius","borderWidth","borderColor","card","overflow","marginVertical","onPress","activeOpacity","justifyContent","flex","marginTop","transform","rotate","hitSlop","primary","marginHorizontal","marginBottom","padding","visible","animationType","presentationStyle","background","borderTopWidth","borderTopColor","displayName"],"sourceRoot":"../../../../../src","sources":["components/message-parts/tools/data-table-tool.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,236 @@
1
+ "use strict";
2
+
3
+ import { useState, useMemo } from 'react';
4
+ import { View, Text, TouchableOpacity, Modal, SafeAreaView, ActivityIndicator } from 'react-native';
5
+ import { WebView } from 'react-native-webview';
6
+ import { BarChart3, Maximize2, X, XCircle } from 'lucide-react-native';
7
+ import { useDocyrusRNAssistantTheme } from "../../../theme/index.js";
8
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
9
+ function buildChartHtml(spec, data, isDark) {
10
+ const bg = isDark ? '#1e1e2e' : '#ffffff';
11
+
12
+ // Merge data into spec if not already present
13
+ const fullSpec = {
14
+ ...spec
15
+ };
16
+ if (!fullSpec.data && data) {
17
+ fullSpec.data = data;
18
+ }
19
+
20
+ // Apply dark theme if needed
21
+ if (isDark && !fullSpec.background) {
22
+ fullSpec.background = bg;
23
+ }
24
+ return `<!DOCTYPE html>
25
+ <html>
26
+ <head>
27
+ <meta name="viewport" content="width=device-width,initial-scale=1">
28
+ <style>
29
+ html, body { margin:0; padding:0; background:${bg}; overflow:hidden; }
30
+ #chart { width:100%; height:100vh; }
31
+ </style>
32
+ </head>
33
+ <body>
34
+ <div id="chart"></div>
35
+ <script src="https://cdn.jsdelivr.net/npm/@visactor/vchart@1/build/index.min.js"></script>
36
+ <script>
37
+ try {
38
+ var spec = ${JSON.stringify(fullSpec)};
39
+ var chart = new VChart.default(spec, { dom: 'chart' });
40
+ chart.renderSync();
41
+ } catch(e) {
42
+ document.getElementById('chart').innerHTML = '<p style="color:red;padding:16px;">'+e.message+'</p>';
43
+ }
44
+ </script>
45
+ </body>
46
+ </html>`;
47
+ }
48
+ export function GenerateChartTool({
49
+ state,
50
+ spec,
51
+ data,
52
+ errorText,
53
+ title
54
+ }) {
55
+ const theme = useDocyrusRNAssistantTheme();
56
+ const [modalOpen, setModalOpen] = useState(false);
57
+
58
+ // Loading / streaming state
59
+ if (state === 'input-streaming' || state === 'input-available') {
60
+ return /*#__PURE__*/_jsxs(View, {
61
+ style: {
62
+ flexDirection: 'row',
63
+ alignItems: 'center',
64
+ gap: 6,
65
+ paddingVertical: 5,
66
+ paddingHorizontal: 2
67
+ },
68
+ children: [/*#__PURE__*/_jsx(BarChart3, {
69
+ size: 12,
70
+ color: theme.colors.mutedForeground
71
+ }), /*#__PURE__*/_jsx(Text, {
72
+ style: {
73
+ fontSize: 12,
74
+ fontWeight: '300',
75
+ color: theme.colors.mutedForeground
76
+ },
77
+ children: title || 'Generating chart\u2026'
78
+ }), /*#__PURE__*/_jsx(ActivityIndicator, {
79
+ size: "small",
80
+ color: theme.colors.mutedForeground
81
+ })]
82
+ });
83
+ }
84
+
85
+ // Error state
86
+ if (state === 'output-error') {
87
+ return /*#__PURE__*/_jsxs(View, {
88
+ style: {
89
+ flexDirection: 'row',
90
+ alignItems: 'center',
91
+ gap: 6,
92
+ paddingVertical: 5,
93
+ paddingHorizontal: 2
94
+ },
95
+ children: [/*#__PURE__*/_jsx(XCircle, {
96
+ size: 12,
97
+ color: theme.colors.destructive
98
+ }), /*#__PURE__*/_jsxs(Text, {
99
+ style: {
100
+ fontSize: 12,
101
+ color: theme.colors.destructive
102
+ },
103
+ children: ["Chart failed", errorText ? `: ${errorText}` : '']
104
+ })]
105
+ });
106
+ }
107
+ if (!spec || !spec.type) return null;
108
+ const html = useMemo(() => buildChartHtml(spec, data, theme.isDark), [spec, data, theme.isDark]);
109
+ return /*#__PURE__*/_jsxs(_Fragment, {
110
+ children: [/*#__PURE__*/_jsxs(View, {
111
+ style: {
112
+ borderRadius: 10,
113
+ borderWidth: 1,
114
+ borderColor: theme.colors.border,
115
+ backgroundColor: theme.colors.card,
116
+ overflow: 'hidden',
117
+ marginVertical: 4
118
+ },
119
+ children: [/*#__PURE__*/_jsxs(View, {
120
+ style: {
121
+ flexDirection: 'row',
122
+ alignItems: 'center',
123
+ justifyContent: 'space-between',
124
+ backgroundColor: theme.isDark ? theme.colors.muted : '#f1f5f9',
125
+ paddingHorizontal: 12,
126
+ paddingVertical: 8
127
+ },
128
+ children: [/*#__PURE__*/_jsxs(View, {
129
+ style: {
130
+ flexDirection: 'row',
131
+ alignItems: 'center',
132
+ gap: 8,
133
+ flex: 1
134
+ },
135
+ children: [/*#__PURE__*/_jsx(BarChart3, {
136
+ size: 16,
137
+ color: theme.colors.mutedForeground
138
+ }), /*#__PURE__*/_jsx(Text, {
139
+ style: {
140
+ fontSize: 13,
141
+ fontWeight: '500',
142
+ color: theme.colors.foreground,
143
+ flex: 1
144
+ },
145
+ numberOfLines: 1,
146
+ children: title || 'Chart'
147
+ })]
148
+ }), /*#__PURE__*/_jsx(TouchableOpacity, {
149
+ onPress: () => setModalOpen(true),
150
+ hitSlop: 8,
151
+ children: /*#__PURE__*/_jsx(Maximize2, {
152
+ size: 14,
153
+ color: theme.colors.mutedForeground
154
+ })
155
+ })]
156
+ }), /*#__PURE__*/_jsx(View, {
157
+ style: {
158
+ height: 300,
159
+ width: '100%'
160
+ },
161
+ children: /*#__PURE__*/_jsx(WebView, {
162
+ source: {
163
+ html
164
+ },
165
+ style: {
166
+ flex: 1,
167
+ backgroundColor: 'transparent'
168
+ },
169
+ scrollEnabled: false,
170
+ originWhitelist: ['*'],
171
+ javaScriptEnabled: true
172
+ })
173
+ })]
174
+ }), /*#__PURE__*/_jsx(Modal, {
175
+ visible: modalOpen,
176
+ animationType: "slide",
177
+ presentationStyle: "fullScreen",
178
+ children: /*#__PURE__*/_jsxs(SafeAreaView, {
179
+ style: {
180
+ flex: 1,
181
+ backgroundColor: theme.isDark ? '#1e1e2e' : '#ffffff'
182
+ },
183
+ children: [/*#__PURE__*/_jsxs(View, {
184
+ style: {
185
+ flexDirection: 'row',
186
+ alignItems: 'center',
187
+ justifyContent: 'space-between',
188
+ backgroundColor: theme.isDark ? theme.colors.muted : '#f1f5f9',
189
+ paddingHorizontal: 16,
190
+ paddingVertical: 10
191
+ },
192
+ children: [/*#__PURE__*/_jsxs(View, {
193
+ style: {
194
+ flexDirection: 'row',
195
+ alignItems: 'center',
196
+ gap: 10,
197
+ flex: 1
198
+ },
199
+ children: [/*#__PURE__*/_jsx(BarChart3, {
200
+ size: 20,
201
+ color: theme.colors.mutedForeground
202
+ }), /*#__PURE__*/_jsx(Text, {
203
+ style: {
204
+ fontSize: 15,
205
+ fontWeight: '500',
206
+ color: theme.colors.foreground,
207
+ flex: 1
208
+ },
209
+ numberOfLines: 1,
210
+ children: title || 'Chart'
211
+ })]
212
+ }), /*#__PURE__*/_jsx(TouchableOpacity, {
213
+ onPress: () => setModalOpen(false),
214
+ hitSlop: 8,
215
+ children: /*#__PURE__*/_jsx(X, {
216
+ size: 20,
217
+ color: theme.colors.mutedForeground
218
+ })
219
+ })]
220
+ }), /*#__PURE__*/_jsx(WebView, {
221
+ source: {
222
+ html
223
+ },
224
+ style: {
225
+ flex: 1
226
+ },
227
+ scrollEnabled: false,
228
+ originWhitelist: ['*'],
229
+ javaScriptEnabled: true
230
+ })]
231
+ })
232
+ })]
233
+ });
234
+ }
235
+ GenerateChartTool.displayName = 'GenerateChartTool';
236
+ //# sourceMappingURL=generate-chart-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useState","useMemo","View","Text","TouchableOpacity","Modal","SafeAreaView","ActivityIndicator","WebView","BarChart3","Maximize2","X","XCircle","useDocyrusRNAssistantTheme","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","buildChartHtml","spec","data","isDark","bg","fullSpec","background","JSON","stringify","GenerateChartTool","state","errorText","title","theme","modalOpen","setModalOpen","style","flexDirection","alignItems","gap","paddingVertical","paddingHorizontal","children","size","color","colors","mutedForeground","fontSize","fontWeight","destructive","type","html","borderRadius","borderWidth","borderColor","border","backgroundColor","card","overflow","marginVertical","justifyContent","muted","flex","foreground","numberOfLines","onPress","hitSlop","height","width","source","scrollEnabled","originWhitelist","javaScriptEnabled","visible","animationType","presentationStyle","displayName"],"sourceRoot":"../../../../../src","sources":["components/message-parts/tools/generate-chart-tool.tsx"],"mappings":";;AAAA,SAASA,QAAQ,EAAEC,OAAO,QAAQ,OAAO;AAEzC,SACEC,IAAI,EAAEC,IAAI,EAAEC,gBAAgB,EAAEC,KAAK,EAAEC,YAAY,EAAEC,iBAAiB,QAC/D,cAAc;AACrB,SAASC,OAAO,QAAQ,sBAAsB;AAC9C,SACEC,SAAS,EAAEC,SAAS,EAAEC,CAAC,EAAEC,OAAO,QAC3B,qBAAqB;AAE5B,SAASC,0BAA0B,QAAQ,yBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AAY5D,SAASC,cAAcA,CAACC,IAAyB,EAAEC,IAAS,EAAEC,MAAe,EAAU;EACrF,MAAMC,EAAE,GAAGD,MAAM,GAAG,SAAS,GAAG,SAAS;;EAEzC;EACA,MAAME,QAAQ,GAAG;IAAE,GAAGJ;EAAK,CAAC;EAE5B,IAAI,CAACI,QAAQ,CAACH,IAAI,IAAIA,IAAI,EAAE;IAC1BG,QAAQ,CAACH,IAAI,GAAGA,IAAI;EACtB;;EAEA;EACA,IAAIC,MAAM,IAAI,CAACE,QAAQ,CAACC,UAAU,EAAE;IAClCD,QAAQ,CAACC,UAAU,GAAGF,EAAE;EAC1B;EAEA,OAAO;AACT;AACA;AACA;AACA;AACA,iDAAiDA,EAAE;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiBG,IAAI,CAACC,SAAS,CAACH,QAAQ,CAAC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AAEA,OAAO,SAASI,iBAAiBA,CAAC;EAChCC,KAAK;EAAET,IAAI;EAAEC,IAAI;EAAES,SAAS;EAAEC;AACR,CAAC,EAAE;EACzB,MAAMC,KAAK,GAAGpB,0BAA0B,CAAC,CAAC;EAC1C,MAAM,CAACqB,SAAS,EAAEC,YAAY,CAAC,GAAGnC,QAAQ,CAAC,KAAK,CAAC;;EAEjD;EACA,IAAI8B,KAAK,KAAK,iBAAiB,IAAIA,KAAK,KAAK,iBAAiB,EAAE;IAC9D,oBACEb,KAAA,CAACf,IAAI;MAACkC,KAAK,EAAE;QACXC,aAAa,EAAE,KAAK;QACpBC,UAAU,EAAE,QAAQ;QACpBC,GAAG,EAAE,CAAC;QACNC,eAAe,EAAE,CAAC;QAClBC,iBAAiB,EAAE;MACrB,CAAE;MAAAC,QAAA,gBACA3B,IAAA,CAACN,SAAS;QAACkC,IAAI,EAAE,EAAG;QAACC,KAAK,EAAEX,KAAK,CAACY,MAAM,CAACC;MAAgB,CAAE,CAAC,eAC5D/B,IAAA,CAACZ,IAAI;QAACiC,KAAK,EAAE;UAAEW,QAAQ,EAAE,EAAE;UAAEC,UAAU,EAAE,KAAK;UAAEJ,KAAK,EAAEX,KAAK,CAACY,MAAM,CAACC;QAAgB,CAAE;QAAAJ,QAAA,EACnFV,KAAK,IAAI;MAAwB,CAC9B,CAAC,eACPjB,IAAA,CAACR,iBAAiB;QAACoC,IAAI,EAAC,OAAO;QAACC,KAAK,EAAEX,KAAK,CAACY,MAAM,CAACC;MAAgB,CAAE,CAAC;IAAA,CACnE,CAAC;EAEX;;EAEA;EACA,IAAIhB,KAAK,KAAK,cAAc,EAAE;IAC5B,oBACEb,KAAA,CAACf,IAAI;MAACkC,KAAK,EAAE;QACXC,aAAa,EAAE,KAAK;QACpBC,UAAU,EAAE,QAAQ;QACpBC,GAAG,EAAE,CAAC;QACNC,eAAe,EAAE,CAAC;QAClBC,iBAAiB,EAAE;MACrB,CAAE;MAAAC,QAAA,gBACA3B,IAAA,CAACH,OAAO;QAAC+B,IAAI,EAAE,EAAG;QAACC,KAAK,EAAEX,KAAK,CAACY,MAAM,CAACI;MAAY,CAAE,CAAC,eACtDhC,KAAA,CAACd,IAAI;QAACiC,KAAK,EAAE;UAAEW,QAAQ,EAAE,EAAE;UAAEH,KAAK,EAAEX,KAAK,CAACY,MAAM,CAACI;QAAY,CAAE;QAAAP,QAAA,GAAC,cAClD,EAACX,SAAS,GAAG,KAAKA,SAAS,EAAE,GAAG,EAAE;MAAA,CAC1C,CAAC;IAAA,CACH,CAAC;EAEX;EAEA,IAAI,CAACV,IAAI,IAAI,CAACA,IAAI,CAAC6B,IAAI,EAAE,OAAO,IAAI;EAEpC,MAAMC,IAAI,GAAGlD,OAAO,CAClB,MAAMmB,cAAc,CAACC,IAAI,EAAEC,IAAI,EAAEW,KAAK,CAACV,MAAM,CAAC,EAC9C,CAACF,IAAI,EAAEC,IAAI,EAAEW,KAAK,CAACV,MAAM,CAC3B,CAAC;EAED,oBACEN,KAAA,CAAAE,SAAA;IAAAuB,QAAA,gBACEzB,KAAA,CAACf,IAAI;MAACkC,KAAK,EAAE;QACXgB,YAAY,EAAE,EAAE;QAChBC,WAAW,EAAE,CAAC;QACdC,WAAW,EAAErB,KAAK,CAACY,MAAM,CAACU,MAAM;QAChCC,eAAe,EAAEvB,KAAK,CAACY,MAAM,CAACY,IAAI;QAClCC,QAAQ,EAAE,QAAQ;QAClBC,cAAc,EAAE;MAClB,CAAE;MAAAjB,QAAA,gBAEAzB,KAAA,CAACf,IAAI;QAACkC,KAAK,EAAE;UACXC,aAAa,EAAE,KAAK;UACpBC,UAAU,EAAE,QAAQ;UACpBsB,cAAc,EAAE,eAAe;UAC/BJ,eAAe,EAAEvB,KAAK,CAACV,MAAM,GAAGU,KAAK,CAACY,MAAM,CAACgB,KAAK,GAAG,SAAS;UAC9DpB,iBAAiB,EAAE,EAAE;UACrBD,eAAe,EAAE;QACnB,CAAE;QAAAE,QAAA,gBACAzB,KAAA,CAACf,IAAI;UAACkC,KAAK,EAAE;YACXC,aAAa,EAAE,KAAK;YAAEC,UAAU,EAAE,QAAQ;YAAEC,GAAG,EAAE,CAAC;YAAEuB,IAAI,EAAE;UAC5D,CAAE;UAAApB,QAAA,gBACA3B,IAAA,CAACN,SAAS;YAACkC,IAAI,EAAE,EAAG;YAACC,KAAK,EAAEX,KAAK,CAACY,MAAM,CAACC;UAAgB,CAAE,CAAC,eAC5D/B,IAAA,CAACZ,IAAI;YACHiC,KAAK,EAAE;cACLW,QAAQ,EAAE,EAAE;cACZC,UAAU,EAAE,KAAK;cACjBJ,KAAK,EAAEX,KAAK,CAACY,MAAM,CAACkB,UAAU;cAC9BD,IAAI,EAAE;YACR,CAAE;YACFE,aAAa,EAAE,CAAE;YAAAtB,QAAA,EAChBV,KAAK,IAAI;UAAO,CACb,CAAC;QAAA,CACH,CAAC,eACPjB,IAAA,CAACX,gBAAgB;UAAC6D,OAAO,EAAEA,CAAA,KAAM9B,YAAY,CAAC,IAAI,CAAE;UAAC+B,OAAO,EAAE,CAAE;UAAAxB,QAAA,eAC9D3B,IAAA,CAACL,SAAS;YAACiC,IAAI,EAAE,EAAG;YAACC,KAAK,EAAEX,KAAK,CAACY,MAAM,CAACC;UAAgB,CAAE;QAAC,CAC5C,CAAC;MAAA,CACf,CAAC,eAGP/B,IAAA,CAACb,IAAI;QAACkC,KAAK,EAAE;UAAE+B,MAAM,EAAE,GAAG;UAAEC,KAAK,EAAE;QAAO,CAAE;QAAA1B,QAAA,eAC1C3B,IAAA,CAACP,OAAO;UACN6D,MAAM,EAAE;YAAElB;UAAK,CAAE;UACjBf,KAAK,EAAE;YAAE0B,IAAI,EAAE,CAAC;YAAEN,eAAe,EAAE;UAAc,CAAE;UACnDc,aAAa,EAAE,KAAM;UACrBC,eAAe,EAAE,CAAC,GAAG,CAAE;UACvBC,iBAAiB;QAAA,CAAE;MAAC,CAClB,CAAC;IAAA,CACH,CAAC,eAGPzD,IAAA,CAACV,KAAK;MAACoE,OAAO,EAAEvC,SAAU;MAACwC,aAAa,EAAC,OAAO;MAACC,iBAAiB,EAAC,YAAY;MAAAjC,QAAA,eAC7EzB,KAAA,CAACX,YAAY;QAAC8B,KAAK,EAAE;UAAE0B,IAAI,EAAE,CAAC;UAAEN,eAAe,EAAEvB,KAAK,CAACV,MAAM,GAAG,SAAS,GAAG;QAAU,CAAE;QAAAmB,QAAA,gBACtFzB,KAAA,CAACf,IAAI;UAACkC,KAAK,EAAE;YACXC,aAAa,EAAE,KAAK;YACpBC,UAAU,EAAE,QAAQ;YACpBsB,cAAc,EAAE,eAAe;YAC/BJ,eAAe,EAAEvB,KAAK,CAACV,MAAM,GAAGU,KAAK,CAACY,MAAM,CAACgB,KAAK,GAAG,SAAS;YAC9DpB,iBAAiB,EAAE,EAAE;YACrBD,eAAe,EAAE;UACnB,CAAE;UAAAE,QAAA,gBACAzB,KAAA,CAACf,IAAI;YAACkC,KAAK,EAAE;cACXC,aAAa,EAAE,KAAK;cAAEC,UAAU,EAAE,QAAQ;cAAEC,GAAG,EAAE,EAAE;cAAEuB,IAAI,EAAE;YAC7D,CAAE;YAAApB,QAAA,gBACA3B,IAAA,CAACN,SAAS;cAACkC,IAAI,EAAE,EAAG;cAACC,KAAK,EAAEX,KAAK,CAACY,MAAM,CAACC;YAAgB,CAAE,CAAC,eAC5D/B,IAAA,CAACZ,IAAI;cACHiC,KAAK,EAAE;gBACLW,QAAQ,EAAE,EAAE;gBACZC,UAAU,EAAE,KAAK;gBACjBJ,KAAK,EAAEX,KAAK,CAACY,MAAM,CAACkB,UAAU;gBAC9BD,IAAI,EAAE;cACR,CAAE;cACFE,aAAa,EAAE,CAAE;cAAAtB,QAAA,EAChBV,KAAK,IAAI;YAAO,CACb,CAAC;UAAA,CACH,CAAC,eACPjB,IAAA,CAACX,gBAAgB;YAAC6D,OAAO,EAAEA,CAAA,KAAM9B,YAAY,CAAC,KAAK,CAAE;YAAC+B,OAAO,EAAE,CAAE;YAAAxB,QAAA,eAC/D3B,IAAA,CAACJ,CAAC;cAACgC,IAAI,EAAE,EAAG;cAACC,KAAK,EAAEX,KAAK,CAACY,MAAM,CAACC;YAAgB,CAAE;UAAC,CACpC,CAAC;QAAA,CACf,CAAC,eACP/B,IAAA,CAACP,OAAO;UACN6D,MAAM,EAAE;YAAElB;UAAK,CAAE;UACjBf,KAAK,EAAE;YAAE0B,IAAI,EAAE;UAAE,CAAE;UACnBQ,aAAa,EAAE,KAAM;UACrBC,eAAe,EAAE,CAAC,GAAG,CAAE;UACvBC,iBAAiB;QAAA,CAAE,CAAC;MAAA,CACV;IAAC,CACV,CAAC;EAAA,CACR,CAAC;AAEP;AAEA3C,iBAAiB,CAAC+C,WAAW,GAAG,mBAAmB","ignoreList":[]}