@crafter/rn-ai-elements 0.0.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/chatbot/AIImage.js +126 -0
- package/lib/commonjs/chatbot/AIImage.js.map +1 -0
- package/lib/commonjs/chatbot/Attachments.js +317 -0
- package/lib/commonjs/chatbot/Attachments.js.map +1 -0
- package/lib/commonjs/chatbot/ChatErrorBoundary.js +201 -0
- package/lib/commonjs/chatbot/ChatErrorBoundary.js.map +1 -0
- package/lib/commonjs/chatbot/ChatMessageItem.js +169 -0
- package/lib/commonjs/chatbot/ChatMessageItem.js.map +1 -0
- package/lib/commonjs/chatbot/Conversation.js +415 -0
- package/lib/commonjs/chatbot/Conversation.js.map +1 -0
- package/lib/commonjs/chatbot/ConversationScrollButton.js +131 -0
- package/lib/commonjs/chatbot/ConversationScrollButton.js.map +1 -0
- package/lib/commonjs/chatbot/Message.js +203 -0
- package/lib/commonjs/chatbot/Message.js.map +1 -0
- package/lib/commonjs/chatbot/PromptInput.js +352 -0
- package/lib/commonjs/chatbot/PromptInput.js.map +1 -0
- package/lib/commonjs/chatbot/Reasoning.js +184 -0
- package/lib/commonjs/chatbot/Reasoning.js.map +1 -0
- package/lib/commonjs/chatbot/Shimmer.js +116 -0
- package/lib/commonjs/chatbot/Shimmer.js.map +1 -0
- package/lib/commonjs/chatbot/Sources.js +212 -0
- package/lib/commonjs/chatbot/Sources.js.map +1 -0
- package/lib/commonjs/chatbot/Suggestion.js +99 -0
- package/lib/commonjs/chatbot/Suggestion.js.map +1 -0
- package/lib/commonjs/chatbot/Tool.js +307 -0
- package/lib/commonjs/chatbot/Tool.js.map +1 -0
- package/lib/commonjs/chatbot/adapters/uiMessageAdapter.js +141 -0
- package/lib/commonjs/chatbot/adapters/uiMessageAdapter.js.map +1 -0
- package/lib/commonjs/chatbot/index.js +140 -0
- package/lib/commonjs/chatbot/index.js.map +1 -0
- package/lib/commonjs/chatbot/types.js +6 -0
- package/lib/commonjs/chatbot/types.js.map +1 -0
- package/lib/commonjs/hooks/index.js +34 -0
- package/lib/commonjs/hooks/index.js.map +1 -0
- package/lib/commonjs/hooks/useAutoScroll.js +39 -0
- package/lib/commonjs/hooks/useAutoScroll.js.map +1 -0
- package/lib/commonjs/hooks/useClipboard.js +44 -0
- package/lib/commonjs/hooks/useClipboard.js.map +1 -0
- package/lib/commonjs/hooks/useCollapsible.js +35 -0
- package/lib/commonjs/hooks/useCollapsible.js.map +1 -0
- package/lib/commonjs/hooks/useStickToBottom.js +68 -0
- package/lib/commonjs/hooks/useStickToBottom.js.map +1 -0
- package/lib/commonjs/index.js +257 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/primitives/Badge.js +119 -0
- package/lib/commonjs/primitives/Badge.js.map +1 -0
- package/lib/commonjs/primitives/Button.js +185 -0
- package/lib/commonjs/primitives/Button.js.map +1 -0
- package/lib/commonjs/primitives/Card.js +166 -0
- package/lib/commonjs/primitives/Card.js.map +1 -0
- package/lib/commonjs/primitives/Collapsible.js +137 -0
- package/lib/commonjs/primitives/Collapsible.js.map +1 -0
- package/lib/commonjs/primitives/ScrollArea.js +40 -0
- package/lib/commonjs/primitives/ScrollArea.js.map +1 -0
- package/lib/commonjs/primitives/index.js +83 -0
- package/lib/commonjs/primitives/index.js.map +1 -0
- package/lib/commonjs/streaming/StreamingMarkdown.js +252 -0
- package/lib/commonjs/streaming/StreamingMarkdown.js.map +1 -0
- package/lib/commonjs/streaming/index.js +13 -0
- package/lib/commonjs/streaming/index.js.map +1 -0
- package/lib/commonjs/streaming/parser.js +482 -0
- package/lib/commonjs/streaming/parser.js.map +1 -0
- package/lib/commonjs/streaming/renderers/BlockquoteRenderer.js +35 -0
- package/lib/commonjs/streaming/renderers/BlockquoteRenderer.js.map +1 -0
- package/lib/commonjs/streaming/renderers/CodeRenderer.js +128 -0
- package/lib/commonjs/streaming/renderers/CodeRenderer.js.map +1 -0
- package/lib/commonjs/streaming/renderers/HeadingRenderer.js +61 -0
- package/lib/commonjs/streaming/renderers/HeadingRenderer.js.map +1 -0
- package/lib/commonjs/streaming/renderers/ImageRenderer.js +53 -0
- package/lib/commonjs/streaming/renderers/ImageRenderer.js.map +1 -0
- package/lib/commonjs/streaming/renderers/LinkRenderer.js +49 -0
- package/lib/commonjs/streaming/renderers/LinkRenderer.js.map +1 -0
- package/lib/commonjs/streaming/renderers/ListRenderer.js +63 -0
- package/lib/commonjs/streaming/renderers/ListRenderer.js.map +1 -0
- package/lib/commonjs/streaming/renderers/TableRenderer.js +77 -0
- package/lib/commonjs/streaming/renderers/TableRenderer.js.map +1 -0
- package/lib/commonjs/streaming/renderers/TextRenderer.js +41 -0
- package/lib/commonjs/streaming/renderers/TextRenderer.js.map +1 -0
- package/lib/commonjs/streaming/renderers/index.js +76 -0
- package/lib/commonjs/streaming/renderers/index.js.map +1 -0
- package/lib/commonjs/streaming/renderers/renderInlineChildren.js +112 -0
- package/lib/commonjs/streaming/renderers/renderInlineChildren.js.map +1 -0
- package/lib/commonjs/streaming/renderers/renderNode.js +81 -0
- package/lib/commonjs/streaming/renderers/renderNode.js.map +1 -0
- package/lib/commonjs/theme/ThemeProvider.js +68 -0
- package/lib/commonjs/theme/ThemeProvider.js.map +1 -0
- package/lib/commonjs/theme/defaultTheme.js +96 -0
- package/lib/commonjs/theme/defaultTheme.js.map +1 -0
- package/lib/commonjs/theme/index.js +32 -0
- package/lib/commonjs/theme/index.js.map +1 -0
- package/lib/commonjs/theme/tokens.js +2 -0
- package/lib/commonjs/theme/tokens.js.map +1 -0
- package/lib/commonjs/types.d.js +2 -0
- package/lib/commonjs/types.d.js.map +1 -0
- package/lib/commonjs/voice/index.js +13 -0
- package/lib/commonjs/voice/index.js.map +1 -0
- package/lib/commonjs/voice/useSpeechRecognition.js +172 -0
- package/lib/commonjs/voice/useSpeechRecognition.js.map +1 -0
- package/lib/module/chatbot/AIImage.js +121 -0
- package/lib/module/chatbot/AIImage.js.map +1 -0
- package/lib/module/chatbot/Attachments.js +312 -0
- package/lib/module/chatbot/Attachments.js.map +1 -0
- package/lib/module/chatbot/ChatErrorBoundary.js +196 -0
- package/lib/module/chatbot/ChatErrorBoundary.js.map +1 -0
- package/lib/module/chatbot/ChatMessageItem.js +164 -0
- package/lib/module/chatbot/ChatMessageItem.js.map +1 -0
- package/lib/module/chatbot/Conversation.js +412 -0
- package/lib/module/chatbot/Conversation.js.map +1 -0
- package/lib/module/chatbot/ConversationScrollButton.js +126 -0
- package/lib/module/chatbot/ConversationScrollButton.js.map +1 -0
- package/lib/module/chatbot/Message.js +198 -0
- package/lib/module/chatbot/Message.js.map +1 -0
- package/lib/module/chatbot/PromptInput.js +347 -0
- package/lib/module/chatbot/PromptInput.js.map +1 -0
- package/lib/module/chatbot/Reasoning.js +179 -0
- package/lib/module/chatbot/Reasoning.js.map +1 -0
- package/lib/module/chatbot/Shimmer.js +111 -0
- package/lib/module/chatbot/Shimmer.js.map +1 -0
- package/lib/module/chatbot/Sources.js +207 -0
- package/lib/module/chatbot/Sources.js.map +1 -0
- package/lib/module/chatbot/Suggestion.js +94 -0
- package/lib/module/chatbot/Suggestion.js.map +1 -0
- package/lib/module/chatbot/Tool.js +303 -0
- package/lib/module/chatbot/Tool.js.map +1 -0
- package/lib/module/chatbot/adapters/uiMessageAdapter.js +137 -0
- package/lib/module/chatbot/adapters/uiMessageAdapter.js.map +1 -0
- package/lib/module/chatbot/index.js +39 -0
- package/lib/module/chatbot/index.js.map +1 -0
- package/lib/module/chatbot/types.js +4 -0
- package/lib/module/chatbot/types.js.map +1 -0
- package/lib/module/hooks/index.js +7 -0
- package/lib/module/hooks/index.js.map +1 -0
- package/lib/module/hooks/useAutoScroll.js +35 -0
- package/lib/module/hooks/useAutoScroll.js.map +1 -0
- package/lib/module/hooks/useClipboard.js +40 -0
- package/lib/module/hooks/useClipboard.js.map +1 -0
- package/lib/module/hooks/useCollapsible.js +31 -0
- package/lib/module/hooks/useCollapsible.js.map +1 -0
- package/lib/module/hooks/useStickToBottom.js +64 -0
- package/lib/module/hooks/useStickToBottom.js.map +1 -0
- package/lib/module/index.js +19 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/primitives/Badge.js +114 -0
- package/lib/module/primitives/Badge.js.map +1 -0
- package/lib/module/primitives/Button.js +180 -0
- package/lib/module/primitives/Button.js.map +1 -0
- package/lib/module/primitives/Card.js +156 -0
- package/lib/module/primitives/Card.js.map +1 -0
- package/lib/module/primitives/Collapsible.js +130 -0
- package/lib/module/primitives/Collapsible.js.map +1 -0
- package/lib/module/primitives/ScrollArea.js +35 -0
- package/lib/module/primitives/ScrollArea.js.map +1 -0
- package/lib/module/primitives/index.js +8 -0
- package/lib/module/primitives/index.js.map +1 -0
- package/lib/module/streaming/StreamingMarkdown.js +246 -0
- package/lib/module/streaming/StreamingMarkdown.js.map +1 -0
- package/lib/module/streaming/index.js +4 -0
- package/lib/module/streaming/index.js.map +1 -0
- package/lib/module/streaming/parser.js +477 -0
- package/lib/module/streaming/parser.js.map +1 -0
- package/lib/module/streaming/renderers/BlockquoteRenderer.js +30 -0
- package/lib/module/streaming/renderers/BlockquoteRenderer.js.map +1 -0
- package/lib/module/streaming/renderers/CodeRenderer.js +123 -0
- package/lib/module/streaming/renderers/CodeRenderer.js.map +1 -0
- package/lib/module/streaming/renderers/HeadingRenderer.js +56 -0
- package/lib/module/streaming/renderers/HeadingRenderer.js.map +1 -0
- package/lib/module/streaming/renderers/ImageRenderer.js +48 -0
- package/lib/module/streaming/renderers/ImageRenderer.js.map +1 -0
- package/lib/module/streaming/renderers/LinkRenderer.js +44 -0
- package/lib/module/streaming/renderers/LinkRenderer.js.map +1 -0
- package/lib/module/streaming/renderers/ListRenderer.js +58 -0
- package/lib/module/streaming/renderers/ListRenderer.js.map +1 -0
- package/lib/module/streaming/renderers/TableRenderer.js +72 -0
- package/lib/module/streaming/renderers/TableRenderer.js.map +1 -0
- package/lib/module/streaming/renderers/TextRenderer.js +36 -0
- package/lib/module/streaming/renderers/TextRenderer.js.map +1 -0
- package/lib/module/streaming/renderers/index.js +13 -0
- package/lib/module/streaming/renderers/index.js.map +1 -0
- package/lib/module/streaming/renderers/renderInlineChildren.js +107 -0
- package/lib/module/streaming/renderers/renderInlineChildren.js.map +1 -0
- package/lib/module/streaming/renderers/renderNode.js +78 -0
- package/lib/module/streaming/renderers/renderNode.js.map +1 -0
- package/lib/module/theme/ThemeProvider.js +62 -0
- package/lib/module/theme/ThemeProvider.js.map +1 -0
- package/lib/module/theme/defaultTheme.js +92 -0
- package/lib/module/theme/defaultTheme.js.map +1 -0
- package/lib/module/theme/index.js +5 -0
- package/lib/module/theme/index.js.map +1 -0
- package/lib/module/theme/tokens.js +2 -0
- package/lib/module/theme/tokens.js.map +1 -0
- package/lib/module/types.d.js +2 -0
- package/lib/module/types.d.js.map +1 -0
- package/lib/module/voice/index.js +14 -0
- package/lib/module/voice/index.js.map +1 -0
- package/lib/module/voice/useSpeechRecognition.js +169 -0
- package/lib/module/voice/useSpeechRecognition.js.map +1 -0
- package/lib/typescript/src/chatbot/AIImage.d.ts +24 -0
- package/lib/typescript/src/chatbot/AIImage.d.ts.map +1 -0
- package/lib/typescript/src/chatbot/Attachments.d.ts +20 -0
- package/lib/typescript/src/chatbot/Attachments.d.ts.map +1 -0
- package/lib/typescript/src/chatbot/ChatErrorBoundary.d.ts +57 -0
- package/lib/typescript/src/chatbot/ChatErrorBoundary.d.ts.map +1 -0
- package/lib/typescript/src/chatbot/ChatMessageItem.d.ts +45 -0
- package/lib/typescript/src/chatbot/ChatMessageItem.d.ts.map +1 -0
- package/lib/typescript/src/chatbot/Conversation.d.ts +94 -0
- package/lib/typescript/src/chatbot/Conversation.d.ts.map +1 -0
- package/lib/typescript/src/chatbot/ConversationScrollButton.d.ts +62 -0
- package/lib/typescript/src/chatbot/ConversationScrollButton.d.ts.map +1 -0
- package/lib/typescript/src/chatbot/Message.d.ts +39 -0
- package/lib/typescript/src/chatbot/Message.d.ts.map +1 -0
- package/lib/typescript/src/chatbot/PromptInput.d.ts +93 -0
- package/lib/typescript/src/chatbot/PromptInput.d.ts.map +1 -0
- package/lib/typescript/src/chatbot/Reasoning.d.ts +14 -0
- package/lib/typescript/src/chatbot/Reasoning.d.ts.map +1 -0
- package/lib/typescript/src/chatbot/Shimmer.d.ts +13 -0
- package/lib/typescript/src/chatbot/Shimmer.d.ts.map +1 -0
- package/lib/typescript/src/chatbot/Sources.d.ts +17 -0
- package/lib/typescript/src/chatbot/Sources.d.ts.map +1 -0
- package/lib/typescript/src/chatbot/Suggestion.d.ts +15 -0
- package/lib/typescript/src/chatbot/Suggestion.d.ts.map +1 -0
- package/lib/typescript/src/chatbot/Tool.d.ts +30 -0
- package/lib/typescript/src/chatbot/Tool.d.ts.map +1 -0
- package/lib/typescript/src/chatbot/adapters/uiMessageAdapter.d.ts +24 -0
- package/lib/typescript/src/chatbot/adapters/uiMessageAdapter.d.ts.map +1 -0
- package/lib/typescript/src/chatbot/index.d.ts +29 -0
- package/lib/typescript/src/chatbot/index.d.ts.map +1 -0
- package/lib/typescript/src/chatbot/types.d.ts +49 -0
- package/lib/typescript/src/chatbot/types.d.ts.map +1 -0
- package/lib/typescript/src/hooks/index.d.ts +9 -0
- package/lib/typescript/src/hooks/index.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useAutoScroll.d.ts +23 -0
- package/lib/typescript/src/hooks/useAutoScroll.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useClipboard.d.ts +22 -0
- package/lib/typescript/src/hooks/useClipboard.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useCollapsible.d.ts +28 -0
- package/lib/typescript/src/hooks/useCollapsible.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useStickToBottom.d.ts +39 -0
- package/lib/typescript/src/hooks/useStickToBottom.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +11 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/primitives/Badge.d.ts +10 -0
- package/lib/typescript/src/primitives/Badge.d.ts.map +1 -0
- package/lib/typescript/src/primitives/Button.d.ts +16 -0
- package/lib/typescript/src/primitives/Button.d.ts.map +1 -0
- package/lib/typescript/src/primitives/Card.d.ts +33 -0
- package/lib/typescript/src/primitives/Card.d.ts.map +1 -0
- package/lib/typescript/src/primitives/Collapsible.d.ts +20 -0
- package/lib/typescript/src/primitives/Collapsible.d.ts.map +1 -0
- package/lib/typescript/src/primitives/ScrollArea.d.ts +10 -0
- package/lib/typescript/src/primitives/ScrollArea.d.ts.map +1 -0
- package/lib/typescript/src/primitives/index.d.ts +11 -0
- package/lib/typescript/src/primitives/index.d.ts.map +1 -0
- package/lib/typescript/src/streaming/StreamingMarkdown.d.ts +47 -0
- package/lib/typescript/src/streaming/StreamingMarkdown.d.ts.map +1 -0
- package/lib/typescript/src/streaming/index.d.ts +3 -0
- package/lib/typescript/src/streaming/index.d.ts.map +1 -0
- package/lib/typescript/src/streaming/parser.d.ts +41 -0
- package/lib/typescript/src/streaming/parser.d.ts.map +1 -0
- package/lib/typescript/src/streaming/renderers/BlockquoteRenderer.d.ts +7 -0
- package/lib/typescript/src/streaming/renderers/BlockquoteRenderer.d.ts.map +1 -0
- package/lib/typescript/src/streaming/renderers/CodeRenderer.d.ts +7 -0
- package/lib/typescript/src/streaming/renderers/CodeRenderer.d.ts.map +1 -0
- package/lib/typescript/src/streaming/renderers/HeadingRenderer.d.ts +7 -0
- package/lib/typescript/src/streaming/renderers/HeadingRenderer.d.ts.map +1 -0
- package/lib/typescript/src/streaming/renderers/ImageRenderer.d.ts +7 -0
- package/lib/typescript/src/streaming/renderers/ImageRenderer.d.ts.map +1 -0
- package/lib/typescript/src/streaming/renderers/LinkRenderer.d.ts +7 -0
- package/lib/typescript/src/streaming/renderers/LinkRenderer.d.ts.map +1 -0
- package/lib/typescript/src/streaming/renderers/ListRenderer.d.ts +7 -0
- package/lib/typescript/src/streaming/renderers/ListRenderer.d.ts.map +1 -0
- package/lib/typescript/src/streaming/renderers/TableRenderer.d.ts +7 -0
- package/lib/typescript/src/streaming/renderers/TableRenderer.d.ts.map +1 -0
- package/lib/typescript/src/streaming/renderers/TextRenderer.d.ts +7 -0
- package/lib/typescript/src/streaming/renderers/TextRenderer.d.ts.map +1 -0
- package/lib/typescript/src/streaming/renderers/index.d.ts +19 -0
- package/lib/typescript/src/streaming/renderers/index.d.ts.map +1 -0
- package/lib/typescript/src/streaming/renderers/renderInlineChildren.d.ts +12 -0
- package/lib/typescript/src/streaming/renderers/renderInlineChildren.d.ts.map +1 -0
- package/lib/typescript/src/streaming/renderers/renderNode.d.ts +8 -0
- package/lib/typescript/src/streaming/renderers/renderNode.d.ts.map +1 -0
- package/lib/typescript/src/theme/ThemeProvider.d.ts +14 -0
- package/lib/typescript/src/theme/ThemeProvider.d.ts.map +1 -0
- package/lib/typescript/src/theme/defaultTheme.d.ts +4 -0
- package/lib/typescript/src/theme/defaultTheme.d.ts.map +1 -0
- package/lib/typescript/src/theme/index.d.ts +5 -0
- package/lib/typescript/src/theme/index.d.ts.map +1 -0
- package/lib/typescript/src/theme/tokens.d.ts +66 -0
- package/lib/typescript/src/theme/tokens.d.ts.map +1 -0
- package/lib/typescript/src/voice/index.d.ts +3 -0
- package/lib/typescript/src/voice/index.d.ts.map +1 -0
- package/lib/typescript/src/voice/useSpeechRecognition.d.ts +77 -0
- package/lib/typescript/src/voice/useSpeechRecognition.d.ts.map +1 -0
- package/package.json +132 -0
- package/src/chatbot/AIImage.tsx +166 -0
- package/src/chatbot/Attachments.tsx +382 -0
- package/src/chatbot/ChatErrorBoundary.tsx +230 -0
- package/src/chatbot/ChatMessageItem.tsx +195 -0
- package/src/chatbot/Conversation.tsx +537 -0
- package/src/chatbot/ConversationScrollButton.tsx +149 -0
- package/src/chatbot/Message.tsx +266 -0
- package/src/chatbot/PromptInput.tsx +532 -0
- package/src/chatbot/Reasoning.tsx +198 -0
- package/src/chatbot/Shimmer.tsx +146 -0
- package/src/chatbot/Sources.tsx +263 -0
- package/src/chatbot/Suggestion.tsx +123 -0
- package/src/chatbot/Tool.tsx +340 -0
- package/src/chatbot/adapters/uiMessageAdapter.ts +177 -0
- package/src/chatbot/index.ts +97 -0
- package/src/chatbot/types.ts +66 -0
- package/src/hooks/index.ts +17 -0
- package/src/hooks/useAutoScroll.ts +43 -0
- package/src/hooks/useClipboard.ts +46 -0
- package/src/hooks/useCollapsible.ts +42 -0
- package/src/hooks/useStickToBottom.ts +82 -0
- package/src/index.ts +139 -0
- package/src/primitives/Badge.tsx +119 -0
- package/src/primitives/Button.tsx +213 -0
- package/src/primitives/Card.tsx +221 -0
- package/src/primitives/Collapsible.tsx +168 -0
- package/src/primitives/ScrollArea.tsx +53 -0
- package/src/primitives/index.ts +36 -0
- package/src/streaming/StreamingMarkdown.tsx +282 -0
- package/src/streaming/index.ts +2 -0
- package/src/streaming/parser.ts +506 -0
- package/src/streaming/renderers/BlockquoteRenderer.tsx +42 -0
- package/src/streaming/renderers/CodeRenderer.tsx +158 -0
- package/src/streaming/renderers/HeadingRenderer.tsx +64 -0
- package/src/streaming/renderers/ImageRenderer.tsx +62 -0
- package/src/streaming/renderers/LinkRenderer.tsx +53 -0
- package/src/streaming/renderers/ListRenderer.tsx +65 -0
- package/src/streaming/renderers/TableRenderer.tsx +103 -0
- package/src/streaming/renderers/TextRenderer.tsx +39 -0
- package/src/streaming/renderers/index.ts +26 -0
- package/src/streaming/renderers/renderInlineChildren.tsx +115 -0
- package/src/streaming/renderers/renderNode.tsx +72 -0
- package/src/theme/ThemeProvider.tsx +77 -0
- package/src/theme/defaultTheme.ts +93 -0
- package/src/theme/index.ts +4 -0
- package/src/theme/tokens.ts +69 -0
- package/src/types.d.ts +71 -0
- package/src/voice/index.ts +15 -0
- package/src/voice/useSpeechRecognition.ts +230 -0
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { memo } from 'react';
|
|
4
|
+
import { Image, Pressable, ScrollView, StyleSheet, Text, View } from 'react-native';
|
|
5
|
+
import { File, ImageIcon } from 'lucide-react-native';
|
|
6
|
+
import { useAIElementsTheme } from '../theme';
|
|
7
|
+
|
|
8
|
+
// ---------------------------------------------------------------------------
|
|
9
|
+
// Types
|
|
10
|
+
// ---------------------------------------------------------------------------
|
|
11
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
// Helpers
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
|
|
16
|
+
function formatFileSize(bytes) {
|
|
17
|
+
if (bytes == null) return '';
|
|
18
|
+
if (bytes < 1024) return `${bytes} B`;
|
|
19
|
+
if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;
|
|
20
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
21
|
+
}
|
|
22
|
+
function getImageSource(attachment) {
|
|
23
|
+
const source = attachment.uri ?? attachment.url;
|
|
24
|
+
return source ? {
|
|
25
|
+
uri: source
|
|
26
|
+
} : undefined;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// ---------------------------------------------------------------------------
|
|
30
|
+
// Image thumbnail
|
|
31
|
+
// ---------------------------------------------------------------------------
|
|
32
|
+
|
|
33
|
+
function ImageThumbnail({
|
|
34
|
+
attachment,
|
|
35
|
+
size,
|
|
36
|
+
style
|
|
37
|
+
}) {
|
|
38
|
+
const theme = useAIElementsTheme();
|
|
39
|
+
const source = getImageSource(attachment);
|
|
40
|
+
if (!source) {
|
|
41
|
+
return /*#__PURE__*/_jsx(View, {
|
|
42
|
+
style: [styles.imagePlaceholder, {
|
|
43
|
+
width: size,
|
|
44
|
+
height: size,
|
|
45
|
+
backgroundColor: theme.colors.muted,
|
|
46
|
+
borderRadius: theme.radius.md
|
|
47
|
+
}, style],
|
|
48
|
+
children: /*#__PURE__*/_jsx(ImageIcon, {
|
|
49
|
+
size: 24,
|
|
50
|
+
color: theme.colors.mutedForeground
|
|
51
|
+
})
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
return /*#__PURE__*/_jsx(Image, {
|
|
55
|
+
source: source,
|
|
56
|
+
style: [{
|
|
57
|
+
width: size,
|
|
58
|
+
height: size,
|
|
59
|
+
borderRadius: theme.radius.md
|
|
60
|
+
}, style],
|
|
61
|
+
resizeMode: "cover"
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// ---------------------------------------------------------------------------
|
|
66
|
+
// File row
|
|
67
|
+
// ---------------------------------------------------------------------------
|
|
68
|
+
|
|
69
|
+
function FileRow({
|
|
70
|
+
attachment
|
|
71
|
+
}) {
|
|
72
|
+
const theme = useAIElementsTheme();
|
|
73
|
+
const nameStyle = {
|
|
74
|
+
color: theme.colors.foreground,
|
|
75
|
+
fontSize: theme.typography.fontSize.sm,
|
|
76
|
+
fontWeight: theme.typography.fontWeight.medium,
|
|
77
|
+
fontFamily: theme.typography.fontFamily
|
|
78
|
+
};
|
|
79
|
+
const metaStyle = {
|
|
80
|
+
color: theme.colors.mutedForeground,
|
|
81
|
+
fontSize: theme.typography.fontSize.xs,
|
|
82
|
+
fontFamily: theme.typography.fontFamily
|
|
83
|
+
};
|
|
84
|
+
return /*#__PURE__*/_jsxs(Pressable, {
|
|
85
|
+
style: ({
|
|
86
|
+
pressed
|
|
87
|
+
}) => [styles.fileRow, {
|
|
88
|
+
backgroundColor: pressed ? theme.colors.muted : theme.colors.card,
|
|
89
|
+
borderColor: theme.colors.border,
|
|
90
|
+
borderRadius: theme.radius.md,
|
|
91
|
+
padding: theme.spacing.md,
|
|
92
|
+
gap: theme.spacing.md
|
|
93
|
+
}],
|
|
94
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
95
|
+
style: [styles.fileIcon, {
|
|
96
|
+
backgroundColor: theme.colors.muted,
|
|
97
|
+
borderRadius: theme.radius.sm
|
|
98
|
+
}],
|
|
99
|
+
children: /*#__PURE__*/_jsx(File, {
|
|
100
|
+
size: 18,
|
|
101
|
+
color: theme.colors.mutedForeground
|
|
102
|
+
})
|
|
103
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
104
|
+
style: styles.fileInfo,
|
|
105
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
106
|
+
style: nameStyle,
|
|
107
|
+
numberOfLines: 1,
|
|
108
|
+
children: attachment.name
|
|
109
|
+
}), (attachment.size != null || attachment.mimeType) && /*#__PURE__*/_jsx(Text, {
|
|
110
|
+
style: metaStyle,
|
|
111
|
+
numberOfLines: 1,
|
|
112
|
+
children: [attachment.mimeType, attachment.size != null ? formatFileSize(attachment.size) : null].filter(Boolean).join(' - ')
|
|
113
|
+
})]
|
|
114
|
+
})]
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// ---------------------------------------------------------------------------
|
|
119
|
+
// Grid layout
|
|
120
|
+
// ---------------------------------------------------------------------------
|
|
121
|
+
|
|
122
|
+
function GridLayout({
|
|
123
|
+
attachments,
|
|
124
|
+
style
|
|
125
|
+
}) {
|
|
126
|
+
const theme = useAIElementsTheme();
|
|
127
|
+
const images = attachments.filter(a => a.type === 'image');
|
|
128
|
+
const files = attachments.filter(a => a.type === 'file');
|
|
129
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
130
|
+
style: style,
|
|
131
|
+
children: [images.length > 0 && /*#__PURE__*/_jsx(View, {
|
|
132
|
+
style: [styles.grid, {
|
|
133
|
+
gap: theme.spacing.sm
|
|
134
|
+
}],
|
|
135
|
+
children: images.map((attachment, index) => /*#__PURE__*/_jsx(ImageThumbnail, {
|
|
136
|
+
attachment: attachment,
|
|
137
|
+
size: 140,
|
|
138
|
+
style: styles.gridItem
|
|
139
|
+
}, `img-${index}`))
|
|
140
|
+
}), files.length > 0 && /*#__PURE__*/_jsx(View, {
|
|
141
|
+
style: [styles.fileList, {
|
|
142
|
+
gap: theme.spacing.sm,
|
|
143
|
+
marginTop: images.length > 0 ? theme.spacing.sm : 0
|
|
144
|
+
}],
|
|
145
|
+
children: files.map((attachment, index) => /*#__PURE__*/_jsx(FileRow, {
|
|
146
|
+
attachment: attachment
|
|
147
|
+
}, `file-${index}`))
|
|
148
|
+
})]
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// ---------------------------------------------------------------------------
|
|
153
|
+
// Inline layout (horizontal scroll for images)
|
|
154
|
+
// ---------------------------------------------------------------------------
|
|
155
|
+
|
|
156
|
+
function InlineLayout({
|
|
157
|
+
attachments,
|
|
158
|
+
style
|
|
159
|
+
}) {
|
|
160
|
+
const theme = useAIElementsTheme();
|
|
161
|
+
const images = attachments.filter(a => a.type === 'image');
|
|
162
|
+
const files = attachments.filter(a => a.type === 'file');
|
|
163
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
164
|
+
style: style,
|
|
165
|
+
children: [images.length > 0 && /*#__PURE__*/_jsx(ScrollView, {
|
|
166
|
+
horizontal: true,
|
|
167
|
+
showsHorizontalScrollIndicator: false,
|
|
168
|
+
contentContainerStyle: [styles.inlineContainer, {
|
|
169
|
+
gap: theme.spacing.sm
|
|
170
|
+
}],
|
|
171
|
+
children: images.map((attachment, index) => /*#__PURE__*/_jsx(ImageThumbnail, {
|
|
172
|
+
attachment: attachment,
|
|
173
|
+
size: 100
|
|
174
|
+
}, `img-${index}`))
|
|
175
|
+
}), files.length > 0 && /*#__PURE__*/_jsx(View, {
|
|
176
|
+
style: [styles.fileList, {
|
|
177
|
+
gap: theme.spacing.sm,
|
|
178
|
+
marginTop: images.length > 0 ? theme.spacing.sm : 0
|
|
179
|
+
}],
|
|
180
|
+
children: files.map((attachment, index) => /*#__PURE__*/_jsx(FileRow, {
|
|
181
|
+
attachment: attachment
|
|
182
|
+
}, `file-${index}`))
|
|
183
|
+
})]
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
// ---------------------------------------------------------------------------
|
|
188
|
+
// List layout
|
|
189
|
+
// ---------------------------------------------------------------------------
|
|
190
|
+
|
|
191
|
+
function ListLayout({
|
|
192
|
+
attachments,
|
|
193
|
+
style
|
|
194
|
+
}) {
|
|
195
|
+
const theme = useAIElementsTheme();
|
|
196
|
+
return /*#__PURE__*/_jsx(View, {
|
|
197
|
+
style: [styles.fileList, {
|
|
198
|
+
gap: theme.spacing.sm
|
|
199
|
+
}, style],
|
|
200
|
+
children: attachments.map((attachment, index) => {
|
|
201
|
+
if (attachment.type === 'image') {
|
|
202
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
203
|
+
style: [styles.fileRow, {
|
|
204
|
+
backgroundColor: theme.colors.card,
|
|
205
|
+
borderColor: theme.colors.border,
|
|
206
|
+
borderRadius: theme.radius.md,
|
|
207
|
+
padding: theme.spacing.sm,
|
|
208
|
+
gap: theme.spacing.md
|
|
209
|
+
}],
|
|
210
|
+
children: [/*#__PURE__*/_jsx(ImageThumbnail, {
|
|
211
|
+
attachment: attachment,
|
|
212
|
+
size: 48
|
|
213
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
214
|
+
style: styles.fileInfo,
|
|
215
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
216
|
+
numberOfLines: 1,
|
|
217
|
+
style: {
|
|
218
|
+
color: theme.colors.foreground,
|
|
219
|
+
fontSize: theme.typography.fontSize.sm,
|
|
220
|
+
fontWeight: theme.typography.fontWeight.medium,
|
|
221
|
+
fontFamily: theme.typography.fontFamily
|
|
222
|
+
},
|
|
223
|
+
children: attachment.name
|
|
224
|
+
})
|
|
225
|
+
})]
|
|
226
|
+
}, `img-${index}`);
|
|
227
|
+
}
|
|
228
|
+
return /*#__PURE__*/_jsx(FileRow, {
|
|
229
|
+
attachment: attachment
|
|
230
|
+
}, `file-${index}`);
|
|
231
|
+
})
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
// ---------------------------------------------------------------------------
|
|
236
|
+
// Component
|
|
237
|
+
// ---------------------------------------------------------------------------
|
|
238
|
+
|
|
239
|
+
function AttachmentsComponent({
|
|
240
|
+
attachments,
|
|
241
|
+
variant = 'inline',
|
|
242
|
+
style
|
|
243
|
+
}) {
|
|
244
|
+
if (attachments.length === 0) {
|
|
245
|
+
return null;
|
|
246
|
+
}
|
|
247
|
+
switch (variant) {
|
|
248
|
+
case 'grid':
|
|
249
|
+
return /*#__PURE__*/_jsx(GridLayout, {
|
|
250
|
+
attachments: attachments,
|
|
251
|
+
style: style
|
|
252
|
+
});
|
|
253
|
+
case 'inline':
|
|
254
|
+
return /*#__PURE__*/_jsx(InlineLayout, {
|
|
255
|
+
attachments: attachments,
|
|
256
|
+
style: style
|
|
257
|
+
});
|
|
258
|
+
case 'list':
|
|
259
|
+
return /*#__PURE__*/_jsx(ListLayout, {
|
|
260
|
+
attachments: attachments,
|
|
261
|
+
style: style
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
// ---------------------------------------------------------------------------
|
|
267
|
+
// Styles
|
|
268
|
+
// ---------------------------------------------------------------------------
|
|
269
|
+
|
|
270
|
+
const styles = StyleSheet.create({
|
|
271
|
+
grid: {
|
|
272
|
+
flexDirection: 'row',
|
|
273
|
+
flexWrap: 'wrap'
|
|
274
|
+
},
|
|
275
|
+
gridItem: {
|
|
276
|
+
flexBasis: '48%',
|
|
277
|
+
flexGrow: 1
|
|
278
|
+
},
|
|
279
|
+
inlineContainer: {
|
|
280
|
+
flexDirection: 'row',
|
|
281
|
+
alignItems: 'center'
|
|
282
|
+
},
|
|
283
|
+
fileList: {
|
|
284
|
+
flexDirection: 'column'
|
|
285
|
+
},
|
|
286
|
+
fileRow: {
|
|
287
|
+
flexDirection: 'row',
|
|
288
|
+
alignItems: 'center',
|
|
289
|
+
borderWidth: StyleSheet.hairlineWidth
|
|
290
|
+
},
|
|
291
|
+
fileIcon: {
|
|
292
|
+
width: 36,
|
|
293
|
+
height: 36,
|
|
294
|
+
alignItems: 'center',
|
|
295
|
+
justifyContent: 'center'
|
|
296
|
+
},
|
|
297
|
+
fileInfo: {
|
|
298
|
+
flex: 1,
|
|
299
|
+
gap: 2
|
|
300
|
+
},
|
|
301
|
+
imagePlaceholder: {
|
|
302
|
+
alignItems: 'center',
|
|
303
|
+
justifyContent: 'center'
|
|
304
|
+
}
|
|
305
|
+
});
|
|
306
|
+
|
|
307
|
+
// ---------------------------------------------------------------------------
|
|
308
|
+
// Export
|
|
309
|
+
// ---------------------------------------------------------------------------
|
|
310
|
+
|
|
311
|
+
export const Attachments = /*#__PURE__*/memo(AttachmentsComponent);
|
|
312
|
+
//# sourceMappingURL=Attachments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","memo","Image","Pressable","ScrollView","StyleSheet","Text","View","File","ImageIcon","useAIElementsTheme","jsx","_jsx","jsxs","_jsxs","formatFileSize","bytes","toFixed","getImageSource","attachment","source","uri","url","undefined","ImageThumbnail","size","style","theme","styles","imagePlaceholder","width","height","backgroundColor","colors","muted","borderRadius","radius","md","children","color","mutedForeground","resizeMode","FileRow","nameStyle","foreground","fontSize","typography","sm","fontWeight","medium","fontFamily","metaStyle","xs","pressed","fileRow","card","borderColor","border","padding","spacing","gap","fileIcon","fileInfo","numberOfLines","name","mimeType","filter","Boolean","join","GridLayout","attachments","images","a","type","files","length","grid","map","index","gridItem","fileList","marginTop","InlineLayout","horizontal","showsHorizontalScrollIndicator","contentContainerStyle","inlineContainer","ListLayout","AttachmentsComponent","variant","create","flexDirection","flexWrap","flexBasis","flexGrow","alignItems","borderWidth","hairlineWidth","justifyContent","flex","Attachments"],"sourceRoot":"../../../src","sources":["chatbot/Attachments.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { Component } from 'react';
|
|
4
|
+
import { Pressable, StyleSheet, Text, View } from 'react-native';
|
|
5
|
+
import { RotateCcw } from 'lucide-react-native';
|
|
6
|
+
import { useAIElementsTheme } from '../theme';
|
|
7
|
+
|
|
8
|
+
// ---------------------------------------------------------------------------
|
|
9
|
+
// Types
|
|
10
|
+
// ---------------------------------------------------------------------------
|
|
11
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
// Helpers
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
|
|
16
|
+
function arraysShallowEqual(a, b) {
|
|
17
|
+
if (a === b) return true;
|
|
18
|
+
if (!a || !b) return false;
|
|
19
|
+
if (a.length !== b.length) return false;
|
|
20
|
+
for (let i = 0; i < a.length; i += 1) {
|
|
21
|
+
if (a[i] !== b[i]) return false;
|
|
22
|
+
}
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// ---------------------------------------------------------------------------
|
|
27
|
+
// Error boundary
|
|
28
|
+
// ---------------------------------------------------------------------------
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Class-component boundary that wraps individual chat messages. If a single
|
|
32
|
+
* message's render throws (e.g. malformed markdown, a tool call with bad
|
|
33
|
+
* JSON), only that bubble shows a fallback — the rest of the conversation
|
|
34
|
+
* keeps working.
|
|
35
|
+
*
|
|
36
|
+
* React doesn't expose hooks for error boundaries, so this **must** stay a
|
|
37
|
+
* class component. The themed fallback is delegated to a sibling functional
|
|
38
|
+
* component so it can read the theme via hooks.
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```tsx
|
|
42
|
+
* <ChatErrorBoundary resetKeys={[message.id]}>
|
|
43
|
+
* <MessageRenderer message={message} />
|
|
44
|
+
* </ChatErrorBoundary>
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export class ChatErrorBoundary extends Component {
|
|
48
|
+
static displayName = 'ChatErrorBoundary';
|
|
49
|
+
state = {
|
|
50
|
+
error: null
|
|
51
|
+
};
|
|
52
|
+
static getDerivedStateFromError(error) {
|
|
53
|
+
return {
|
|
54
|
+
error
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
componentDidCatch(error, errorInfo) {
|
|
58
|
+
this.props.onError?.(error, errorInfo);
|
|
59
|
+
if (__DEV__) {
|
|
60
|
+
// Format following Expo's what / why / how convention so the warning
|
|
61
|
+
// tells you exactly what to fix instead of just dumping a stack.
|
|
62
|
+
console.warn('[chat-components] A message render threw inside <ChatErrorBoundary>.\n' + ` what: ${error.message || 'unknown render error'}\n` + ' why: React unmounted that subtree to prevent a crash.\n' + ' how: inspect the message payload (markdown / tool args / sources)\n' + ' below for invalid input. The user can also tap "Retry" to remount.');
|
|
63
|
+
console.error('[chat-components]', error, errorInfo.componentStack);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
componentDidUpdate(prev) {
|
|
67
|
+
// Auto-reset if any reset key changed since the last render. This lets
|
|
68
|
+
// callers say "the message id changed, so any error from the previous
|
|
69
|
+
// message no longer applies".
|
|
70
|
+
if (this.state.error && !arraysShallowEqual(prev.resetKeys, this.props.resetKeys)) {
|
|
71
|
+
this.reset();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
reset = () => {
|
|
75
|
+
this.setState({
|
|
76
|
+
error: null
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
render() {
|
|
80
|
+
const {
|
|
81
|
+
error
|
|
82
|
+
} = this.state;
|
|
83
|
+
if (error) {
|
|
84
|
+
if (this.props.fallback) {
|
|
85
|
+
return this.props.fallback(error, this.reset);
|
|
86
|
+
}
|
|
87
|
+
return /*#__PURE__*/_jsx(DefaultFallback, {
|
|
88
|
+
error: error,
|
|
89
|
+
onReset: this.reset
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
return this.props.children;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// ---------------------------------------------------------------------------
|
|
97
|
+
// Default themed fallback
|
|
98
|
+
// ---------------------------------------------------------------------------
|
|
99
|
+
|
|
100
|
+
function DefaultFallback({
|
|
101
|
+
error,
|
|
102
|
+
onReset
|
|
103
|
+
}) {
|
|
104
|
+
const theme = useAIElementsTheme();
|
|
105
|
+
const styles = getStyles(theme);
|
|
106
|
+
return /*#__PURE__*/_jsx(View, {
|
|
107
|
+
style: styles.wrapper,
|
|
108
|
+
accessible: true,
|
|
109
|
+
accessibilityRole: "alert",
|
|
110
|
+
accessibilityLabel: "Message failed to render",
|
|
111
|
+
children: /*#__PURE__*/_jsxs(View, {
|
|
112
|
+
style: styles.bubble,
|
|
113
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
114
|
+
style: styles.title,
|
|
115
|
+
children: "Couldn't render this message"
|
|
116
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
117
|
+
style: styles.message,
|
|
118
|
+
numberOfLines: 2,
|
|
119
|
+
children: error.message || 'Unknown render error.'
|
|
120
|
+
}), /*#__PURE__*/_jsxs(Pressable, {
|
|
121
|
+
onPress: onReset,
|
|
122
|
+
accessibilityRole: "button",
|
|
123
|
+
accessibilityLabel: "Retry rendering this message",
|
|
124
|
+
hitSlop: 8,
|
|
125
|
+
style: ({
|
|
126
|
+
pressed
|
|
127
|
+
}) => [styles.retryButton, pressed && styles.retryButtonPressed],
|
|
128
|
+
children: [/*#__PURE__*/_jsx(RotateCcw, {
|
|
129
|
+
size: 12,
|
|
130
|
+
color: theme.colors.foreground
|
|
131
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
132
|
+
style: styles.retryText,
|
|
133
|
+
children: "Retry"
|
|
134
|
+
})]
|
|
135
|
+
})]
|
|
136
|
+
})
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
DefaultFallback.displayName = 'ChatErrorBoundary.DefaultFallback';
|
|
140
|
+
|
|
141
|
+
// ---------------------------------------------------------------------------
|
|
142
|
+
// Styles
|
|
143
|
+
// ---------------------------------------------------------------------------
|
|
144
|
+
|
|
145
|
+
function getStyles(theme) {
|
|
146
|
+
return StyleSheet.create({
|
|
147
|
+
wrapper: {
|
|
148
|
+
alignItems: 'flex-start',
|
|
149
|
+
paddingHorizontal: theme.spacing.lg,
|
|
150
|
+
marginBottom: theme.spacing.md
|
|
151
|
+
},
|
|
152
|
+
bubble: {
|
|
153
|
+
backgroundColor: theme.colors.muted,
|
|
154
|
+
borderColor: theme.colors.border,
|
|
155
|
+
borderWidth: StyleSheet.hairlineWidth,
|
|
156
|
+
borderRadius: theme.radius.md,
|
|
157
|
+
paddingHorizontal: theme.spacing.md,
|
|
158
|
+
paddingVertical: theme.spacing.sm,
|
|
159
|
+
maxWidth: '88%'
|
|
160
|
+
},
|
|
161
|
+
title: {
|
|
162
|
+
color: theme.colors.foreground,
|
|
163
|
+
fontFamily: theme.typography.fontFamily,
|
|
164
|
+
fontSize: theme.typography.fontSize.sm,
|
|
165
|
+
fontWeight: theme.typography.fontWeight.semibold,
|
|
166
|
+
marginBottom: 2
|
|
167
|
+
},
|
|
168
|
+
message: {
|
|
169
|
+
color: theme.colors.mutedForeground,
|
|
170
|
+
fontFamily: theme.typography.fontFamily,
|
|
171
|
+
fontSize: theme.typography.fontSize.sm,
|
|
172
|
+
lineHeight: theme.typography.fontSize.sm * theme.typography.lineHeight.normal,
|
|
173
|
+
marginBottom: theme.spacing.sm
|
|
174
|
+
},
|
|
175
|
+
retryButton: {
|
|
176
|
+
flexDirection: 'row',
|
|
177
|
+
alignItems: 'center',
|
|
178
|
+
gap: 6,
|
|
179
|
+
alignSelf: 'flex-start',
|
|
180
|
+
paddingHorizontal: theme.spacing.sm,
|
|
181
|
+
paddingVertical: 4,
|
|
182
|
+
borderRadius: theme.radius.sm,
|
|
183
|
+
backgroundColor: theme.colors.secondary
|
|
184
|
+
},
|
|
185
|
+
retryButtonPressed: {
|
|
186
|
+
opacity: 0.7
|
|
187
|
+
},
|
|
188
|
+
retryText: {
|
|
189
|
+
color: theme.colors.foreground,
|
|
190
|
+
fontFamily: theme.typography.fontFamily,
|
|
191
|
+
fontSize: theme.typography.fontSize.sm,
|
|
192
|
+
fontWeight: theme.typography.fontWeight.medium
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=ChatErrorBoundary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Component","Pressable","StyleSheet","Text","View","RotateCcw","useAIElementsTheme","jsx","_jsx","jsxs","_jsxs","arraysShallowEqual","a","b","length","i","ChatErrorBoundary","displayName","state","error","getDerivedStateFromError","componentDidCatch","errorInfo","props","onError","__DEV__","console","warn","message","componentStack","componentDidUpdate","prev","resetKeys","reset","setState","render","fallback","DefaultFallback","onReset","children","theme","styles","getStyles","style","wrapper","accessible","accessibilityRole","accessibilityLabel","bubble","title","numberOfLines","onPress","hitSlop","pressed","retryButton","retryButtonPressed","size","color","colors","foreground","retryText","create","alignItems","paddingHorizontal","spacing","lg","marginBottom","md","backgroundColor","muted","borderColor","border","borderWidth","hairlineWidth","borderRadius","radius","paddingVertical","sm","maxWidth","fontFamily","typography","fontSize","fontWeight","semibold","mutedForeground","lineHeight","normal","flexDirection","gap","alignSelf","secondary","opacity","medium"],"sourceRoot":"../../../src","sources":["chatbot/ChatErrorBoundary.tsx"],"mappings":"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","ignoreList":[]}
|