@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,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { Text, StyleSheet } from 'react-native';
|
|
5
|
+
import { useAIElementsTheme } from '../../theme';
|
|
6
|
+
import { renderInlineChildren } from './renderInlineChildren';
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
function headingStyle(level, theme) {
|
|
9
|
+
const {
|
|
10
|
+
typography,
|
|
11
|
+
colors
|
|
12
|
+
} = theme;
|
|
13
|
+
const weight = typography.fontWeight.bold;
|
|
14
|
+
const sizeMap = {
|
|
15
|
+
1: typography.fontSize['2xl'],
|
|
16
|
+
2: typography.fontSize.xl,
|
|
17
|
+
3: typography.fontSize.lg,
|
|
18
|
+
4: typography.fontSize.md,
|
|
19
|
+
5: typography.fontSize.sm,
|
|
20
|
+
6: typography.fontSize.xs
|
|
21
|
+
};
|
|
22
|
+
const marginMap = {
|
|
23
|
+
1: 20,
|
|
24
|
+
2: 16,
|
|
25
|
+
3: 14,
|
|
26
|
+
4: 12,
|
|
27
|
+
5: 10,
|
|
28
|
+
6: 8
|
|
29
|
+
};
|
|
30
|
+
const fontSize = sizeMap[level] ?? typography.fontSize.md;
|
|
31
|
+
return {
|
|
32
|
+
fontSize,
|
|
33
|
+
fontWeight: weight,
|
|
34
|
+
fontFamily: typography.fontFamily,
|
|
35
|
+
color: colors.foreground,
|
|
36
|
+
lineHeight: fontSize * typography.lineHeight.tight,
|
|
37
|
+
marginTop: marginMap[level] ?? 12,
|
|
38
|
+
marginBottom: 8
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export const HeadingRenderer = /*#__PURE__*/React.memo(function HeadingRenderer({
|
|
42
|
+
node
|
|
43
|
+
}) {
|
|
44
|
+
const theme = useAIElementsTheme();
|
|
45
|
+
const level = node.level ?? 1;
|
|
46
|
+
return /*#__PURE__*/_jsx(Text, {
|
|
47
|
+
style: [styles.base, headingStyle(level, theme)],
|
|
48
|
+
children: renderInlineChildren(node.children, theme)
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
const styles = StyleSheet.create({
|
|
52
|
+
base: {
|
|
53
|
+
flexShrink: 1
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
//# sourceMappingURL=HeadingRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Text","StyleSheet","useAIElementsTheme","renderInlineChildren","jsx","_jsx","headingStyle","level","theme","typography","colors","weight","fontWeight","bold","sizeMap","fontSize","xl","lg","md","sm","xs","marginMap","fontFamily","color","foreground","lineHeight","tight","marginTop","marginBottom","HeadingRenderer","memo","node","style","styles","base","children","create","flexShrink"],"sourceRoot":"../../../../src","sources":["streaming/renderers/HeadingRenderer.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,UAAU,QAAwB,cAAc;AAC/D,SAASC,kBAAkB,QAAQ,aAAa;AAGhD,SAASC,oBAAoB,QAAQ,wBAAwB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAM9D,SAASC,YAAYA,CAACC,KAAa,EAAEC,KAAsB,EAAa;EACtE,MAAM;IAAEC,UAAU;IAAEC;EAAO,CAAC,GAAGF,KAAK;EACpC,MAAMG,MAAM,GAAGF,UAAU,CAACG,UAAU,CAACC,IAA+B;EAEpE,MAAMC,OAA+B,GAAG;IACtC,CAAC,EAAEL,UAAU,CAACM,QAAQ,CAAC,KAAK,CAAC;IAC7B,CAAC,EAAEN,UAAU,CAACM,QAAQ,CAACC,EAAE;IACzB,CAAC,EAAEP,UAAU,CAACM,QAAQ,CAACE,EAAE;IACzB,CAAC,EAAER,UAAU,CAACM,QAAQ,CAACG,EAAE;IACzB,CAAC,EAAET,UAAU,CAACM,QAAQ,CAACI,EAAE;IACzB,CAAC,EAAEV,UAAU,CAACM,QAAQ,CAACK;EACzB,CAAC;EAED,MAAMC,SAAiC,GAAG;IACxC,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE;EACL,CAAC;EAED,MAAMN,QAAQ,GAAGD,OAAO,CAACP,KAAK,CAAC,IAAIE,UAAU,CAACM,QAAQ,CAACG,EAAE;EAEzD,OAAO;IACLH,QAAQ;IACRH,UAAU,EAAED,MAAM;IAClBW,UAAU,EAAEb,UAAU,CAACa,UAAU;IACjCC,KAAK,EAAEb,MAAM,CAACc,UAAU;IACxBC,UAAU,EAAEV,QAAQ,GAAGN,UAAU,CAACgB,UAAU,CAACC,KAAK;IAClDC,SAAS,EAAEN,SAAS,CAACd,KAAK,CAAC,IAAI,EAAE;IACjCqB,YAAY,EAAE;EAChB,CAAC;AACH;AAEA,OAAO,MAAMC,eAAe,gBAAG9B,KAAK,CAAC+B,IAAI,CAAC,SAASD,eAAeA,CAAC;EACjEE;AACoB,CAAC,EAAE;EACvB,MAAMvB,KAAK,GAAGN,kBAAkB,CAAC,CAAC;EAClC,MAAMK,KAAK,GAAGwB,IAAI,CAACxB,KAAK,IAAI,CAAC;EAE7B,oBACEF,IAAA,CAACL,IAAI;IAACgC,KAAK,EAAE,CAACC,MAAM,CAACC,IAAI,EAAE5B,YAAY,CAACC,KAAK,EAAEC,KAAK,CAAC,CAAE;IAAA2B,QAAA,EACpDhC,oBAAoB,CAAC4B,IAAI,CAACI,QAAQ,EAAE3B,KAAK;EAAC,CACvC,CAAC;AAEX,CAAC,CAAC;AAEF,MAAMyB,MAAM,GAAGhC,UAAU,CAACmC,MAAM,CAAC;EAC/BF,IAAI,EAAE;IACJG,UAAU,EAAE;EACd;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { Image, View, Text, StyleSheet } from 'react-native';
|
|
5
|
+
import { useAIElementsTheme } from '../../theme';
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
export const ImageRenderer = /*#__PURE__*/React.memo(function ImageRenderer({
|
|
8
|
+
node
|
|
9
|
+
}) {
|
|
10
|
+
const theme = useAIElementsTheme();
|
|
11
|
+
if (!node.url) return null;
|
|
12
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
13
|
+
style: styles.container,
|
|
14
|
+
children: [/*#__PURE__*/_jsx(Image, {
|
|
15
|
+
source: {
|
|
16
|
+
uri: node.url
|
|
17
|
+
},
|
|
18
|
+
style: [styles.image, {
|
|
19
|
+
borderRadius: theme.radius.md,
|
|
20
|
+
backgroundColor: theme.colors.muted
|
|
21
|
+
}],
|
|
22
|
+
resizeMode: "contain",
|
|
23
|
+
accessibilityLabel: node.alt ?? undefined
|
|
24
|
+
}), node.alt ? /*#__PURE__*/_jsx(Text, {
|
|
25
|
+
style: [styles.caption, {
|
|
26
|
+
color: theme.colors.mutedForeground,
|
|
27
|
+
fontSize: theme.typography.fontSize.sm,
|
|
28
|
+
fontFamily: theme.typography.fontFamily
|
|
29
|
+
}],
|
|
30
|
+
children: node.alt
|
|
31
|
+
}) : null]
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
const styles = StyleSheet.create({
|
|
35
|
+
container: {
|
|
36
|
+
marginVertical: 8,
|
|
37
|
+
alignItems: 'center'
|
|
38
|
+
},
|
|
39
|
+
image: {
|
|
40
|
+
width: '100%',
|
|
41
|
+
height: 200
|
|
42
|
+
},
|
|
43
|
+
caption: {
|
|
44
|
+
marginTop: 4,
|
|
45
|
+
textAlign: 'center'
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=ImageRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Image","View","Text","StyleSheet","useAIElementsTheme","jsx","_jsx","jsxs","_jsxs","ImageRenderer","memo","node","theme","url","style","styles","container","children","source","uri","image","borderRadius","radius","md","backgroundColor","colors","muted","resizeMode","accessibilityLabel","alt","undefined","caption","color","mutedForeground","fontSize","typography","sm","fontFamily","create","marginVertical","alignItems","width","height","marginTop","textAlign"],"sourceRoot":"../../../../src","sources":["streaming/renderers/ImageRenderer.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,KAAK,EAAEC,IAAI,EAAEC,IAAI,EAAEC,UAAU,QAAQ,cAAc;AAC5D,SAASC,kBAAkB,QAAQ,aAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAOjD,OAAO,MAAMC,aAAa,gBAAGV,KAAK,CAACW,IAAI,CAAC,SAASD,aAAaA,CAAC;EAC7DE;AACkB,CAAC,EAAE;EACrB,MAAMC,KAAK,GAAGR,kBAAkB,CAAC,CAAC;EAElC,IAAI,CAACO,IAAI,CAACE,GAAG,EAAE,OAAO,IAAI;EAE1B,oBACEL,KAAA,CAACP,IAAI;IAACa,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,gBAC5BX,IAAA,CAACN,KAAK;MACJkB,MAAM,EAAE;QAAEC,GAAG,EAAER,IAAI,CAACE;MAAI,CAAE;MAC1BC,KAAK,EAAE,CACLC,MAAM,CAACK,KAAK,EACZ;QACEC,YAAY,EAAET,KAAK,CAACU,MAAM,CAACC,EAAE;QAC7BC,eAAe,EAAEZ,KAAK,CAACa,MAAM,CAACC;MAChC,CAAC,CACD;MACFC,UAAU,EAAC,SAAS;MACpBC,kBAAkB,EAAEjB,IAAI,CAACkB,GAAG,IAAIC;IAAU,CAC3C,CAAC,EACDnB,IAAI,CAACkB,GAAG,gBACPvB,IAAA,CAACJ,IAAI;MACHY,KAAK,EAAE,CACLC,MAAM,CAACgB,OAAO,EACd;QACEC,KAAK,EAAEpB,KAAK,CAACa,MAAM,CAACQ,eAAe;QACnCC,QAAQ,EAAEtB,KAAK,CAACuB,UAAU,CAACD,QAAQ,CAACE,EAAE;QACtCC,UAAU,EAAEzB,KAAK,CAACuB,UAAU,CAACE;MAC/B,CAAC,CACD;MAAApB,QAAA,EAEDN,IAAI,CAACkB;IAAG,CACL,CAAC,GACL,IAAI;EAAA,CACJ,CAAC;AAEX,CAAC,CAAC;AAEF,MAAMd,MAAM,GAAGZ,UAAU,CAACmC,MAAM,CAAC;EAC/BtB,SAAS,EAAE;IACTuB,cAAc,EAAE,CAAC;IACjBC,UAAU,EAAE;EACd,CAAC;EACDpB,KAAK,EAAE;IACLqB,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE;EACV,CAAC;EACDX,OAAO,EAAE;IACPY,SAAS,EAAE,CAAC;IACZC,SAAS,EAAE;EACb;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useCallback } from 'react';
|
|
4
|
+
import { Text, Pressable, Linking, StyleSheet } from 'react-native';
|
|
5
|
+
import { useAIElementsTheme } from '../../theme';
|
|
6
|
+
import { renderInlineChildren } from './renderInlineChildren';
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
export const LinkRenderer = /*#__PURE__*/React.memo(function LinkRenderer({
|
|
9
|
+
node
|
|
10
|
+
}) {
|
|
11
|
+
const theme = useAIElementsTheme();
|
|
12
|
+
const handlePress = useCallback(() => {
|
|
13
|
+
if (node.url) {
|
|
14
|
+
Linking.openURL(node.url).catch(() => {
|
|
15
|
+
// Silently ignore -- the URL may not be openable.
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
}, [node.url]);
|
|
19
|
+
const textStyle = {
|
|
20
|
+
color: theme.colors.primary,
|
|
21
|
+
fontSize: theme.typography.fontSize.md,
|
|
22
|
+
fontFamily: theme.typography.fontFamily,
|
|
23
|
+
textDecorationLine: 'underline'
|
|
24
|
+
};
|
|
25
|
+
return /*#__PURE__*/_jsx(Pressable, {
|
|
26
|
+
onPress: handlePress,
|
|
27
|
+
style: ({
|
|
28
|
+
pressed
|
|
29
|
+
}) => [styles.pressable, pressed && styles.pressed],
|
|
30
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
31
|
+
style: textStyle,
|
|
32
|
+
children: renderInlineChildren(node.children, theme)
|
|
33
|
+
})
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
const styles = StyleSheet.create({
|
|
37
|
+
pressable: {
|
|
38
|
+
alignSelf: 'flex-start'
|
|
39
|
+
},
|
|
40
|
+
pressed: {
|
|
41
|
+
opacity: 0.7
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
//# sourceMappingURL=LinkRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useCallback","Text","Pressable","Linking","StyleSheet","useAIElementsTheme","renderInlineChildren","jsx","_jsx","LinkRenderer","memo","node","theme","handlePress","url","openURL","catch","textStyle","color","colors","primary","fontSize","typography","md","fontFamily","textDecorationLine","onPress","style","pressed","styles","pressable","children","create","alignSelf","opacity"],"sourceRoot":"../../../../src","sources":["streaming/renderers/LinkRenderer.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAC1C,SAASC,IAAI,EAAEC,SAAS,EAAEC,OAAO,EAAEC,UAAU,QAAwB,cAAc;AACnF,SAASC,kBAAkB,QAAQ,aAAa;AAEhD,SAASC,oBAAoB,QAAQ,wBAAwB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAM9D,OAAO,MAAMC,YAAY,gBAAGV,KAAK,CAACW,IAAI,CAAC,SAASD,YAAYA,CAAC;EAC3DE;AACiB,CAAC,EAAE;EACpB,MAAMC,KAAK,GAAGP,kBAAkB,CAAC,CAAC;EAElC,MAAMQ,WAAW,GAAGb,WAAW,CAAC,MAAM;IACpC,IAAIW,IAAI,CAACG,GAAG,EAAE;MACZX,OAAO,CAACY,OAAO,CAACJ,IAAI,CAACG,GAAG,CAAC,CAACE,KAAK,CAAC,MAAM;QACpC;MAAA,CACD,CAAC;IACJ;EACF,CAAC,EAAE,CAACL,IAAI,CAACG,GAAG,CAAC,CAAC;EAEd,MAAMG,SAAoB,GAAG;IAC3BC,KAAK,EAAEN,KAAK,CAACO,MAAM,CAACC,OAAO;IAC3BC,QAAQ,EAAET,KAAK,CAACU,UAAU,CAACD,QAAQ,CAACE,EAAE;IACtCC,UAAU,EAAEZ,KAAK,CAACU,UAAU,CAACE,UAAU;IACvCC,kBAAkB,EAAE;EACtB,CAAC;EAED,oBACEjB,IAAA,CAACN,SAAS;IACRwB,OAAO,EAAEb,WAAY;IACrBc,KAAK,EAAEA,CAAC;MAAEC;IAAQ,CAAC,KAAK,CACtBC,MAAM,CAACC,SAAS,EAChBF,OAAO,IAAIC,MAAM,CAACD,OAAO,CACzB;IAAAG,QAAA,eAEFvB,IAAA,CAACP,IAAI;MAAC0B,KAAK,EAAEV,SAAU;MAAAc,QAAA,EACpBzB,oBAAoB,CAACK,IAAI,CAACoB,QAAQ,EAAEnB,KAAK;IAAC,CACvC;EAAC,CACE,CAAC;AAEhB,CAAC,CAAC;AAEF,MAAMiB,MAAM,GAAGzB,UAAU,CAAC4B,MAAM,CAAC;EAC/BF,SAAS,EAAE;IACTG,SAAS,EAAE;EACb,CAAC;EACDL,OAAO,EAAE;IACPM,OAAO,EAAE;EACX;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { View, Text, StyleSheet } from 'react-native';
|
|
5
|
+
import { useAIElementsTheme } from '../../theme';
|
|
6
|
+
import { renderInlineChildren } from './renderInlineChildren';
|
|
7
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
+
export const ListRenderer = /*#__PURE__*/React.memo(function ListRenderer({
|
|
9
|
+
node
|
|
10
|
+
}) {
|
|
11
|
+
const theme = useAIElementsTheme();
|
|
12
|
+
const ordered = node.ordered ?? false;
|
|
13
|
+
const bulletStyle = {
|
|
14
|
+
color: theme.colors.mutedForeground,
|
|
15
|
+
fontSize: theme.typography.fontSize.md,
|
|
16
|
+
fontFamily: theme.typography.fontFamily,
|
|
17
|
+
lineHeight: theme.typography.fontSize.md * theme.typography.lineHeight.normal
|
|
18
|
+
};
|
|
19
|
+
const textStyle = {
|
|
20
|
+
color: theme.colors.foreground,
|
|
21
|
+
fontSize: theme.typography.fontSize.md,
|
|
22
|
+
fontFamily: theme.typography.fontFamily,
|
|
23
|
+
lineHeight: theme.typography.fontSize.md * theme.typography.lineHeight.normal,
|
|
24
|
+
flexShrink: 1
|
|
25
|
+
};
|
|
26
|
+
return /*#__PURE__*/_jsx(View, {
|
|
27
|
+
style: styles.list,
|
|
28
|
+
children: (node.children ?? []).map((item, index) => /*#__PURE__*/_jsxs(View, {
|
|
29
|
+
style: styles.item,
|
|
30
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
31
|
+
style: [styles.bullet, bulletStyle],
|
|
32
|
+
children: ordered ? `${index + 1}.` : '\u2022'
|
|
33
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
34
|
+
style: [styles.content, textStyle],
|
|
35
|
+
children: renderInlineChildren(item.children, theme)
|
|
36
|
+
})]
|
|
37
|
+
}, `list-item-${index}`))
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
const styles = StyleSheet.create({
|
|
41
|
+
list: {
|
|
42
|
+
marginVertical: 4
|
|
43
|
+
},
|
|
44
|
+
item: {
|
|
45
|
+
flexDirection: 'row',
|
|
46
|
+
alignItems: 'flex-start',
|
|
47
|
+
marginBottom: 4
|
|
48
|
+
},
|
|
49
|
+
bullet: {
|
|
50
|
+
width: 24,
|
|
51
|
+
textAlign: 'right',
|
|
52
|
+
marginRight: 8
|
|
53
|
+
},
|
|
54
|
+
content: {
|
|
55
|
+
flex: 1
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
//# sourceMappingURL=ListRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","View","Text","StyleSheet","useAIElementsTheme","renderInlineChildren","jsx","_jsx","jsxs","_jsxs","ListRenderer","memo","node","theme","ordered","bulletStyle","color","colors","mutedForeground","fontSize","typography","md","fontFamily","lineHeight","normal","textStyle","foreground","flexShrink","style","styles","list","children","map","item","index","bullet","content","create","marginVertical","flexDirection","alignItems","marginBottom","width","textAlign","marginRight","flex"],"sourceRoot":"../../../../src","sources":["streaming/renderers/ListRenderer.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,IAAI,EAAEC,UAAU,QAAwB,cAAc;AACrE,SAASC,kBAAkB,QAAQ,aAAa;AAEhD,SAASC,oBAAoB,QAAQ,wBAAwB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAM9D,OAAO,MAAMC,YAAY,gBAAGV,KAAK,CAACW,IAAI,CAAC,SAASD,YAAYA,CAAC;EAC3DE;AACiB,CAAC,EAAE;EACpB,MAAMC,KAAK,GAAGT,kBAAkB,CAAC,CAAC;EAClC,MAAMU,OAAO,GAAGF,IAAI,CAACE,OAAO,IAAI,KAAK;EAErC,MAAMC,WAAsB,GAAG;IAC7BC,KAAK,EAAEH,KAAK,CAACI,MAAM,CAACC,eAAe;IACnCC,QAAQ,EAAEN,KAAK,CAACO,UAAU,CAACD,QAAQ,CAACE,EAAE;IACtCC,UAAU,EAAET,KAAK,CAACO,UAAU,CAACE,UAAU;IACvCC,UAAU,EAAEV,KAAK,CAACO,UAAU,CAACD,QAAQ,CAACE,EAAE,GAAGR,KAAK,CAACO,UAAU,CAACG,UAAU,CAACC;EACzE,CAAC;EAED,MAAMC,SAAoB,GAAG;IAC3BT,KAAK,EAAEH,KAAK,CAACI,MAAM,CAACS,UAAU;IAC9BP,QAAQ,EAAEN,KAAK,CAACO,UAAU,CAACD,QAAQ,CAACE,EAAE;IACtCC,UAAU,EAAET,KAAK,CAACO,UAAU,CAACE,UAAU;IACvCC,UAAU,EAAEV,KAAK,CAACO,UAAU,CAACD,QAAQ,CAACE,EAAE,GAAGR,KAAK,CAACO,UAAU,CAACG,UAAU,CAACC,MAAM;IAC7EG,UAAU,EAAE;EACd,CAAC;EAED,oBACEpB,IAAA,CAACN,IAAI;IAAC2B,KAAK,EAAEC,MAAM,CAACC,IAAK;IAAAC,QAAA,EACtB,CAACnB,IAAI,CAACmB,QAAQ,IAAI,EAAE,EAAEC,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,kBACrCzB,KAAA,CAACR,IAAI;MAA4B2B,KAAK,EAAEC,MAAM,CAACI,IAAK;MAAAF,QAAA,gBAClDxB,IAAA,CAACL,IAAI;QAAC0B,KAAK,EAAE,CAACC,MAAM,CAACM,MAAM,EAAEpB,WAAW,CAAE;QAAAgB,QAAA,EACvCjB,OAAO,GAAG,GAAGoB,KAAK,GAAG,CAAC,GAAG,GAAG;MAAQ,CACjC,CAAC,eACP3B,IAAA,CAACL,IAAI;QAAC0B,KAAK,EAAE,CAACC,MAAM,CAACO,OAAO,EAAEX,SAAS,CAAE;QAAAM,QAAA,EACtC1B,oBAAoB,CAAC4B,IAAI,CAACF,QAAQ,EAAElB,KAAK;MAAC,CACvC,CAAC;IAAA,GANE,aAAaqB,KAAK,EAOvB,CACP;EAAC,CACE,CAAC;AAEX,CAAC,CAAC;AAEF,MAAML,MAAM,GAAG1B,UAAU,CAACkC,MAAM,CAAC;EAC/BP,IAAI,EAAE;IACJQ,cAAc,EAAE;EAClB,CAAC;EACDL,IAAI,EAAE;IACJM,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,YAAY;IACxBC,YAAY,EAAE;EAChB,CAAC;EACDN,MAAM,EAAE;IACNO,KAAK,EAAE,EAAE;IACTC,SAAS,EAAE,OAAO;IAClBC,WAAW,EAAE;EACf,CAAC;EACDR,OAAO,EAAE;IACPS,IAAI,EAAE;EACR;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { View, Text, StyleSheet } from 'react-native';
|
|
5
|
+
import { useAIElementsTheme } from '../../theme';
|
|
6
|
+
import { renderInlineChildren } from './renderInlineChildren';
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
export const TableRenderer = /*#__PURE__*/React.memo(function TableRenderer({
|
|
9
|
+
node
|
|
10
|
+
}) {
|
|
11
|
+
const theme = useAIElementsTheme();
|
|
12
|
+
const rows = node.children ?? [];
|
|
13
|
+
const headerTextStyle = {
|
|
14
|
+
fontWeight: theme.typography.fontWeight.semibold,
|
|
15
|
+
color: theme.colors.foreground,
|
|
16
|
+
fontSize: theme.typography.fontSize.sm,
|
|
17
|
+
fontFamily: theme.typography.fontFamily
|
|
18
|
+
};
|
|
19
|
+
const cellTextStyle = {
|
|
20
|
+
color: theme.colors.foreground,
|
|
21
|
+
fontSize: theme.typography.fontSize.sm,
|
|
22
|
+
fontFamily: theme.typography.fontFamily
|
|
23
|
+
};
|
|
24
|
+
return /*#__PURE__*/_jsx(View, {
|
|
25
|
+
style: [styles.table, {
|
|
26
|
+
borderColor: theme.colors.border,
|
|
27
|
+
borderRadius: theme.radius.sm
|
|
28
|
+
}],
|
|
29
|
+
children: rows.map((row, rowIndex) => {
|
|
30
|
+
const cells = row.children ?? [];
|
|
31
|
+
const isHeaderRow = cells.some(c => c.header);
|
|
32
|
+
return /*#__PURE__*/_jsx(View, {
|
|
33
|
+
style: [styles.row, {
|
|
34
|
+
borderBottomColor: theme.colors.border,
|
|
35
|
+
backgroundColor: isHeaderRow ? theme.colors.muted : 'transparent'
|
|
36
|
+
}, rowIndex === rows.length - 1 && styles.lastRow],
|
|
37
|
+
children: cells.map((cell, cellIndex) => /*#__PURE__*/_jsx(View, {
|
|
38
|
+
style: [styles.cell, {
|
|
39
|
+
borderRightColor: theme.colors.border
|
|
40
|
+
}, cellIndex === cells.length - 1 && styles.lastCell],
|
|
41
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
42
|
+
style: cell.header ? headerTextStyle : cellTextStyle,
|
|
43
|
+
children: renderInlineChildren(cell.children, theme)
|
|
44
|
+
})
|
|
45
|
+
}, `cell-${rowIndex}-${cellIndex}`))
|
|
46
|
+
}, `row-${rowIndex}`);
|
|
47
|
+
})
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
const styles = StyleSheet.create({
|
|
51
|
+
table: {
|
|
52
|
+
borderWidth: 1,
|
|
53
|
+
marginVertical: 8,
|
|
54
|
+
overflow: 'hidden'
|
|
55
|
+
},
|
|
56
|
+
row: {
|
|
57
|
+
flexDirection: 'row',
|
|
58
|
+
borderBottomWidth: 1
|
|
59
|
+
},
|
|
60
|
+
lastRow: {
|
|
61
|
+
borderBottomWidth: 0
|
|
62
|
+
},
|
|
63
|
+
cell: {
|
|
64
|
+
flex: 1,
|
|
65
|
+
padding: 8,
|
|
66
|
+
borderRightWidth: 1
|
|
67
|
+
},
|
|
68
|
+
lastCell: {
|
|
69
|
+
borderRightWidth: 0
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
//# sourceMappingURL=TableRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","View","Text","StyleSheet","useAIElementsTheme","renderInlineChildren","jsx","_jsx","TableRenderer","memo","node","theme","rows","children","headerTextStyle","fontWeight","typography","semibold","color","colors","foreground","fontSize","sm","fontFamily","cellTextStyle","style","styles","table","borderColor","border","borderRadius","radius","map","row","rowIndex","cells","isHeaderRow","some","c","header","borderBottomColor","backgroundColor","muted","length","lastRow","cell","cellIndex","borderRightColor","lastCell","create","borderWidth","marginVertical","overflow","flexDirection","borderBottomWidth","flex","padding","borderRightWidth"],"sourceRoot":"../../../../src","sources":["streaming/renderers/TableRenderer.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { Text, StyleSheet } from 'react-native';
|
|
5
|
+
import { useAIElementsTheme } from '../../theme';
|
|
6
|
+
import { renderInlineChildren } from './renderInlineChildren';
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
export const TextRenderer = /*#__PURE__*/React.memo(function TextRenderer({
|
|
9
|
+
node
|
|
10
|
+
}) {
|
|
11
|
+
const theme = useAIElementsTheme();
|
|
12
|
+
const baseStyle = {
|
|
13
|
+
color: theme.colors.foreground,
|
|
14
|
+
fontSize: theme.typography.fontSize.md,
|
|
15
|
+
lineHeight: theme.typography.fontSize.md * theme.typography.lineHeight.normal,
|
|
16
|
+
fontFamily: theme.typography.fontFamily
|
|
17
|
+
};
|
|
18
|
+
if (node.type === 'text') {
|
|
19
|
+
return /*#__PURE__*/_jsx(Text, {
|
|
20
|
+
style: baseStyle,
|
|
21
|
+
children: node.content
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// paragraph
|
|
26
|
+
return /*#__PURE__*/_jsx(Text, {
|
|
27
|
+
style: [baseStyle, styles.paragraph],
|
|
28
|
+
children: renderInlineChildren(node.children, theme)
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
const styles = StyleSheet.create({
|
|
32
|
+
paragraph: {
|
|
33
|
+
marginBottom: 8
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
//# sourceMappingURL=TextRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Text","StyleSheet","useAIElementsTheme","renderInlineChildren","jsx","_jsx","TextRenderer","memo","node","theme","baseStyle","color","colors","foreground","fontSize","typography","md","lineHeight","normal","fontFamily","type","style","children","content","styles","paragraph","create","marginBottom"],"sourceRoot":"../../../../src","sources":["streaming/renderers/TextRenderer.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,UAAU,QAAwB,cAAc;AAC/D,SAASC,kBAAkB,QAAQ,aAAa;AAEhD,SAASC,oBAAoB,QAAQ,wBAAwB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAM9D,OAAO,MAAMC,YAAY,gBAAGP,KAAK,CAACQ,IAAI,CAAC,SAASD,YAAYA,CAAC;EAC3DE;AACiB,CAAC,EAAE;EACpB,MAAMC,KAAK,GAAGP,kBAAkB,CAAC,CAAC;EAElC,MAAMQ,SAAoB,GAAG;IAC3BC,KAAK,EAAEF,KAAK,CAACG,MAAM,CAACC,UAAU;IAC9BC,QAAQ,EAAEL,KAAK,CAACM,UAAU,CAACD,QAAQ,CAACE,EAAE;IACtCC,UAAU,EAAER,KAAK,CAACM,UAAU,CAACD,QAAQ,CAACE,EAAE,GAAGP,KAAK,CAACM,UAAU,CAACE,UAAU,CAACC,MAAM;IAC7EC,UAAU,EAAEV,KAAK,CAACM,UAAU,CAACI;EAC/B,CAAC;EAED,IAAIX,IAAI,CAACY,IAAI,KAAK,MAAM,EAAE;IACxB,oBAAOf,IAAA,CAACL,IAAI;MAACqB,KAAK,EAAEX,SAAU;MAAAY,QAAA,EAAEd,IAAI,CAACe;IAAO,CAAO,CAAC;EACtD;;EAEA;EACA,oBACElB,IAAA,CAACL,IAAI;IAACqB,KAAK,EAAE,CAACX,SAAS,EAAEc,MAAM,CAACC,SAAS,CAAE;IAAAH,QAAA,EACxCnB,oBAAoB,CAACK,IAAI,CAACc,QAAQ,EAAEb,KAAK;EAAC,CACvC,CAAC;AAEX,CAAC,CAAC;AAEF,MAAMe,MAAM,GAAGvB,UAAU,CAACyB,MAAM,CAAC;EAC/BD,SAAS,EAAE;IACTE,YAAY,EAAE;EAChB;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export { TextRenderer } from './TextRenderer';
|
|
4
|
+
export { HeadingRenderer } from './HeadingRenderer';
|
|
5
|
+
export { CodeRenderer } from './CodeRenderer';
|
|
6
|
+
export { ListRenderer } from './ListRenderer';
|
|
7
|
+
export { LinkRenderer } from './LinkRenderer';
|
|
8
|
+
export { ImageRenderer } from './ImageRenderer';
|
|
9
|
+
export { BlockquoteRenderer } from './BlockquoteRenderer';
|
|
10
|
+
export { TableRenderer } from './TableRenderer';
|
|
11
|
+
export { renderNode } from './renderNode';
|
|
12
|
+
export { renderInlineChildren } from './renderInlineChildren';
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TextRenderer","HeadingRenderer","CodeRenderer","ListRenderer","LinkRenderer","ImageRenderer","BlockquoteRenderer","TableRenderer","renderNode","renderInlineChildren"],"sourceRoot":"../../../../src","sources":["streaming/renderers/index.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,gBAAgB;AAG7C,SAASC,eAAe,QAAQ,mBAAmB;AAGnD,SAASC,YAAY,QAAQ,gBAAgB;AAG7C,SAASC,YAAY,QAAQ,gBAAgB;AAG7C,SAASC,YAAY,QAAQ,gBAAgB;AAG7C,SAASC,aAAa,QAAQ,iBAAiB;AAG/C,SAASC,kBAAkB,QAAQ,sBAAsB;AAGzD,SAASC,aAAa,QAAQ,iBAAiB;AAG/C,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,oBAAoB,QAAQ,wBAAwB","ignoreList":[]}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { Text } from 'react-native';
|
|
5
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
+
/**
|
|
7
|
+
* Recursively render inline markdown nodes (text, bold, italic, bold_italic,
|
|
8
|
+
* code_inline, link, image) as nested React Native <Text> elements.
|
|
9
|
+
*
|
|
10
|
+
* This is extracted as a shared helper so every block-level renderer can
|
|
11
|
+
* render its inline children consistently.
|
|
12
|
+
*/
|
|
13
|
+
export function renderInlineChildren(children, theme) {
|
|
14
|
+
if (!children || children.length === 0) return null;
|
|
15
|
+
return children.map((child, index) => {
|
|
16
|
+
const key = `${child.type}-${index}`;
|
|
17
|
+
switch (child.type) {
|
|
18
|
+
case 'text':
|
|
19
|
+
return /*#__PURE__*/_jsx(Text, {
|
|
20
|
+
style: {
|
|
21
|
+
color: theme.colors.foreground
|
|
22
|
+
},
|
|
23
|
+
children: child.content
|
|
24
|
+
}, key);
|
|
25
|
+
case 'bold':
|
|
26
|
+
{
|
|
27
|
+
const style = {
|
|
28
|
+
fontWeight: theme.typography.fontWeight.bold,
|
|
29
|
+
color: theme.colors.foreground
|
|
30
|
+
};
|
|
31
|
+
return /*#__PURE__*/_jsx(Text, {
|
|
32
|
+
style: style,
|
|
33
|
+
children: renderInlineChildren(child.children, theme)
|
|
34
|
+
}, key);
|
|
35
|
+
}
|
|
36
|
+
case 'italic':
|
|
37
|
+
{
|
|
38
|
+
const style = {
|
|
39
|
+
fontStyle: 'italic',
|
|
40
|
+
color: theme.colors.foreground
|
|
41
|
+
};
|
|
42
|
+
return /*#__PURE__*/_jsx(Text, {
|
|
43
|
+
style: style,
|
|
44
|
+
children: renderInlineChildren(child.children, theme)
|
|
45
|
+
}, key);
|
|
46
|
+
}
|
|
47
|
+
case 'bold_italic':
|
|
48
|
+
{
|
|
49
|
+
const style = {
|
|
50
|
+
fontWeight: theme.typography.fontWeight.bold,
|
|
51
|
+
fontStyle: 'italic',
|
|
52
|
+
color: theme.colors.foreground
|
|
53
|
+
};
|
|
54
|
+
return /*#__PURE__*/_jsx(Text, {
|
|
55
|
+
style: style,
|
|
56
|
+
children: renderInlineChildren(child.children, theme)
|
|
57
|
+
}, key);
|
|
58
|
+
}
|
|
59
|
+
case 'code_inline':
|
|
60
|
+
{
|
|
61
|
+
const style = {
|
|
62
|
+
fontFamily: theme.typography.monoFontFamily,
|
|
63
|
+
fontSize: theme.typography.fontSize.sm,
|
|
64
|
+
backgroundColor: theme.colors.muted,
|
|
65
|
+
color: theme.colors.foreground,
|
|
66
|
+
borderRadius: theme.radius.sm,
|
|
67
|
+
paddingHorizontal: 4,
|
|
68
|
+
paddingVertical: 1
|
|
69
|
+
};
|
|
70
|
+
return /*#__PURE__*/_jsx(Text, {
|
|
71
|
+
style: style,
|
|
72
|
+
children: child.content
|
|
73
|
+
}, key);
|
|
74
|
+
}
|
|
75
|
+
case 'link':
|
|
76
|
+
{
|
|
77
|
+
const style = {
|
|
78
|
+
color: theme.colors.primary,
|
|
79
|
+
textDecorationLine: 'underline'
|
|
80
|
+
};
|
|
81
|
+
// Links inline are rendered as styled text.
|
|
82
|
+
// The LinkRenderer handles the Pressable wrapper at block level.
|
|
83
|
+
// Inside inline contexts we just show styled text.
|
|
84
|
+
return /*#__PURE__*/_jsx(Text, {
|
|
85
|
+
style: style,
|
|
86
|
+
children: renderInlineChildren(child.children, theme)
|
|
87
|
+
}, key);
|
|
88
|
+
}
|
|
89
|
+
case 'image':
|
|
90
|
+
// Images inline are rendered as their alt text within a Text tree.
|
|
91
|
+
return /*#__PURE__*/_jsx(Text, {
|
|
92
|
+
style: {
|
|
93
|
+
color: theme.colors.mutedForeground
|
|
94
|
+
},
|
|
95
|
+
children: child.alt ?? '[image]'
|
|
96
|
+
}, key);
|
|
97
|
+
default:
|
|
98
|
+
return /*#__PURE__*/_jsx(Text, {
|
|
99
|
+
style: {
|
|
100
|
+
color: theme.colors.foreground
|
|
101
|
+
},
|
|
102
|
+
children: child.content
|
|
103
|
+
}, key);
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=renderInlineChildren.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Text","jsx","_jsx","renderInlineChildren","children","theme","length","map","child","index","key","type","style","color","colors","foreground","content","fontWeight","typography","bold","fontStyle","fontFamily","monoFontFamily","fontSize","sm","backgroundColor","muted","borderRadius","radius","paddingHorizontal","paddingVertical","primary","textDecorationLine","mutedForeground","alt"],"sourceRoot":"../../../../src","sources":["streaming/renderers/renderInlineChildren.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { View, StyleSheet } from 'react-native';
|
|
5
|
+
import { useAIElementsTheme } from '../../theme';
|
|
6
|
+
import { TextRenderer } from './TextRenderer';
|
|
7
|
+
import { HeadingRenderer } from './HeadingRenderer';
|
|
8
|
+
import { CodeRenderer } from './CodeRenderer';
|
|
9
|
+
import { ListRenderer } from './ListRenderer';
|
|
10
|
+
import { LinkRenderer } from './LinkRenderer';
|
|
11
|
+
import { ImageRenderer } from './ImageRenderer';
|
|
12
|
+
import { BlockquoteRenderer } from './BlockquoteRenderer';
|
|
13
|
+
import { TableRenderer } from './TableRenderer';
|
|
14
|
+
|
|
15
|
+
/** Themed horizontal rule. */
|
|
16
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
17
|
+
const HorizontalRule = /*#__PURE__*/React.memo(function HorizontalRule() {
|
|
18
|
+
const theme = useAIElementsTheme();
|
|
19
|
+
return /*#__PURE__*/_jsx(View, {
|
|
20
|
+
style: [hrStyles.rule, {
|
|
21
|
+
backgroundColor: theme.colors.border
|
|
22
|
+
}]
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
const hrStyles = StyleSheet.create({
|
|
26
|
+
rule: {
|
|
27
|
+
height: 1,
|
|
28
|
+
marginVertical: 16
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Map a single MarkdownNode to its corresponding React Native renderer.
|
|
34
|
+
* Used by both StreamingMarkdown and BlockquoteRenderer (for nested blocks).
|
|
35
|
+
*/
|
|
36
|
+
export function renderNode(node, key) {
|
|
37
|
+
switch (node.type) {
|
|
38
|
+
case 'paragraph':
|
|
39
|
+
case 'text':
|
|
40
|
+
return /*#__PURE__*/_jsx(TextRenderer, {
|
|
41
|
+
node: node
|
|
42
|
+
}, key);
|
|
43
|
+
case 'heading':
|
|
44
|
+
return /*#__PURE__*/_jsx(HeadingRenderer, {
|
|
45
|
+
node: node
|
|
46
|
+
}, key);
|
|
47
|
+
case 'code_inline':
|
|
48
|
+
case 'code_block':
|
|
49
|
+
return /*#__PURE__*/_jsx(CodeRenderer, {
|
|
50
|
+
node: node
|
|
51
|
+
}, key);
|
|
52
|
+
case 'list':
|
|
53
|
+
return /*#__PURE__*/_jsx(ListRenderer, {
|
|
54
|
+
node: node
|
|
55
|
+
}, key);
|
|
56
|
+
case 'link':
|
|
57
|
+
return /*#__PURE__*/_jsx(LinkRenderer, {
|
|
58
|
+
node: node
|
|
59
|
+
}, key);
|
|
60
|
+
case 'image':
|
|
61
|
+
return /*#__PURE__*/_jsx(ImageRenderer, {
|
|
62
|
+
node: node
|
|
63
|
+
}, key);
|
|
64
|
+
case 'blockquote':
|
|
65
|
+
return /*#__PURE__*/_jsx(BlockquoteRenderer, {
|
|
66
|
+
node: node
|
|
67
|
+
}, key);
|
|
68
|
+
case 'horizontal_rule':
|
|
69
|
+
return /*#__PURE__*/_jsx(HorizontalRule, {}, key);
|
|
70
|
+
case 'table':
|
|
71
|
+
return /*#__PURE__*/_jsx(TableRenderer, {
|
|
72
|
+
node: node
|
|
73
|
+
}, key);
|
|
74
|
+
default:
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=renderNode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","View","StyleSheet","useAIElementsTheme","TextRenderer","HeadingRenderer","CodeRenderer","ListRenderer","LinkRenderer","ImageRenderer","BlockquoteRenderer","TableRenderer","jsx","_jsx","HorizontalRule","memo","theme","style","hrStyles","rule","backgroundColor","colors","border","create","height","marginVertical","renderNode","node","key","type"],"sourceRoot":"../../../../src","sources":["streaming/renderers/renderNode.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAA0B,OAAO;AAC7C,SAASC,IAAI,EAAEC,UAAU,QAAQ,cAAc;AAC/C,SAASC,kBAAkB,QAAQ,aAAa;AAEhD,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,eAAe,QAAQ,mBAAmB;AACnD,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,kBAAkB,QAAQ,sBAAsB;AACzD,SAASC,aAAa,QAAQ,iBAAiB;;AAE/C;AAAA,SAAAC,GAAA,IAAAC,IAAA;AACA,MAAMC,cAAc,gBAAGd,KAAK,CAACe,IAAI,CAAC,SAASD,cAAcA,CAAA,EAAG;EAC1D,MAAME,KAAK,GAAGb,kBAAkB,CAAC,CAAC;EAClC,oBACEU,IAAA,CAACZ,IAAI;IACHgB,KAAK,EAAE,CACLC,QAAQ,CAACC,IAAI,EACb;MAAEC,eAAe,EAAEJ,KAAK,CAACK,MAAM,CAACC;IAAO,CAAC;EACxC,CACH,CAAC;AAEN,CAAC,CAAC;AAEF,MAAMJ,QAAQ,GAAGhB,UAAU,CAACqB,MAAM,CAAC;EACjCJ,IAAI,EAAE;IACJK,MAAM,EAAE,CAAC;IACTC,cAAc,EAAE;EAClB;AACF,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA,OAAO,SAASC,UAAUA,CAACC,IAAkB,EAAEC,GAAW,EAAa;EACrE,QAAQD,IAAI,CAACE,IAAI;IACf,KAAK,WAAW;IAChB,KAAK,MAAM;MACT,oBAAOhB,IAAA,CAACT,YAAY;QAAWuB,IAAI,EAAEA;MAAK,GAAhBC,GAAkB,CAAC;IAE/C,KAAK,SAAS;MACZ,oBAAOf,IAAA,CAACR,eAAe;QAAWsB,IAAI,EAAEA;MAAK,GAAhBC,GAAkB,CAAC;IAElD,KAAK,aAAa;IAClB,KAAK,YAAY;MACf,oBAAOf,IAAA,CAACP,YAAY;QAAWqB,IAAI,EAAEA;MAAK,GAAhBC,GAAkB,CAAC;IAE/C,KAAK,MAAM;MACT,oBAAOf,IAAA,CAACN,YAAY;QAAWoB,IAAI,EAAEA;MAAK,GAAhBC,GAAkB,CAAC;IAE/C,KAAK,MAAM;MACT,oBAAOf,IAAA,CAACL,YAAY;QAAWmB,IAAI,EAAEA;MAAK,GAAhBC,GAAkB,CAAC;IAE/C,KAAK,OAAO;MACV,oBAAOf,IAAA,CAACJ,aAAa;QAAWkB,IAAI,EAAEA;MAAK,GAAhBC,GAAkB,CAAC;IAEhD,KAAK,YAAY;MACf,oBAAOf,IAAA,CAACH,kBAAkB;QAAWiB,IAAI,EAAEA;MAAK,GAAhBC,GAAkB,CAAC;IAErD,KAAK,iBAAiB;MACpB,oBAAOf,IAAA,CAACC,cAAc,MAAMc,GAAM,CAAC;IAErC,KAAK,OAAO;MACV,oBAAOf,IAAA,CAACF,aAAa;QAAWgB,IAAI,EAAEA;MAAK,GAAhBC,GAAkB,CAAC;IAEhD;MACE,OAAO,IAAI;EACf;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { createContext, useContext, useMemo } from 'react';
|
|
4
|
+
import { useColorScheme } from 'react-native';
|
|
5
|
+
import { lightTheme, darkTheme } from './defaultTheme';
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
const ThemeContext = /*#__PURE__*/createContext(lightTheme);
|
|
8
|
+
function mergeTheme(base, overrides) {
|
|
9
|
+
if (!overrides) return base;
|
|
10
|
+
return {
|
|
11
|
+
...base,
|
|
12
|
+
...overrides,
|
|
13
|
+
colors: {
|
|
14
|
+
...base.colors,
|
|
15
|
+
...overrides.colors
|
|
16
|
+
},
|
|
17
|
+
spacing: {
|
|
18
|
+
...base.spacing,
|
|
19
|
+
...overrides.spacing
|
|
20
|
+
},
|
|
21
|
+
radius: {
|
|
22
|
+
...base.radius,
|
|
23
|
+
...overrides.radius
|
|
24
|
+
},
|
|
25
|
+
typography: {
|
|
26
|
+
...base.typography,
|
|
27
|
+
...overrides.typography,
|
|
28
|
+
fontSize: {
|
|
29
|
+
...base.typography.fontSize,
|
|
30
|
+
...overrides.typography?.fontSize
|
|
31
|
+
},
|
|
32
|
+
lineHeight: {
|
|
33
|
+
...base.typography.lineHeight,
|
|
34
|
+
...overrides.typography?.lineHeight
|
|
35
|
+
},
|
|
36
|
+
fontWeight: {
|
|
37
|
+
...base.typography.fontWeight,
|
|
38
|
+
...overrides.typography?.fontWeight
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
export function AIElementsProvider({
|
|
44
|
+
theme: themeOverrides,
|
|
45
|
+
mode = 'system',
|
|
46
|
+
children
|
|
47
|
+
}) {
|
|
48
|
+
const systemScheme = useColorScheme();
|
|
49
|
+
const resolvedTheme = useMemo(() => {
|
|
50
|
+
const isDark = mode === 'system' ? systemScheme === 'dark' : mode === 'dark';
|
|
51
|
+
const base = isDark ? darkTheme : lightTheme;
|
|
52
|
+
return mergeTheme(base, themeOverrides);
|
|
53
|
+
}, [mode, systemScheme, themeOverrides]);
|
|
54
|
+
return /*#__PURE__*/_jsx(ThemeContext.Provider, {
|
|
55
|
+
value: resolvedTheme,
|
|
56
|
+
children: children
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
export function useAIElementsTheme() {
|
|
60
|
+
return useContext(ThemeContext);
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=ThemeProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","createContext","useContext","useMemo","useColorScheme","lightTheme","darkTheme","jsx","_jsx","ThemeContext","mergeTheme","base","overrides","colors","spacing","radius","typography","fontSize","lineHeight","fontWeight","AIElementsProvider","theme","themeOverrides","mode","children","systemScheme","resolvedTheme","isDark","Provider","value","useAIElementsTheme"],"sourceRoot":"../../../src","sources":["theme/ThemeProvider.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IACVC,aAAa,EACbC,UAAU,EACVC,OAAO,QAEF,OAAO;AACd,SAASC,cAAc,QAAQ,cAAc;AAE7C,SAASC,UAAU,EAAEC,SAAS,QAAQ,gBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEvD,MAAMC,YAAY,gBAAGR,aAAa,CAAkBI,UAAU,CAAC;AAa/D,SAASK,UAAUA,CACjBC,IAAqB,EACrBC,SAAwC,EACvB;EACjB,IAAI,CAACA,SAAS,EAAE,OAAOD,IAAI;EAC3B,OAAO;IACL,GAAGA,IAAI;IACP,GAAGC,SAAS;IACZC,MAAM,EAAE;MAAE,GAAGF,IAAI,CAACE,MAAM;MAAE,GAAGD,SAAS,CAACC;IAAO,CAAC;IAC/CC,OAAO,EAAE;MAAE,GAAGH,IAAI,CAACG,OAAO;MAAE,GAAGF,SAAS,CAACE;IAAQ,CAAC;IAClDC,MAAM,EAAE;MAAE,GAAGJ,IAAI,CAACI,MAAM;MAAE,GAAGH,SAAS,CAACG;IAAO,CAAC;IAC/CC,UAAU,EAAE;MACV,GAAGL,IAAI,CAACK,UAAU;MAClB,GAAGJ,SAAS,CAACI,UAAU;MACvBC,QAAQ,EAAE;QACR,GAAGN,IAAI,CAACK,UAAU,CAACC,QAAQ;QAC3B,GAAGL,SAAS,CAACI,UAAU,EAAEC;MAC3B,CAAC;MACDC,UAAU,EAAE;QACV,GAAGP,IAAI,CAACK,UAAU,CAACE,UAAU;QAC7B,GAAGN,SAAS,CAACI,UAAU,EAAEE;MAC3B,CAAC;MACDC,UAAU,EAAE;QACV,GAAGR,IAAI,CAACK,UAAU,CAACG,UAAU;QAC7B,GAAGP,SAAS,CAACI,UAAU,EAAEG;MAC3B;IACF;EACF,CAAC;AACH;AAEA,OAAO,SAASC,kBAAkBA,CAAC;EACjCC,KAAK,EAAEC,cAAc;EACrBC,IAAI,GAAG,QAAQ;EACfC;AAC0C,CAAC,EAAE;EAC7C,MAAMC,YAAY,GAAGrB,cAAc,CAAC,CAAC;EAErC,MAAMsB,aAAa,GAAGvB,OAAO,CAAC,MAAM;IAClC,MAAMwB,MAAM,GACVJ,IAAI,KAAK,QAAQ,GAAGE,YAAY,KAAK,MAAM,GAAGF,IAAI,KAAK,MAAM;IAC/D,MAAMZ,IAAI,GAAGgB,MAAM,GAAGrB,SAAS,GAAGD,UAAU;IAC5C,OAAOK,UAAU,CAACC,IAAI,EAAEW,cAAc,CAAC;EACzC,CAAC,EAAE,CAACC,IAAI,EAAEE,YAAY,EAAEH,cAAc,CAAC,CAAC;EAExC,oBACEd,IAAA,CAACC,YAAY,CAACmB,QAAQ;IAACC,KAAK,EAAEH,aAAc;IAAAF,QAAA,EACzCA;EAAQ,CACY,CAAC;AAE5B;AAEA,OAAO,SAASM,kBAAkBA,CAAA,EAAoB;EACpD,OAAO5B,UAAU,CAACO,YAAY,CAAC;AACjC","ignoreList":[]}
|