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.
Files changed (238) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +142 -84
  3. package/android/src/main/cpp/cpp-adapter.cpp +1 -1
  4. package/android/src/main/java/com/margelo/nitro/com/nitromarkdown/HybridMarkdownSession.kt +61 -0
  5. package/android/src/main/java/com/nitromarkdown/NitroMarkdownPackage.kt +5 -1
  6. package/cpp/bindings/HybridMarkdownParser.cpp +2 -2
  7. package/cpp/bindings/HybridMarkdownParser.hpp +2 -2
  8. package/cpp/bindings/HybridMarkdownSession.cpp +0 -0
  9. package/cpp/core/MarkdownSessionCore.cpp +0 -0
  10. package/ios/HybridMarkdownSession.swift +64 -0
  11. package/lib/commonjs/MarkdownContext.js +21 -0
  12. package/lib/commonjs/MarkdownContext.js.map +1 -0
  13. package/lib/commonjs/MarkdownSession.js +11 -0
  14. package/lib/commonjs/MarkdownSession.js.map +1 -0
  15. package/lib/commonjs/default-markdown-renderer.js +220 -0
  16. package/lib/commonjs/default-markdown-renderer.js.map +1 -0
  17. package/lib/commonjs/headless.js +50 -0
  18. package/lib/commonjs/headless.js.map +1 -0
  19. package/lib/commonjs/index.js +185 -13
  20. package/lib/commonjs/index.js.map +1 -1
  21. package/lib/commonjs/markdown-stream.js +32 -0
  22. package/lib/commonjs/markdown-stream.js.map +1 -0
  23. package/lib/commonjs/markdown.js +326 -0
  24. package/lib/commonjs/markdown.js.map +1 -0
  25. package/lib/commonjs/package.json +1 -0
  26. package/lib/commonjs/renderers/blockquote.js +36 -0
  27. package/lib/commonjs/renderers/blockquote.js.map +1 -0
  28. package/lib/commonjs/renderers/code.js +92 -0
  29. package/lib/commonjs/renderers/code.js.map +1 -0
  30. package/lib/commonjs/renderers/heading.js +62 -0
  31. package/lib/commonjs/renderers/heading.js.map +1 -0
  32. package/lib/commonjs/renderers/horizontal-rule.js +27 -0
  33. package/lib/commonjs/renderers/horizontal-rule.js.map +1 -0
  34. package/lib/commonjs/renderers/image.js +159 -0
  35. package/lib/commonjs/renderers/image.js.map +1 -0
  36. package/lib/commonjs/renderers/link.js +37 -0
  37. package/lib/commonjs/renderers/link.js.map +1 -0
  38. package/lib/commonjs/renderers/list.js +114 -0
  39. package/lib/commonjs/renderers/list.js.map +1 -0
  40. package/lib/commonjs/renderers/math.js +151 -0
  41. package/lib/commonjs/renderers/math.js.map +1 -0
  42. package/lib/commonjs/renderers/paragraph.js +44 -0
  43. package/lib/commonjs/renderers/paragraph.js.map +1 -0
  44. package/lib/commonjs/renderers/table.js +283 -0
  45. package/lib/commonjs/renderers/table.js.map +1 -0
  46. package/lib/commonjs/specs/MarkdownSession.nitro.js +6 -0
  47. package/lib/commonjs/specs/MarkdownSession.nitro.js.map +1 -0
  48. package/lib/commonjs/theme.js +58 -0
  49. package/lib/commonjs/theme.js.map +1 -0
  50. package/lib/commonjs/use-markdown-stream.js +71 -0
  51. package/lib/commonjs/use-markdown-stream.js.map +1 -0
  52. package/lib/module/MarkdownContext.js +17 -0
  53. package/lib/module/MarkdownContext.js.map +1 -0
  54. package/lib/module/MarkdownSession.js +7 -0
  55. package/lib/module/MarkdownSession.js.map +1 -0
  56. package/lib/module/default-markdown-renderer.js +215 -0
  57. package/lib/module/default-markdown-renderer.js.map +1 -0
  58. package/lib/module/headless.js +44 -0
  59. package/lib/module/headless.js.map +1 -0
  60. package/lib/module/index.js +36 -10
  61. package/lib/module/index.js.map +1 -1
  62. package/lib/module/markdown-stream.js +27 -0
  63. package/lib/module/markdown-stream.js.map +1 -0
  64. package/lib/module/markdown.js +321 -0
  65. package/lib/module/markdown.js.map +1 -0
  66. package/lib/module/package.json +1 -0
  67. package/lib/module/renderers/blockquote.js +31 -0
  68. package/lib/module/renderers/blockquote.js.map +1 -0
  69. package/lib/module/renderers/code.js +86 -0
  70. package/lib/module/renderers/code.js.map +1 -0
  71. package/lib/module/renderers/heading.js +57 -0
  72. package/lib/module/renderers/heading.js.map +1 -0
  73. package/lib/module/renderers/horizontal-rule.js +22 -0
  74. package/lib/module/renderers/horizontal-rule.js.map +1 -0
  75. package/lib/module/renderers/image.js +154 -0
  76. package/lib/module/renderers/image.js.map +1 -0
  77. package/lib/module/renderers/link.js +32 -0
  78. package/lib/module/renderers/link.js.map +1 -0
  79. package/lib/module/renderers/list.js +107 -0
  80. package/lib/module/renderers/list.js.map +1 -0
  81. package/lib/module/renderers/math.js +145 -0
  82. package/lib/module/renderers/math.js.map +1 -0
  83. package/lib/module/renderers/paragraph.js +39 -0
  84. package/lib/module/renderers/paragraph.js.map +1 -0
  85. package/lib/module/renderers/table.js +278 -0
  86. package/lib/module/renderers/table.js.map +1 -0
  87. package/lib/module/specs/MarkdownSession.nitro.js +4 -0
  88. package/lib/module/specs/MarkdownSession.nitro.js.map +1 -0
  89. package/lib/module/theme.js +54 -0
  90. package/lib/module/theme.js.map +1 -0
  91. package/lib/module/use-markdown-stream.js +66 -0
  92. package/lib/module/use-markdown-stream.js.map +1 -0
  93. package/lib/typescript/commonjs/Markdown.nitro.d.ts.map +1 -0
  94. package/lib/typescript/commonjs/MarkdownContext.d.ts +26 -0
  95. package/lib/typescript/commonjs/MarkdownContext.d.ts.map +1 -0
  96. package/lib/typescript/commonjs/MarkdownSession.d.ts +4 -0
  97. package/lib/typescript/commonjs/MarkdownSession.d.ts.map +1 -0
  98. package/lib/typescript/commonjs/default-markdown-renderer.d.ts +10 -0
  99. package/lib/typescript/commonjs/default-markdown-renderer.d.ts.map +1 -0
  100. package/lib/typescript/commonjs/headless.d.ts +50 -0
  101. package/lib/typescript/commonjs/headless.d.ts.map +1 -0
  102. package/lib/typescript/commonjs/index.d.ts +34 -0
  103. package/lib/typescript/commonjs/index.d.ts.map +1 -0
  104. package/lib/typescript/commonjs/markdown-stream.d.ts +15 -0
  105. package/lib/typescript/commonjs/markdown-stream.d.ts.map +1 -0
  106. package/lib/typescript/commonjs/markdown.d.ts +29 -0
  107. package/lib/typescript/commonjs/markdown.d.ts.map +1 -0
  108. package/lib/typescript/commonjs/package.json +1 -0
  109. package/lib/typescript/commonjs/renderers/blockquote.d.ts +9 -0
  110. package/lib/typescript/commonjs/renderers/blockquote.d.ts.map +1 -0
  111. package/lib/typescript/commonjs/renderers/code.d.ts +15 -0
  112. package/lib/typescript/commonjs/renderers/code.d.ts.map +1 -0
  113. package/lib/typescript/commonjs/renderers/heading.d.ts +10 -0
  114. package/lib/typescript/commonjs/renderers/heading.d.ts.map +1 -0
  115. package/lib/typescript/commonjs/renderers/horizontal-rule.d.ts +3 -0
  116. package/lib/typescript/commonjs/renderers/horizontal-rule.d.ts.map +1 -0
  117. package/lib/typescript/commonjs/renderers/image.d.ts +11 -0
  118. package/lib/typescript/commonjs/renderers/image.d.ts.map +1 -0
  119. package/lib/typescript/commonjs/renderers/link.d.ts +10 -0
  120. package/lib/typescript/commonjs/renderers/link.d.ts.map +1 -0
  121. package/lib/typescript/commonjs/renderers/list.d.ts +22 -0
  122. package/lib/typescript/commonjs/renderers/list.d.ts.map +1 -0
  123. package/lib/typescript/commonjs/renderers/math.d.ts +15 -0
  124. package/lib/typescript/commonjs/renderers/math.d.ts.map +1 -0
  125. package/lib/typescript/commonjs/renderers/paragraph.d.ts +15 -0
  126. package/lib/typescript/commonjs/renderers/paragraph.d.ts.map +1 -0
  127. package/lib/typescript/commonjs/renderers/table.d.ts +10 -0
  128. package/lib/typescript/commonjs/renderers/table.d.ts.map +1 -0
  129. package/lib/typescript/commonjs/specs/MarkdownSession.nitro.d.ts +12 -0
  130. package/lib/typescript/commonjs/specs/MarkdownSession.nitro.d.ts.map +1 -0
  131. package/lib/typescript/commonjs/theme.d.ts +52 -0
  132. package/lib/typescript/commonjs/theme.d.ts.map +1 -0
  133. package/lib/typescript/commonjs/use-markdown-stream.d.ts +22 -0
  134. package/lib/typescript/commonjs/use-markdown-stream.d.ts.map +1 -0
  135. package/lib/typescript/module/Markdown.nitro.d.ts +13 -0
  136. package/lib/typescript/module/Markdown.nitro.d.ts.map +1 -0
  137. package/lib/typescript/module/MarkdownContext.d.ts +26 -0
  138. package/lib/typescript/module/MarkdownContext.d.ts.map +1 -0
  139. package/lib/typescript/module/MarkdownSession.d.ts +4 -0
  140. package/lib/typescript/module/MarkdownSession.d.ts.map +1 -0
  141. package/lib/typescript/module/default-markdown-renderer.d.ts +10 -0
  142. package/lib/typescript/module/default-markdown-renderer.d.ts.map +1 -0
  143. package/lib/typescript/module/headless.d.ts +50 -0
  144. package/lib/typescript/module/headless.d.ts.map +1 -0
  145. package/lib/typescript/module/index.d.ts +34 -0
  146. package/lib/typescript/module/index.d.ts.map +1 -0
  147. package/lib/typescript/module/markdown-stream.d.ts +15 -0
  148. package/lib/typescript/module/markdown-stream.d.ts.map +1 -0
  149. package/lib/typescript/module/markdown.d.ts +29 -0
  150. package/lib/typescript/module/markdown.d.ts.map +1 -0
  151. package/lib/typescript/module/package.json +1 -0
  152. package/lib/typescript/module/renderers/blockquote.d.ts +9 -0
  153. package/lib/typescript/module/renderers/blockquote.d.ts.map +1 -0
  154. package/lib/typescript/module/renderers/code.d.ts +15 -0
  155. package/lib/typescript/module/renderers/code.d.ts.map +1 -0
  156. package/lib/typescript/module/renderers/heading.d.ts +10 -0
  157. package/lib/typescript/module/renderers/heading.d.ts.map +1 -0
  158. package/lib/typescript/module/renderers/horizontal-rule.d.ts +3 -0
  159. package/lib/typescript/module/renderers/horizontal-rule.d.ts.map +1 -0
  160. package/lib/typescript/module/renderers/image.d.ts +11 -0
  161. package/lib/typescript/module/renderers/image.d.ts.map +1 -0
  162. package/lib/typescript/module/renderers/link.d.ts +10 -0
  163. package/lib/typescript/module/renderers/link.d.ts.map +1 -0
  164. package/lib/typescript/module/renderers/list.d.ts +22 -0
  165. package/lib/typescript/module/renderers/list.d.ts.map +1 -0
  166. package/lib/typescript/module/renderers/math.d.ts +15 -0
  167. package/lib/typescript/module/renderers/math.d.ts.map +1 -0
  168. package/lib/typescript/module/renderers/paragraph.d.ts +15 -0
  169. package/lib/typescript/module/renderers/paragraph.d.ts.map +1 -0
  170. package/lib/typescript/module/renderers/table.d.ts +10 -0
  171. package/lib/typescript/module/renderers/table.d.ts.map +1 -0
  172. package/lib/typescript/module/specs/MarkdownSession.nitro.d.ts +12 -0
  173. package/lib/typescript/module/specs/MarkdownSession.nitro.d.ts.map +1 -0
  174. package/lib/typescript/module/theme.d.ts +52 -0
  175. package/lib/typescript/module/theme.d.ts.map +1 -0
  176. package/lib/typescript/module/use-markdown-stream.d.ts +22 -0
  177. package/lib/typescript/module/use-markdown-stream.d.ts.map +1 -0
  178. package/nitro.json +5 -2
  179. package/nitrogen/generated/android/NitroMarkdown+autolinking.cmake +3 -2
  180. package/nitrogen/generated/android/NitroMarkdown+autolinking.gradle +1 -1
  181. package/nitrogen/generated/android/NitroMarkdownOnLoad.cpp +17 -5
  182. package/nitrogen/generated/android/NitroMarkdownOnLoad.hpp +4 -4
  183. package/nitrogen/generated/android/c++/JFunc_void.hpp +75 -0
  184. package/nitrogen/generated/android/c++/JHybridMarkdownSessionSpec.cpp +91 -0
  185. package/nitrogen/generated/android/c++/JHybridMarkdownSessionSpec.hpp +70 -0
  186. package/nitrogen/generated/android/kotlin/com/margelo/nitro/com/nitromarkdown/Func_void.kt +80 -0
  187. package/nitrogen/generated/android/kotlin/com/margelo/nitro/com/nitromarkdown/HybridMarkdownSessionSpec.kt +78 -0
  188. package/nitrogen/generated/android/kotlin/com/margelo/nitro/com/nitromarkdown/NitroMarkdownOnLoad.kt +1 -1
  189. package/nitrogen/generated/ios/NitroMarkdown+autolinking.rb +2 -2
  190. package/nitrogen/generated/ios/NitroMarkdown-Swift-Cxx-Bridge.cpp +28 -4
  191. package/nitrogen/generated/ios/NitroMarkdown-Swift-Cxx-Bridge.hpp +72 -6
  192. package/nitrogen/generated/ios/NitroMarkdown-Swift-Cxx-Umbrella.hpp +11 -4
  193. package/nitrogen/generated/ios/NitroMarkdownAutolinking.mm +11 -3
  194. package/nitrogen/generated/ios/NitroMarkdownAutolinking.swift +16 -3
  195. package/nitrogen/generated/ios/c++/HybridMarkdownSessionSpecSwift.cpp +11 -0
  196. package/nitrogen/generated/ios/c++/HybridMarkdownSessionSpecSwift.hpp +108 -0
  197. package/nitrogen/generated/ios/swift/Func_void.swift +47 -0
  198. package/nitrogen/generated/ios/swift/HybridMarkdownSessionSpec.swift +59 -0
  199. package/nitrogen/generated/ios/swift/HybridMarkdownSessionSpec_cxx.swift +190 -0
  200. package/nitrogen/generated/shared/c++/HybridMarkdownParserSpec.cpp +3 -3
  201. package/nitrogen/generated/shared/c++/HybridMarkdownParserSpec.hpp +4 -4
  202. package/nitrogen/generated/shared/c++/HybridMarkdownSessionSpec.cpp +26 -0
  203. package/nitrogen/generated/shared/c++/HybridMarkdownSessionSpec.hpp +67 -0
  204. package/nitrogen/generated/shared/c++/ParserOptions.hpp +22 -14
  205. package/package.json +45 -15
  206. package/react-native-nitro-markdown.podspec +5 -5
  207. package/src/MarkdownContext.ts +41 -0
  208. package/src/MarkdownSession.ts +8 -0
  209. package/src/default-markdown-renderer.tsx +266 -0
  210. package/src/headless.ts +106 -0
  211. package/src/index.ts +41 -59
  212. package/src/markdown-stream.tsx +32 -0
  213. package/src/markdown.tsx +415 -0
  214. package/src/renderers/blockquote.tsx +31 -0
  215. package/src/renderers/code.tsx +88 -0
  216. package/src/renderers/heading.tsx +66 -0
  217. package/src/renderers/horizontal-rule.tsx +20 -0
  218. package/src/renderers/image.tsx +160 -0
  219. package/src/renderers/link.tsx +38 -0
  220. package/src/renderers/list.tsx +125 -0
  221. package/src/renderers/math.tsx +164 -0
  222. package/src/renderers/paragraph.tsx +53 -0
  223. package/src/renderers/table.tsx +345 -0
  224. package/src/specs/MarkdownSession.nitro.ts +16 -0
  225. package/src/theme.ts +52 -0
  226. package/src/use-markdown-stream.ts +83 -0
  227. package/ios/NitroMarkdown-Bridging-Header.h +0 -14
  228. package/lib/commonjs/MarkdownJS.reference.js +0 -114
  229. package/lib/commonjs/MarkdownJS.reference.js.map +0 -1
  230. package/lib/module/MarkdownJS.reference.js +0 -107
  231. package/lib/module/MarkdownJS.reference.js.map +0 -1
  232. package/lib/typescript/Markdown.nitro.d.ts.map +0 -1
  233. package/lib/typescript/MarkdownJS.reference.d.ts +0 -33
  234. package/lib/typescript/MarkdownJS.reference.d.ts.map +0 -1
  235. package/lib/typescript/index.d.ts +0 -22
  236. package/lib/typescript/index.d.ts.map +0 -1
  237. package/src/MarkdownJS.reference.ts +0 -122
  238. /package/lib/typescript/{Markdown.nitro.d.ts → commonjs/Markdown.nitro.d.ts} +0 -0
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Image = void 0;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _headless = require("../headless.js");
10
+ var _MarkdownContext = require("../MarkdownContext.js");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ const renderInlineContent = (node, Renderer) => {
13
+ if (node.type === "paragraph" && node.children) {
14
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
15
+ children: node.children.map((child, idx) => /*#__PURE__*/(0, _jsxRuntime.jsx)(Renderer, {
16
+ node: child,
17
+ depth: 0,
18
+ inListItem: false
19
+ }, idx))
20
+ });
21
+ }
22
+ return null;
23
+ };
24
+ const Image = ({
25
+ url,
26
+ title,
27
+ alt,
28
+ Renderer
29
+ }) => {
30
+ const [loading, setLoading] = (0, _react.useState)(true);
31
+ const [error, setError] = (0, _react.useState)(false);
32
+ const {
33
+ theme
34
+ } = (0, _MarkdownContext.useMarkdownContext)();
35
+ const styles = (0, _react.useMemo)(() => _reactNative.StyleSheet.create({
36
+ imageContainer: {
37
+ marginVertical: theme.spacing.m,
38
+ alignItems: "center"
39
+ },
40
+ image: {
41
+ width: "100%",
42
+ height: 200,
43
+ borderRadius: 8,
44
+ backgroundColor: theme.colors.surface
45
+ },
46
+ imageHidden: {
47
+ opacity: 0,
48
+ position: "absolute"
49
+ },
50
+ imageLoading: {
51
+ width: "100%",
52
+ height: 200,
53
+ borderRadius: 8,
54
+ backgroundColor: theme.colors.surface,
55
+ justifyContent: "center",
56
+ alignItems: "center"
57
+ },
58
+ imageLoadingText: {
59
+ color: theme.colors.textMuted,
60
+ fontSize: theme.fontSizes.s
61
+ },
62
+ imageError: {
63
+ width: "100%",
64
+ padding: theme.spacing.l,
65
+ borderRadius: 8,
66
+ backgroundColor: theme.colors.surface,
67
+ alignItems: "center",
68
+ marginVertical: theme.spacing.m
69
+ },
70
+ imageErrorText: {
71
+ color: theme.colors.textMuted,
72
+ fontSize: theme.fontSizes.s
73
+ },
74
+ imageCaption: {
75
+ color: theme.colors.textMuted,
76
+ fontSize: theme.fontSizes.xs,
77
+ marginTop: theme.spacing.s,
78
+ fontStyle: "italic",
79
+ textAlign: "center"
80
+ }
81
+ }), [theme]);
82
+ const altContent = (0, _react.useMemo)(() => {
83
+ if (!alt || !Renderer) return null;
84
+ if (alt.includes("$") || alt.includes("*") || alt.includes("_") || alt.includes("`") || alt.includes("[")) {
85
+ try {
86
+ const ast = (0, _headless.parseMarkdownWithOptions)(alt, {
87
+ math: true,
88
+ gfm: true
89
+ });
90
+ if (ast?.type === "document" && ast.children?.[0]?.type === "paragraph") {
91
+ const paragraph = ast.children[0];
92
+ const inlineContent = renderInlineContent(paragraph, Renderer);
93
+ if (inlineContent) {
94
+ return inlineContent;
95
+ }
96
+ }
97
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
98
+ style: styles.imageErrorText,
99
+ children: alt
100
+ });
101
+ } catch {
102
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
103
+ style: styles.imageErrorText,
104
+ children: alt
105
+ });
106
+ }
107
+ }
108
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
109
+ style: styles.imageErrorText,
110
+ children: alt
111
+ });
112
+ }, [alt, Renderer, styles.imageErrorText]);
113
+ if (error) {
114
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
115
+ style: styles.imageError,
116
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
117
+ style: {
118
+ flexDirection: "row",
119
+ alignItems: "baseline",
120
+ flexWrap: "wrap",
121
+ justifyContent: "center"
122
+ },
123
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
124
+ style: styles.imageErrorText,
125
+ children: "\uD83D\uDDBC\uFE0F "
126
+ }), altContent || /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
127
+ style: styles.imageErrorText,
128
+ children: title || "Image failed to load"
129
+ })]
130
+ })
131
+ });
132
+ }
133
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
134
+ style: styles.imageContainer,
135
+ children: [loading && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
136
+ style: styles.imageLoading,
137
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
138
+ style: styles.imageLoadingText,
139
+ children: "Loading image..."
140
+ })
141
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Image, {
142
+ source: {
143
+ uri: url
144
+ },
145
+ style: [styles.image, loading && styles.imageHidden],
146
+ resizeMode: "contain",
147
+ onLoad: () => setLoading(false),
148
+ onError: () => {
149
+ setLoading(false);
150
+ setError(true);
151
+ }
152
+ }), title && !loading && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
153
+ style: styles.imageCaption,
154
+ children: title
155
+ })]
156
+ });
157
+ };
158
+ exports.Image = Image;
159
+ //# sourceMappingURL=image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_headless","_MarkdownContext","_jsxRuntime","renderInlineContent","node","Renderer","type","children","jsx","Fragment","map","child","idx","depth","inListItem","Image","url","title","alt","loading","setLoading","useState","error","setError","theme","useMarkdownContext","styles","useMemo","StyleSheet","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","parseMarkdownWithOptions","math","gfm","paragraph","inlineContent","Text","style","View","jsxs","flexDirection","flexWrap","source","uri","resizeMode","onLoad","onError","exports"],"sourceRoot":"../../../src","sources":["renderers/image.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Link = void 0;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _MarkdownContext = require("../MarkdownContext.js");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ const Link = ({
12
+ href,
13
+ children,
14
+ style
15
+ }) => {
16
+ const {
17
+ theme
18
+ } = (0, _MarkdownContext.useMarkdownContext)();
19
+ const styles = (0, _react.useMemo)(() => _reactNative.StyleSheet.create({
20
+ link: {
21
+ color: theme.colors.link,
22
+ textDecorationLine: "underline"
23
+ }
24
+ }), [theme]);
25
+ const handlePress = () => {
26
+ if (href) {
27
+ _reactNative.Linking.openURL(href).catch(err => console.error("Failed to open URL:", err));
28
+ }
29
+ };
30
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
31
+ style: [styles.link, style],
32
+ onPress: handlePress,
33
+ children: children
34
+ });
35
+ };
36
+ exports.Link = Link;
37
+ //# sourceMappingURL=link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_MarkdownContext","_jsxRuntime","Link","href","children","style","theme","useMarkdownContext","styles","useMemo","StyleSheet","create","link","color","colors","textDecorationLine","handlePress","Linking","openURL","catch","err","console","error","jsx","Text","onPress","exports"],"sourceRoot":"../../../src","sources":["renderers/link.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AAAwD,IAAAG,WAAA,GAAAH,OAAA;AAQjD,MAAMI,IAAmB,GAAGA,CAAC;EAAEC,IAAI;EAAEC,QAAQ;EAAEC;AAAM,CAAC,KAAK;EAChE,MAAM;IAAEC;EAAM,CAAC,GAAG,IAAAC,mCAAkB,EAAC,CAAC;EACtC,MAAMC,MAAM,GAAG,IAAAC,cAAO,EACpB,MACEC,uBAAU,CAACC,MAAM,CAAC;IAChBC,IAAI,EAAE;MACJC,KAAK,EAAEP,KAAK,CAACQ,MAAM,CAACF,IAAI;MACxBG,kBAAkB,EAAE;IACtB;EACF,CAAC,CAAC,EACJ,CAACT,KAAK,CACR,CAAC;EAED,MAAMU,WAAW,GAAGA,CAAA,KAAM;IACxB,IAAIb,IAAI,EAAE;MACRc,oBAAO,CAACC,OAAO,CAACf,IAAI,CAAC,CAACgB,KAAK,CAAEC,GAAG,IAC9BC,OAAO,CAACC,KAAK,CAAC,qBAAqB,EAAEF,GAAG,CAC1C,CAAC;IACH;EACF,CAAC;EAED,oBACE,IAAAnB,WAAA,CAAAsB,GAAA,EAACxB,YAAA,CAAAyB,IAAI;IAACnB,KAAK,EAAE,CAACG,MAAM,CAACI,IAAI,EAAEP,KAAK,CAAE;IAACoB,OAAO,EAAET,WAAY;IAAAZ,QAAA,EACrDA;EAAQ,CACL,CAAC;AAEX,CAAC;AAACsB,OAAA,CAAAxB,IAAA,GAAAA,IAAA","ignoreList":[]}
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TaskListItem = exports.ListItem = exports.List = void 0;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _MarkdownContext = require("../MarkdownContext.js");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ const List = ({
12
+ ordered,
13
+ start = 1,
14
+ depth,
15
+ children
16
+ }) => {
17
+ const {
18
+ theme
19
+ } = (0, _MarkdownContext.useMarkdownContext)();
20
+ const styles = (0, _react.useMemo)(() => _reactNative.StyleSheet.create({
21
+ list: {
22
+ marginBottom: theme.spacing.m
23
+ },
24
+ listNested: {
25
+ marginLeft: theme.spacing.l,
26
+ marginBottom: 0
27
+ }
28
+ }), [theme]);
29
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
30
+ style: [styles.list, depth > 0 && styles.listNested],
31
+ children: children
32
+ });
33
+ };
34
+ exports.List = List;
35
+ const ListItem = ({
36
+ children,
37
+ index,
38
+ ordered,
39
+ start
40
+ }) => {
41
+ const {
42
+ theme
43
+ } = (0, _MarkdownContext.useMarkdownContext)();
44
+ const styles = (0, _react.useMemo)(() => _reactNative.StyleSheet.create({
45
+ listItem: {
46
+ flexDirection: "row",
47
+ marginBottom: theme.spacing.s,
48
+ alignItems: "flex-start"
49
+ },
50
+ listBullet: {
51
+ color: theme.colors.accent,
52
+ fontSize: theme.fontSizes.m,
53
+ lineHeight: theme.fontSizes.m * 1.6,
54
+ marginRight: theme.spacing.s,
55
+ minWidth: 20,
56
+ textAlign: "center"
57
+ },
58
+ listItemContent: {
59
+ flex: 1,
60
+ flexShrink: 1,
61
+ minWidth: 0
62
+ }
63
+ }), [theme]);
64
+ const bullet = ordered ? `${start + index}.` : "•";
65
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
66
+ style: styles.listItem,
67
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
68
+ style: styles.listBullet,
69
+ children: bullet
70
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
71
+ style: styles.listItemContent,
72
+ children: children
73
+ })]
74
+ });
75
+ };
76
+ exports.ListItem = ListItem;
77
+ const TaskListItem = ({
78
+ children,
79
+ checked
80
+ }) => {
81
+ const {
82
+ theme
83
+ } = (0, _MarkdownContext.useMarkdownContext)();
84
+ const styles = (0, _react.useMemo)(() => _reactNative.StyleSheet.create({
85
+ taskListItem: {
86
+ flexDirection: "row",
87
+ alignItems: "flex-start",
88
+ marginBottom: theme.spacing.s
89
+ },
90
+ taskCheckbox: {
91
+ fontSize: theme.fontSizes.l,
92
+ lineHeight: theme.fontSizes.m * 1.6,
93
+ marginRight: theme.spacing.s,
94
+ color: theme.colors.accent
95
+ },
96
+ taskContent: {
97
+ flex: 1,
98
+ flexShrink: 1,
99
+ minWidth: 0
100
+ }
101
+ }), [theme]);
102
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
103
+ style: styles.taskListItem,
104
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
105
+ style: styles.taskCheckbox,
106
+ children: checked ? "☑" : "☐"
107
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
108
+ style: styles.taskContent,
109
+ children: children
110
+ })]
111
+ });
112
+ };
113
+ exports.TaskListItem = TaskListItem;
114
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_MarkdownContext","_jsxRuntime","List","ordered","start","depth","children","theme","useMarkdownContext","styles","useMemo","StyleSheet","create","list","marginBottom","spacing","m","listNested","marginLeft","l","jsx","View","style","exports","ListItem","index","listItem","flexDirection","s","alignItems","listBullet","color","colors","accent","fontSize","fontSizes","lineHeight","marginRight","minWidth","textAlign","listItemContent","flex","flexShrink","bullet","jsxs","Text","TaskListItem","checked","taskListItem","taskCheckbox","taskContent"],"sourceRoot":"../../../src","sources":["renderers/list.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.MathInline = exports.MathBlock = void 0;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _MarkdownContext = require("../MarkdownContext.js");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ let MathJaxComponent = null;
12
+ try {
13
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
14
+ const mathJaxModule = require("react-native-mathjax-svg");
15
+ MathJaxComponent = mathJaxModule.default || mathJaxModule;
16
+ } catch {
17
+ // ignored
18
+ }
19
+ /**
20
+ * Inline math renderer.
21
+ * Uses react-native-mathjax-svg if installed, otherwise shows raw LaTeX.
22
+ * Note: Renders as a View since SVG can't be nested in Text.
23
+ */
24
+
25
+ const createMathStyles = theme => _reactNative.StyleSheet.create({
26
+ mathInlineContainer: {
27
+ flexDirection: "row",
28
+ alignItems: "baseline",
29
+ alignSelf: "baseline",
30
+ justifyContent: "flex-start",
31
+ flexShrink: 1,
32
+ marginHorizontal: 2,
33
+ top: -theme.fontSizes.m,
34
+ marginBottom: 0,
35
+ paddingVertical: 0
36
+ },
37
+ mathJaxInline: {
38
+ marginTop: 0,
39
+ marginBottom: 0
40
+ },
41
+ mathInlineFallbackContainer: {
42
+ backgroundColor: theme.colors.codeBackground,
43
+ paddingHorizontal: 4,
44
+ paddingVertical: 2,
45
+ borderRadius: 4,
46
+ alignSelf: "baseline",
47
+ marginHorizontal: 2
48
+ },
49
+ mathInlineFallback: {
50
+ fontFamily: "monospace",
51
+ fontSize: theme.fontSizes.s,
52
+ color: theme.colors.code
53
+ },
54
+ mathBlockContainer: {
55
+ marginVertical: theme.spacing.m,
56
+ paddingVertical: theme.spacing.l,
57
+ paddingHorizontal: theme.spacing.l,
58
+ backgroundColor: theme.colors.surface,
59
+ borderRadius: 12,
60
+ alignItems: "center",
61
+ borderWidth: 1,
62
+ borderColor: theme.colors.border,
63
+ shadowColor: "#000",
64
+ shadowOffset: {
65
+ width: 0,
66
+ height: 1
67
+ },
68
+ shadowOpacity: 0.05,
69
+ shadowRadius: 2,
70
+ elevation: 1
71
+ },
72
+ mathBlockFallbackContainer: {
73
+ marginVertical: theme.spacing.m,
74
+ paddingVertical: theme.spacing.m,
75
+ paddingHorizontal: theme.spacing.l,
76
+ backgroundColor: theme.colors.codeBackground,
77
+ borderRadius: 8,
78
+ alignItems: "center",
79
+ borderWidth: 1,
80
+ borderColor: theme.colors.border
81
+ },
82
+ mathBlockFallback: {
83
+ fontFamily: "monospace",
84
+ fontSize: theme.fontSizes.m,
85
+ color: theme.colors.code,
86
+ textAlign: "center"
87
+ }
88
+ });
89
+ const MathInline = ({
90
+ content
91
+ }) => {
92
+ const {
93
+ theme
94
+ } = (0, _MarkdownContext.useMarkdownContext)();
95
+ const styles = (0, _react.useMemo)(() => createMathStyles(theme), [theme]);
96
+ if (!content) return null;
97
+ if (MathJaxComponent) {
98
+ const fontSize = theme.fontSizes.m;
99
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
100
+ style: styles.mathInlineContainer,
101
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(MathJaxComponent, {
102
+ fontSize: fontSize,
103
+ color: theme.colors.text,
104
+ fontCache: true,
105
+ style: styles.mathJaxInline,
106
+ children: content
107
+ })
108
+ });
109
+ }
110
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
111
+ style: styles.mathInlineFallbackContainer,
112
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
113
+ style: styles.mathInlineFallback,
114
+ children: content
115
+ })
116
+ });
117
+ };
118
+ exports.MathInline = MathInline;
119
+ /**
120
+ * Block math renderer.
121
+ * Uses react-native-mathjax-svg if installed, otherwise shows raw LaTeX.
122
+ */
123
+ const MathBlock = ({
124
+ content
125
+ }) => {
126
+ const {
127
+ theme
128
+ } = (0, _MarkdownContext.useMarkdownContext)();
129
+ const styles = (0, _react.useMemo)(() => createMathStyles(theme), [theme]);
130
+ if (!content) return null;
131
+ if (MathJaxComponent) {
132
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
133
+ style: styles.mathBlockContainer,
134
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(MathJaxComponent, {
135
+ fontSize: theme.fontSizes.l,
136
+ color: theme.colors.text,
137
+ fontCache: true,
138
+ children: `\\displaystyle ${content}`
139
+ })
140
+ });
141
+ }
142
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
143
+ style: styles.mathBlockFallbackContainer,
144
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
145
+ style: styles.mathBlockFallback,
146
+ children: content
147
+ })
148
+ });
149
+ };
150
+ exports.MathBlock = MathBlock;
151
+ //# sourceMappingURL=math.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_MarkdownContext","_jsxRuntime","MathJaxComponent","mathJaxModule","default","createMathStyles","theme","StyleSheet","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","useMarkdownContext","styles","useMemo","jsx","View","style","children","text","fontCache","Text","exports","MathBlock"],"sourceRoot":"../../../src","sources":["renderers/math.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Paragraph = void 0;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _MarkdownContext = require("../MarkdownContext.js");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ /**
12
+ * Paragraph component that supports mixed content (Text and View elements).
13
+ * Uses View with flexDirection: 'row' and flexWrap: 'wrap' to allow inline flow
14
+ * of both text and non-text elements (like inline math).
15
+ */
16
+ const Paragraph = ({
17
+ children,
18
+ inListItem,
19
+ style
20
+ }) => {
21
+ const {
22
+ theme
23
+ } = (0, _MarkdownContext.useMarkdownContext)();
24
+ const styles = (0, _react.useMemo)(() => _reactNative.StyleSheet.create({
25
+ paragraph: {
26
+ flexDirection: "row",
27
+ flexWrap: "wrap",
28
+ alignItems: "baseline",
29
+ marginBottom: theme.spacing.l,
30
+ gap: 0
31
+ },
32
+ paragraphInListItem: {
33
+ marginBottom: 0,
34
+ marginTop: 0,
35
+ flexShrink: 1
36
+ }
37
+ }), [theme]);
38
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
39
+ style: [styles.paragraph, inListItem && styles.paragraphInListItem, style],
40
+ children: children
41
+ });
42
+ };
43
+ exports.Paragraph = Paragraph;
44
+ //# sourceMappingURL=paragraph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_MarkdownContext","_jsxRuntime","Paragraph","children","inListItem","style","theme","useMarkdownContext","styles","useMemo","StyleSheet","create","paragraph","flexDirection","flexWrap","alignItems","marginBottom","spacing","l","gap","paragraphInListItem","marginTop","flexShrink","jsx","View","exports"],"sourceRoot":"../../../src","sources":["renderers/paragraph.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AAAwD,IAAAG,WAAA,GAAAH,OAAA;AAQxD;AACA;AACA;AACA;AACA;AACO,MAAMI,SAA6B,GAAGA,CAAC;EAC5CC,QAAQ;EACRC,UAAU;EACVC;AACF,CAAC,KAAK;EACJ,MAAM;IAAEC;EAAM,CAAC,GAAG,IAAAC,mCAAkB,EAAC,CAAC;EACtC,MAAMC,MAAM,GAAG,IAAAC,cAAO,EACpB,MACEC,uBAAU,CAACC,MAAM,CAAC;IAChBC,SAAS,EAAE;MACTC,aAAa,EAAE,KAAK;MACpBC,QAAQ,EAAE,MAAM;MAChBC,UAAU,EAAE,UAAU;MACtBC,YAAY,EAAEV,KAAK,CAACW,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,CAAChB,KAAK,CACR,CAAC;EAED,oBACE,IAAAL,WAAA,CAAAsB,GAAA,EAACxB,YAAA,CAAAyB,IAAI;IACHnB,KAAK,EAAE,CACLG,MAAM,CAACI,SAAS,EAChBR,UAAU,IAAII,MAAM,CAACY,mBAAmB,EACxCf,KAAK,CACL;IAAAF,QAAA,EAEDA;EAAQ,CACL,CAAC;AAEX,CAAC;AAACsB,OAAA,CAAAvB,SAAA,GAAAA,SAAA","ignoreList":[]}