react-native-nitro-markdown 0.1.1 → 0.2.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/LICENSE +21 -0
- package/README.md +142 -84
- package/android/src/main/cpp/cpp-adapter.cpp +1 -1
- package/android/src/main/java/com/margelo/nitro/com/nitromarkdown/HybridMarkdownSession.kt +61 -0
- package/android/src/main/java/com/nitromarkdown/NitroMarkdownPackage.kt +5 -1
- package/cpp/bindings/HybridMarkdownParser.cpp +2 -2
- package/cpp/bindings/HybridMarkdownParser.hpp +2 -2
- package/cpp/bindings/HybridMarkdownSession.cpp +0 -0
- package/cpp/core/MarkdownSessionCore.cpp +0 -0
- package/ios/HybridMarkdownSession.swift +64 -0
- package/lib/commonjs/MarkdownContext.js +21 -0
- package/lib/commonjs/MarkdownContext.js.map +1 -0
- package/lib/commonjs/MarkdownSession.js +11 -0
- package/lib/commonjs/MarkdownSession.js.map +1 -0
- package/lib/commonjs/default-markdown-renderer.js +220 -0
- package/lib/commonjs/default-markdown-renderer.js.map +1 -0
- package/lib/commonjs/headless.js +50 -0
- package/lib/commonjs/headless.js.map +1 -0
- package/lib/commonjs/index.js +185 -13
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/markdown-stream.js +32 -0
- package/lib/commonjs/markdown-stream.js.map +1 -0
- package/lib/commonjs/markdown.js +326 -0
- package/lib/commonjs/markdown.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/renderers/blockquote.js +36 -0
- package/lib/commonjs/renderers/blockquote.js.map +1 -0
- package/lib/commonjs/renderers/code.js +92 -0
- package/lib/commonjs/renderers/code.js.map +1 -0
- package/lib/commonjs/renderers/heading.js +62 -0
- package/lib/commonjs/renderers/heading.js.map +1 -0
- package/lib/commonjs/renderers/horizontal-rule.js +27 -0
- package/lib/commonjs/renderers/horizontal-rule.js.map +1 -0
- package/lib/commonjs/renderers/image.js +159 -0
- package/lib/commonjs/renderers/image.js.map +1 -0
- package/lib/commonjs/renderers/link.js +37 -0
- package/lib/commonjs/renderers/link.js.map +1 -0
- package/lib/commonjs/renderers/list.js +114 -0
- package/lib/commonjs/renderers/list.js.map +1 -0
- package/lib/commonjs/renderers/math.js +151 -0
- package/lib/commonjs/renderers/math.js.map +1 -0
- package/lib/commonjs/renderers/paragraph.js +44 -0
- package/lib/commonjs/renderers/paragraph.js.map +1 -0
- package/lib/commonjs/renderers/table.js +283 -0
- package/lib/commonjs/renderers/table.js.map +1 -0
- package/lib/commonjs/specs/MarkdownSession.nitro.js +6 -0
- package/lib/commonjs/specs/MarkdownSession.nitro.js.map +1 -0
- package/lib/commonjs/theme.js +58 -0
- package/lib/commonjs/theme.js.map +1 -0
- package/lib/commonjs/use-markdown-stream.js +71 -0
- package/lib/commonjs/use-markdown-stream.js.map +1 -0
- package/lib/module/MarkdownContext.js +17 -0
- package/lib/module/MarkdownContext.js.map +1 -0
- package/lib/module/MarkdownSession.js +7 -0
- package/lib/module/MarkdownSession.js.map +1 -0
- package/lib/module/default-markdown-renderer.js +215 -0
- package/lib/module/default-markdown-renderer.js.map +1 -0
- package/lib/module/headless.js +44 -0
- package/lib/module/headless.js.map +1 -0
- package/lib/module/index.js +36 -10
- package/lib/module/index.js.map +1 -1
- package/lib/module/markdown-stream.js +27 -0
- package/lib/module/markdown-stream.js.map +1 -0
- package/lib/module/markdown.js +321 -0
- package/lib/module/markdown.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/renderers/blockquote.js +31 -0
- package/lib/module/renderers/blockquote.js.map +1 -0
- package/lib/module/renderers/code.js +86 -0
- package/lib/module/renderers/code.js.map +1 -0
- package/lib/module/renderers/heading.js +57 -0
- package/lib/module/renderers/heading.js.map +1 -0
- package/lib/module/renderers/horizontal-rule.js +22 -0
- package/lib/module/renderers/horizontal-rule.js.map +1 -0
- package/lib/module/renderers/image.js +154 -0
- package/lib/module/renderers/image.js.map +1 -0
- package/lib/module/renderers/link.js +32 -0
- package/lib/module/renderers/link.js.map +1 -0
- package/lib/module/renderers/list.js +107 -0
- package/lib/module/renderers/list.js.map +1 -0
- package/lib/module/renderers/math.js +145 -0
- package/lib/module/renderers/math.js.map +1 -0
- package/lib/module/renderers/paragraph.js +39 -0
- package/lib/module/renderers/paragraph.js.map +1 -0
- package/lib/module/renderers/table.js +278 -0
- package/lib/module/renderers/table.js.map +1 -0
- package/lib/module/specs/MarkdownSession.nitro.js +4 -0
- package/lib/module/specs/MarkdownSession.nitro.js.map +1 -0
- package/lib/module/theme.js +54 -0
- package/lib/module/theme.js.map +1 -0
- package/lib/module/use-markdown-stream.js +66 -0
- package/lib/module/use-markdown-stream.js.map +1 -0
- package/lib/typescript/commonjs/Markdown.nitro.d.ts.map +1 -0
- package/lib/typescript/commonjs/MarkdownContext.d.ts +26 -0
- package/lib/typescript/commonjs/MarkdownContext.d.ts.map +1 -0
- package/lib/typescript/commonjs/MarkdownSession.d.ts +4 -0
- package/lib/typescript/commonjs/MarkdownSession.d.ts.map +1 -0
- package/lib/typescript/commonjs/default-markdown-renderer.d.ts +10 -0
- package/lib/typescript/commonjs/default-markdown-renderer.d.ts.map +1 -0
- package/lib/typescript/commonjs/headless.d.ts +50 -0
- package/lib/typescript/commonjs/headless.d.ts.map +1 -0
- package/lib/typescript/commonjs/index.d.ts +34 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/markdown-stream.d.ts +15 -0
- package/lib/typescript/commonjs/markdown-stream.d.ts.map +1 -0
- package/lib/typescript/commonjs/markdown.d.ts +29 -0
- package/lib/typescript/commonjs/markdown.d.ts.map +1 -0
- package/lib/typescript/commonjs/package.json +1 -0
- package/lib/typescript/commonjs/renderers/blockquote.d.ts +9 -0
- package/lib/typescript/commonjs/renderers/blockquote.d.ts.map +1 -0
- package/lib/typescript/commonjs/renderers/code.d.ts +15 -0
- package/lib/typescript/commonjs/renderers/code.d.ts.map +1 -0
- package/lib/typescript/commonjs/renderers/heading.d.ts +10 -0
- package/lib/typescript/commonjs/renderers/heading.d.ts.map +1 -0
- package/lib/typescript/commonjs/renderers/horizontal-rule.d.ts +3 -0
- package/lib/typescript/commonjs/renderers/horizontal-rule.d.ts.map +1 -0
- package/lib/typescript/commonjs/renderers/image.d.ts +11 -0
- package/lib/typescript/commonjs/renderers/image.d.ts.map +1 -0
- package/lib/typescript/commonjs/renderers/link.d.ts +10 -0
- package/lib/typescript/commonjs/renderers/link.d.ts.map +1 -0
- package/lib/typescript/commonjs/renderers/list.d.ts +22 -0
- package/lib/typescript/commonjs/renderers/list.d.ts.map +1 -0
- package/lib/typescript/commonjs/renderers/math.d.ts +15 -0
- package/lib/typescript/commonjs/renderers/math.d.ts.map +1 -0
- package/lib/typescript/commonjs/renderers/paragraph.d.ts +15 -0
- package/lib/typescript/commonjs/renderers/paragraph.d.ts.map +1 -0
- package/lib/typescript/commonjs/renderers/table.d.ts +10 -0
- package/lib/typescript/commonjs/renderers/table.d.ts.map +1 -0
- package/lib/typescript/commonjs/specs/MarkdownSession.nitro.d.ts +12 -0
- package/lib/typescript/commonjs/specs/MarkdownSession.nitro.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme.d.ts +52 -0
- package/lib/typescript/commonjs/theme.d.ts.map +1 -0
- package/lib/typescript/commonjs/use-markdown-stream.d.ts +22 -0
- package/lib/typescript/commonjs/use-markdown-stream.d.ts.map +1 -0
- package/lib/typescript/module/Markdown.nitro.d.ts +13 -0
- package/lib/typescript/module/Markdown.nitro.d.ts.map +1 -0
- package/lib/typescript/module/MarkdownContext.d.ts +26 -0
- package/lib/typescript/module/MarkdownContext.d.ts.map +1 -0
- package/lib/typescript/module/MarkdownSession.d.ts +4 -0
- package/lib/typescript/module/MarkdownSession.d.ts.map +1 -0
- package/lib/typescript/module/default-markdown-renderer.d.ts +10 -0
- package/lib/typescript/module/default-markdown-renderer.d.ts.map +1 -0
- package/lib/typescript/module/headless.d.ts +50 -0
- package/lib/typescript/module/headless.d.ts.map +1 -0
- package/lib/typescript/module/index.d.ts +34 -0
- package/lib/typescript/module/index.d.ts.map +1 -0
- package/lib/typescript/module/markdown-stream.d.ts +15 -0
- package/lib/typescript/module/markdown-stream.d.ts.map +1 -0
- package/lib/typescript/module/markdown.d.ts +29 -0
- package/lib/typescript/module/markdown.d.ts.map +1 -0
- package/lib/typescript/module/package.json +1 -0
- package/lib/typescript/module/renderers/blockquote.d.ts +9 -0
- package/lib/typescript/module/renderers/blockquote.d.ts.map +1 -0
- package/lib/typescript/module/renderers/code.d.ts +15 -0
- package/lib/typescript/module/renderers/code.d.ts.map +1 -0
- package/lib/typescript/module/renderers/heading.d.ts +10 -0
- package/lib/typescript/module/renderers/heading.d.ts.map +1 -0
- package/lib/typescript/module/renderers/horizontal-rule.d.ts +3 -0
- package/lib/typescript/module/renderers/horizontal-rule.d.ts.map +1 -0
- package/lib/typescript/module/renderers/image.d.ts +11 -0
- package/lib/typescript/module/renderers/image.d.ts.map +1 -0
- package/lib/typescript/module/renderers/link.d.ts +10 -0
- package/lib/typescript/module/renderers/link.d.ts.map +1 -0
- package/lib/typescript/module/renderers/list.d.ts +22 -0
- package/lib/typescript/module/renderers/list.d.ts.map +1 -0
- package/lib/typescript/module/renderers/math.d.ts +15 -0
- package/lib/typescript/module/renderers/math.d.ts.map +1 -0
- package/lib/typescript/module/renderers/paragraph.d.ts +15 -0
- package/lib/typescript/module/renderers/paragraph.d.ts.map +1 -0
- package/lib/typescript/module/renderers/table.d.ts +10 -0
- package/lib/typescript/module/renderers/table.d.ts.map +1 -0
- package/lib/typescript/module/specs/MarkdownSession.nitro.d.ts +12 -0
- package/lib/typescript/module/specs/MarkdownSession.nitro.d.ts.map +1 -0
- package/lib/typescript/module/theme.d.ts +52 -0
- package/lib/typescript/module/theme.d.ts.map +1 -0
- package/lib/typescript/module/use-markdown-stream.d.ts +22 -0
- package/lib/typescript/module/use-markdown-stream.d.ts.map +1 -0
- package/nitro.json +5 -2
- package/nitrogen/generated/android/NitroMarkdown+autolinking.cmake +3 -2
- package/nitrogen/generated/android/NitroMarkdown+autolinking.gradle +1 -1
- package/nitrogen/generated/android/NitroMarkdownOnLoad.cpp +17 -5
- package/nitrogen/generated/android/NitroMarkdownOnLoad.hpp +4 -4
- package/nitrogen/generated/android/c++/JFunc_void.hpp +75 -0
- package/nitrogen/generated/android/c++/JHybridMarkdownSessionSpec.cpp +91 -0
- package/nitrogen/generated/android/c++/JHybridMarkdownSessionSpec.hpp +70 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/com/nitromarkdown/Func_void.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/com/nitromarkdown/HybridMarkdownSessionSpec.kt +78 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/com/nitromarkdown/NitroMarkdownOnLoad.kt +1 -1
- package/nitrogen/generated/ios/NitroMarkdown+autolinking.rb +2 -2
- package/nitrogen/generated/ios/NitroMarkdown-Swift-Cxx-Bridge.cpp +28 -4
- package/nitrogen/generated/ios/NitroMarkdown-Swift-Cxx-Bridge.hpp +72 -6
- package/nitrogen/generated/ios/NitroMarkdown-Swift-Cxx-Umbrella.hpp +11 -4
- package/nitrogen/generated/ios/NitroMarkdownAutolinking.mm +11 -3
- package/nitrogen/generated/ios/NitroMarkdownAutolinking.swift +16 -3
- package/nitrogen/generated/ios/c++/HybridMarkdownSessionSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridMarkdownSessionSpecSwift.hpp +108 -0
- package/nitrogen/generated/ios/swift/Func_void.swift +47 -0
- package/nitrogen/generated/ios/swift/HybridMarkdownSessionSpec.swift +59 -0
- package/nitrogen/generated/ios/swift/HybridMarkdownSessionSpec_cxx.swift +190 -0
- package/nitrogen/generated/shared/c++/HybridMarkdownParserSpec.cpp +3 -3
- package/nitrogen/generated/shared/c++/HybridMarkdownParserSpec.hpp +4 -4
- package/nitrogen/generated/shared/c++/HybridMarkdownSessionSpec.cpp +26 -0
- package/nitrogen/generated/shared/c++/HybridMarkdownSessionSpec.hpp +67 -0
- package/nitrogen/generated/shared/c++/ParserOptions.hpp +22 -14
- package/package.json +45 -15
- package/react-native-nitro-markdown.podspec +5 -5
- package/src/MarkdownContext.ts +41 -0
- package/src/MarkdownSession.ts +8 -0
- package/src/default-markdown-renderer.tsx +266 -0
- package/src/headless.ts +106 -0
- package/src/index.ts +41 -59
- package/src/markdown-stream.tsx +32 -0
- package/src/markdown.tsx +415 -0
- package/src/renderers/blockquote.tsx +31 -0
- package/src/renderers/code.tsx +88 -0
- package/src/renderers/heading.tsx +66 -0
- package/src/renderers/horizontal-rule.tsx +20 -0
- package/src/renderers/image.tsx +160 -0
- package/src/renderers/link.tsx +38 -0
- package/src/renderers/list.tsx +125 -0
- package/src/renderers/math.tsx +164 -0
- package/src/renderers/paragraph.tsx +53 -0
- package/src/renderers/table.tsx +345 -0
- package/src/specs/MarkdownSession.nitro.ts +16 -0
- package/src/theme.ts +52 -0
- package/src/use-markdown-stream.ts +83 -0
- package/ios/NitroMarkdown-Bridging-Header.h +0 -14
- package/lib/commonjs/MarkdownJS.reference.js +0 -114
- package/lib/commonjs/MarkdownJS.reference.js.map +0 -1
- package/lib/module/MarkdownJS.reference.js +0 -107
- package/lib/module/MarkdownJS.reference.js.map +0 -1
- package/lib/typescript/Markdown.nitro.d.ts.map +0 -1
- package/lib/typescript/MarkdownJS.reference.d.ts +0 -33
- package/lib/typescript/MarkdownJS.reference.d.ts.map +0 -1
- package/lib/typescript/index.d.ts +0 -22
- package/lib/typescript/index.d.ts.map +0 -1
- package/src/MarkdownJS.reference.ts +0 -122
- /package/lib/typescript/{Markdown.nitro.d.ts → commonjs/Markdown.nitro.d.ts} +0 -0
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useState, useMemo } from "react";
|
|
4
|
+
import { View, Text, Image as RNImage, StyleSheet } from "react-native";
|
|
5
|
+
import { parseMarkdownWithOptions } from "../headless.js";
|
|
6
|
+
import { useMarkdownContext } from "../MarkdownContext.js";
|
|
7
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
+
const renderInlineContent = (node, Renderer) => {
|
|
9
|
+
if (node.type === "paragraph" && node.children) {
|
|
10
|
+
return /*#__PURE__*/_jsx(_Fragment, {
|
|
11
|
+
children: node.children.map((child, idx) => /*#__PURE__*/_jsx(Renderer, {
|
|
12
|
+
node: child,
|
|
13
|
+
depth: 0,
|
|
14
|
+
inListItem: false
|
|
15
|
+
}, idx))
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
return null;
|
|
19
|
+
};
|
|
20
|
+
export const Image = ({
|
|
21
|
+
url,
|
|
22
|
+
title,
|
|
23
|
+
alt,
|
|
24
|
+
Renderer
|
|
25
|
+
}) => {
|
|
26
|
+
const [loading, setLoading] = useState(true);
|
|
27
|
+
const [error, setError] = useState(false);
|
|
28
|
+
const {
|
|
29
|
+
theme
|
|
30
|
+
} = useMarkdownContext();
|
|
31
|
+
const styles = useMemo(() => StyleSheet.create({
|
|
32
|
+
imageContainer: {
|
|
33
|
+
marginVertical: theme.spacing.m,
|
|
34
|
+
alignItems: "center"
|
|
35
|
+
},
|
|
36
|
+
image: {
|
|
37
|
+
width: "100%",
|
|
38
|
+
height: 200,
|
|
39
|
+
borderRadius: 8,
|
|
40
|
+
backgroundColor: theme.colors.surface
|
|
41
|
+
},
|
|
42
|
+
imageHidden: {
|
|
43
|
+
opacity: 0,
|
|
44
|
+
position: "absolute"
|
|
45
|
+
},
|
|
46
|
+
imageLoading: {
|
|
47
|
+
width: "100%",
|
|
48
|
+
height: 200,
|
|
49
|
+
borderRadius: 8,
|
|
50
|
+
backgroundColor: theme.colors.surface,
|
|
51
|
+
justifyContent: "center",
|
|
52
|
+
alignItems: "center"
|
|
53
|
+
},
|
|
54
|
+
imageLoadingText: {
|
|
55
|
+
color: theme.colors.textMuted,
|
|
56
|
+
fontSize: theme.fontSizes.s
|
|
57
|
+
},
|
|
58
|
+
imageError: {
|
|
59
|
+
width: "100%",
|
|
60
|
+
padding: theme.spacing.l,
|
|
61
|
+
borderRadius: 8,
|
|
62
|
+
backgroundColor: theme.colors.surface,
|
|
63
|
+
alignItems: "center",
|
|
64
|
+
marginVertical: theme.spacing.m
|
|
65
|
+
},
|
|
66
|
+
imageErrorText: {
|
|
67
|
+
color: theme.colors.textMuted,
|
|
68
|
+
fontSize: theme.fontSizes.s
|
|
69
|
+
},
|
|
70
|
+
imageCaption: {
|
|
71
|
+
color: theme.colors.textMuted,
|
|
72
|
+
fontSize: theme.fontSizes.xs,
|
|
73
|
+
marginTop: theme.spacing.s,
|
|
74
|
+
fontStyle: "italic",
|
|
75
|
+
textAlign: "center"
|
|
76
|
+
}
|
|
77
|
+
}), [theme]);
|
|
78
|
+
const altContent = useMemo(() => {
|
|
79
|
+
if (!alt || !Renderer) return null;
|
|
80
|
+
if (alt.includes("$") || alt.includes("*") || alt.includes("_") || alt.includes("`") || alt.includes("[")) {
|
|
81
|
+
try {
|
|
82
|
+
const ast = parseMarkdownWithOptions(alt, {
|
|
83
|
+
math: true,
|
|
84
|
+
gfm: true
|
|
85
|
+
});
|
|
86
|
+
if (ast?.type === "document" && ast.children?.[0]?.type === "paragraph") {
|
|
87
|
+
const paragraph = ast.children[0];
|
|
88
|
+
const inlineContent = renderInlineContent(paragraph, Renderer);
|
|
89
|
+
if (inlineContent) {
|
|
90
|
+
return inlineContent;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return /*#__PURE__*/_jsx(Text, {
|
|
94
|
+
style: styles.imageErrorText,
|
|
95
|
+
children: alt
|
|
96
|
+
});
|
|
97
|
+
} catch {
|
|
98
|
+
return /*#__PURE__*/_jsx(Text, {
|
|
99
|
+
style: styles.imageErrorText,
|
|
100
|
+
children: alt
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return /*#__PURE__*/_jsx(Text, {
|
|
105
|
+
style: styles.imageErrorText,
|
|
106
|
+
children: alt
|
|
107
|
+
});
|
|
108
|
+
}, [alt, Renderer, styles.imageErrorText]);
|
|
109
|
+
if (error) {
|
|
110
|
+
return /*#__PURE__*/_jsx(View, {
|
|
111
|
+
style: styles.imageError,
|
|
112
|
+
children: /*#__PURE__*/_jsxs(View, {
|
|
113
|
+
style: {
|
|
114
|
+
flexDirection: "row",
|
|
115
|
+
alignItems: "baseline",
|
|
116
|
+
flexWrap: "wrap",
|
|
117
|
+
justifyContent: "center"
|
|
118
|
+
},
|
|
119
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
120
|
+
style: styles.imageErrorText,
|
|
121
|
+
children: "\uD83D\uDDBC\uFE0F "
|
|
122
|
+
}), altContent || /*#__PURE__*/_jsx(Text, {
|
|
123
|
+
style: styles.imageErrorText,
|
|
124
|
+
children: title || "Image failed to load"
|
|
125
|
+
})]
|
|
126
|
+
})
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
130
|
+
style: styles.imageContainer,
|
|
131
|
+
children: [loading && /*#__PURE__*/_jsx(View, {
|
|
132
|
+
style: styles.imageLoading,
|
|
133
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
134
|
+
style: styles.imageLoadingText,
|
|
135
|
+
children: "Loading image..."
|
|
136
|
+
})
|
|
137
|
+
}), /*#__PURE__*/_jsx(RNImage, {
|
|
138
|
+
source: {
|
|
139
|
+
uri: url
|
|
140
|
+
},
|
|
141
|
+
style: [styles.image, loading && styles.imageHidden],
|
|
142
|
+
resizeMode: "contain",
|
|
143
|
+
onLoad: () => setLoading(false),
|
|
144
|
+
onError: () => {
|
|
145
|
+
setLoading(false);
|
|
146
|
+
setError(true);
|
|
147
|
+
}
|
|
148
|
+
}), title && !loading && /*#__PURE__*/_jsx(Text, {
|
|
149
|
+
style: styles.imageCaption,
|
|
150
|
+
children: title
|
|
151
|
+
})]
|
|
152
|
+
});
|
|
153
|
+
};
|
|
154
|
+
//# sourceMappingURL=image.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useState","useMemo","View","Text","Image","RNImage","StyleSheet","parseMarkdownWithOptions","useMarkdownContext","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","renderInlineContent","node","Renderer","type","children","map","child","idx","depth","inListItem","url","title","alt","loading","setLoading","error","setError","theme","styles","create","imageContainer","marginVertical","spacing","m","alignItems","image","width","height","borderRadius","backgroundColor","colors","surface","imageHidden","opacity","position","imageLoading","justifyContent","imageLoadingText","color","textMuted","fontSize","fontSizes","s","imageError","padding","l","imageErrorText","imageCaption","xs","marginTop","fontStyle","textAlign","altContent","includes","ast","math","gfm","paragraph","inlineContent","style","flexDirection","flexWrap","source","uri","resizeMode","onLoad","onError"],"sourceRoot":"../../../src","sources":["renderers/image.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useMemo } from "react";
|
|
4
|
+
import { Text, StyleSheet, Linking } from "react-native";
|
|
5
|
+
import { useMarkdownContext } from "../MarkdownContext.js";
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
export const Link = ({
|
|
8
|
+
href,
|
|
9
|
+
children,
|
|
10
|
+
style
|
|
11
|
+
}) => {
|
|
12
|
+
const {
|
|
13
|
+
theme
|
|
14
|
+
} = useMarkdownContext();
|
|
15
|
+
const styles = useMemo(() => StyleSheet.create({
|
|
16
|
+
link: {
|
|
17
|
+
color: theme.colors.link,
|
|
18
|
+
textDecorationLine: "underline"
|
|
19
|
+
}
|
|
20
|
+
}), [theme]);
|
|
21
|
+
const handlePress = () => {
|
|
22
|
+
if (href) {
|
|
23
|
+
Linking.openURL(href).catch(err => console.error("Failed to open URL:", err));
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
return /*#__PURE__*/_jsx(Text, {
|
|
27
|
+
style: [styles.link, style],
|
|
28
|
+
onPress: handlePress,
|
|
29
|
+
children: children
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=link.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useMemo","Text","StyleSheet","Linking","useMarkdownContext","jsx","_jsx","Link","href","children","style","theme","styles","create","link","color","colors","textDecorationLine","handlePress","openURL","catch","err","console","error","onPress"],"sourceRoot":"../../../src","sources":["renderers/link.tsx"],"mappings":";;AAAA,SAAoBA,OAAO,QAAiB,OAAO;AACnD,SAASC,IAAI,EAAEC,UAAU,EAAEC,OAAO,QAAwB,cAAc;AACxE,SAASC,kBAAkB,QAAQ,uBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQxD,OAAO,MAAMC,IAAmB,GAAGA,CAAC;EAAEC,IAAI;EAAEC,QAAQ;EAAEC;AAAM,CAAC,KAAK;EAChE,MAAM;IAAEC;EAAM,CAAC,GAAGP,kBAAkB,CAAC,CAAC;EACtC,MAAMQ,MAAM,GAAGZ,OAAO,CACpB,MACEE,UAAU,CAACW,MAAM,CAAC;IAChBC,IAAI,EAAE;MACJC,KAAK,EAAEJ,KAAK,CAACK,MAAM,CAACF,IAAI;MACxBG,kBAAkB,EAAE;IACtB;EACF,CAAC,CAAC,EACJ,CAACN,KAAK,CACR,CAAC;EAED,MAAMO,WAAW,GAAGA,CAAA,KAAM;IACxB,IAAIV,IAAI,EAAE;MACRL,OAAO,CAACgB,OAAO,CAACX,IAAI,CAAC,CAACY,KAAK,CAAEC,GAAG,IAC9BC,OAAO,CAACC,KAAK,CAAC,qBAAqB,EAAEF,GAAG,CAC1C,CAAC;IACH;EACF,CAAC;EAED,oBACEf,IAAA,CAACL,IAAI;IAACS,KAAK,EAAE,CAACE,MAAM,CAACE,IAAI,EAAEJ,KAAK,CAAE;IAACc,OAAO,EAAEN,WAAY;IAAAT,QAAA,EACrDA;EAAQ,CACL,CAAC;AAEX,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useMemo } from "react";
|
|
4
|
+
import { View, Text, StyleSheet } from "react-native";
|
|
5
|
+
import { useMarkdownContext } from "../MarkdownContext.js";
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
export const List = ({
|
|
8
|
+
ordered,
|
|
9
|
+
start = 1,
|
|
10
|
+
depth,
|
|
11
|
+
children
|
|
12
|
+
}) => {
|
|
13
|
+
const {
|
|
14
|
+
theme
|
|
15
|
+
} = useMarkdownContext();
|
|
16
|
+
const styles = useMemo(() => StyleSheet.create({
|
|
17
|
+
list: {
|
|
18
|
+
marginBottom: theme.spacing.m
|
|
19
|
+
},
|
|
20
|
+
listNested: {
|
|
21
|
+
marginLeft: theme.spacing.l,
|
|
22
|
+
marginBottom: 0
|
|
23
|
+
}
|
|
24
|
+
}), [theme]);
|
|
25
|
+
return /*#__PURE__*/_jsx(View, {
|
|
26
|
+
style: [styles.list, depth > 0 && styles.listNested],
|
|
27
|
+
children: children
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
export const ListItem = ({
|
|
31
|
+
children,
|
|
32
|
+
index,
|
|
33
|
+
ordered,
|
|
34
|
+
start
|
|
35
|
+
}) => {
|
|
36
|
+
const {
|
|
37
|
+
theme
|
|
38
|
+
} = useMarkdownContext();
|
|
39
|
+
const styles = useMemo(() => StyleSheet.create({
|
|
40
|
+
listItem: {
|
|
41
|
+
flexDirection: "row",
|
|
42
|
+
marginBottom: theme.spacing.s,
|
|
43
|
+
alignItems: "flex-start"
|
|
44
|
+
},
|
|
45
|
+
listBullet: {
|
|
46
|
+
color: theme.colors.accent,
|
|
47
|
+
fontSize: theme.fontSizes.m,
|
|
48
|
+
lineHeight: theme.fontSizes.m * 1.6,
|
|
49
|
+
marginRight: theme.spacing.s,
|
|
50
|
+
minWidth: 20,
|
|
51
|
+
textAlign: "center"
|
|
52
|
+
},
|
|
53
|
+
listItemContent: {
|
|
54
|
+
flex: 1,
|
|
55
|
+
flexShrink: 1,
|
|
56
|
+
minWidth: 0
|
|
57
|
+
}
|
|
58
|
+
}), [theme]);
|
|
59
|
+
const bullet = ordered ? `${start + index}.` : "•";
|
|
60
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
61
|
+
style: styles.listItem,
|
|
62
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
63
|
+
style: styles.listBullet,
|
|
64
|
+
children: bullet
|
|
65
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
66
|
+
style: styles.listItemContent,
|
|
67
|
+
children: children
|
|
68
|
+
})]
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
export const TaskListItem = ({
|
|
72
|
+
children,
|
|
73
|
+
checked
|
|
74
|
+
}) => {
|
|
75
|
+
const {
|
|
76
|
+
theme
|
|
77
|
+
} = useMarkdownContext();
|
|
78
|
+
const styles = useMemo(() => StyleSheet.create({
|
|
79
|
+
taskListItem: {
|
|
80
|
+
flexDirection: "row",
|
|
81
|
+
alignItems: "flex-start",
|
|
82
|
+
marginBottom: theme.spacing.s
|
|
83
|
+
},
|
|
84
|
+
taskCheckbox: {
|
|
85
|
+
fontSize: theme.fontSizes.l,
|
|
86
|
+
lineHeight: theme.fontSizes.m * 1.6,
|
|
87
|
+
marginRight: theme.spacing.s,
|
|
88
|
+
color: theme.colors.accent
|
|
89
|
+
},
|
|
90
|
+
taskContent: {
|
|
91
|
+
flex: 1,
|
|
92
|
+
flexShrink: 1,
|
|
93
|
+
minWidth: 0
|
|
94
|
+
}
|
|
95
|
+
}), [theme]);
|
|
96
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
97
|
+
style: styles.taskListItem,
|
|
98
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
99
|
+
style: styles.taskCheckbox,
|
|
100
|
+
children: checked ? "☑" : "☐"
|
|
101
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
102
|
+
style: styles.taskContent,
|
|
103
|
+
children: children
|
|
104
|
+
})]
|
|
105
|
+
});
|
|
106
|
+
};
|
|
107
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useMemo","View","Text","StyleSheet","useMarkdownContext","jsx","_jsx","jsxs","_jsxs","List","ordered","start","depth","children","theme","styles","create","list","marginBottom","spacing","m","listNested","marginLeft","l","style","ListItem","index","listItem","flexDirection","s","alignItems","listBullet","color","colors","accent","fontSize","fontSizes","lineHeight","marginRight","minWidth","textAlign","listItemContent","flex","flexShrink","bullet","TaskListItem","checked","taskListItem","taskCheckbox","taskContent"],"sourceRoot":"../../../src","sources":["renderers/list.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useMemo } from "react";
|
|
4
|
+
import { View, Text, StyleSheet } from "react-native";
|
|
5
|
+
import { useMarkdownContext } from "../MarkdownContext.js";
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
let MathJaxComponent = null;
|
|
8
|
+
try {
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
10
|
+
const mathJaxModule = require("react-native-mathjax-svg");
|
|
11
|
+
MathJaxComponent = mathJaxModule.default || mathJaxModule;
|
|
12
|
+
} catch {
|
|
13
|
+
// ignored
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Inline math renderer.
|
|
17
|
+
* Uses react-native-mathjax-svg if installed, otherwise shows raw LaTeX.
|
|
18
|
+
* Note: Renders as a View since SVG can't be nested in Text.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
const createMathStyles = theme => StyleSheet.create({
|
|
22
|
+
mathInlineContainer: {
|
|
23
|
+
flexDirection: "row",
|
|
24
|
+
alignItems: "baseline",
|
|
25
|
+
alignSelf: "baseline",
|
|
26
|
+
justifyContent: "flex-start",
|
|
27
|
+
flexShrink: 1,
|
|
28
|
+
marginHorizontal: 2,
|
|
29
|
+
top: -theme.fontSizes.m,
|
|
30
|
+
marginBottom: 0,
|
|
31
|
+
paddingVertical: 0
|
|
32
|
+
},
|
|
33
|
+
mathJaxInline: {
|
|
34
|
+
marginTop: 0,
|
|
35
|
+
marginBottom: 0
|
|
36
|
+
},
|
|
37
|
+
mathInlineFallbackContainer: {
|
|
38
|
+
backgroundColor: theme.colors.codeBackground,
|
|
39
|
+
paddingHorizontal: 4,
|
|
40
|
+
paddingVertical: 2,
|
|
41
|
+
borderRadius: 4,
|
|
42
|
+
alignSelf: "baseline",
|
|
43
|
+
marginHorizontal: 2
|
|
44
|
+
},
|
|
45
|
+
mathInlineFallback: {
|
|
46
|
+
fontFamily: "monospace",
|
|
47
|
+
fontSize: theme.fontSizes.s,
|
|
48
|
+
color: theme.colors.code
|
|
49
|
+
},
|
|
50
|
+
mathBlockContainer: {
|
|
51
|
+
marginVertical: theme.spacing.m,
|
|
52
|
+
paddingVertical: theme.spacing.l,
|
|
53
|
+
paddingHorizontal: theme.spacing.l,
|
|
54
|
+
backgroundColor: theme.colors.surface,
|
|
55
|
+
borderRadius: 12,
|
|
56
|
+
alignItems: "center",
|
|
57
|
+
borderWidth: 1,
|
|
58
|
+
borderColor: theme.colors.border,
|
|
59
|
+
shadowColor: "#000",
|
|
60
|
+
shadowOffset: {
|
|
61
|
+
width: 0,
|
|
62
|
+
height: 1
|
|
63
|
+
},
|
|
64
|
+
shadowOpacity: 0.05,
|
|
65
|
+
shadowRadius: 2,
|
|
66
|
+
elevation: 1
|
|
67
|
+
},
|
|
68
|
+
mathBlockFallbackContainer: {
|
|
69
|
+
marginVertical: theme.spacing.m,
|
|
70
|
+
paddingVertical: theme.spacing.m,
|
|
71
|
+
paddingHorizontal: theme.spacing.l,
|
|
72
|
+
backgroundColor: theme.colors.codeBackground,
|
|
73
|
+
borderRadius: 8,
|
|
74
|
+
alignItems: "center",
|
|
75
|
+
borderWidth: 1,
|
|
76
|
+
borderColor: theme.colors.border
|
|
77
|
+
},
|
|
78
|
+
mathBlockFallback: {
|
|
79
|
+
fontFamily: "monospace",
|
|
80
|
+
fontSize: theme.fontSizes.m,
|
|
81
|
+
color: theme.colors.code,
|
|
82
|
+
textAlign: "center"
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
export const MathInline = ({
|
|
86
|
+
content
|
|
87
|
+
}) => {
|
|
88
|
+
const {
|
|
89
|
+
theme
|
|
90
|
+
} = useMarkdownContext();
|
|
91
|
+
const styles = useMemo(() => createMathStyles(theme), [theme]);
|
|
92
|
+
if (!content) return null;
|
|
93
|
+
if (MathJaxComponent) {
|
|
94
|
+
const fontSize = theme.fontSizes.m;
|
|
95
|
+
return /*#__PURE__*/_jsx(View, {
|
|
96
|
+
style: styles.mathInlineContainer,
|
|
97
|
+
children: /*#__PURE__*/_jsx(MathJaxComponent, {
|
|
98
|
+
fontSize: fontSize,
|
|
99
|
+
color: theme.colors.text,
|
|
100
|
+
fontCache: true,
|
|
101
|
+
style: styles.mathJaxInline,
|
|
102
|
+
children: content
|
|
103
|
+
})
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
return /*#__PURE__*/_jsx(View, {
|
|
107
|
+
style: styles.mathInlineFallbackContainer,
|
|
108
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
109
|
+
style: styles.mathInlineFallback,
|
|
110
|
+
children: content
|
|
111
|
+
})
|
|
112
|
+
});
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* Block math renderer.
|
|
116
|
+
* Uses react-native-mathjax-svg if installed, otherwise shows raw LaTeX.
|
|
117
|
+
*/
|
|
118
|
+
export const MathBlock = ({
|
|
119
|
+
content
|
|
120
|
+
}) => {
|
|
121
|
+
const {
|
|
122
|
+
theme
|
|
123
|
+
} = useMarkdownContext();
|
|
124
|
+
const styles = useMemo(() => createMathStyles(theme), [theme]);
|
|
125
|
+
if (!content) return null;
|
|
126
|
+
if (MathJaxComponent) {
|
|
127
|
+
return /*#__PURE__*/_jsx(View, {
|
|
128
|
+
style: styles.mathBlockContainer,
|
|
129
|
+
children: /*#__PURE__*/_jsx(MathJaxComponent, {
|
|
130
|
+
fontSize: theme.fontSizes.l,
|
|
131
|
+
color: theme.colors.text,
|
|
132
|
+
fontCache: true,
|
|
133
|
+
children: `\\displaystyle ${content}`
|
|
134
|
+
})
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
return /*#__PURE__*/_jsx(View, {
|
|
138
|
+
style: styles.mathBlockFallbackContainer,
|
|
139
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
140
|
+
style: styles.mathBlockFallback,
|
|
141
|
+
children: content
|
|
142
|
+
})
|
|
143
|
+
});
|
|
144
|
+
};
|
|
145
|
+
//# sourceMappingURL=math.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useMemo","View","Text","StyleSheet","useMarkdownContext","jsx","_jsx","MathJaxComponent","mathJaxModule","require","default","createMathStyles","theme","create","mathInlineContainer","flexDirection","alignItems","alignSelf","justifyContent","flexShrink","marginHorizontal","top","fontSizes","m","marginBottom","paddingVertical","mathJaxInline","marginTop","mathInlineFallbackContainer","backgroundColor","colors","codeBackground","paddingHorizontal","borderRadius","mathInlineFallback","fontFamily","fontSize","s","color","code","mathBlockContainer","marginVertical","spacing","l","surface","borderWidth","borderColor","border","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","mathBlockFallbackContainer","mathBlockFallback","textAlign","MathInline","content","styles","style","children","text","fontCache","MathBlock"],"sourceRoot":"../../../src","sources":["renderers/math.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useMemo } from "react";
|
|
4
|
+
import { View, StyleSheet } from "react-native";
|
|
5
|
+
import { useMarkdownContext } from "../MarkdownContext.js";
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
/**
|
|
8
|
+
* Paragraph component that supports mixed content (Text and View elements).
|
|
9
|
+
* Uses View with flexDirection: 'row' and flexWrap: 'wrap' to allow inline flow
|
|
10
|
+
* of both text and non-text elements (like inline math).
|
|
11
|
+
*/
|
|
12
|
+
export const Paragraph = ({
|
|
13
|
+
children,
|
|
14
|
+
inListItem,
|
|
15
|
+
style
|
|
16
|
+
}) => {
|
|
17
|
+
const {
|
|
18
|
+
theme
|
|
19
|
+
} = useMarkdownContext();
|
|
20
|
+
const styles = useMemo(() => StyleSheet.create({
|
|
21
|
+
paragraph: {
|
|
22
|
+
flexDirection: "row",
|
|
23
|
+
flexWrap: "wrap",
|
|
24
|
+
alignItems: "baseline",
|
|
25
|
+
marginBottom: theme.spacing.l,
|
|
26
|
+
gap: 0
|
|
27
|
+
},
|
|
28
|
+
paragraphInListItem: {
|
|
29
|
+
marginBottom: 0,
|
|
30
|
+
marginTop: 0,
|
|
31
|
+
flexShrink: 1
|
|
32
|
+
}
|
|
33
|
+
}), [theme]);
|
|
34
|
+
return /*#__PURE__*/_jsx(View, {
|
|
35
|
+
style: [styles.paragraph, inListItem && styles.paragraphInListItem, style],
|
|
36
|
+
children: children
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=paragraph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useMemo","View","StyleSheet","useMarkdownContext","jsx","_jsx","Paragraph","children","inListItem","style","theme","styles","create","paragraph","flexDirection","flexWrap","alignItems","marginBottom","spacing","l","gap","paragraphInListItem","marginTop","flexShrink"],"sourceRoot":"../../../src","sources":["renderers/paragraph.tsx"],"mappings":";;AAAA,SAAoBA,OAAO,QAAiB,OAAO;AACnD,SAASC,IAAI,EAAEC,UAAU,QAAwC,cAAc;AAC/E,SAASC,kBAAkB,QAAQ,uBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQxD;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,SAA6B,GAAGA,CAAC;EAC5CC,QAAQ;EACRC,UAAU;EACVC;AACF,CAAC,KAAK;EACJ,MAAM;IAAEC;EAAM,CAAC,GAAGP,kBAAkB,CAAC,CAAC;EACtC,MAAMQ,MAAM,GAAGX,OAAO,CACpB,MACEE,UAAU,CAACU,MAAM,CAAC;IAChBC,SAAS,EAAE;MACTC,aAAa,EAAE,KAAK;MACpBC,QAAQ,EAAE,MAAM;MAChBC,UAAU,EAAE,UAAU;MACtBC,YAAY,EAAEP,KAAK,CAACQ,OAAO,CAACC,CAAC;MAC7BC,GAAG,EAAE;IACP,CAAC;IACDC,mBAAmB,EAAE;MACnBJ,YAAY,EAAE,CAAC;MACfK,SAAS,EAAE,CAAC;MACZC,UAAU,EAAE;IACd;EACF,CAAC,CAAC,EACJ,CAACb,KAAK,CACR,CAAC;EAED,oBACEL,IAAA,CAACJ,IAAI;IACHQ,KAAK,EAAE,CACLE,MAAM,CAACE,SAAS,EAChBL,UAAU,IAAIG,MAAM,CAACU,mBAAmB,EACxCZ,KAAK,CACL;IAAAF,QAAA,EAEDA;EAAQ,CACL,CAAC;AAEX,CAAC","ignoreList":[]}
|